5.5.3. ジョブスケジュールのリカバリ処理について

ジョブスケジュール機能では、ジョブやネットなどの状態を千手マネージャの状態管理サーバー(sjPEX_pxd)が保持していますが停止すると失われます。

そのため、千手マネージャの状態管理サーバー起動時に状態のリカバリ(復旧)処理( フレームステータスリカバリ有無の設定 参照)を行います。リカバリ処理が完了すると、自動再ラン機能( 自動再ラン機能の設定 参照)により、フレームの再ランを行い実際のジョブの状態を取得します。

リカバリ対象は状態が未投入以外のすべてのフレームになりますので、対象数に応じて処理に時間が掛かります。そのため、計画的に千手マネージャを停止する際は、状態の復旧が不要なフレームについては事前に初期化する事を推奨します。

ここではジョブスケジュールのリカバリ処理について述べます。

注釈

リカバリ処理機能、フレーム再ラン機能はデフォルトで実行されます。詳しくは、「 フレームステータスリカバリ有無の設定 」「 自動再ラン機能の設定 」を参照して下さい。

5.5.3.1. リカバリ手順

以下に一般的な千手マネージャマシン障害時のリカバリ処理の流れを示します。

注釈

ここでは千手マネージャが稼働するマシンの障害時を想定しています。そのため、マシンが停止しているときはOSや千手システムも停止し、マシンが起動するとOSや千手システムも一緒に起動している前提になります。

  1. フレームが起動すると動作環境に指定した千手エージェントでジョブが起動します。
    ../../_images/image621.jpg
  2. ジョブが稼働している時にマネージャマシンの障害により千手マネージャが終了します。このとき、千手エージェントのジョブは影響を受けずに稼働し続けます。
    ../../_images/image622.jpg
  3. マネージャマシンの障害復旧後マシンを起動し、千手マネージャの状態管理サーバーが起動するとリカバリ処理が行われます。(リカバリ処理は運用日付ごとにフレームの名称順に行われます。)
    フレームのリカバリが完了する毎に、メッセージモニタにメッセージ 「!PEX058フレーム状況通知[リカバリが完了しました]」 が表示されます。付加メッセージにはリカバリを行う全フレーム中、何フレームのリカバリが完了したか出力されるため、現在の進捗状況を確認することができます。
    ../../_images/image623.jpg
  4. リカバリ処理が完了すると、メッセージモニタにメッセージ 「!PEX060 フレーム状況通知[全フレームのリカバリが完了しました]」 が表示され、稼働中だったフレームの状態は起動待ちとなります。( リカバリ処理後、及びフレーム再ラン後の状態の遷移 参照)
    その後、自動再ラン機能( 自動再ラン機能の設定 参照)により、フレームの再ランが行われます。(自動再ラン機能はデフォルトONです)
    自動再ラン機能をOFFにしている場合は、[管理ステータスの参照]コマンド及び、ジョブモニタのランチャート等でジョブの状況を個別に確認し、各フレームの再ランを行って下さい。フレーム全体で再ランの必要がなければ、フレームの"強制初期化"を行って下さい。
    ../../_images/image624.jpg
  5. 自動サイクル運用の設定をしている場合は、障害発生前、障害中の状況により以下の実行システム、フレームの復旧手順を行ってください。
    ../../_images/image625.jpg
  6. 以上でリカバリ手順は終了です。

表 5.427 実行システムの復旧手順

障害発生前の状態

障害復旧後の状態

障害復旧後の手順

A

実行システム作成済み(運用基準時刻後)

実行システム作成済み

特に必要はありません。

B

実行システム未作成(日替わり処理後、運用基準時刻前)(障害中に運用基準時刻到達)

UNIX/Linuxの場合:実行システムの作成処理が行われます。

特に必要はありません。

Windowsの場合:実行システムの作成は行われません。

必要に応じて、実行システムの作成および、フレーム投入を行ってください。

