2011-08-25 83 views
1

由於對Spring方法不熟悉 - > GetHibernateTemplate/GetSession,導致我面臨一個問題。 當我使用本機sql查詢[getSession()。createSQLQuery(nativeQuery)]從數據庫中獲取一些記錄時,在我看來有一種死鎖情況,並且在N次請求後,db連接池耗盡。 這是我所看到的,當我檢查這個數據庫中的「SHOW ENGINE INNODB STATUS」的樣本:Spring GetHibernateTemplate()或GetSession()

MySQL thread id 1106, query id 1360 localhost 127.0.0.1 test2 
---TRANSACTION 0 19491, not started, OS thread id 2960035840 

我在做什麼錯?什麼是運行本機SQL查詢的好方法?

回答

0

Spring透明地處理打開和關閉數據庫連接。文檔data access chapter開頭的表格顯示了您處理的內容以及Spring處理的內容,後者包含打開和關閉連接。 Spring本身似乎不太可能成爲問題。

相反,這裏有兩個可能性,爲什麼您可能會遇到您的情況:

  1. 連接池配置錯誤以某種方式
  2. 你沒有意識到這一點,但你有一些亂控制或真正長時間運行/效率低下的查詢

如果您將日誌記錄調試,那將提供更多線索。

相關問題