2017-04-25 14 views
0

私はactiveMQ tcpフェールオーバー接続を使用してコンシューマを作成し、プロデューサによって生成されたトピックに加入しています。 どうすればネットワーク障害を管理できますか?ブローカとクライアント間の接続が切断されている場合、接続がいつ再確立されるのかをどのように知ることができますか? また、プロデューサが稼動しているかどうかを知るにはどうすればよいですか?プロデューサを再起動する場合。どのように私はそれについて知っているので、私はトピックを再購読することができますか?あなたが再接続を管理する必要はありませんFailoverTransportとactiveMQ tcp failoverの場合の接続障害の処理方法

答えて

3

、彼はプロデューサーの再起動場合は、トピックにmaxReconnectAttempts

再サブスクライブを指定しない限りindefinetly再接続しようとします??あなたの消費者は、彼がFailoverTransport状態の変更に通知する、必要がない場合でも、プロデューサー

の世話をするために持っていけない接続されているので必要ありません:

ActiveMQConnectionFactory cf = new ActiveMQConnectionFactory("failover:(tcp://host1:5670)"); 
    cf.setTransportListener(new TransportListener() { 
     @Override 
     public void transportResumed() { 
     } 

     @Override 
     public void transportInterupted() { 
     } 

     @Override 
     public void onException(IOException error) { 
     } 

     @Override 
     public void onCommand(Object command) { 
     } 
    }); 
+0

私はこれを試してみました。私の見解では、私のマシン(消費者/加入者)からn/wケーブルを引っ張って15秒後にtransportInteruppedを取得した後、n/wケーブルを接続しても何も起こりません。 (私が購読したトピックのための新しい更新を得ていない)。トピックは永続化されません。 – Ark

+0

恒久サブスクリプションなしでトピックを使用するのは確かです。恒久サブスクリプションを作成するか、遡及型コンシューマーを使用する必要があります。http://activemq.apache.org/retroactive-consumer.html –

+0

遡及型コンシューマーを使用していますが、恒久サブスクリプションは使用していません。耐久性のあるサブスクリプションも使用する必要がありますか?私の消費者がn/wに接続した後にそれ以上のアップデートがないという私の問題を解決するだろうか? – Ark

関連する問題