5.4.2 バッチ制御
OBM状態は,APIまたはコマンドによって制御できます。OBMの状態遷移を次に示します。
(1) データ型OBMの状態遷移
図5-8の状態の意味を次の表に示します。
状態 |
意味 |
---|---|
未実行 |
バッチ処理を開始していない状態です。またはバッチ処理が終了した状態です。 |
初期化中 |
バッチ実行環境を初期化している(オープントランザクションを実行している)状態です。 |
実行中 |
バッチ処理を実行している状態です。 |
クローズ中 |
クローズトランザクションを実行している状態です。 |
終了中 |
バッチ実行環境の後処理をしている状態です。 |
停止処理中 |
バッチ処理の停止処理を行っている状態です。 |
強制停止 |
障害によってバッチ処理を停止した状態です。 |
再開始処理中 |
バッチ処理の再開処理を行っている状態です。 |
一時休止 |
状態遷移処理で障害が発生して,状態の更新ができない状態です。 |
図5-8の状態遷移の説明を次の表に示します。項番は図の番号に対応しています。
項番 |
状態遷移 |
---|---|
1. |
OBM開始コマンドによる開始です。開始UOCが正常終了すると初期化中に遷移します。 |
2. |
オープントランザクションを呼び出します。オープントランザクションが正常終了すると実行中に遷移します。 |
3. |
すべてのロットのバッチデータの処理が終了したことによって呼び出されたクローズトランザクション,またはOBM強制終了コマンドによって呼び出されたクローズトランザクションが正常終了すると終了中に遷移します。 |
4. |
終了UOCを呼び出します。終了UOCが正常終了すると未実行に遷移します。 |
5. |
停止要求を検知したことによって呼び出されたクローズトランザクションが正常終了すると停止処理中に遷移します。 クローズトランザクションが異常終了した場合は,クローズトランザクションの実行を中止して停止処理中に遷移します※1。 |
6. |
停止UOCを呼び出します。停止UOCが正常終了すると強制停止に遷移します。 終了UOCが異常終了した場合は停止UOCの呼び出しを中止して強制停止に遷移します※2。 |
7. |
OBM強制終了コマンドによる強制終了です。クローズ中に遷移してクローズトランザクションを呼び出します。 |
8. |
OBM開始コマンドによる再開始です。再開始UOCが正常終了すると再開始処理中に遷移します。 |
9. |
オープントランザクションを呼び出します。オープントランザクションが正常終了すると実行中に遷移します。 |
10. |
すべてのロットのバッチデータの処理が終了するか,停止要求を検知し全ロットのノーマルトランザクションが終了すると,クローズ中に遷移してクローズトランザクションを呼び出します。 停止要求は,次のどれかによって要求されます。
|
11. |
オープントランザクションの異常終了による強制停止です。停止UOCを呼び出します。停止UOCが正常終了すると強制停止に遷移します。 |
12. |
状態遷移処理での障害です。定義に指定した回数だけリトライを実施しますが,リトライしても障害から回復しなかった場合は,一時休止状態となります。 |
13. |
一時休止状態になるとOBM機能は定期的に障害から回復しているかどうかをチェックします。回復している場合は,一時休止状態となる前の状態に復帰します。 |
14. |
BCMのTP1/EEの再開始時に停止UOCを呼び出します。停止UOCが正常終了すると強制停止状態に遷移します。 終了UOCが異常終了した場合は停止UOCの呼び出しを中止して強制停止に遷移します※2。 |
15. |
ハートビート障害検知による強制停止です。ハートビート障害となったBCS側で実行中のトランザクションの2重コミットを防ぐために停止処理中に遷移します。 |
(2) イベント型OBMの状態遷移
図5-9の状態の意味を次の表に示します。
状態 |
意味 |
---|---|
未実行 |
バッチ処理を開始していない状態です。またはバッチ処理が終了した状態です。 |
初期化中 |
バッチ実行環境を初期化している(オープントランザクションを実行している)状態です。 |
実行中 |
バッチ処理を実行している状態です。 |
クローズ中 |
クローズトランザクションを実行している状態です。 |
終了中 |
バッチ実行環境の後処理をしている状態です。 |
停止処理中 |
バッチ処理の停止処理を行っている状態です。 |
計画停止 |
運用によって計画的にバッチ処理を停止した状態です。 |
強制停止 |
障害によってバッチ処理を停止した状態です。 |
再開始処理中 |
バッチ処理の再開処理を行っている状態です。 |
一時休止 |
状態遷移処理で障害が発生して,状態の更新ができない状態です。 |
図5-9の状態遷移の説明を次の表に示します。項番は図の番号に対応しています。
項番 |
状態遷移 |
---|---|
1. |
OBM開始コマンドによる開始です。開始UOCが正常終了すると初期化中に遷移します。 |
2. |
オープントランザクションを呼び出します。オープントランザクションが正常終了すると実行中に遷移します。 |
3. |
すべてのロットの処理が終了したことで呼び出されたクローズトランザクション,またはOBM強制終了コマンドによって呼び出されたクローズトランザクションが正常終了すると,終了中に遷移します。 |
4. |
終了UOCを呼び出します。終了UOCが正常終了すると未実行に遷移します。 |
5. |
停止要求を検知したことで呼び出されたクローズトランザクションが正常終了すると停止処理中に遷移します。 クローズトランザクションが異常終了した場合は,クローズトランザクションの実行を中止して停止処理中に遷移します※1。 |
6. |
停止UOCを呼び出します。停止UOCが正常終了すると,計画停止または強制停止に遷移します。どちらに遷移するかは,停止要求をした要因によります(項番5.参照)※2。 終了UOCが異常終了した場合は,停止UOCの呼び出しを中止して強制停止に遷移します※1。 |
7. |
OBM強制終了コマンドによる強制終了です。クローズ中に遷移してクローズトランザクションを呼び出します。 |
8. |
OBM開始コマンドによる再開始です。再開始UOCが正常終了すると再開始処理中に遷移します。 |
9. |
オープントランザクションを呼び出します。オープントランザクションが正常終了すると実行中に遷移します。 |
10. |
すべてのロットの処理が終了するか,停止要求を検知し全ロットのノーマルトランザクションが終了すると,クローズ中に遷移してクローズトランザクションを呼び出します。 障害による停止要求は,次のどれかによって要求されます。
運用による計画停止要求は,次のどちらかによって要求されます。
|
11. |
オープントランザクションの異常終了による強制停止です。停止UOCを呼び出します。停止UOCが正常終了すると強制停止に遷移します。 |
12. |
状態遷移処理での障害です。定義に指定した回数だけリトライを実施しますが,リトライしても障害から回復しなかった場合は,一時休止状態となります。 |
13. |
一時休止状態になるとOBM機能は定期的に障害から回復しているかどうかをチェックします。回復している場合は,一時休止状態となる前の状態に復帰します。 |
14. |
BCMのTP1/EEの再開始時に停止UOCを呼び出します。停止UOCが正常終了すると強制停止状態に遷移します。 終了UOCが異常終了した場合は,停止UOCの呼び出しを中止して強制停止に遷移します※1。 |
15. |
ハートビート障害検知による強制停止です。ハートビート障害となったBCS側で実行中のトランザクションの2重コミットを防ぐために停止処理中に遷移します。 |
(3) OBM実行結果の出力
OBMが終了/停止すると,OBMの実行結果をOBM開始コマンドの標準出力に出力します。これによってOBMの実行結果を確認できます。
また,OBM終了時は,OBM実行結果ファイルを出力できます。OBM実行結果ファイルに出力される内容は,OBM開始コマンドの標準出力に出力する内容と同じです。OBMは正常に終了したが,実行結果を標準出力に出力する前にOBM開始コマンドが異常終了した場合や,OBM開始コマンドの標準出力を再度確認する場合に使用できます。
OBM実行結果ファイルは,OBMが終了するたびに1ファイル作成します。作成するファイル数は,OBM構成定義ファイルのobmstartコマンド-fオプションfile_noオペランドで定義します。ファイル名には1から順に番号を振ります。OBM定義で設定した番号までファイルを作成した場合は,1から順に上書きされます。
OBM実行結果ファイルの出力先は,BCMのTP1/EEの$DCDIR/spool/dceeinf/obmです。ファイル名は,「BCMのサービスグループ名_OBM名_001からの通番」となります。ディレクトリは,TP1/EEがオンライン開始時に作成します。
OBM停止時には,OBM実行結果ファイルは出力されません。代わりにOBM状態表示コマンド(eeobmstatls)で確認できます。eeobmstatlsコマンドでは,停止中のOBMの実行結果を標準出力に出力できます。出力する内容は,OBM開始コマンドの標準出力の内容と同じです。
OBM実行結果の出力先と出力契機を次の表に示します。
項番 |
出力先 |
出力契機 |
備考 |
---|---|---|---|
1 |
OBM開始コマンドの標準出力 |
OBM停止 (計画停止,強制停止) OBM終了 (正常終了,強制終了) |
− |
2 |
$DCDIR/spool/dceeinf/obm |
OBM終了 (正常終了,強制終了) |
OBMごとに複数世代保存できます。 |
3 |
OBM状態表示コマンドの標準出力 |
OBM状態表示コマンド実行 |
停止中のOBMの実行結果を出力できます。終了したOBMの実行結果は出力できません。 |
(4) TP1/EE終了時のOBM状態監視
TP1/EEが終了する場合に,未実行状態でないOBMがある場合は,状態の監視を行います。
(a) BCMの終了
BCMのTP1/EEが正常終了,または計画停止Aで停止する場合は,すべてのOBMが監視対象の状態でなくなるまで監視を行います。監視対象の状態のOBMがある間は,TP1/EEを終了しません。監視中は,obm_endchkmsg_interval定義に設定した間隔でKFSB55718-Wを出力します。KFSB55718-Wは,監視対象状態のOBMの数を通知します。
なお,TP1/EEの終了処理の開始後は,監視対象でない状態から監視対象の状態に変更できません(例えば,未実行状態のOBMに対してOBM開始コマンドを実行できません)。
BCMのTP1/EEが計画停止B,または強制停止する場合は,OBMの状態に関係なくTP1/EEは停止します。
項番 |
TP1/EEの 終了形態 |
OBM状態 |
|||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
未実行 |
初期化中 |
実行中 |
クローズ中 |
終了中 |
停止処理中 |
強制停止 |
計画停止 |
再開始処理中 |
一時休止 |
||
1 |
正常終了 |
− |
○ |
○ |
○ |
○ |
○ |
○ |
○ |
○ |
○ |
2 |
計画停止A |
− |
○ |
○ |
○ |
○ |
○ |
− |
− |
○ |
○ |
3 |
計画停止B |
− |
− |
− |
− |
− |
− |
− |
− |
− |
− |
4 |
強制停止 |
− |
− |
− |
− |
− |
− |
− |
− |
− |
− |
(b) BCSの終了
BCSのTP1/EE終了時は,BCMのTP1/EEに終了連絡を通知して仕掛かり中のOBMトランザクションが終了するまで待ち合わせます。データ型OBMの場合は,受信済みブロックのバッチデータがすべて処理済みとなるまで待ち合わせます。イベント型OBMの場合は,ロットが処理済みとなるまで待ち合わせます。
BCMでは,BCSからの終了連絡を受け取ると,該当BCSに新たな実行要求を送信しないようにトランザクション実行要求の送信先を切り替えます。
BCSでは,BCMが送信先を切り替えたことを確認するまでTP1/EEの終了を待ち合わせます。