コンテナ管理トランザクションおよびBean管理トランザクションについて

通常、ルート・レベルのアプリケーション・モジュールは独自のトランザクションを処理します。アプリケーション・モジュールのAPIによって、ほとんどのアプリケーションで必要なトランザクションに対するすべての制御が提供されます。

ただし、アプリケーション・モジュールをEJBセッションBeanとして(サービスBeanとしての場合も含めて)Oracle9iASにデプロイする場合は、EJBコンテナによるトランザクションの管理を選択できます。これには次の2つの場合があります。

これら2つの場合には、コンテナ管理トランザクションのみを使用する必要があることに注意してください。通常は、Bean管理トランザクションの方が簡単で便利です。

注意: 特に、Business Component Browserを使用して、コンテナ管理トランザクションを使用するアプリケーション・モジュールをテストすることはできません。

ビジネス・コンポーネントをデプロイする際に、使用するトランザクション・タイプを選択できます。

コンテナ管理トランザクションを使用したルート・レベル・アプリケーション・モジュール間でのトランザクションの共有

ルート・レベル・アプリケーション・モジュールApplicationModule1が、もう1つのルート・レベル・アプリケーション・モジュールApplicationModule2をインスタンス化して使用するとします。ApplicationModule2がBean管理トランザクションを使用する場合、このアプリケーション・モジュールが実行するすべての処理はApplicationModule1とは別のトランザクションになります。ApplicationModule1でコミットされていない変更内容は、ApplicationModule2では認識されません。その逆も同様です。

ApplicationModule1とApplicationModule2でトランザクションを共有するには、ApplicationModule2でコンテナ管理トランザクションを使用する必要があります。これによって、ApplicationModule1からトランザクションを継承できます。

コンテナ管理トランザクションを使用したクライアント境界トランザクションの使用

クライアントが、EJBサーバーと同一のJVMで稼働している場合(たとえば、クライアントが、ビジネス・コンポーネントと同じOracle9iASのインスタンスで稼働するJSPである場合)、ユーザーは、クライアントが直接インスタンス化したアプリケーション・モジュールでコンテナ管理トランザクションを使用することもできます。このとき、クライアントは、制御を完全に行うためにトランザクションの境界を設定することができます。