| Interstage Application Server J2EE ユーザーズガイド |
目次
索引
![]()
|
| 第1部 J2EE共通編 | > 第4章 JNDI |
アプリケーションが、トランザクションを制御する場合、UserTransactionインタフェースを使用して制御します。以下に、UserTransactionインタフェースを使用したトランザクション機能の処理の流れなど、アプリケーションの開発について説明します。
以下に、UserTransactionインタフェースを使用したトランザクション機能を使用する場合の処理の流れを示します。

UserTransactionインタフェースには以下のメソッドがあります。
使用できるメソッドの一覧を示します。
|
メソッド名 |
内容 |
|---|---|
|
begin |
新しいトランザクションを生成し、現在のスレッドに関連付けます。 |
|
commit |
現在のスレッドと関連付けられたトランザクションを完了させます。 |
|
getStatus |
現在のスレッドと関連付けられたトランザクションの状態を獲得します。 |
|
rollback |
現在のスレッドと関連付けられたトランザクションをロールバックします。 |
|
setRollbackOnly |
現在のスレッドと関連付けられたトランザクションを、トランザクションの結果がロールバックだけになるように変更します。 |
|
setTransactionTimeout |
現在のスレッドでbeginメソッドにより開始されたトランザクションと関連するタイムアウト値を変更します。 |
デフォルトのトランザクションを使用する場合、J2EEアプリケーションでトランザクションを開始し、同一Java VM上の他のJ2EEアプリケーションにアクセスする場合、同一のトランザクションで動作させることができます。
また、WebアプリケーションとEJBアプリケーションを同一JavaVMで運用する場合、WebアプリケーションがUserTrasanctionを使用して、WebアプリケーションからアクセスしたEJBアプリケーション処理をトランザクション連携させることも可能です。
コネクションの獲得は、データソースに対してgetConnection()メソッドを発行することによって行います。これ以外の方法で獲得されたコネクションは、トランザクション配下のコネクションとして扱われません。
コネクションの解放は、獲得したコネクションに対してclose()メソッドを発行することによって行います。
データソースを使用する場合は、最初にデータソースのlookupを行います。
------------------------------------------------------------------------------------
...
javax.transaction.UserTransaction userTransaction = null ;
/* JNDIのlookupメソッドを使用して、UserTransactionを獲得します */
try {
javax.naming.Context initialContext = new
javax.naming.InitialContext();
userTransaction =
(UserTransaction)initialContext.lookup("java:comp/UserTransaction");
} catch(NamingException ex) {
/* 例外処理 */
...
}
/* トランザクション処理を開始します */
try {
userTransaction.begin();
} catch(javax.transaction.NotSupportedException e) {
/* 例外処理 */
...
} catch(javax.transaction.SystemException e) {
/* 例外処理 */
...
}
try {
/* EJBアプリケーションの呼出し、もしくは、JDBCデータソースへのアクセス */
...
} catch( Throwable e ) {
/* 例外が発生した場合などはトランザクションをロールバック*/
userTransaction.rollback();
throw e;
}
try {
/* 処理を完結したい場合などにはトランザクションをコミット*/
userTransaction.commit();
} catch( Throwable e ) {
throw e;
}
...
------------------------------------------------------------------------------------
目次
索引
![]()
|