日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Nhibernate中的连接超时时事务回滚引发异常的处理方法

發布時間:2025/3/15 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Nhibernate中的连接超时时事务回滚引发异常的处理方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近在做一個短信項目,采用的nhibernate+sqlserver。因為數據量大,所以采用多線程的方式。有時會觸發超時。當超時時事務再回滾也會觸發異常nhibernate Transaction not connected, or was disconnected,所以在回滾時再加一個trycatch語句,當然這不是最好的解決方法,需日后完善。代碼如下 :

?

public IList GetEntities(string strHQL)
??????? {
??????????? IList lst;
??????????? ISession session=null;
??????????? ITransaction transaction=null;
??????????? try
??????????? {
???????????????? session= SessionFactory.OpenSession(_AssemblyName);
???????????????? transaction= session.BeginTransaction();

??????????????? lst = session.CreateQuery(strHQL).List();
??????????????? transaction.Commit();
??????????????? //session.Close();
??????????????? return lst;
??????????? }
??????????? catch (Exception e)
??????????? {
??????????????? //bool b = transaction.WasRolledBack;
??????????????? //if(!session.IsConnected||!session.IsOpen)
??????????????? //{
??????????????? //??? session.Reconnect();
??????????????? //}

??????????????? //if (session!=null&&session.Connection.State!=ConnectionState&&transaction != null && transaction.IsActive)
??????????????? //??? transaction.Rollback();
??????????????? //bool b = session.IsConnected;
??????????????? //bool b1 = session.IsOpen;
??????????????? try
??????????????? {
??????????????????? if ( transaction != null && transaction.IsActive)
??????????????????????? transaction.Rollback();
??????????????? }
??????????????? catch (Exception e1)
??????????????? {
???????????????????
?????????????????? // throw;
??????????????? }

??????????????? return null;
??????????? }
??????????? finally
??????????? {
??????????????? if(session!=null)
??????????????????? session.Close();
??????????? }

??????? }

?

總結

以上是生活随笔為你收集整理的Nhibernate中的连接超时时事务回滚引发异常的处理方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。