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

JNDIを利用してUserTransactionインタフェースを獲得します。
アプリケーション固有の処理部。トランザクションの開始から終了までの流れを記述します。
データベース連携サービスが提供するクライアントアプリケーション用ライブラリを結合します。
クライアントアプリケーションの基本形を以下に示します。
/* 初期化処理 */
:
javax.transaction.UserTransaction ut = null;
javax.naming.Context ic = null;
// InitialContextの生成
try{
ic = new InitialContext(); ・・・ (1)
} catch( NamingException e ) {
System.out.println( "error: new InitialContext()" );
System.exit(1);
}
// UserTransactionの獲得
try {
ut = (UserTransaction)ic.lookup("java:comp/UserTransaction");
・・・ (2)
} catch( NamingException e ) {
System.out.println( "error: lookup UserTransaction" );
System.exit(1);
}
*
// beginの発行
try {
ut.begin(); ・・・ (3)
} catch ( NotSupportedException e ) {
System.out.println( "error: already associate transaction" );
System.exit(1);
} catch ( SystemException e ) {
System.out.println( "error: SystemException occurred" );
System.exit(1);
}
// EJBサーバアプリケーション呼び出し
try {
rc = EJBサーバアプリケーションを呼び出してください ・・・ (4)
} catch ( RemoteException e ) {
*
}
try {
if ( rc == 0 ) {
// commitの発行
ut.commit(); ・・・ (5)
} else {
// rollbackの発行
ut.rollback(); ・・・ (6)
}
} catch ( RollbackException e ) {
System.out.println( "error: transaction was rolledback" );
System.exit(1);
} catch ( SystemException e ) {
System.out.println( "error: SystemException occurred" );
System.exit(1);
}
|

JNDIの詳細については、“J2EEユーザーズガイド”を参照してください。
注) クライアントアプリケーション起動時に以下の環境変数プロパティを指定してください。プロパティに指定する文字列は大文字・小文字を区別します。
-Dcom.fujitsu.ObjectDirector.CORBA.GlobalTransactionMode=True
-Djava.naming.factory.initial=com.fujitsu.interstage.j2ee.jndi.InitialContextFactoryForClient
目次
索引
![]()
|