2016-04-30 33 views
0

ActiveMQフェイルオーバープロトコルには2つの質問があります。ActiveMQフェールオーバー接続URL

質問1:私はネストされたで次のURLを使用する場合、それはActiveMQのに接続できません。

failover:(tcp://192.168.1.111:61616)?nested.jms.useAsyncSend=true&initialReconnectDelay=1000&maxReconnectAttempts=-1 

質問2:次のURLが正常に動作します。また、最初の再起動時にActiveMQに再接続しますが、2度目のActiveMQをシャットダウンするとJavaプログラムが終了し、例外はありません。

failover:(tcp://192.168.1.111:61616)?jms.useAsyncSend=true&initialReconnectDelay=1000&maxReconnectAttempts=-1 

ActiveMQのバージョン:5.10.0

参考:http://activemq.apache.org/failover-transport-reference.html

答えて

0

ネストされた接頭辞がフェイルオーバーURIの内側に輸送し、内側TCP/SSLに適用されるオプションのためにのみ有用である、または可能性マルチキャスト検出などを使用して検出されたブローカのアドレスに適用されます。接続レベルオプション(「jms」で始まるものなど)には適用されません。設定した場合、あなたの最初のURIが正しいだろう次

failover:(tcp://192.168.1.111:61616)?jms.useAsyncSend=true&initialReconnectDelay=1000 

jms.useAsyncSendオプションがない内部の与えられたTCPベースのトランスポートへの単一の接続に、全体の接続を適用するためですフェイルオーバー URI。

ネストされたオプションは、それは昔も今も、デフォルトの前提であるので、あなたがしたい場合にのみ、あなたは、試してみて、無限の試行を再接続設定する必要はありませんsoTimeoutまたはTCPNODELAYのようなものなど

だろうあなたはこのオプションを設定する必要がありますいくつかの固定数に制限します。

フェールオーバーの再接続サイクル中にアプリケーションがシャットダウンしている場合は、ActiveMQライブラリに依存して少なくとも1つの非デーモンスレッドを維持して、それを有効に保つことができますアプリケーションの実行を維持するためのパーティーは一般的に悪い習慣であり、実際にアプリケーションをシャットダウンするまで、アプリケーションが起動するように独自の設計を行う必要があります。

関連する問題