リソースへのアクセスをトランザクション管理しないこともできます。リソースに対して参照しかしない場合などには,トランザクション管理のコストを削減するために,この方法を使用できます。
トランザクションを使用しない場合のシーケンスを示します。
図3-16 トランザクション未使用時のシーケンス
トランザクションを使用しない場合,次の点に留意して実装してください。
- Enterprise BeanのDDの<transaction-type>タグにContainerを指定して,<trans-attribute>タグにNotSupported,Neverのどちらかを指定すれば,トランザクションは使用されません。また,DDを使用しないで,アノテーションで定義することもできます。トランザクション属性の詳細については,マニュアル「アプリケーションサーバ 機能解説 基本・開発編(EJBコンテナ)」の「2.7.3 CMT」を参照してください。アノテーションについては,マニュアル「アプリケーションサーバ リファレンス API編」の「2. アプリケーションサーバが対応しているアノテーションおよびDependency Injection」を参照してください。
- Enterprise BeanのDDの<transaction-type>タグにBeanを指定して,UserTransactionオブジェクトのbeginメソッドを呼び出さなければ,トランザクションは使用されません。また,DDを使用しないで,アノテーションで定義することもできます。アノテーションについては,マニュアル「アプリケーションサーバ リファレンス API編」の「2. アプリケーションサーバが対応しているアノテーションおよびDependency Injection」を参照してください。
- サーブレットおよびJSPでUserTransactionオブジェクトのbeginメソッドを呼び出さなければ,トランザクションは使用されません。
- 特定のリソースアダプタへのアクセスだけをトランザクションで管理しないこともできます。これを実現するには,トランザクションで管理しないリソースアダプタのトランザクションサポートレベルをNoTransactionに設定します。トランザクションサポートレベルをNoTransactionに設定したリソースアダプタでは,トランザクション開始後にリソースにアクセスしてもトランザクション管理の対象とはなりません。
All Rights Reserved. Copyright (C) 2012, 2015, Hitachi, Ltd.