グローバルトランザクション運用を行うためには、CORBAのクライアントアプリケーションの処理に加えて、COSTRANSACTIONS-CURRENT-COMMITメソッドなどのCurrentインタフェースを呼び出して、データベース連携サービスにトランザクション処理を依頼します。
これらの処理を考慮したクライアントアプリケーションの構成について以下に示します。

■初期化処理部
クライアントアプリケーションをCORBAサービスに登録、およびトランザクションサービスの初期化を行います。
■アプリケーション固有部
アプリケーション固有の処理部です。トランザクションの開始から終了までの流れを記述します。
■トランザクション用ライブラリ
データベース連携サービスが提供するクライアントアプリケーション用ライブラリです。
クライアントアプリケーションの基本形を以下に示します。
MAIN.
* 初期化処理
:
CALL "CORBA-ORB-INIT" USING
CURRENT-ARG-C
CURRENT-ARG-V
TRANSACTIONCURRENTID
ENV
ORB.
:
* サーバアプリケーションのオブジェクトリファレンス獲得
CALL "COSNAMING-NAMINGCONTEXT-RESOLVE" USING … (1)
COS-NAMING
NAME
ENV
OBJ.
:
* トランザクション依頼処理
MOVE FUNCTION LENG (CORBA-ORB-OBJECTID-TRANCURRENT) TO STRING-LENGTH.
CALL "CORBA-STRING-SET" USING
TRANSACTIONCURRENTID
STRING-LENGTH
CORBA-ORB-OBJECTID-TRANCURRENT.
CALL "CORBA-ORB-RESOLVE-INITIAL-REFERENCES" USING … (2)
ORB
TRANSACTIONCURRENTID
ENV
TRANCURRENTOBJ.
* トランザクション開始
CALL "COSTRANSACTIONS-CURRENT-BEGIN" USING … (3)
TRANCURRENTOBJ
ENV.
* サーバアプリケーションのメソッド呼出し
:
CALL "MOD-INTF-OPE1" USING … (4)
OBJ
PARA
ENV.
:
* トランザクション完了処理
EVALUATE TRUE
WHEN CORBA-NO-EXCEPTION OF MAJOR OF ENV
CALL "COSTRANSACTION-CURRENT-COMMIT" USING … (5)
TRANCURRENTOBJ
CORBA-TRUE
ENV.
WHEN CORBA-SYSTEM-EXCEPTION OF MAJOR OF ENV
CALL "COSTRANSACTION-CURRENT-ROLLBACK" USING
TRANCURRENTOBJ
ENV.ネーミングサービスからサーバアプリケーションのオブジェクトリファレンスを獲得します。
Currentインタフェースのオブジェクトリファレンスを獲得します。
COSTRANSACTIONS-CURRENT-BEGINメソッドでトランザクションの開始を宣言します。
サーバアプリケーションを呼び出します。
サーバアプリケーションの復帰状態を確認して、トランザクションの状態を決定します。トランザクションを正常終了する場合は、COSTRANSACTIONS-CURRENT-COMMITメソッドでトランザクションをコミットします。トランザクションを異常終了する場合は、COSTRANSACTIONS-CURRENT-ROLLBACKメソッドでトランザクションをロールバックします。