UserTransactionインタフェースは、JTA(Java Transaction API)に含まれるインタフェースです。
UserTransactionインタフェースには以下の機能があります。
機能名 | 機能概要 |
---|---|
begin | トランザクションを開始します。また、トランザクションは、このメソッドを発行したスレッドと関連つけられます。すでにトランザクションがスレッドに関連付けられている場合、NotSupportedExceptionが発生します。 |
commit | スレッドに関連つけられた該当トランザクションをコミットします。 |
getStatus | スレッドに関連つけられたトランザクションの状態を取得します。 |
rollback | スレッドに関連つけられた該当トランザクションをロールバックします。 |
setRollbackonly | 該当トランザクションをロールバックのみ可能な状態にします。 |
setTransactionTimeout | トランザクションタイムアウトを設定します。 |
UserTransactionインタフェースのsetTransactionTimeoutメソッドは分散トランザクションを使用する場合のみ有効になります。ローカルトランザクションで本メソッドを使用する場合、設定された値は無効になります。
setTransactionTimeoutメソッドでトランザクションタイムアウトを設定する場合、トランザクションを開始する前に設定してください。
トランザクションを開始した後に、トランザクションタイムアウトを設定しても、開始済みのトランザクションには適用されません。
EJBアプリケーション以外のJ2EEアプリケーション内でUserTransactionインタフェースを利用するには、以下のクラスライブラリをクラスパスに設定する必要があります。
- fjtsclient.jar (JTSクライアント用クラスライブラリ)
- isj2ee.jar (J2EEのクラスライブラリ)
- CORBAサービスのクラスライブラリ
- EJBサービスのクラスライブラリ(EJBクライアントアプリケーションを作成する場合)
JTSのクライアント用クラスライブラリはサーバ機能でのみインストールされます。クライアント機能ではインストールされません。クライアント機能をインストールした環境でJTAを利用したアプリケーションを運用するには、サーバ機能でインストールした環境から、JTSのクライアント用クラスライブラリをコピーしてくる必要があります。
サーバ機能をインストールした環境では以下に格納されています。
【クライアント用クラスライブラリ】
・格納場所
C:\INTERSTAGE\ots\lib\fjtsclient.jar |
/opt/FSUNots/lib/fjtsclient.jar |
/opt/FJSVots/lib/fjtsclient.jar |
EJBアプリケーション内でUserTransactionインタフェースを利用する場合には、JTS用クラスライブラリを環境変数クラスパスに設定しないでください。
ここではUserTransactionインタフェースを利用するために、JNDIからUserTransactionオブジェクトを獲得する方法を説明します。
UserTransactionオブジェクトをJNDIから獲得するには、JNDI環境プロパティの設定が必要です。
JNDI環境プロパティの詳細は、J2EEユーザーズガイドのJNDI環境プロパティの詳細設定を参照して下さい。
JNDIからUserTransactionオブジェクトを獲得するためのJNDI名は、以下になります。
java:comp/UserTransaction |
InitialContext ic = new InitialContext(); |
JNDI環境プロパティの設定が正しく行なわれていない場合、lookup処理が失敗します。
lookup処理で失敗する場合は、JNDI環境プロパティの設定を確認してください。