2017-04-12 69 views
-1

我需要你的幫助。我使用hikariCP進行池連接,當我創建一個查詢到數據庫時,我遇到了一些麻煩。建立連接並在數據庫發生進程但響應時間線長達大約兩個小時,並且我想手動關閉連接。我設置了超時時間config.setConnectionTimeout(TimeUnit.MINUTES.toMillis(2L)); 但它沒有幫助。它設置了嘗試連接的時間,但沒有設置查詢時間和獲得響應的時間。我如何手動關閉連接?如何關閉hikariCP池上的當前連接?

+0

也許使用超時事務嗎? HikariCP甚至不允許你設置默認的超時時間嗎?你甚至讀過文檔嗎? – Kayaman

+0

即時通訊不好意思,但我想超時嘗試連接,是不是? – Porty

+0

爲什麼你關心連接超時?一旦你在遊​​泳池中建立了連接,它們就已經連接起來了。 – Kayaman

回答

0

我還不清楚你在做什麼。

如果您希望查詢超時,請在長查詢之前調用Statement.setQueryTimeout()

如果你只是想連接實際上被關閉當你調用Connection.close(),而不是返回到池中,與將要發生已經這麼長的查詢。

爲什麼?因爲默認maxLifetime是30分鐘。所以,如果你從HikariCP獲得連接並使用它2個小時,它將會在它的一生中過得很好。因此,當您致電Connection.close()時,HikariCP將立即將其從池中逐出(即關閉實際的DB連接)。

相關問題