C

実行システム未作成(日替わり処理後、運用基準時刻前)(障害復旧後に運用基準時刻到達)

実行システムの作成処理が行われます。

特に必要はありません。

表 5.428 フレームの復旧手順

障害発生前の状態

障害復旧後の状態

障害復旧後の手順

A-1

フレーム起動済み(フレーム起動時刻後)

起動済み

特に必要はありません。

A-2

フレーム未起動(フレーム起動時刻前)(障害中に起動時刻到達)

未投入(フレームは起動しません。)

必要に応じて、フレームの投入を行ってください。

A-3

フレーム未起動(フレーム起動時刻前)(障害復旧後に起動時刻到達)

待機中(起動時刻にフレームが起動します。)

特に必要はありません。

B-1

フレーム未作成(実行システム未作成)(障害中に実行システムの運用基準時刻、フレームの起動時刻到達)

unix/Linuxの場合:実行システムは作成されますが、フレームは起動しません。

必要に応じて、フレームの投入を行ってください。

Windowsの場合:実行システムの作成は行われません。

必要に応じて実行システムの作成および、フレームの投入を行ってください。

B-2

フレーム未作成(実行システム未作成)(障害中に実行システムの運用基準時刻到達、障害復旧後にフレームの起動時刻到達)

unix/Linuxの場合:実行システムは作成され、起動時刻にフレームが起動します。

特に必要はありません。

Windowsの場合:実行システムの作成は行われません。

必要に応じて実行システムの作成を行ってください。

C-1

フレーム未作成(障害復旧後に実行システムの運用基準時刻、フレームの起動時刻到達)

運用基準時刻になると実行システムが作成され、起動時刻にフレームが起動します。

特に必要はありません。

5.5.3.2. リカバリ処理後、及びフレーム再ラン後の状態の遷移

障害発生前とリカバリ処理後、フレーム再ラン後のフレーム、ネット、ジョブの状態の変化を以下の表に示します。

注釈

リカバリ処理機能、フレーム再ラン機能はデフォルトで実行されます。詳しくは、「 フレームステータスリカバリ有無の設定 」「 自動再ラン機能の設定 」を参照して下さい。

5.5.3.2.1. フレームの状態遷移

表 5.429 フレームのリカバリ処理前後の状態遷移

リカバリ処理前(障害発生前)

リカバリ処理後
(SJ_PEX_END_RECOVER)

フレーム再ラン後
(SJ_PEX_AUTORERUN)

未投入

未投入

起動待ち

起動待ち

起動待ち
(フレーム内のジョブ/ネットの起動条件が満たされると起動します。)

正常終了

正常終了
( SJ_PEX_END_RECOVER=N の場合:未投入 )

正常終了

スキップ終了

スキップ終了
( SJ_PEX_END_RECOVER=N の場合:未投入 )

スキップ終了

スキップ待ち

スキップ待ち

スキップ終了

待機中
[フレーム起動時刻前にリカバリ処理が終了した場合]

待機中

再ランはできません。
(フレームの起動条件が満たされると起動されます。)

待機中
[フレーム起動時刻後にリカバリ処理が終了した場合]

未投入

一時停止

一時停止

一時停止

一時停止待ち

一時停止待ち

一時停止待ち
(起動条件が満たされると一時停止となります。)

稼働中
[マネージャノード稼働ジョブ]

異常終了

  • マネージャノードでは動作環境サーバーは再起動されます。

  • 稼働中のジョブは停止されます。

異常終了

  • ジョブの再起動は行われません。

  • 次の再ラン操作でジョブは再起動されます。

稼働中
[エージェントノード稼働ジョブ]

稼働中

  • エージェントノードでは動作環境サーバーは稼働のままです。

  • 稼働中のジョブは停止されません。

  • フレームが起動されます。
    フレームの状態は、取得したジョブの状態により遷移します。

異常終了

異常終了

