2016-08-04 164 views
-2

我們正在爲我們的應用程序使用tomcat連接池。從日誌中不時觀察到連接在池中不可用。雖然它不會停止應用程序服務器本身,但用戶操作因此而中斷。我們將下列參數傳遞給數據源:tomcat連接池問題

<Resource 
    name=XXXXX 
    type=xxxxx 
    username=xxxxx 
    password=xxxxxx 
    driverClassName=xxxxx 
    maxIdle=2 
    url=xxxxx 
    maxActive=10 
/> 

問:有沒有可能是連接池變空了一定時間,然後再連接是avaible?

+0

我本來以爲你會想要minIdle –

+0

你問的問題的答案是「YES」,但這個答案可能毫無價值,因爲你已經從你的程序行爲中知道它。 –

+0

@Scary minIdle默認爲initialSize,即10 – ravthiru

回答

0

連接池不會下降到0,除非所有空閒連接都無法通過驗證查詢。這裏發生的事情是,你的連接閒置超時到最大空閒大小2.空閒連接通常是一件好事,因爲它們避免了你遇到的確切問題;打開新的連接是昂貴的。

+0

你好,約翰,謝謝你的回覆。如果我添加initialSize和minIdle參數會有幫助嗎? – user2647805

+0

當連接池啓動時,它將創建initialSize連接。隨着更多連接被同時請求,它將增長到maxActive。一旦這些連接變爲空閒狀態,它將降至maxIdle。一旦這些空閒連接超時,它將下降到minIdle。提高maxIdle和minIdle將導致更長時間保持更多空閒連接。提高初始大小將推動空閒連接創建而不是根據用戶需求啓動。將minIdle設置爲initialSize也是一個很好的開始。 –