即使设置了IdleMaxAgeInMinutes,Bonecp getConnection也会挂起

时间:2014-12-11 05:40:47

标签: java database

我正在使用 bonecp 来处理与数据库的连接。 这是我的测试配置。

config.setJdbcUrl("jdbc:mysql://192.168.1.104/" + DATABASE);
config.setUsername(USERNAME);
config.setPassword(PASSWD);
config.setMinConnectionsPerPartition(2);
config.setMaxConnectionsPerPartition(4);
config.setIdleMaxAge(30, TimeUnit.SECONDS);
config.setIdleConnectionTestPeriod(30, TimeUnit.SECONDS);
config.setConnectionTestStatement("SELECT 1");
config.setMaxConnectionAge(1, TimeUnit.MINUTES);
config.setPartitionCount(1); 

我正在尝试从池中获取连接,在获得第5次连接getConnection HANGS 之后从池中获得4个连接,因为池已用尽我没有关闭连接。但是通过配置,bonecp会在超时后关闭连接,而不会发生这种情况。

IdleMaxAge,MaxConnectionAge和IdleConnectionTestPeriod 参数的用途是什么?

1 个答案:

答案 0 :(得分:0)

使用

config.setCloseOpenStatements(true);

我也会明白为什么这些陈述会保持开放..