次に示すように運用手順を変更して移行してください。
インプロセストランザクションサービスを使用する場合,アウトプロセストランザクションサービスを使用していた場合と比べて,動作が異なります。発生条件に合致する場合,プログラムソースコードを変更する必要があります。
表11-5 プログラムソースコードの変更点
動作変更内容 | 発生条件 | 修正内容 |
---|---|---|
SetRollbackOnly後のトランザクション決着時にbeforeCompletionが呼ばれません(アウトプロセストランザクションサービスを使用した場合は呼ばれます)。 | Stateful Session Beanを使用し,SessionSynchronizationを実装している場合 | SetRollbackOnly後のトランザクション決着時にbeforeCompletionが呼ばれることを期待しないプログラムに変更してください。 |
SetRollbackOnly後のトランザクション決着時にejbStoreが呼ばれません(アウトプロセストランザクションサービスを使用した場合は呼ばれます)。 | Entity Beanを使用している場合 | SetRollbackOnly後のトランザクション決着時にejbStoreが呼ばれることを期待しないプログラムに変更してください。 |
afterCompletionの引数(boolean committed)の決定方法は,アウトプロセストランザクションサービスの場合にはトップルートトランザクションの処理結果を反映していましたが,インプロセストランザクションサービスの場合には,該当するブランチと,サブオーディネートブランチの処理結果だけで決定されます。 | 次の条件をすべて満たす場合
| afterCompletionの引数の使い方として,トップルートトランザクションの決着結果を期待しないプログラムに変更してください。 |