2016-07-18 58 views
0

我有一個java春季休眠應用程序postgresql。這是我的C3P0設置c3p0 maxIdleTime不起作用

<property name="acquireIncrement" value="5"/> 
    <property name="initialPoolSize" value="5"/> 
    <property name="minPoolSize" value="5" /> 
    <property name="maxPoolSize" value="${c3p0.maxPoolSize}" /> 

    <property name="maxIdleTime" value="1800"/> 
    <property name="numHelperThreads" value="6"/> 
    <property name="maxStatements" value="0" /> 
    <property name="maxStatementsPerConnection" value="20" /> 

    <property name="idleConnectionTestPeriod" value="3000" /> 

在pgAdmin的,我看到了爲2小時以上閒置連接。是否還有其他需要設置的屬性

回答

0

maxIdleTime設置用於池中閒置的連接。這意味着沒有簽出。有沒有可能你有一些沒有關閉的連接?在這種情況下,連接將被打開並且不被視爲閒置,因爲它們已經簽出但未簽入。對於這種情況,您可以設置unreturnedConnectionTimeoutdebugUnreturnedConnectionStackTraces來查找此未關閉連接的位置。

http://www.mchange.com/projects/c3p0/#unreturnedConnectionTimeout

http://www.mchange.com/projects/c3p0/#debugUnreturnedConnectionStackTraces