3.4. ブローカーインスタンスの停止
ブローカーインスタンスを手動で停止するか、ブローカーを正常にシャットダウンするように設定します。
3.4.1. ブローカーインスタンスの停止
スタンドアロンブローカーを作成し、テストメッセージを生成および消費した後、ブローカーインスタンスを停止できます。
この手順では、ブローカーを手動で停止し、クライアント接続をすべて強制的に閉じます。実稼働環境では、クライアント接続を適切に閉じるようにブローカーを正常に停止するようにブローカーを設定する必要があります。
手順
artemis stop
コマンドを使用してブローカーインスタンスを停止します。$ /var/opt/amq-broker/mybroker/bin/artemis stop 2018-12-03 14:37:30,630 INFO [org.apache.activemq.artemis.core.server] AMQ221002: Apache ActiveMQ Artemis Message Broker version 2.6.1.amq-720004-redhat-1 [b6c244ef-f1cb-11e8-a2d7-0800271b03bd] stopped, uptime 35 minutes Server stopped!
3.4.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>