異常終了

  • ジョブの状態取得のみ行われます。

  • ジョブの再起動は行われません。

  • 次の再ラン操作でジョブは再起動されます。

異常あり

異常あり

  • フレームが起動されます。
    各ジョブの動作については。稼働中及び異常終了のフレームの再ラン後の動作を参照して下さい。

停止中

停止中

  • フレームが起動されます。
    起動待ち、及びキューイングジョブは起動します。
    既に終了しているジョブは状態のみ取得します。

5.5.3.2.2. ネットの状態遷移

表 5.430 ネットのリカバリ処理前後の状態遷移

リカバリ処理前(障害発生前)

リカバリ処理後
(SJ_PEX_END_RECOVER)

フレーム再ラン後
(SJ_PEX_AUTORERUN)

未投入

未投入

起動待ち

起動待ち

起動待ち
(起動条件が満たされると起動します。)

正常終了

正常終了
( SJ_PEX_END_RECOVER=N の場合:未投入 )

正常終了

スキップ終了

スキップ終了
( SJ_PEX_END_RECOVER=N の場合:未投入 )

スキップ終了

スキップ待ち

スキップ待ち

スキップ終了

一時停止

一時停止

一時停止

一時停止待ち

一時停止待ち

一時停止待ち
(起動条件が満たされると一時停止となります。)

稼働中
[マネージャノード稼働ジョブ]

異常終了

  • マネージャノードでは動作環境サーバーは再起動されます。

  • 稼働中のジョブは停止されます。

異常終了

  • ジョブの再起動は行われません。

  • 次の再ラン操作でジョブは再起動されます。

稼働中
[エージェントノード稼働ジョブ]

稼働中

  • エージェントノードでは動作環境サーバーは稼働のままです。

  • 稼働中のジョブは停止されません。

  • ネットは起動されます。
    ネットの状態は、取得したジョブの状態により遷移します。

異常終了

異常終了

異常終了

  • ジョブの状態取得のみ行われます。

  • ジョブの再起動は行われません。

  • 次の再ラン操作でジョブは再起動されます。

異常あり

異常あり

  • ネットが起動されます。
    各ジョブの動作については、稼働中及び異常終了のフレーム後の動作を参照して下さい。

停止中

停止中

  • ネットが起動されます。
    起動待ち、及びキューイングジョブは起動します。
    既に終了しているジョブは状態のみ取得します。

5.5.3.2.3. ジョブの状態遷移

表 5.431 ジョブのリカバリ処理前後の状態遷移

リカバリ処理前(障害発生前)

リカバリ処理後
(SJ_PEX_END_RECOVER)

フレーム再ラン後
(SJ_PEX_AUTORERUN)

未投入

未投入

起動待ち

起動待ち

起動待ち
(起動条件が満たされると起動します。)

正常終了

正常終了
( SJ_PEX_END_RECOVER=N の場合:未投入 )

正常終了

スキップ終了

スキップ終了
( SJ_PEX_END_RECOVER=N の場合:未投入 )

スキップ終了

スキップ待ち

スキップ待ち

スキップ待ち
(起動条件が満たされるとスキップ終了となります。)

一時停止

一時停止

一時停止

一時停止待ち

一時停止待ち

一時停止待ち
(起動条件が満たされると一時停止となります。)

稼働中
[マネージャノード稼働ジョブ]

異常終了

  • マネージャノードでは動作環境サーバーは再起動されます。

  • 稼働中のジョブは停止されます。

異常終了

  • ジョブの再起動は行われません。

  • 次の再ラン操作でジョブは再起動されます。

稼働中
[エージェントノード稼働ジョブ]

稼働中

  • エージェントノードでは動作環境サーバーは稼働中のままです。

  • 稼働中のジョブは停止されません。

  • ジョブの状態を取得します。
    取得したジョブの状態に遷移します。(正常終了している場合、後続ジョブを起動します。)

異常終了

異常終了

