[seasar-dotnet:1442] Re: System.Transaction TransactionScopeの入れ子について

五十嵐 大士 [E-MAIL ADDRESS DELETED]
2009年 9月 1日 (火) 10:23:11 JST


小谷さん

五十嵐です。

> >MLの方々へ
> (TransactionScopeに詳しい方や
> 同様の事例を経験なさったことがある方が
> もしいらっしゃいましたらアドバイスお願い致します)

以前、
Quill-1.3.11
DBFlute-0.8.0
DB2Express-9.5.2
の環境でTransactionScopeを利用すると例外が発生しました。

↓こんなことしたら
       [Test]
       public void Insert()
       {
           using(TransactionScope ts = new TransactionScope())
           {
               Parts parts = new Parts();
               parts.PartsId = "5";
               parts.PartsName = "CPU";

               partsBehavior.Insert(parts);
           }
       }

↓こんな例外でした。
IBM.Data.DB2.DB2Exception: 0ERROR [58005] [IBM][DB2/NT] SQL0998N  トランザクションまたはヒューリスティック処理中に、エラーが発生しました。理由コード = "16"。サブコード = "2-8004D026"。  SQLSTATE=58005
場所 IBM.Data.DB2.DB2ConnPool.a(DB2Connection A_0, String A_1, ref a A_2, ref Object A_3)
場所 IBM.Data.DB2.DB2Connection.Open()
場所 Seasar.Framework.Util.DataSourceUtil.GetConnection(IDataSource dataSource) 場所 DataSourceUtil.cs: line 42 

これはDB2に固執した内容だと思いますし、ちょっと違う事象だと思いますが
一応報告いたします。

# これがあって小谷さんにTransaction管理インタセプタでAOPするように
# ご助言いただきました



seasar-dotnet メーリングリストの案内