簡體   English   中英

TIBCO EMS 重試邏輯

[英]TIBCO EMS Retry logic

我們有一台運行我們的 c# windows 服務的應用程序服務器和一台運行 TIBCO EMS 的服務器。 兩台服務器將在一周內的不同時間重新啟動。

當應用服務器首先重新上線時,我們喜歡 c#windwos 服務不斷嘗試連接到 EMS 服務器,直到 EMS 服務器重新上線。 (我有重試邏輯適用於這種情況)

當應用服務器正在運行時 EMS 服務器脫機(例如,c# 中的 EMS 客戶端正在偵聽隊列中的傳入消息),在這種情況下執行重試邏輯的最佳方法是什么? 會立即拋出異常嗎?

謝謝

如何獲得connecton關閉的通知? 我看到連接對象有 Exception Listner 和 Exception Hanlder 。 但是如果我在它們兩個都在運行時關閉網卡,我將無法在 c# 中捕獲它們中的任何一個。

它們之間有什么區別?

如果您的Windows Service僅用於連接到TIBCO EMS那么您可以向其添加依賴項。 然后每當TIBCO EMS服務停止/重新啟動時,您的Windows Service將分別停止/重新啟動。 缺點是當您啟動TIBCO EMS ,您的Windows Service不會自動啟動(我不確定您是否可以將兩個服務配對來解決這個問題)。

否則,您可以將 .NET 中的計時器類之一(例如System.Timers.Timer )添加到處理與 TIBCO EMS 的連接的類中。 然后在連接關閉時啟動計時器,並在連接打開后停止計時器。 定時器可以在指定的時間間隔后嘗試連接。

您應該嘗試將以下知識庫中的屬性添加到您的 tibemsd.conf 並檢查。

https://support.tibco.com/s/article/Tibco-KnowledgeArticle-Article-33918

例如:

client_heartbeat_server=10
client_timeout_server_connection=35
server_heartbeat_client=10
server_timeout_client_connection=35

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM