簡體   English   中英

當TIBCO EMS服務器嘗試故障轉移時,客戶端應該做什么?

[英]What should the client do while the TIBCO EMS server attempts failover?

TIBCO EMS用戶指南(第292頁)說:

備份服務器將無限期地工作到A)成為主服務器或B)重新連接到主服務器。 它還表示當交換機成功時, 客戶端可能會收到故障轉移通知 (另請參閱TIBCO EMS .NET參考第220頁)。

我有一些問題擺脫了這些事實......

  1. 當服務器嘗試故障轉移/重新連接時,客戶端會發生什么樣的錯誤?

  2. 客戶的適當回應是什么?

    • 從ConnectionFactory獲取新的Connection對象,直到有效嗎?
    • 等待故障轉移通知? (此時是否修復了當前的Connection實例?還是需要獲取新實例?)

我希望這個場景很清楚,任何相關的信息或建議也會受到贊賞。

我至少可以回答上面的#1。

如果你已經啟用了Tibems.SetExceptionOnFTSwitch(true); 並設置了一個異常處理程序來捕獲服務器發送給客戶端的消息,您將看到以下內容:

對於單服務器,非容錯連接故障:“連接已終止”。

對於容錯連接故障:“連接已執行容錯切換到”

如果在連接斷開時嘗試發布,則會拋出“生產者已關閉”消息的TIBCO.EMS.IllegalStateException。

對於上面的#2,我認為答案是允許EMS庫盡可能地處理。 一旦我們讓EMS重新連接功能正常工作,它就會優雅地重新連接,直到服務器再次可用,一旦重新連接,就好像從來沒有問題。 唯一的問題可能是如果您嘗試在ems連接恢復之前發布消息。 這是異常處理程序的來源。一旦通知您處於故障轉移模式,您可以調整發布方的異常處理以抑制錯誤,直到連接恢復。 我不知道的是,當你耗盡所有重新連接嘗試時,你怎么知道。

無論如何,似乎我們的兩個世界在EMS方面密切相關 - 希望我們的發現(根據您對我的問題的評論)對您有所幫助。

我們使用TEMS(Tibco EMS - 用於WCF的Tibco產品)因此它成為自定義綁定。 我們試圖通過反彈服務器以強制切換來破壞它,並且它運行得非常好。 確保您使用的是1.2版而不是1.1版,因為除了客戶端確認之外,您無法執行任何操作。

暫無
暫無

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

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