如何避免 c3po 中的连接超时?

How to avoid connection timeout in c3po?

如何避免 c3p0 连接中的连接超时错误?

我已设置 TestConnectionOnCheckout = true
PreferredTestQuery = SELECT 1
但是,不是固定的。投掷

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:通信link失败

        cpds.setMinPoolSize(3);
        cpds.setMaxPoolSize(10);
        cpds.setIdleConnectionTestPeriod(29);
        cpds.setTestConnectionOnCheckout(true);
        cpds.setPreferredTestQuery("SELECT 1");

我的 MySQL 数据库超时是 30 秒。我需要每 29 秒发送一次数据库调用,或者在连接超时时重新连接。 如何 ?

评论了

    //cpds.setMinPoolSize(3);
    //cpds.setMaxPoolSize(10);
    //cpds.setIdleConnectionTestPeriod(29);
    //cpds.setTestConnectionOnCheckout(true);
    //cpds.setPreferredTestQuery("SELECT 1");

并添加了 TestConnectionOnCheckin、TestConnectionOnCheckout 和 MaxConnectionAge

    cpds.setTestConnectionOnCheckin(true);
    cpds.setTestConnectionOnCheckout(false);
    cpds.setMaxConnectionAge(28);

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