Cosminexus 機能解説

[目次][用語][索引][前へ][次へ]

11.5.3 スケジュールキューの閉塞制御

スケジュールキューに対して,直接閉塞を実行することもできます。これによって,複数のJ2EEアプリケーションでスケジュールキューが共有されている場合に,一度にJ2EEアプリケーションを停止できます。スケジュールキューに登録されている仕掛かり中のリクエストについては,破棄するか一定の時間処理を続けるかを選択できます。処理を続ける場合は,一定の時間内に処理ができなければ強制的に破棄するように,タイムアウト時間が指定できます。また,仕掛かり中のリクエストについては,処理が続行されます。

スケジュールキューの閉塞が指示されると,CTMデーモンは,スケジュールキューの入り口を閉じてサービスを停止して,それ以降のリクエストを受け付けないようにします。また,すでにスケジュールキューに登録されたリクエストは,設定に従って,破棄するか,または処理を実行してからスケジュールキューの閉塞を完了します。リクエストを破棄する場合は,キューに登録されていたリクエストの処理はすべてエラーとしてクライアントに返却されます。処理を実行してから閉塞する場合は,一定時間処理を継続して,時間内に終了しなかった処理がエラーで返却されます。

スケジュールキューの閉塞制御の概要を,次の図に示します。

図11-18 スケジュールキューの閉塞制御の概要

[図データ]

スケジュールキューの閉塞制御を利用した運用については,マニュアル「Cosminexus システム運用ガイド」のサービスの閉塞の説明を参照してください。

<この項の構成>
(1) スケジュールキューの強制閉塞
(2) スケジュールキューのタイムアウト閉塞

(1) スケジュールキューの強制閉塞

スケジュールキューは,CTMデーモンとの通信をしないで閉塞することもできます。これを,スケジュールキューの強制閉塞といいます。強制閉塞をする場合は,運用管理コマンド(mngsvrutil)のサブコマンド「hold」の引数に,「queue force」を指定してください。

なお,スケジュールキューの強制閉塞をすると,滞留しているリクエストは一定時間後に破棄されます。滞留するリクエストを破棄したくない場合は,ctmholdqueコマンドで-CTMRequestLeaveオプションも指定してください。

(2) スケジュールキューのタイムアウト閉塞

スケジュールキューでは,EJBクライアントのタイムアウトを一定間隔で監視し,タイムアウトの発生回数が,設定した回数を超えると,スケジュールキューを閉塞します。これを,スケジュールキューのタイムアウト閉塞といいます。

タイムアウト発生について次の図で説明します。

図11-19 スケジュールキューのタイムアウト閉塞の発生

[図データ]

図では,10秒間隔でタイムアウト発生回数を監視しています。タイムアウト回数のカウントは,監視時間内だけとなります。次の監視時間ではタイムアウトの回数はリセットしてカウントされます。

このとき,例えば,タイムアウト発生回数として10回が設定されている場合,10秒の監視時間内で10回以上タイムアウトが発生すると,キューが閉塞されます。なお,キューが閉塞されるタイミングは,タイムアウト回数を10回以上検知したあとの,次の監視時間で閉塞されます。この図の場合,監視を始めてから30秒後に11回のタイムアウトを検知したので,タイムアウトを検知した30秒後にキューが閉塞されます。

なお,スケジュールキューのタイムアウト閉塞は,ctmstartコマンドの-CTMWatchRequestオプションで設定します。