Hitachi

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


7.5.8 トランザクション制御

データ連携支援のUOCからSQLを実行できるよう,各UOCはデータ連携支援が制御するトランザクションとして動作し,DBとの接続や切断,およびコミットの制御を行います。

データ連携支援がトランザクションとして制御するUOCを次に示します。

〈この項の構成〉

(1) 定義とリソースマネジャとUOCの関連

(a) 開始終了UOC/反映先指定UOCでの定義とリソースマネジャとUOCの関連

開始終了UOC/反映先指定UOCで使用するリソースマネジャは,トランザクション関連定義のtrnstring定義コマンドの-jオプションで指定します。-jオプションを指定したリソースマネジャは,反映UOC/編集UOCで使用するリソースマネジャと同じでもかまいません。リソースマネジャと定義とUOCの関連を次の図に示します。

図7‒44 リソースマネジャと定義とUOCの関連

[図データ]

(b) 反映UOC/編集UOCでの定義とリソースマネジャとUOCの関連

反映UOC/編集UOCで使用するリソースマネジャは,トランザクション関連定義のtrnstring定義コマンドで指定します。リソースマネジャと定義とUOCの関連を次の図に示します。

図7‒45 リソースマネジャと定義とUOCの関連

[図データ]

(2) コネクション制御

データ連携支援の開始時,トランザクション関連定義のtrnstring定義コマンドに指定したリソースマネジャに対してCONNECT文を実行して接続します。接続に失敗したときは,KFSB50970-Eメッセージを出力し,データ連携支援を中断します。

(3) UOCでのSQL実行

(a) 開始終了UOC/反映先指定UOCでのSQL実行

ee_trn_gethandle関数/CBLEETRN('GETHNDL ')によって取得した接続ハンドルを使用して,SQLを実行することができます。

(b) 反映UOCでのSQL実行

反映UOC起動時のインタフェースエリアの接続ハンドルを使用して,SQLを実行することができます。

(c) UOCで発行不可のSQL

UOCでは,次のSQL文を実行しないでください。実行した場合の動作は保障しません。

  • COMMIT

  • ROLLBACK

  • DISCONNECT

  • 定義系SQL

  • 上記以外で処理完了と同時にCOMMITされるSQL

(4) 同期点取得

(a) 開始終了UOCでの同期点取得

開始終了UOC後にCOMMIT文を実行します。COMMIT文が失敗したときは,KFSB50970-Eメッセージを出力し,データ連携支援を中断します。

(b) 反映先指定UOC/反映UOC/編集UOCでの同期点取得

同期点の取得は,PJ管理表の更新契機と同期して行います。

PJ管理表の更新タイミング変更機能を使用しない場合は,反映処理のトランザクションごとにCOMMIT文を実行します。

PJ管理表の更新タイミング変更機能を使用している場合は,PJUPITVLオペランド指定回数の反映先指定UOCを呼び出し,そのあとの反映処理のトランザクションがすべて完了したときにCOMMIT文を実行します。ただし,前回のPJ管理表の更新から,EEFDPARMパラメタのCONTROL文のPJUPTIMEITVLオペランドで指定した時間が経過したときは,PJUPITVLオペランド指定値に関係なくCOMMIT文を実行します。COMMIT文が失敗したときは,KFSB50970-Eメッセージを出力し,データ連携支援を中断します。

(5) 注意事項

反映先指定UOCで実行したSQLの同期点取得は,SQL実行と非同期で行います。このため,UOCで更新系SQLを実行したあとにデータ連係支援が中断,または強制停止した場合,UOCで実行したSQLの同期点を取得して,PJ管理表への同期点を取得しないことがあるため,結果が不一致となることがあります。