メッセージング・エンジンの停止のメカニズム
メッセージング・エンジンの停止に使用できる異なる複数のメカニズムがあります。即時および強制という 2 つの異なるレベルの緊急性も指定できます。 メッセージング・エンジンを停止すると、そのエンジンはメッセージの送信を停止します。
- 管理コンソールを使用してメッセージング・エンジンを停止する
- JMX の stop コマンドを使用する
- stopServer コマンドを使用してメッセージング・エンジンを ホストするアプリケーション・サーバーを停止する
- 即時
- 即時モードでは、メッセージング・エンジンは、停止要求の発生時に
実行されていたすべてのメッセージング操作の完了時に停止します。メッセージング・エンジンの停止を示す通知が各アプリケーションに送信されることはありません。
stop コマンドが実行された後、
メッセージング・エンジンは新しいオペレーションの開始を許可しません。
既存の各接続については、 メッセージング・エンジンは現行オペレーションが終了するのを待ちます。 ただし、受信オペレーションのように、メッセージング・エンジン内でオペレーションが処理をブロックする場合は除きます。この場合、オペレーションは中断されます。 非同期コンシューマーの場合、たとえ現行メッセージの処理に任意の時間がかかっても、その完了が許可されます。 メッセージング・エンジンはその後にアクティブなトランザクションを取り消し、 その接続に関する以降のオペレーションを禁止します。すべての接続がこの無効化された状態になると、 メッセージング・エンジンは停止します。
- 強制
- 強制モードでは、メッセージング・エンジンは停止されて、すべての
現行トランザクションが優先され、アプリケーションは強制的に切断され
ます。
強制モードは即時モードと似ていますが、停止コマンドが実行され ると、メッセージング・エンジンが停止されることにより、アプリケーション ・スレッドで実行中のメッセージング操作が中断されるとい う点が異なります。強制モードでは現行メッセージング操作の 完了は許可されず、メッセージング・エンジンはオペレーションを中断してから、 以降のオペレーションを禁止します。すべての接続がこの状態になると、 メッセージング・エンジンが停止します。
強制モードはできる限り迅速にメッセージング・エンジンのシャットダウンを完了します。 メッセージング・エンジンの以後の再始動時には、即時モードを 使用してオペレーションを停止した場合よりも多くのリカバリー・アクション が必要になるため、処理に時間がかかることがあります。例えば、強制モード で停止すると、メッセージが未確定トランザクションのまま維持される可能性があるため、 これらのメッセージを未確定トランザクションの解決の 説明に従って処理する必要があります。
即時停止では時間がかかりすぎるため、途中から即時停止に変更することも可能です。
停止手段 | 即時 | 強制 |
---|---|---|
管理コンソール | はい | はい |
JMX の stop コマンド | はい | はい |
stopServer コマンド | はい | いいえ |