ページの先頭行へ戻る
Interstage Application Server アプリケーション作成ガイド(データベース連携サービス編)

2.2.2 UserTransactionインタフェース

  UserTransactionインタフェースは、JTA(Java Transaction API)に含まれるインタフェースです。


2.2.2.1 UserTransactionインタフェースの機能

  UserTransactionインタフェースには、以下の機能があります。


機能名

機能概要

begin

トランザクションを開始します。また、トランザクションは、本メソッドを発行したスレッドと関連つけられます。すでにトランザクションがスレッドに関連付けられている場合は、NotSupportedExceptionが発生します。

commit

スレッドに関連つけられた該当トランザクションをコミットします。
コミット発行後に処理を取り消すことはできません。

getStatus

スレッドに関連つけられたトランザクションの状態を取得します。

rollback

スレッドに関連つけられた該当トランザクションをロールバックします。
ロールバックを発行することにより、処理前の状態に戻ります。

setRollbackonly

該当トランザクションをロールバックにだけ可能な状態にします。

setTransactionTimeout

トランザクションタイムアウトを設定します。


注意

  • UserTransactionインタフェースのsetTransactionTimeoutメソッドは、分散トランザクションを使用する場合に有効となります。ローカルトランザクションで本メソッドを使用する場合、設定値は無効となります。

  • setTransactionTimeoutメソッドでトランザクションタイムアウトを設定する場合、トランザクション開始前に設定してください。トランザクション開始後に、トランザクションタイムアウトを設定しても、すでに開始されたトランザクションには適用されません。


2.2.2.2 UserTransactionインタフェースを利用するための環境設定

  EJBアプリケーション以外のJ2EEアプリケーション内でUserTransactionインタフェースを利用するには、クラスパスに以下のクラスライブラリを設定する必要があります。


注意

  JTSのクライアント用クラスライブラリは、サーバ機能にインストールされます。クライアント機能には、インストールされません。クライアント機能をインストールした環境でJTAを利用したアプリケーションを運用する場合は、サーバ機能にインストールされた環境からJTSのクライアント用クラスライブラリをコピーする必要があります。


  クライアント用クラスライブラリは、サーバ機能をインストールした環境において以下に格納されています。
注)本製品のインストールパスがデフォルトの場合のパスです。

C:\Interstage\ots\lib\fjtsclient.jar

/opt/FSUNots/lib/fjtsclient.jar

/opt/FJSVots/lib/fjtsclient.jar

注意

  EJBアプリケーションにおいてUserTransactionインタフェースを利用する場合は、環境変数CLASSPATHにJTS用クラスライブラリを設定しないでください。


2.2.2.3 UserTransactionインタフェースの獲得方法

  ここでは、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環境プロパティの設定を確認してください。