Hitachi

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


20.3.3 ユーザ連携型

「プロセス内連携型」,「プロセス間連携型」以外のトランザクションで業務IDを引き継ぐ場合は,ユーザ処理で業務IDを引き継ぎます。

〈この項の構成〉

(1) オリジナル業務ID

ユーザは,業務IDの引き継ぎ元トランザクションでee_rpc_get_bizid()/CBLEERPC('GETBIZID')を発行して業務IDを取得,その業務IDをDB,通信,メモリ(自プロセス時だけ)などで別トランザクションに通知し,別トランザクションでee_rpc_set_bizid()/CBLEERPC('SETBIZID')を発行してオリジナル業務IDを設定します。オリジナル業務IDを設定すると,カレント業務IDも同時に設定されます。設定した業務IDは,それ以降の「プロセス内連携型」および「プロセス間連携型」にも適用されます。そのため,トランザクションの早い段階で設定することを推奨します。

ee_rpc_set_bizid()/CBLEERPC('SETBIZID')によるオリジナル業務IDの設定は,同一トランザクション内で1回だけ発行可能です。複数回発行した場合は,2回目以降のee_rpc_set_bizid()/CBLEERPC('SETBIZID')がエラーリターンします。

指定した業務IDが正しいかどうかのチェックは行わないため,不正な業務IDを指定した場合は業務IDによるトランザクション紐づけができなくなります。

「プロセス内連携型」,「プロセス間連携型」で業務IDを引き継いだトランザクションに対しても,ユーザが業務IDを設定(上書き)することができます。

オリジナル業務IDはTASKTMおよびHiRDBと連携しています。

図20‒4 ユーザ連携型の業務ID引き継ぎ

[図データ]

(2) カレント業務ID

ユーザは任意のトランザクションでee_rpc_get_bizid()/CBLEERPC('GETBIZID')を発行して業務IDを取得し,その業務情報をee_rpc_set_bizid()/CBLEERPC('SETBIZID')を発行することでカレント業務IDをして使用することができます。それ以降の「プロセス間連携型」に適用されます。

ee_rpc_set_bizid()/CBLEERPC('SETBIZID')は同一トランザクション内で複数回発行することができます。

カレント業務IDはTASKTMおよびHiRDBとは連携していません。

(3) ee_rpc_get_bizid()/CBLEERPC('GETBIZID')で取得する業務IDについて

本関数で取得できる業務IDとして,自トランザクションの業務IDと,引き継ぎ用の業務IDの2つがあり,オリジナル業務ID,カレント業務IDとの組み合わせによって関数引数で選択します。

別トランザクションに通知し,ee_rpc_set_bizid()/CBLEERPC('SETBIZID')で設定する場合は,引き継ぎ用の業務IDを使用します。保守などの目的で自トランザクションの業務IDをログなどに退避したい場合は,自トランザクションの業務IDを使用します。

引き継ぎ用の業務IDは,自トランザクション用の業務IDを比べて,次の点が異なります。