Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 TP1/Financial Service Platform 使用の手引


5.4.7 UOC

〈この項の構成〉

(1) UOCの種類

OBMが呼び出すUOCを次の表に示します。なお,UOCの組み込みは必須ではありません。必要なUOCだけ組み込んで使用できます。

表5‒15 UOCの種類

項番

UOC名

内容

1

OBM開始/再開始UOC

OBM実行に必要なリソースの確保や,ロット構成などの実行環境の確認ができます。

2

OBM終了/停止UOC

OBM実行に使用したリソースの解放や,実行結果の確認ができます。

3

OBMサービス名決定UOC

ノーマルトランザクションを実行するサービスを決定します。

4

OBMスキップデータUOC

スキップしたバッチデータに対する後処理を行えます。

5

トランザクションレベル名判定UOC

OBMのトランザクションレベルを設定できます。

(a) OBM開始/再開始UOC

OBM実行環境の確認や,実行に必要なリソースを確保するためのUOCです。

OBM開始時は,ロット構成の確認だけでなく,並べ替えや一部の定義を変更できます。データ型OBMの場合は,ヘッダを参照して実行条件のチェックができます。インタフェースの詳細,使用できるAPIについては,マニュアル「TP1/Financial Service Platform プログラム作成の手引」を参照してください。

起動契機

OBM開始コマンドを実行すると起動されます。

UOCが起動されるサーバ

BCMで起動されます。

作成言語

C言語またはCOBOLで作成できます。

異常終了時の動作

UOC内でスレッドダウンする障害が発生した場合は,TP1/EEプロセスが異常終了します。OBM開始コマンドは,TP1/EEプロセスの障害を検知して異常終了します。

UOCを実行したトランザクションがロールバック決着した場合は,OBM開始コマンドが異常終了します。エラートランザクションは起動しません。

どちらの場合も,OBMの状態は,OBM開始コマンド実行前の状態のまま変化しません。

(b) OBM終了/停止UOC

OBM実行に使用したリソースの解放や,実行結果の確認をするためのUOCです。データ型OBMの場合は,ヘッダデータを更新して,次にOBM開始コマンドを実行したときにOBM開始/再開始UOCでチェックするための情報を設定することもできます。インタフェースの詳細,使用できるAPIについては,マニュアル「TP1/Financial Service Platform プログラム作成の手引」を参照してください。

起動契機

次のどちらかの場合に起動します。

  • クローズトランザクションが正常終了したとき。クローズトランザクションの起動。

    契機については,「5.4.5(3)(c) クローズトランザクション」の「起動契機」を参照してください。

  • オープントランザクションが異常終了したとき。

UOCが起動されるサーバ

BCMで起動されます。

作成言語

C言語またはCOBOLで作成できます。

異常終了時の動作

UOC内でスレッドダウンする障害が発生した場合は,TP1/EEプロセスが異常終了します。

UOCを実行したトランザクションがロールバック決着した場合は,rollbackの要因によって,UOCの実行を中止してOBMを強制停止状態にするか,UOCの実行をリトライします。どちらの場合もエラートランザクションは起動しません。

次の要因でrollbackした場合は,UOCの実行を中止してOBMを強制停止状態にします。

  • バッチデータのヘッダレコードの入力,更新で障害が発生した

  • UOCが設定する値に誤りがある

  • UOC実行に必要なメモリが不足した

ほかの要因でrollbackした場合は,定義で設定したリトライ回数に従い再度終了/停止UOCを起動します。定義で設定したリトライ回数だけリトライしても終了/停止UOCを実行したトランザクションがコミット決着しなかった場合は,リトライを中止してOBMの状態を一時休止中に変更します。一時休止状態となった場合の対処方法の詳細は,「26.7.2 一時休止状態からの回復」を参照してください。

(c) OBMサービス名決定UOC

サービス名決定UOCではロット名を参照してノーマルトランザクションを実行するサービス名を決めることができます。データ型OBMの場合は,バッチデータも参照できます。インタフェースの詳細,使用できるAPIについては,マニュアル「TP1/Financial Service Platform プログラム作成の手引」を参照してください。

なお,このUOCは,ノーマルトランザクションで呼び出すサービス関数を変更するものです。トランザクションレベルは変わりません。

起動契機

ノーマルトランザクション処理キュー登録時です。

UOCが起動されるサーバ

BCSで起動されます。

作成言語

C言語で作成できます。

異常終了時の動作

UOC内でスレッドダウンする障害が発生した場合は,TP1/EEプロセスが異常終了します。BCMはBCSの障害を検知してOBMを強制停止します。

UOCで設定したサービス名が存在しないサービス名だった場合は,OBMを強制停止します。

(d) OBMスキップデータUOC

不正なバッチデータをスキップする場合に,任意の後処理を行えます。

インタフェースの詳細,使用できるAPIについては,マニュアル「TP1/Financial Service Platform プログラム作成の手引」を参照してください。

起動契機

eeobmskipコマンド実行後にeeobmstartを実行するとノーマルトランザクションを呼び出す替わりにスキップデータUOCが呼び出されます。

OBM構成定義obmdefコマンド-eオプションによってトランザクションrollback時にバッチデータを実行済みとした場合は,このUOCは呼ばれません。

UOCが起動されるサーバ

BCSで起動されます。

作成言語

C言語またはCOBOLで作成できます。

異常終了時の動作

UOC内でスレッドダウンする障害が発生した場合は,TP1/EEプロセスが異常終了します。

UOCを実行したトランザクションがロールバック決着した場合は,OBMを強制停止します。

(e) トランザクションレベル名判定UOC

トランザクションレベル方式の処理キュー登録機能を使用する場合にトランザクションレベルを決定できます。

インタフェースの詳細,使用できるAPIについては,マニュアル「TP1/Financial Service Platform プログラム作成の手引」を参照してください。

起動契機

トランザクションの処理キュー登録時に起動されます。

ノーマルトランザクションの処理キュー登録時にサービス名決定UOCを利用する場合はサービス名決定UOCの後に起動されます。

UOCが起動されるサーバ

BCSで起動されます。クローズトランザクションを実行できるBCSが存在しない場合は,クローズトランザクションをBCMで起動する設定(OBM構成定義obmstart -t close_no_bcs=bcmを指定)をすると,BCMで起動されます。BCSが存在する場合は,クローズトランザクションをBCMで起動する設定をしてもBCSで起動されます。

作成言語

C言語で作成できます。

異常終了時の動作

UOC内でスレッドダウンする障害が発生した場合は,TP1/EEプロセスが異常終了します。

UOCで設定したトランザクションレベル名が存在しないトランザクションレベル名だった場合は,OBMを強制停止します。

(2) UOCの実行時間の監視

UOCが実行されるのはユーザサービストランザクションではありません。そのためユーザサービスのトランザクションタイマではなくTP1/EE定義bcmuocfuncコマンド-tオプション,およびbcsuocfuncコマンド-tオプションに設定したUOC実行時間監視タイマで監視を行います。UOCが監視時間を超えても終了しなかった場合は,TP1/EEプロセスが異常終了します。