2.2.2. ブローカーインスタンスの正常な停止
手動シャットダウンは、stop
コマンドを入力すると、すべてのクライアントを強制的に切断します。別の方法として、graceful-shutdown-enabled
設定要素を使用して、ブローカーが正常にシャットダウンするように設定します。
graceful-shutdown-enabled
がtrue
に設定されている場合、stop
コマンドが入力された後、新しいクライアントの接続は許可されません。ただし、シャットダウンプロセスを開始する前に、既存の接続はクライアント側で閉じることができます。graceful-shutdown-enabled
のデフォルト値はfalse
です。
graceful-shutdown-timeout
構成要素を使用して、接続がブローカー側から強制的に閉じられる前にクライアントが切断する時間の長さをミリ秒単位で設定します。すべての接続が閉じられると、シャットダウンプロセスが開始します。graceful-shutdown-timeout
を使用する利点の1つは、クライアントの接続によるシャットダウンの遅延を防ぐことができることです。graceful-shutdown-timeout
のデフォルト値は-1
で、これは、クライアントが切断するまでブローカーが無期限に待機することを意味します。
以下の手順は、タイムアウトを使用する正常なシャットダウンを設定する方法を示しています。
手順
-
設定ファイル
<broker-instance-dir>\etc\broker.xml
を開きます。 graceful-shutdown-enabled
設定要素を追加し、値をtrue
に設定します。<configuration> <core> ... <graceful-shutdown-enabled> true </graceful-shutdown-enabled> ... </core> </configuration>
graceful-shutdown-timeout
設定要素を追加し、タイムアウトの値をミリ秒単位で設定します。以下の例では、stop
コマンドが実行されてから 30 秒 (30000
ミリ秒) 後に、クライアント接続が強制的に閉じられます。<configuration> <core> ... <graceful-shutdown-enabled> true </graceful-shutdown-enabled> <graceful-shutdown-timeout> 30000 </graceful-shutdown-timeout> ... </core> </configuration>