5.4.8 ステータス管理
OBMでは,バッチ処理を停止した場合に,停止した状況から再開できるようにステータスを管理します。これによって,処理済みのロットやデータを重複して実行したり,未処理のロットやバッチデータが抜けることがなく,バッチ業務を実行したりできます。
ステータス管理は,HiRDB上のテーブルを用いて行います。このテーブルのことをOBM管理表と呼びます。OBM管理表は,OBMを実行するシステム内に1つ作成します。OBMステータステーブルの作成方法については,「26.1 OBM環境設定」を参照してください。
(1) ステータスの引き継ぎ
ステータスは,OBMのTP1/EEの開始モードが再開始の場合に引き継ぎます。
OBMのTP1/EEが正常開始(強制正常開始を含む)した場合は,ステータスの引き継ぎがありません。OBM管理表に残っていた実行中のOBM状態は破棄されます。
BCSのTP1/EEの開始モードは,ステータスの引き継ぎには影響しません。BCMの状態に依存します。
項番 |
開始するサーバ |
開始モード |
ステータスの引き継ぎ |
---|---|---|---|
1 |
BCM |
正常開始 |
引き継ぎません |
2 |
再開始 |
引き継ぎます |
|
3 |
BCS |
正常開始 |
BCMに依存します |
4 |
再開始 |
(2) OBMの状態回復と強制停止
BCMを再開始すると前回のオンライン時のOBM状態を回復します。一時休止状態の場合は,一時休止状態となる前の状態に回復します。OBMの状態回復は,オンライン初期化処理中に行われます。
前回のオンライン時に終了,停止していないOBMは強制停止します。強制停止するOBMに対しては,回復した状態に応じてクローズトランザクションと終了UOCを起動します。
クローズトランザクションと終了UOCは,BCMのTP1/EEがオンライン状態になってから起動されます。オンライン状態となったときにネゴシエーションが完了しているBCSがない場合は,TP1/EE定義bcmsvgdefコマンド-rオプションに設定した時間だけネゴシエーションの完了を待ち合わせます。待ち合わせてもネゴシエーションが完了しない場合は,BCMでクローズトランザクションを起動するかOBMの状態を一時休止中とします(OBM構成定義obmstartコマンドで設定)。
なお,ネゴシエーションの完了を待ち合わせている間は,TP1/EEはオンライン状態となっているためOBM以外のサービスを実行できます。
項番 |
前回オンライン時のOBMの状態 |
BCM再開始時の強制停止の有無 |
BCM再開始時の強制停止でUAP/UOC起動有無 |
|
---|---|---|---|---|
クローズトランザクション |
終了UOC |
|||
1 |
未実行 |
無 |
− |
− |
2 |
初期化中 |
有 |
無 |
有 |
3 |
実行中 |
有 |
有 |
有 |
4 |
クローズ中 |
有 |
無 |
有 |
5 |
終了中 |
有 |
無 |
無 |
6 |
停止処理中 |
有 |
無 |
無 |
7 |
計画停止 |
無 |
− |
− |
8 |
強制停止 |
無 |
− |
− |
9 |
再開始処理中 |
有 |
無 |
有 |
(3) データ型OBMの再開始点
データ型OBMを再開始する場合にノーマルトランザクションに引き渡すバッチデータは,最後に正常終了したノーマルトランザクションで処理したバッチデータの次のデータとなります。
(4) OBM状態管理表の障害
(a) BCM
BCMでは,オンライン初期化処理中にOBM状態管理表の初期化,またはOBM状態管理表からの状態回復を行います。このときにOBM状態管理表のアクセスで障害が発生した場合は,obmstsdef設定値でリトライします。obmstsdefで指定した回数リトライをしてもOBM管理表のアクセスで障害が発生した場合は,BCMのTP1/EEはプロセスダウンします。OBM状態管理表の構成が誤っている場合は,リトライしないでプロセスダウンします。
OBM実行中にOBM状態管理表のアクセスで障害が発生した場合は,OBMの状態が一時休止中となります。複数のOBMが一時休止中となった場合は,最初に一時休止状態となったOBMに対してだけKFSB55707-E(一時休止)を出力します。そのあと,一時休止状態のOBMがある間は,定期的にKFSB45713-Wメッセージを出力します。一時休止中のOBMがなくなったあとに,再度一時休止中となる障害が発生した場合は,KFSB55707-E(一時休止)が再度出力されます。
一時休止状態となったOBM名は,OBM状態表示コマンドで確認できます。
(b) BCS
OBMのトランザクション実行中にBCSでOBM状態管理表のアクセスで障害が発生した場合は,実行中のトランザクションを異常終了してBCMに障害を通知します。通知を受けたBCMはOBMを強制停止します。