Java EEコンポーネントは、JTAを使用してトランザクション制御を行うことができます。JTAを使用してトランザクション制御する方法には、以下の2つがあります。
javax.transaction.UserTransactionインタフェース、またはjavax.transaction.TransactionSynchronizationRegistryインタフェースを使用して、Java EEコンポーネント自身がトランザクションの制御をする。
Container-Managed Transactionにより、EJBコンテナにトランザクション制御を任せる。
WebアプリケーションやクライアントアプリケーションでJTAトランザクションを制御するには、環境ネーミングコンテキストを利用してトランザクションマネージャ(javax.transaction.UserTransactionまたはjavax.transaction.TransactionSynchronizationRegistry)を参照します。詳細は、「2.14.2 環境ネーミングコンテキスト(Environment Naming Context)」を参照してください。
EJBアプリケーションでJTAトランザクションを制御するには、トランザクションの制御をコンテナで制御する方法とEJBアプリケーション自身で制御する方法があります。
コンテナで制御する場合
トランザクション種別にContainerを指定し、さらにトランザクションの制御方法をトランザクション属性に指定します。
EJBアプリケーションで制御する場合
トランザクション種別にBeanを指定し、javax.transaction.UserTransactionをjavax.ejb.EJBContextより取得してEJBアプリケーションで制御します。