3.2.6 スケジュールキューの監視
クライアントからのサービス要求がサービス処理の段階で遅れ始めると,スケジュールキューからサービス要求を取り出せないため,スケジュールキューにサービス要求が滞留する場合があります。
ユーザサービス定義のschedule_delay_limitオペランドにスケジュール遅延限界経過時間を指定すると,サービス要求がスケジュールキューに滞留している時間を監視できます。スケジュールキューにサービス要求が登録されているにもかかわらず,サービス要求が取り出されない状態が,スケジュール遅延限界経過時間を超えた場合,つまり,最終キュー操作時刻と,スケジューラによるキューの状態チェック時刻との間隔が,schedule_delay_limitオペランドに指定した時間を超えた場合,該当サーバごとにKFCA00838-Wメッセージを出力します。
最終キュー操作時刻は次の契機で更新されます。
-
スケジュールキューからサービス要求が取り出されるとき
-
スケジュールキューに滞留しているサービス要求が0の場合,スケジュールキューにサービス要求が登録されるとき
また,ユーザサービス定義でschedule_delay_abort=Yを指定すると,KFCA00838-WメッセージとともにKFCA00839-Eメッセージを出力して,スケジューラデーモンを強制停止しOpenTP1をシステムダウンさせます。OpenTP1システムがホットスタンバイ構成になっているシステムでは,サービス要求が滞留している状態を検知して系切り替えを実行する契機になります。
schedule_delay_limitオペランドに15を,schedule_delay_abortオペランドにYを指定した場合のスケジュールキューの監視の例を次の図に示します。
- 〈この項の構成〉
(1) 説明
-
スケジューラがキューの状態をチェックします。
スケジュールキューに登録された,またはスケジュールキューから取り出されたサービス要求はありません。サービス要求滞留時間は計算されないため,スケジュール遅延限界経過時間とサービス要求滞留時間は照合されません。処理は続行されます。
-
三つのサービス要求が登録されます。
一つ目,および二つ目のサービス要求は取り出され,処理が開始されます。
三つ目のサービス要求は,処理を行うシステムに空きがないため,滞留します。この時点の最終キュー操作時刻は,11秒です。
-
スケジューラがキューの状態をチェックします。
この時点の最終キュー操作時刻は,11秒です。サービス要求滞留時間※1が9秒間のため,スケジュール遅延限界経過時間に指定した値を超えていません。そのため,処理は続行されます。
-
一つ目のサービス要求の処理が完了します。
三つ目のサービス要求が,一つ目のサービス要求を処理していたシステムへ取り出され,処理が開始されます※2。この時点の最終キュー操作時刻は,27秒です。
-
四つ目のサービス要求が登録されます。
二つ目,および三つ目のサービス要求が処理中で,処理を行うシステムに空きがありません。そのため,四つ目のサービス要求は,スケジュールキューに滞留します。この時点の最終キュー操作時刻は,28秒です。
-
五つ目のサービス要求が登録されます。
二つ目,および三つ目のサービス要求が処理中で,処理を行うシステムに空きがありません。そのため,五つ目のサービス要求は,スケジュールキューに滞留します。この時点の最終キュー操作時刻は,28秒です。
-
スケジューラがキューの状態をチェックします。
この時点の最終キュー操作時刻は,28秒です。サービス要求滞留時間※1が2秒間のため,スケジュール遅延限界経過時間に指定した値を超えていません。そのため,処理は続行されます。
-
スケジューラがキューの状態をチェックします。
この時点の最終キュー操作時刻は,28秒です。サービス要求滞留時間※1は12秒間のため,スケジュール遅延限界経過時間に指定した値を超えていません。そのため,処理は続行されます。
-
六つ目のサービス要求が登録されます。
二つ目,および三つ目のサービス要求が処理中で,処理を行うシステムに空きがありません。そのため,六つ目のサービス要求は,スケジュールキューに滞留します。この時点の最終キュー操作時刻は,28秒です。
-
スケジューラがキューの状態をチェックします。
この時点の最終キュー操作時刻は,28秒です。サービス要求滞留時間※1が22秒間のため,スケジュール遅延限界経過時間に指定した値を超えています。そのため,OpenTP1システムがダウンします。
- 注※1
-
サービス要求滞留時間は,スケジューラによるキューの状態チェックの時刻から,最終キュー操作時刻を引いた値です。
- 注※2
-
三つ目のサービス要求は,実際には,16秒間(27秒−11秒)スケジュールキューに滞留しています。これは,スケジュール遅延限界経過時間の指定値を超えています。
しかし,スケジュール遅延限界経過時間の指定値を超えているかどうかは,スケジューラによるキューの状態チェックの時刻から,最終キュー操作時刻を引いた値(30秒−28秒)で判断されます。したがって,処理は続行されます。