[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 メーリングリストの案内