Interstage Application Server J2EE ユーザーズガイド |
目次 索引 |
第3部 EJB編 | > 第9章 EJBサービスの機能 | > 9.5 EJBサービスのトランザクション制御 | > 9.5.1 トランザクション管理種別とトランザクション属性 |
以下に、トランザクション管理種別を指定した場合の制御例を示します。
[図の説明]
トランザクション管理種別に“Container”を指定した場合、トランザクション属性によって、制御方法は異なります。
以下に、各トランザクション属性を指定した場合の制御例を示します。
Supportsは、推奨されない属性であるため省略します。
呼出し元で開始されたトランザクションで動作させるEJBアプリケーション(メソッド)に指定します。この属性を使用し、呼出し元でトランザクションが開始されていない状態でEJBアプリケーション(メソッド)が呼び出された場合、例外が発生します。
呼出し元でのトランザクションの動作の状態に影響をうけることなく、常にトランザクションが開始されている状態で処理を行うことができます。
Message-driven Beanで“Required”を指定した場合の制御例は、“Message-driven Beanで“Required”を指定した場合の制御例”を参照してください。
JMSからメッセージを受信して、受信したメッセージの情報をDBに格納する場合の制御例を示します。受信したメッセージとDBアクセスを同一トランザクション内で処理するため、Message-driven Beanのトランザクション種別は“Container”、トランザクション属性には“Required”を指定します。
呼出し元で開始されたトランザクションと異なるトランザクションで実行することができます。このため、呼出し元のトランザクション処理とは異なるトランザクション処理を行うことができます。
呼出し元でのトランザクションの動作の状態に影響されることなく処理が行えます。EJBサービスが提供するトランザクション機能を使用しない場合に指定します。
呼出し元のトランザクションから影響をうけることなく処理が行えるため、EJBサービスが提供するトランザクション機能を使用しない場合に指定します。この属性を使用すると、呼出し元でトランザクションが開始された状態で呼び出されることを防ぐことができます(呼び出された場合は、例外が発生します)。
目次 索引 |