ページの先頭行へ戻る
Interstage Application Server V13.0.0 アプリケーション作成ガイド(データベース連携サービス編)
FUJITSU Software

2.6 クライアントアプリケーションの構成

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



■初期化処理部

クライアントアプリケーションをCORBAサービスに登録、およびトランザクションサービスの初期化を行います。


■アプリケーション固有部

アプリケーション固有の処理部です。トランザクションの開始から終了までの流れを記述します。


■トランザクション用ライブラリ

データベース連携サービスが提供するクライアントアプリケーション用ライブラリです。


クライアントアプリケーションの基本形を以下に示します。

/* 初期化処理  */
orb = CORBA_ORB_init(&argc, argv, FJ_OM_ORBid, &env);
                        :
obj = CosNaming_NamingContext_resolve(naming, name, &env); … (1)
                        :
/* トランザクション依頼処理 */
Current = CORBA_ORB_resolve_initial_references(
           orb,
           CORBA_ORB_ObjectId_TransactionCurrent, &env);   … (2)
CosTransactions_Current_begin(Current, &env);              … (3)
                        :
mod_intf_ope1(obj, para, &env);                            … (4)
                        :
if (env._major != CORBA_NO_EXCEPTION)                      … (5)
CosTransactions_Current_rollback(Current, &env);
else
CosTransactions_Current_commit(Current, CORBA_TRUE, &env);
                        :

  1. ネーミングサービスからサーバアプリケーションのオブジェクトリファレンスを獲得します。

  2. Currentインタフェースのオブジェクトリファレンスを獲得します。

  3. CosTransactions_Current_beginメソッドでトランザクションの開始を宣言します。

  4. サーバアプリケーションを呼び出します。

  5. サーバアプリケーションの復帰状態を確認して、トランザクションの状態を決定します。
    トランザクションを正常終了する場合は、CosTransactions_Current_commitメソッドでトランザクションをコミットします。
    トランザクションを異常終了する場合は、CosTransactions_Current_rollbackメソッドでトランザクションをロールバックします。