2017-09-02 5 views
0

私はIBMキューにメッセージを送信する必要があります。何らかの理由でQueueManager内部に存在するキューが停止しているか、またはIBM MQブローカーがダウンしているか、ネットワークの問題があると、今Destinationがダウンしている場合、IBM MQメッセージを確実に送信するにはどうすればよいですか?

 Session session = queueConnection.createSession(true, 
      QueueSession.AUTO_ACKNOWLEDGE); 
     Destination destination = 
      session.createQueue("test.queue"); 
     MessageProducer producer = session.createProducer(destination); 

      TextMessage message = session.createTextMessage("test"); 
      producer.send(message); 

     // Close the session 
     session.close(); 

- :私はとしてキューにメッセージをプッシュする通常のプロデューサークラスを書かれていますメッセージの送信に失敗します。

メッセージを送信するために自動的に再試行でき(基本的には再試行のメカニズム)、定義済みの回数だけ再試行してからメッセージをIBM MQブローカに送信するメカニズムがJMS/IBM MQにありますか?

答えて

1

IBM MQ JMSクライアント(その他のIBM MQクライアントも同様)には、何らかの理由でIBM MQキューマネージャーが切断された場合、指定された時間までキューマネージャーに再接続しようとする機能があります。参照:https://www.ibm.com/support/knowledgecenter/SSFKSJ_9.0.0/com.ibm.mq.dev.doc/q032520_.htm再接続を有効にするには、接続ファクトリを設定する必要があります。

たとえば、producer.sendメソッドの実行中にキューマネージャへの接続が中断した場合、IBM MQ JMSクライアントは自動的にキューマネージャに再接続してメッセージを送信しようとします。 IBM MQ、キューに

がダウンして行くことができないキューがいっぱいの場合、それは例えば、しかしにアクセス可能になることができますまたはキューに乗る/置く

+0

リンクを指してくれてありがとうをなどを無効にしています。しかし、私のユースケースは、アプリケーションがTOMEEコンテナ内で実行されるということです。なんらかの理由でキューが利用できない場合、アプリケーションはTOMEE内で実行され、setClientReconnectOptionsを使用して自動再接続できますか? – Neer1009

+0

はい、再接続オプションを有効にして接続が切断された場合、MQ JMSクライアントは再接続を試みます。 – Shashi

関連する問題