2017-07-19 73 views
0

技術堆棧
我使用彈簧啓動1.3.5休息服務,內部獲取從database..ORM使用的數據是JOOQ和連接池管理由BoneCP完成。 ..春天異步沒有釋放數據庫連接

要求
我有,我需要火多個SQL來獲取數據,合併的結果,並返回他們一起要求...

ISSUE
我已經實現了這個使用彈簧異步,但遇到了問題,其中春季同步方法舉行數據庫連接,並沒有釋放他們到數據庫池..幾次點擊達到最大連接和應用程序停止響應...

嘗試
只要我從我的方法,它工作正常刪除@Async註解..

請提出一個可能的解決了這個問題,我需要火多個查詢,合併的結果。 另一種解決方案,如果有人幫助我,如果有任何設置在骨骼的超時釋放連接回池的設置。

+0

「spring sync method hold up database connection」是什麼原因?它是長時間運行的過程? – Zico

+0

該查詢不是長時間運行..但結果是交付,但數據庫連接不釋放回池 – AutoMEta

+0

你沒有調用'connection.close()'執行查詢後返回連接池? – Zico

回答

0

請考慮以下解決方案。然後覺得會適合你的應用程序

  1. 增加連接數限制在DB
  2. 減少@Async線程,以減少連接
  3. 的使用設計你@Async塊代碼中使用一定量的連接從池中。所以其餘的連接將保持其他用途的應用程序。
+0

1.增加DB中的連接限制 - >在某些時候限制提高時,這不起作用。 2.減少@Async線程來減少連接的使用 - >這總是3不能減少3.不知道該怎麼做......任何幫助 – AutoMEta