2011-07-05 30 views
1

私はJMSを使ってActiveMQと話しています。私はそれを自分で処理する必要があるので、ActiveMQのフェイルオーバーを無効にしなければなりませんでした。JMSとActiveMQでは、切断時に通知を受け取る方法は?

したがって、代わりに:failover // tcp // localhost:61616私は:tcp // localhost:61616を使用しました。

ActiveMQサーバーを閉じてメッセージを送信しようとすると、例外が発生します。 javax.jms.IllegalStateException:セッションが閉じられています

しかし、サーバーとの接続が失われたときにどうすれば通知できますか?

私がActiveMQのフェイルオーバーを使用していない理由は、実稼働環境ではMQSeriesでなければならないからです。

おかげ

答えて

2

は私はわからないけどTransportListenerはあなたを助けることができます。ここで

が、これはあなたを助けるかもしれ

connection = new ActiveMQConnectionFactory(brokerUrl).createConnection(); 
ActiveMQConnection cc = (ActiveMQConnection)connection; 
cc.addTransportListener(new YourTransportListener()); 

希望、それを使用してのサンプルです。

+1

あなたの答えに感謝します。私はそれが普通のJMSではないので使用できません。私が見つかりました。私は(新しいのExceptionListener(){ \t \t \t \t \t \t \t \t @Override \t \t \t \tます。public void onExceptionを(JMSExceptionが電子){ \t \t \t \t \t // TODO自動connection.setExceptionListenerを追加することができること生成されたメソッドスタブ \t \t \t \t \t System.out.println(e); \t \t \t \t} \t \t \t}); JMSConnectionの場合私はクライアントが何かをプッシュしようとすると通知します:javax.jms.JMSException:java.io.EOFExceptionしかし、私はもっと意味のある何かを得ることができないと思います。 –

+1

ExceptionListener内で例外を受け取ったときに再接続ができるように見えます。私はそれに行くでしょう。ご協力いただきありがとうございます –

関連する問題