異常終了

  • ジョブの状態取得のみ行われます。

  • ジョブの再起動は行われません。

  • 次回の再ラン操作で再起動されます。

キューイング

キューイング

キューイング
(起動条件が満たされると起動します。)

5.5.3.3. 制限・注意事項

  1. トリガは、イベント待ちトリガ/ファイル待ちトリガ/フレーム連携トリガのいずれもリカバリ処理対象となりますが、次の相違点があります。
    • イベント待ちトリガ

      リカバリ処理後の状態、最終更新時刻及び送信元情報は、障害発生前の状態になります。千手ブラウザから手動で、"ON""OFF"した場合や時刻によるトリガ設定で自動で"ON"になった場合もその状態が反映されます。

    • ファイル待ちトリガ

      リカバリ処理後の状態は、リカバリ処理時点での監視対象ファイルの有無に従います。すなわち、監視対象ファイルが存在する場合はリカバリ処理時に"ON"になりますが、ファイルが存在しない場合は"OFF"になります。障害発生前に、千手ブラウザから手動で、"ON""OFF"した場合、その状態はリカバリ処理後は反映されませんので、再度設定して下さい。 また、最終更新時刻及び送信元情報はリカバリ対象外で、最終更新時刻はリカバリ後のファイル検知時刻になりますが、時刻によるトリガ設定で自動で"ON"になった場合は最終更新時刻及び送信元情報はリカバリ対象となります。

      時刻によるトリガ設定の設定時刻前に監視対象ファイルの存在を検知して"ON"になった後、設定時刻を経過した後にリカバリ処理が行われた場合、送信元情報に設定時刻の情報が反映されてしまう制限があります。

    • フレーム連携トリガ

      リカバリ処理後の状態、最終更新時刻及び送信元情報は、障害発生前の状態になります。千手ブラウザから手動で、"ON""OFF"した場合や時刻によるトリガ設定で自動で"ON"になった場合もその状態が反映されます。

  2. リソースについてはリカバリ対象となっていません。リカバリ処理後、消費されていたリソースは初期状態に戻ります。障害発生時のリソース排他順序等は反映されません。管理ステータス参照コマンド、一時停止指定コマンド等を用いて、手動で復旧させて下さい。

  3. 開始時刻指定、遅延監視:開始時刻/終了時刻として、相対時刻が指定してあるジョブ・ネットの場合、リカバリ後でもリカバリ前にフレームが起動した時刻が起点となります。

  4. 遅延監視:所要時間が指定してあるジョブ・ネットの場合、リカバリ後でもリカバリ前にジョブ・ネットが開始した時刻が起点となります。

  5. 繰り返しネットの打ち切り時刻として、所要時間(相対時刻)が指定してある場合、リカバリ前に繰り返しネットが開始した時刻が相対時刻の起点となります。

  6. フレーム起動後に各種時刻を相対時刻指定で追加/変更するとその時点からの相対時刻になりますがリカバリ後もリカバリ前に追加/変更した相対時刻がそのまま引き継がれます。

  7. 「!PEX209 ジョブ機能障害[ステータスファイル作成エラー]」 のメッセージが出力されている場合、ジョブの実行は問題なく行えますが、障害時の回復のための保存情報が生成できていない事から、このメッセージが出力中は、フレームのリカバリ投入ができません。このメッセージが出力されている原因を追求してから対応して下さい。

  8. 「自動再ラン機能」をOFFに設定している場合には以下の制限・注意が発生します。
    • リカバリ処理後、一時停止待ち、起動待ち、スキップ待ちのフレームは、再ランが必要です。

    • リカバリ処理前のネットの状態で、一時停止、スキップ待ち、スキップ終了、正常終了は、そのネットに直接スキップ、一時停止指定がされていたかどうかでリカバリ処理後の状態は異なります。

  9. 状態管理サーバダウン中に動作環境ノードで管理プロセスの再起動を実行してしまうと、リカバリした際に稼働中であったジョブを2重起動してしまう恐れがあります。状態管理サーバダウン中には動作環境ノードで管理プロセスの再起動を実行しないようご注意下さい。

  10. フレーム及びネットに正常/異常終了時コマンドを設定している場合、リカバリ処理中にフレーム、ネットの状態を反映した際に正常/異常終了時コマンドが実行されます。なお、ジョブ設定されたに正常/異常終了時コマンドは実行されません。

  11. 動作環境の同時稼働ジョブ数または動作環境プールでジョブ稼働数を抑止している環境の場合、リカバリ後に稼働数の制限を超えてジョブが稼働する場合があります。

  12. リカバリ完了前に遅延監視の時刻が到来したジョブは、リカバリ完了後にすぐに遅延が検知されますが、遅延時アクションは実行されません。その場合、以下の通常メッセージが出力されます。リカバリ完了後に遅延監視の時刻が到来した場合は、遅延時アクションは実行されます。
    !PEX174 ジョブ機能通知 [遅延時アクション未実行]
  13. 開始予定日付変換中のフレームがリカバリされると以下のメッセージが出力されます、時刻オプション指定で各種時刻を無効化している場合、再設定(無効化後に変更)した時刻はリカバリ実施後も再設定されます。
    !PEX056 フレーム状況通知[リカバリ起動] [開始予定日付変換中]
  14. 状態管理サーバーがダウン中には以下の操作はできません。
    • フレームに対するサスペンド

    • フレームに対する強制初期化

  15. 状態管理サーバーのダウン中とリカバリ処理中には以下の操作はできません。
    • ジョブに対する起動コマンド変更

    • フレームに対する通常初期化

    • ジョブ/ネットに対する初期化

    • ジョブ/ネットに対する強制起動

    • ジョブ/ネットに対する遅延監視設定変更

    • ジョブ/ネットに対する所要時間監視変更

    • ジョブ/ネット/フレームに対する強制停止

    • ジョブ/ネット/フレームに対する異常時アクションコマンドの変更

    • フレームに対する開始予定日付変更コマンドの実施

  16. マネージャーノードでジョブが稼働中に千手マネージャーを再起動した場合、リカバリ後に当該ジョブの状態は異常終了となります。

