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
目次
索引
![]() ![]() |