| Interstage Application Server アプリケーション作成ガイド (コンポーネントトランザクションサービス編) |
目次
索引
![]()
|
| 第3章 クライアントアプリケーションの作成 | > 3.4 クライアントアプリケーションソースの作成(CurrentインタフェースのJava言語) | > 3.4.2 ソースの作成 |
グローバルトランザクション運用を行うためには、CORBAのクライアントアプリケーションの処理に加えて、CosTransactions.Current.commitメソッドなどのCurrentインタフェースを呼び出して、データベース連携サービスにトランザクション処理を依頼します。
これらの処理を考慮したクライアントアプリケーションの構成について以下に示します。

クライアントアプリケーションをCORBAサービスに登録、およびトランザクションサービスの初期化を行います。
アプリケーション固有の処理部。トランザクションの開始から終了までの流れを記述します。
データベース連携サービスが提供するクライアントアプリケーション用ライブラリを結合します。
クライアントアプリケーションの基本形を以下に示します。
try{
/* 初期化処理 */
:
orb = org.omg.CORBA.ORB.init(args, null);
:
/* ネーミングサービスのオブジェクトリファレンスの獲得 */
:
org.omg.CORBA.Object _tmpObj2 =
Orb.resolve_initial_references("NameService");
Cos = org.omg.NamingContextHelper.narrow(_tmpObj2); … 1
:
/* トランザクション依頼処理 */
org.omg.CORBA.Object _tmpObj1 =
Orb.resolve_initial_references("TransactionCurrent");
Current = org.omg.CosTransactions.CurrentHelper.narrow(_tmpObj1); … 2
:
/*サーバアプリケーションのオブジェクトリファレンス獲得 */
String NCid = new String("bankA::accountA");
String NCkind = new String("");
try {
NameComponent nc = new NameComponent( NCid, NCkind );
NameComponent NCo[] = { nc };
Obj = Cos.resolve( NCo );
target = accountAHelper.narrow( Obj );
}
Current.begin(); … 3
:
obj->ope1(para); … 4
Current.commit(rhuristic); … 5
}
catch(CORBA.CORBAException e){
Current.rollback(); … 6
} |
目次
索引
![]()
|