5.5.3.4. 稼働中ジョブの状態確認方法

障害発生時に稼働中であったジョブの状態を調べるには、ジョブモニタのコンテキストメニューもしくは、千手ブラウザのツリービューの[ドメイン]→[コマンド]→[千手コマンド]→[ジョブスケジュール]→[管理ステータスの参照]コマンドを実行することによって確認できます。[管理ステータスの参照]コマンドについては デベロッパーズガイド「千手コマンドの一覧」sjPEX_runlist-管理ステータスの参照- を参照して下さい。

5.5.3.5. リカバリ手順の例

ここでは基本的なジョブの構成での、リカバリ手順の例を示します。

5.5.3.5.1. ジョブの稼働中に状態管理サーバーが終了した場合

../../_images/image631.jpg

注釈

自動再ラン機能はデフォルトONです。自動的にフレームの再ランを行います。

5.5.3.5.2. ジョブの異常終了後に状態管理サーバーが終了した場合

../../_images/image632.jpg
../../_images/image633.jpg

注釈

自動再ラン機能はデフォルトONです。自動的にフレームの再ランを行います。

5.5.3.5.3. リカバリ処理後に動作環境ノードの変更処理を行った場合

../../_images/image634.jpg
../../_images/image635.jpg
../../_images/image636.jpg

注釈

自動再ラン機能はデフォルトONです。自動的にフレームの再ランを行います。

5.5.3.6. リカバリ処理スキップオプション

大規模障害が発生したときなど、千手エージェントと通信できない場合、リカバリ処理が長引き、障害発生前のジョブ状態がすぐ確認できないことがあります。このようなときのためにエージェントに対し通信を行うリカバリ処理をスキップするオプションがあります。

