[Seasar-user:11525] Re: requiresNewTxにてcommit時に例外が発生した場合にRollbackされない

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2007年 11月 7日 (水) 22:00:03 JST


小林 (koichik) です.

Date:    Wed, 07 Nov 2007 21:14:18 +0900
From:    鈴木 順 <[E-MAIL ADDRESS DELETED]>
To:      [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:11524] Re: requiresNewTxにてcommit時に例外が発生した場合にRollbackされない

> [07/11/07 21:10:39:391 JST] 00000043 ConnectionMan E   J2CA0058E: ConnectionManager は、リソース jdbc/cimTestXA に対して、接続 [E-MAIL ADDRESS DELETED] を ManagedConnection MCWrapper id 6152d0ce  Managed connection [E-MAIL ADDRESS DELETED]  State:STATE_TRAN_WRAPPER_INUSE
>  と関連付けることができませんでした。  例外を受け取りました: javax.resource.ResourceException: Current UOW does not match the UOW with which the ManagedConnection is already enlisted.

この例外の原因になっている例外が出ていませんか?

これだけだと正確には分からないのですが,
外側の required なトランザクションは
内側の requiresNew なトランザクションによって
サスペンドされているのに,外側のトランザクションに
関連づけられているコネクションを使おうとして
例外になっているように見えます.

Hibernate の Session は OpenSessionInViewFilter で
用意しているようですが,この時の required な
トランザクションはサスペンドされているので,
内側の requiresNew なトランザクションの中では
Session を利用することはできません.
にも関わらず,Session にアクセスしている (Dao を
呼び出している) ということはないでしょうか?
# S2JTA + S2DBCP だとアクセスできちゃうかも
# しれませんが,本来はアウト.


-- 
<component name="koichik">
    <property name="fullName">"Koichi Kobayashi"</property>
    <property name="email">"[E-MAIL ADDRESS DELETED]"</property>
    <property name="blog">"http://d.hatena.ne.jp/koichik"</property>
</component>




Seasar-user メーリングリストの案内