6.3. JDBC およびトランザクション
JDBC API の機能
トランザクションのトランザクションスコープは 、 以下の JDBC モードにマッピングします。
- コマンド
- connection autoCommit プロパティーを true に設定します。
- ローカル
-
Connection autoCommit プロパティーを false に設定します。このトランザクションは、autoCommit を true に設定するか、
java.sql.Connection.commit
を呼び出すことでコミットされます。java.sql.Connection.rollback
への呼び出しによってトランザクションをロールバックできます。 - グローバル
-
XAConnection が提供する XAResource インターフェースは、トランザクションを制御するために使用されます。XAConnections は、Data Virtualization が XADataSource、
org.teiid.jdbc.TeiidDataSource
を介して消費される場合にのみ利用できることに注意してください。JEE コンテナーまたはデータアクセス API は通常、アプリケーションコードの代わりに XA トランザクションを制御します。
J2EE の使用モデル
J2EE では、Bean のトランザクションを管理する以下の方法を利用できます。
- クライアント制御
- Bean のクライアントはトランザクションを開始および終了します。
- bean-managed
- Bean 自体はトランザクションを明示的に開始および終了します。
- コンテナー管理
- アプリケーションサーバーコンテナーは自動的にトランザクションを開始し、終了します。
前述のいずれの場合も、コードおよび記述子の書き込み方法に応じて、トランザクションはローカルまたは XA トランザクションのいずれかになります。XA 仕様では、トランザクション以外のソースと連携するのに、一部のタイプの Bean(ステートフルセッション Bean やエンティティー Bean など)は必要ありません。ただし、仕様に応じて、アプリケーションサーバーはトランザクション以外のソースでこれらの Bean を使用できるようにします。ただし、このような使用方法は移植可能でも予測できない点に注意してください。通常、ほとんどのタイプの EJB アクティビティーに対して移植可能な方法で提供するために、アプリケーションはトランザクションを管理するメカニズムを必要とします。