Extended Java Transaction API (JTA) サポートでは、J2EE 仕様の一部として JTA に定義される UserTransaction インターフェース に加えて、アプリケーション・プログラミング・インターフェース (API) を提供します。
グローバル ID は、CosTransactions::PropagationContext: オブジェクトのトランザクション ID と、 トランザクションをローカル Java 仮想マシン (JVM) で一意に識別するローカル ID を基にしています。
拡張アプリケーションはこのコールバックを使用して、 トランザクションの完了前に更新をフラッシュし、トランザクション完了後に状態を消去することができます。 J2EE (および関連する) 仕様は、 この機能を一般に J2EE コンテナーのドメインとして位置付けます。
ExtendedJTATransaction exJTA = (ExtendedJTATransaction)ctx.lookup(" java:comp/websphere/ExtendedJTATransaction"); SynchronizationCallback sync = new SynchronizationCallback(); exJTA.registerSynchronizationCallback(sync);
以下の情報は、Extended JTA サポートで提供されるインターフェースの概要です。詳しくは、生成された API の資料を参照してください。
このインターフェースを インプリメントするオブジェクトは、 まず ExtendedJTATransaction インターフェースを介して得られ、 トランザクションの完了通知を受け取ります。
このインターフェースをインプリメントするオブジェクトは、 J2EE サーバー上で実行可能ですが、このオブジェクトが呼び出されたときにアクティブな特定の J2EE コンポーネントはありません。 したがって、オブジェクトは いずれの J2EE リソースに対しても、直接アクセスを制限されています。 具体的には、オブジェクトは java (ネーム・スペースまたは任意のコンテナー仲介リソース) にアクセスできません。 そのようなオブジェクトは、 そのオブジェクトが代行する J2EE コンポーネント (例えば、ステートレス・セッション Bean) への参照をキャッシュに入れることができます。 オブジェクトは、その後、J2EE リソースに通常どおりアクセスできるようになります。 例えば、Java Database Connectivity (JDBC) 接続を獲得し、beforeCompletion メソッドの実行中にデータベースへの更新をフラッシュするために使用することができます。
このインターフェースは、J2EE JTA サポートへの WebSphere プログラミング・モデル拡張機能です。 このインターフェースをインプリメントするオブジェクトは、 このインターフェースをサポートする WebSphere Application Server の J2EE コンテナーにより java:comp/websphere/ExtendedJTATransaction でバインドされます。 このオブジェクトへのアクセスは、Enterprise JavaBeans (EJB) コンテナーから呼び出された場合、 コンポーネント管理トランザクションに制限されません。