6.3. デッド接続の検出

ブローカーからデータを受信する限り、クライアントは接続がアライブ状態であると判断します。client-failure-check-period プロパティーの値を指定して、接続の失敗を確認するようにクライアントを設定します。ネットワーク接続のデフォルトのチェック期間は 30,000 ミリ秒 (30 秒) です。VM 内接続のデフォルト値は -1 で、これは、データが受信されなかった場合にクライアント側から接続を失敗させません。

通常、チェック期間はブローカーの接続の Time-to-live に使用される値よりもはるかに低い値に設定します。これにより、一時的な障害が発生した場合にクライアントが再接続できるようになります。

デッド接続を検出するためのチェック期間の設定

以下の例は、チェック期間を 10,000 ミリ秒に設定する方法を示しています。

手順

  • JNDI を使用している場合は、以下のように JNDI コンテキスト環境 (例: jndi.properties) 内でチェック期間を設定します。

    java.naming.factory.initial=org.apache.activemq.artemis.jndi.ActiveMQInitialContextFactory
    connectionFactory.myConnectionFactory=tcp://localhost:61616?clientFailureCheckPeriod=10000
  • JNDI を使用していない場合は、値を ActiveMQConnectionFactory.setClientFailureCheckPeriod() に渡してチェック期間を直接設定します。

    ConnectionFactory cf =  ActiveMQJMSClient.createConnectionFactory(...)
    cf.setClientFailureCheckPeriod(10000);