このオプションを用いることで、障害発生前の状態を直ちに確認できます。その後、オプションを解除してリカバリ処理を行うことができます。

5.5.3.6.1. リカバリ処理スキップの手順

以下に大規模障害発生時のリカバリ処理スキップ手順、その後のリカバリ処理実行手順を示します。

  1. フレームを起動すると動作環境に指定したエージェントでジョブが起動します。
    ../../_images/image671.jpg
  2. ジョブが稼働している時に大規模障害が発生して、マネージャ、エージェントともに停止します。
    ../../_images/image672.jpg
  3. マネージャが復旧され、千手システムが起動すると、状態管理サーバーが起動し、リカバリ処理が行われます。このとき、エージェントが復旧していないため、しばらくの間、通信リトライを試みます。それによりジョブ状態の再表示まで時間がかかってしまいます。
    ../../_images/image673.jpg
  4. 直ちに障害発生前のジョブ状態を確認するため、マネージャにリカバリ処理スキップオプションの設定を行い、千手を再起動します。( リカバリ処理スキップオプションの設定 参照)このオプションが設定されているときは、状態管理サーバーがエージェントに対しての通信をスキップします。このとき、メッセージモニタにメッセージ「!PEX170ジョブ機能通知 [状態管理サーバリカバリ処理スキップ]」が表示されます。
    ../../_images/image674.jpg
  5. リカバリ処理スキップ後、メッセージモニタにメッセージ「!PEX060 フレーム状況通知[全フレームのリカバリが完了しました]」が表示されます。次に、自動再ラン機能( 自動再ラン機能の設定 参照)により、フレームの再ランが行われます。(自動再ラン機能はデフォルトONです)再ラン時は、通常のリカバリとは異なり、稼働中ジョブの状態はキューイング[動作環境未稼働]となります。( リカバリ処理スキップ時の差異 参照)
    ../../_images/image675.jpg
  6. エージェント復旧後は、リカバリ処理スキップオプションを解除して下さい。( リカバリ処理スキップオプションの設定 参照)そのとき、必ずマネージャの千手を再起動し、オプションの設定反映と通常のリカバリ処理を行って下さい。
    ../../_images/image676.jpg

5.5.3.6.2. リカバリ処理スキップ時の差異

リカバリ処理スキップ時は、以下の処理が実行されなくなります。

  • ファイル待ちトリガの状態確認

    指定ファイルの有無にかかわらず、ファイル待ちトリガの状態は[不明]となります。

  • 動作環境サーバの再起動/状態確認

    動作環境サーバが再起動されません。また、障害発生前に起動した動作環境の状態確認を行いません。そのため、障害発生前とジョブの状態が異なります。障害発生前、リカバリ処理スキップ後、再リカバリ処理後のジョブの状態遷移を下記の表に示します。

表 5.432 ジョブの状態遷移(リカバリ処理スキップ)

障害発生前

リカバリ処理スキップ後(フレーム自動再ラン後)

再リカバリ処理後(フレーム自動再ラン後)

未投入

通常と同じ

通常と同じ

起動待ち

通常と同じ

通常と同じ

正常終了

通常と同じ

通常と同じ

スキップ終了

通常と同じ

通常と同じ

スキップ待ち

通常と同じ

通常と同じ

一時停止

通常と同じ

通常と同じ

一時停止待ち

通常と同じ

通常と同じ

稼働中(エージェントノードで障害発生(マシン停止)していた場合)

キューイング[動作環境未稼働]

異常終了

  • ジョブの再起動は行われません。

  • 次回の再ラン操作で再起動されます。

稼働中(エージェントノードで障害発生(マシン停止)していない場合)

キューイング[動作環境未稼働]

稼働中

異常終了

キューイング[動作環境未稼働]

通常と同じ

キューイング

通常と同じ

通常と同じ

参考