Interstage Application Server アプリケーション作成ガイド (データベース連携サービス編)
目次 索引 前ページ次ページ

第3章 クライアントアプリケーションの作成> 3.1 クライアントアプリケーションソースの作成(C言語)> 3.1.2 ソースの作成

3.1.2.1 アプリケーションの構成

 グローバルトランザクション運用を行うためには、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メソッドでトランザクションをロールバックさせます。

目次 索引 前ページ次ページ

Copyright 2008 FUJITSU LIMITED