ローカル・トランザクション内包 (LTC) を使用して、 未指定のトランザクション・コンテキストにおけるアプリケーション・サーバーの動作を定義します。
未指定のトランザクション・コンテキストは、 Enterprise JavaBeans 2.0 (またはそれ以降) の仕様 (例えば、http://java.sun.com/products/ejb/2.0.html) に定義されています。
LTC は、境界のある作業単位 (UOW) スコープです。 この範囲内で、ゼロ、または 1 つ以上のリソース・マネージャー・ローカル・トランザクション (RMLT) にアクセスすることができます。LTC は、RMLT が完了しなければならない境界を定義します。 未完了の RMLT は、いずれもポリシーに従って、 コンテナーによって解決されます。 LTC は、Bean インスタンスに対してローカルです。 LTC は、Bean が同じコンテナーで管理されていても、Bean 間で共用されることはありません。LTC は、 グローバル・トランザクション・コンテキストがないときにディスパッチが行われる場合には必ず、 J2EE コンポーネント (エンタープライズ Bean またはサーブレットなど) のメソッドをディスパッチする前に、 コンテナーによって始動されます。 LTC は、アプリケーション構成の LTC 境界に従って、 コンテナーによって完了されます (例えば、 メソッド・ディスパッチの終わり)。 LTC サポートへのプログラマチック・インターフェースはありません。 むしろ、LTC はコンテナーによって排他的に管理され、 アプリケーションのデプロイヤーによって、 アプリケーションのデプロイメント記述子内のトランザクション属性を介して構成されます。
ローカル・トランザクション内包は、
グローバル・トランザクションと並行して存在することはできません。
グローバル・トランザクションが存在しないときに、
アプリケーション・コンポーネントのディスパッチが発生すると、コンテナーは常に LTC を確立します。
この振る舞いの唯一の例外は、
アプリケーション・コンポーネント・ディスパッチが、コンテナーの介在なしに発生する場合で、
例えば、ステートレス・セッション Bean create の場合です。
ローカル・トランザクション内包の有効範囲は、 ActivitySession コンテキストに指定することができます。 このコンテキストは、ActivitySessions およびトランザクション・コンテキストで説明するように、 そのコンテキストが開始されたエンタープライズ Bean メソッドよりも長く存続します。