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インタフェースを利用する場合は、環境変数CLASSPATHにJTS用クラスライブラリを設定しないでください。
ここでは、UserTransactionインタフェースを利用するために、JNDIからUserTransactionオブジェクトを獲得する方法について説明します。
UserTransactionオブジェクトをJNDIから獲得するには、JNDI環境プロパティを設定する必要があります。JNDI環境プロパティの詳細については、“J2EEユーザーズガイド”の“JNDI環境プロパティの詳細設定”を参照してください。
JNDIからUserTransactionオブジェクトを獲得するためのJNDI名を以下に示します。
java:comp/UserTransaction
例
InitialContext ic = new InitialContext(); UserTransaction ut = ic.lookup("java:comp/UserTransaction");
注意
JNDI環境プロパティが正しく設定されていない場合は、lookup処理に失敗します。lookup処理に失敗した場合は、JNDI環境プロパティの設定を確認してください。