我有一個Spring Boot應用程序(版本1.5.1.RELEASE),我使用spring-boot-starter-data-jpa
作爲依賴來管理我的數據庫。我使用postgres作爲我的數據庫,並使用下面的屬性進行配置。spring boot datasource tomcat jdbc屬性不起作用
spring.datasource.url=${POSTGRES_URL}
spring.datasource.username=${POSTGRES_USER}
現在,當我跑我的測試中,其幾乎是120,我得到了阿布10個測試用例太多的客戶端已經開放的錯誤,同時啓動測試案例本身和它失敗。(剩餘100測試用例通過成功的他們能夠連接到數據庫)
我做的第一件事是在postgres服務器配置文件中將我的默認postgres最大連接數從100增加到200,並且在此更改後我的測試成功通過。
現在我調查了一下,並試圖連接池的屬性,如設置參數:
spring.datasource.tomcat.max-active=200
spring.datasource.tomcat.test-on-borrow=true
spring.datasource.tomcat.max-wait=10000
然而,這些特性不工作,測試失敗再次給予同樣的錯誤如上。我試着從多個不同的博客和春季文檔中讀取關於設置連接池屬性的內容,但沒有發現可能會出現什麼問題。
我也認爲,如果我將上述屬性spring.datasource.tomcat.max-active
設置爲100個連接,它應該在tomcat jdbc pooling的幫助下工作,因爲我認爲在當前情況下它試圖爲每個測試用例打開一個到數據庫的新連接,而我我擔心這種情況可能發生在將此代碼部署到生產環境時,並且將爲每個請求向數據庫打開一個新連接。
有沒有人以前遇到過這個問題,或者有什麼問題我正在做。
在此先感謝您的幫助。
什麼是你的數據庫中配置的最大連接數?有沒有其他應用程序使用你的數據庫?最好從數據庫透視圖/數據庫監視器中檢查連接數,應用程序中的連接泄漏在跳轉到不正確的application.properties結論之前。 –
確保您正確關閉會話 – rajadilipkolli
@vivek是否使用休眠orm –