2012-07-12 110 views
2

我們有tomcat下運行,並維護一個連接池到SQL Server數據庫的基本的Java EE應用程序死鎖。我們有一些數據問題僅在生產環境中出現,因此我創建了一個測試工具,它可以模擬不同路徑上通過系統的不同用戶數量。休眠模式,20個模擬用戶

我已經在這一點,工作這麼的,我追它演變的問題。現在的問題是這樣的。

十大用戶線程完美的作品。 20個用戶線程和用戶登錄到系統時創建的日誌記錄從未插入任何20個用戶。實際上,Hibernate 3.3會經歷插入記錄的動作,但是當我使用show_sql設置時,insert語句永遠不會顯示在轉儲中。這再一次適用於10個用戶。更令人費解的是,每隔一段時間它將爲20個用戶中的一個工作。 :(

我使用JTDS司機,順便說一句,以避免我們一直與MS一個發現的問題。

我在我的本地機器上運行的SQL Server Express 2008 R2與Tomcat和運行我的測試在我的Eclipse IDE中有任何人看到過任何想法,爲什麼休眠可能會鎖定10個用戶?

+0

可能與:你檢查與JRE JDBC驅動程序的兼容性使用(MSSQL-JDBC的一些版本不Java7正常工作)。 – Durandal 2012-07-12 11:57:43

+0

哦,是啊!完全不使用Microsoft驅動程序。使用JTDS。 – Thom 2012-07-12 11:58:23

回答

2

我相信問題是,你不能打開足夠的會話,因爲你需要(因爲他們彙集)

  • 如何打開會話?
  • 連接池的大小是多少?
  • 你總是關閉會議嗎?
+0

上帝,我真是個白癡!我總是將我的maxActive parm設置爲-1,但是我從其他人那裏複製了這個文件,它被設置爲8.難怪我遇到了問題。我改爲-1,測試開始再次運行。謝謝您的幫助! – Thom 2012-07-12 12:12:33

+1

想一想,通過簡單地爲網頁開發人員投票「是」就可以避免這種情況。 – Thom 2012-07-12 12:25:16