[seasar-dotnet:1436] System.Transaction TransactionScopeの入れ子について
KIYOSUE Minoru
[E-MAIL ADDRESS DELETED]
2009年 8月 29日 (土) 14:15:28 JST
いつも大変お世話になっております、清末@JMIです。
先ほど、メーリングリスト登録外のアドレスから誤って送信してしまい大変申し訳ござい
ません。 再度投稿いたしますのでよろしくお願いいたします。
今回、ウェブサービスの構築をしております。
その中で、Tx.RequiredTxトランザクションを使用したトランザクション制御を以下の用に
行おうとしておりますが、設定が悪いためかトランザクションが効きません。
1.ファサード層のメソッドにトランザクションを設定、
2.ファサード層から、GetComponent()を使用して、ビジネスロジック層のクラスを
呼び出す。
3.2を必要なだけクラスを変えて呼び出す。
4.3が全て正常終了の場合は、コミットがかかる用にする。
(TransactionScopeを使用しているため、1つでもComplete()を通過していなければ
ロールバックされると思うのですが。)
1のファサード層のメソッドには、DICONで、<aspect pointcut="MethodA">のように
指定しています。
2の各メソッドにも同様に、<asspect pointcut="MethodB1">のように指定しています。
実行時のログを見ると、「トランザクションを開始しました」のメッセージが出力されて
います。
しかしながら、何個目かの2のメソッドで例外が発生しても、その前に実行したメソッド
のDB更新がロールバックされません。
TransactionScopeを使用している場合、メソッド内から他のメソッドを呼び出し、その
中にTransactionScopeがあれば、自動で入れ子になると思うのですが、AOPでトラン
ザクションを取り込んだ場合には、入れ子にできないのでしょうか?
ご多忙中大変恐縮に存じますが、入れ子にする方法があればご教示ください。
seasar-dotnet メーリングリストの案内