「EJB 3.0 のマスター」のトランザクションの章 (10) を読んだところですが、ネストされたトランザクションについて混乱しています。
その本は言う
「EJB 定義のトランザクション マネージャーは、ネストされたトランザクションをサポートしていません。フラットなトランザクションのみをサポートする必要があります。」(サイト278、注意)
この事実はこの本だけでなく、他の本やウェブサイトにも書かれています。
しかし、"Requires New" アノテーション付き Methode から "Required" アノテーション付き Methode を呼び出すと、ネストされたトランザクションになりますよね? 外部トランザクションに影響を与えることなく、内部トランザクションをロールバックまたはコミットできます。また、外側のトランザクションを中止したい場合は、EJBException をスローして戻すと、トランザクション全体がロールバックされます。
この動作がEJB 3.0 仕様で要求されていないということだけですか、それとも何か誤解しているのでしょうか? ネストされたトランザクションと説明されている動作の違いがわかりません。
よろしくノーマン