3

TIBCO EMSユーザーガイド(292ページ)には次のように書かれています。

バックアップサーバーは、A)プライマリサーバーになるか、B)プライマリサーバーに再接続するかのいずれかで無期限に機能します。また 、切り替えが成功すると、クライアントがフェイルオーバー通知を受信する可能性があることも示されています(TIBCO EMS .NETリファレンスページ220も参照)。

私はこれらの事実からスピンオフするいくつかの質問があります...

  1. サーバーがフェイルオーバー/再接続を試行しているときに、クライアント側でどのようなエラーが発生しますか?

  2. クライアントからの適切な応答は何ですか?

    • 1つが機能するまで、ConnectionFactoryから新しいConnectionオブジェクトを取得しますか?
    • フェイルオーバー通知を待ちますか?(現在、現在の接続インスタンスは修正されていますか?それとも新しいインスタンスを取得する必要がありますか?)

シナリオが明確であることを願っています。関連情報やアドバイスもいただければ幸いです。

4

2 に答える 2

4

少なくとも上記の #1 に答えることができます。

Tibems.SetExceptionOnFTSwitch(true); を有効にしている場合。サーバーがクライアントに送信するメッセージをキャプチャする例外ハンドラーを設定すると、次のように表示されます。

単一サーバーでフォールト トレラントでない接続エラーの場合: 「接続が終了しました」。

フォールト トレラントな接続エラーの場合: "接続はフォールト トレラントな切り替えを実行しました"

接続がダウンしているときに公開しようとすると、TIBCO.EMS.IllegalStateException がスローされ、「Producer is closed」メッセージが表示されます。

上記の 2 については、EMS ライブラリが可能な限り処理できるようにすることが答えだと思います。EMS の再接続機能が動作するようになると、サーバーが再び使用可能になるまで再接続が正常に試行され、再接続された後は問題がないように見えました。唯一の問題は、おそらく、ems 接続が回復する前にメッセージを公開しようとした場合です。ここで例外ハンドラーの出番です。フェールオーバー モードであることが通知されると、パブリッシャ側で例外処理を調整して、接続が回復するまでエラーを抑制することができます。私が知らないことは、すべての再接続の試行を使い果たしたときに、どのように通知するかです。

とにかく、EMS に関しては、私たちの 2 つの世界は密接に関連しているようです。

于 2008-10-24T20:00:16.763 に答える
0

TEMS (Tibco EMS - WCF 用の Tibco 製品) を使用しているため、カスタム バインディングになります。サーバーをバウンスしてスイッチオーバーを強制するなどのことを行って、それを打破しようとしましたが、非常にうまく機能しています。クライアントの承認以外は何もできないため、バージョン 1.1 ではなくバージョン 1.2 を使用していることを確認してください。

于 2013-10-25T04:48:12.410 に答える