JBossMQのキューからテキストメッセージを読み取るJavaリスナーがあります。 JBossを再起動する必要がある場合、リスナーは再接続せずにメッセージの再読込を再開します。リスナーのログファイルに2分おきにメッセージが届き、接続できないというメッセージが表示されます。私たちのコードやJBossMQに設定されていないものはありますか?私はJMSに慣れていないので、どんな助けも大歓迎です。ありがとう。JMSリスナーをJBossMQに再接続
答えて
クライアントコードjavax.jms.ExceptionListenerに実装する必要があります。 onExceptionというメソッドが必要です。クライアントの接続が失われると、JMSExceptionが発生し、このメソッドが自動的に呼び出されます。 JBossMQから意図的に切断している場合は、例外をスローするしかありません。
いくつかのコードは次のようになります。あなたの「establishConnection」コードで
public void onException (JMSException jsme)
{
if (!closeRequested)
{
this.disconnect();
this.establishConnection(connectionProps, queueName, uname, pword, clientID, messageSelector);
}
else
{
//Client requested close so do not try to reconnect
}
}
は、あなたがそれの内側のtry/catchが含まれているwhile(!initialized)
構造を実装します。あなたが正しく接続し、購読していることを確かめるまで、whileループ内に留まり、すべてのJMS/Naming/etcを捕まえてください。例外。
私たちはこの方法をJBossMQで長年にわたって使ってきました。 JBossMQをバウンスしたり、ネットワーク接続を失ったりした後も、JMSクライアントが再接続することはありませんでした。
ExceptionListenerを登録するには、Connection#setExceptionListener(少なくとも一部のJMSプロバイダを使用)を使用する必要があることに注意してください。 – Touko
Spring abstractions for JMS such as the MessageListenerContainerを使用して、再接続、トランザクション、プーリングを処理することを強くお勧めします。 MessageListenerを指定し、ConnectionFactoryでMessageListenerContainerを構成するだけで、残りの部分はコンテナで処理する必要があります。
純粋にリスナーであり、なし他のJMS呼び出しで接続設定以外の呼び出しを行った場合、 "onException()handler"という回答は正しいです。
コード内でJMS呼び出しを行う場合、onException()コールバックを使用するだけでは十分ではありません。 JMSプロバイダからのいずれかの問題が、onException()コールバックを使用してJMSメソッド呼び出しまたはの例外経由で中継されます。両方ではありません。
コードからJMSメソッドを呼び出す場合、それらの呼び出しで例外が発生した場合は、その再接続ロジックも呼び出すことをお勧めします。
個人的な経験からのアドバイス。 JBoss Messagingにアップグレードしてください。私は問題なく4ヶ月生産でそれを見ました。他の多くの機能の中でも、完全に透過的なフェイルオーバー機能を備えています。
また、Springと一緒に行く場合は、JmsTemplateのverycarefulとなります。
- 1. SoapUI JMS接続
- 2. JMeterでJBossMQ JMSキューをテストするには
- 3. JMS接続とセッションプーリング
- 4. Spring JMS接続ファクトリでweblogic再接続ポリシーを設定する方法
- 5. JMS接続を失うことなくサーバーを再起動
- 6. JUnitのバネJMSリスナー
- 7. WebSphere - JMS接続プール - コンテナがjms接続をテストできますか?
- 8. WebsphereMQへのJMS接続
- 9. strutsのJMSキュー接続ファクトリ
- 10. Spring JMSランタイム接続管理
- 11. Akka StreamsをJMSに接続します。
- 12. perl dbi再接続時に再接続
- 13. Windows Mobileのネットワーク接続リスナー
- 14. Xamarin.Formsのインターネット接続リスナー
- 15. なぜ、ActiveMQブローカに接続すると毎秒Spring JMSがJMS接続を作成するのですか?
- 16. ActiveMQのJMS TCPトランスポートインクリメンタル私がログに気づいた一部のJMS接続の問題の後、再試行
- 17. リスナーをRESTで接続しますか?
- 18. Camel Spring JMSキューの接続例
- 19. 異なるJMS接続ファクトリのインスタンス化
- 20. OPCに再接続
- 21. Glassfishは、JMSキューの接続/セッションリソースを遅延で閉じます。 JMS接続プーリングの仕組み
- 22. tibco jmsリスナーを使用したスプリングブート
- 23. 接続通知でロジックを再接続
- 24. firebase認証リスナーとネットワーク接続
- 25. JCR再接続
- 26. Weblogic JMS Client - 接続ファクトリーから接続を作成していない応答
- 27. HttpservletRequestとSpring JMSリスナーの応答
- 28. SpringブートのActiveMQ JMSリスナーのSpockテスト
- 29. 初めての接続 - 再接続
- 30. 再接続中のMqtt接続
良い質問です。これは誰もが実行するものなので、ディスカッションを記録しておくとよいです。 –