サブスクライバに障害が発生した場合にEMSパブリッシャに通知する方法に関する回答を検索しようとしています。 パブリッシャー→EMSサーバー→サブスクライバーの場合、サブスクライバーが失敗した場合は、パブリッシャーに是正措置を取るよう通知する必要があります。耐久性/パーシステンスに関して気にならず、私の意義は時間です。トレーディングシステムでは、取引先にマーケット注文を送り、取引先に送ると、失敗した場合、別の話題のメッセージを別の取引先(別の取引所)にパブリッシャーで発行させる必要があります。 すべてのアイデアは高く評価されています。サブスクライバに障害が発生した場合にTIBCO EMS通知を発行者に送信する
答えて
アクセス権があるかどうかわからない場合は、QueueInfoまたはTopicInfoのReceiverCountまたはConsumerCountを調べてみてください。tibjms.adminパッケージが必要です。公開して選択的に公開する前にこれをクエリできますか?オーバーヘッドが何であるか分かりません。
JMSの性質上、AFAIKはトランザクションの状態を表しません(XAトランザクションを使用しない限り、そのすべてのオーバーヘッドで)、または肯定応答はEMSブローカを介して伝播します。私は常にパブリッシャーとブローカーと消費者とブローカーの間にあります。
上記に失敗した場合、役割が逆になっている別のackトピックを試すことができますが、失敗の場合はタイムアウトになります。これは分かりやすいとは思いません。
注文がどの交換に行くかは本当に気にしない - トピック/キューを排他的にして、両方の消費者が消費しようとしないようにする - 最初のものがすべてのメッセージを処理する - (定期的に再試行できますが、正常に接続できる可能性があります)。また、両方のキューに注文を処理させることもできます。メッセージは単一のコンシューマによってのみ処理されます...
本当に表示されません
tibjmsadmin.jarライブラリには、サブスクライバが切断されたときを検出するメソッドが含まれています。コードを書くよりも簡単、次のことができます。あなたがホークを持っている場合
- 、モニター 話題 に耳を傾け、加入者にイベントに 切断、または
- をホークルール を書くこと tibjmsadmin.hmaを使用します$ sys.monitor.connection.disconnect - メッセージの本文は、どのサブスクライバが切断されたかを に伝えます。
しかし、これらの「監視」方法では、パブリッシャの障害を検出してパブリッシャをリダイレクトする際に、重要な問題があります。メッセージが通過して機能しなくなることがありますキュー。あなたは$ 10Mの取引に起こってこれを見ないでください!
EMSは、加入者が接続されているかどうかを知っており、これを利用する必要があります。
"分散キュー"を使用すると、失敗したときに新しいサブスクライバに切り替えるためにロジックをアプリケーションにコーディングする必要はありません。これは、メッセージ損失なしで発生し、メッセージの順序を維持します。ロード・バランシングおよびフェイルオーバー・ロジックをコードおよびJMSプロバイダーの管理セットアップから保護することも、アーキテクチャーの習慣としては優れています。
基本的に、キューに複数のサブスクライバを設定します(各サブスクライバによって表されるエクスチェンジ)。デフォルトのアクションは、EMSがラウンドロビン方式でユーザにメッセージをロードバランシングすることです。しかし、キューを「排他的」に設定すると、メッセージは一度に1つのサブスクライバにのみ送信されます。そのアクティブなサブスクライバに障害が発生すると、メッセージは別のサブスクライバに転送されます。
これらのトピックの詳細については、EMSマニュアルを参照してください。
答えていただきありがとうございます.iは確かにドキュメントをチェックします。 –
- 1. Parseクラウドデータサービスに障害が発生した場合はどうなりますか?
- 2. apt-getの更新は浮浪者のマシンに障害が発生した
- 3. パイプラインの左側に障害が発生しましたか?
- 4. データボリュームのディスクボリュームに障害が発生しました
- 5. HAプロキシのIPに障害が発生した場合にクライアントが接続を処理する方法
- 6. 目的に応じて障害が発生した場合にSQLでキャッチが失敗する
- 7. ペイロードデータを送信中にWebプッシュ通知エラー "MessageTooBig"が発生しました
- 8. JMXが通知を発行したときにjava.io.NotSerializableExceptionが発生しました
- 9. WSO2 GCM(GCM通知の送信中に例外が発生しました:ヌル)
- 10. 障害発生後にGWT-RPCリクエストを再起動する
- 11. クライアントサーバーの通信障害C#
- 12. Mavenの3パラレルGmaven散発的な障害が発生
- 13. CodeAccessSecurityAttribute派生クラス(タイプのロード中に障害が発生している)
- 14. EventKitイベントが発生したときにアプリケーションに通知する
- 15. URLがダウンした場合に電子メール通知を送信するプログラム
- 16. TIBCO EMSを使用してC#でUTF-8テキストメッセージを送信
- 17. 障害発生時にWindowsサービスを再起動
- 18. プログラムによるバッキングアップ2008に障害が発生した(ただし、以前のバージョンで動作します)
- 19. ファイルをダウンロードしているときにネットワークに障害が発生した場合のココアタッチアプリをテストするにはどうすればよいですか?
- 20. XMLをRESTに送信中にエラーが発生しました
- 21. Apache認証:障害発生時に確実にリダイレクトしますか?
- 22. Java(Netbeans)を使用してMySQLに接続するときに、このエラー「通信リンクの障害が発生しました。
- 23. Silverlightで障害が発生したDuplexClientBase WCFプロキシを閉じて再度開く
- 24. オーバーフローが発生した場合、どのように「右」に要素を送信しますか?
- 25. WCFサービスの名前付きパイプの障害が発生しました。
- 26. OSがファイルI/O操作を実行中に電源障害が発生した場合はどうなりますか?
- 27. $ .getが特定の値を返す場合に通知を送信する
- 28. 障害発見に役立つ機能を作成する
- 29. javaでメールを送信中にエラーが発生しました
- 30. SMTPメールを送信中にエラーが発生しました
お返事ありがとうございます。私はアイディアを持って私のチームと議論しなければならないでしょう。 –