2010-09-08 74 views
0

我寫了一個擴展Spring.Net的AbstractTransactionalDbProviderSpringContextTests類並試圖做這樣的事情的測試用例。爲什麼我的SqlConnection在使用NHibernte + Spring.Net時永遠掛起

Step.1 MyHibernateDao.Find(id) 
Step.2 Use SqlConnection API to insert some record into database. 

無論STEP.1或step.2可以成功運行,但如果我把它們放在一起,step.2將永遠掛

如果我添加以下語句(直到超時。):

Step.1 MyHibernateDao.Find(id) //My Find method does not have [Transaction] annotation. 
SessionFactory.GetCurrentSession().Flush() 
SessionFactory.GetCurrentSession().Close() 
Step.2 Use SqlConnection API to insert some record into database. 

step.1和step.2都可以成功運行,當然因爲會話已經關閉,所以拆卸將失敗。

我想知道爲什麼測試掛在step.2?沒有理由認爲一個連接需要等待另一個連接返回,或者需要等待表鎖或什麼,它只是讀取。

我很困惑這裏,有什麼想法嗎?

在此先感謝。

+1

你可以發佈你的測試用例中導致掛起的實際(完整)代碼嗎?沒有更多的信息,就不可能提出你可能做錯了什麼。 – sbohlen 2010-10-20 12:15:08

回答

0

你使用Spring.NET的事務管理或NHibernate的?您可能需要檢查您的會話工廠配置。