2016-09-19 36 views
0

マスター・スレーブ構成でセットアップActiveMQバージョン5.4.1(マシン上のJVMは1.5であり、更新できません)があります。 2つの別々のポート(61616と61617)で動作する2つのAMQインスタンスI1とI2があります。彼らは共通のKahaDBを共有しています。両方のインスタンスが一緒に起動され、KahaDBでロックを取得できるものがマスターになります。スレーブインスタンスはKahaDBのロックを取得できず、マスタがロックを解除したかどうかを確認するために10秒ごとにポーリングを開始します。これは問題なく正常に動作します。ActiveMQとフェイルオーバー・プロトコルが自動接続しない

は、製造及び消費しながら、フェイルオーバープロトコルが使用され、使用される接続文字列があれば、上記のwhileループの内側

ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory("failover:(tcp://I1:61616,tcp://I2:61617)?initialReconnectDelay=10000"); Connection connection = connectionFactory.createConnection(); connection.start(); connection.setExceptionListener(this); Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); Destination destination = session.createQueue("TEST.FOO"); MessageConsumer consumer = session.createConsumer(destination); Message message = consumer.receive(10000); while (message != null) { // Process message and read next message = consumer.receive(10000); }

を次のように消費者コードである
failover:(tcp://I1:61616,tcp://I2:61617)?initialReconnectDelay=10000

ありますインスタンスがダウンし、もう一方が表示されると、AMQコンシューマは自動的に以下の情報メッセージを表示します。
Transport failed, attempting to automatically reconnect due to: java.io.EOFException java.io.EOFException at java.io.DataInputStream.readInt(DataInputStream.java:375) at org.apache.activemq.openwire.OpenWireFormat.unmarshal(OpenWireFormat.java:268) at org.apache.activemq.transport.tcp.TcpTransport.readCommand(TcpTransport.java:192) at org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:184) at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:172) at java.lang.Thread.run(Thread.java:619)

ただし、アップインスタンスに再接続できず、消費される後続のメッセージはnullです。

消費者コードを再実行すると、failover:(tcp://I1:61616,tcp://I2:61617)?initialReconnectDelay=10000は自動的にアップインスタンスを選択します。アップインスタンスに自動的に再接続しない唯一の時間は、インスタンスがダウンした場合に消費することです。

消費者が消費している間に、フェールオーバープロトコルが自動的にアップインスタンスに接続するために欠けているものがありますか?

答えて

0

5.4.1にはinitialReconnectDelayに影響するバグがあります。

AMQ-3049:https://issues.apache.org/jira/browse/AMQ-3049

あなたはこれが働い5.4.x

+0

ための最も修正を持っていることを確認するために、任意の速度で最新の5.4.3にアップグレードする必要があります。ありがとう。私は5.4.3を使って終わった –

関連する問題