18.3. デッド接続の検出
18.3.1. サーバーでデッド接続リソースを閉じる リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
HornetQ コアまたは JMS クライアントアプリケーションは、終了する前にそのリソースを閉じる必要があります。アプリケーションのコードで
finally ブロックを使用すると、アプリケーションがリソースを自動的に閉じるように設定できます。
以下の例は、
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
以下の例は、
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
finally ブロックでセッションとセッションファクトリーを閉じるコアクライアントアプリケーションを示しています。
finally ブロックでセッションとセッションファクトリーを閉じる JMS クライアントアプリケーションを示しています。
接続 Time to Live (TTL) パラメーターの使用
connection-ttl パラメーターは、クライアントからデータまたは ping パケットを受信しない場合に、サーバーが接続を存続する期間を決定します。このパラメーターにより、古いセッションなどのデッドサーバーリソースが長く維持され、障害が発生したネットワーク接続が復旧したときにクライアントが再接続できるようになります。
HornetQConnectionFactory インスタンスに connection-ttl パラメーターを指定すると、JMS クライアントの接続 TTL を定義できます。JMS 接続ファクトリーインスタンスを JNDI に直接デプロイする場合は、standalone.xml および domain.xml サーバー設定ファイルで connection-ttl パラメーターを定義できます。
connection-ttl パラメーターのデフォルト値は 60000 ミリ秒です。クライアントが独自の接続 TTL を指定する必要がない場合は、サーバー設定ファイルに connection-ttl-override パラメーターを定義して、すべての値を上書きできます。connection-ttl-override パラメーターはデフォルトで無効にされ、値が -1 になります。
ガベージコレクション
HornetQ はガベージコレクションを使用して、finally ブロックで明示的に閉じられていないセッションを検出し、閉じます。HornetQ サーバーは、セッションを閉じる前に以下のような警告をログに記録します。