【发布时间】:2015-11-29 17:39:34
【问题描述】:
好吧,这里是场景:
我正在使用 Java,并且我有一个集中的类来连接和断开与数据库的连接。我已将 ComboPooledDataSource 的最大池大小设置为 30 (cpds.setMaxPoolSize(30)),没有特殊原因。 MySQL 将 time_wait 配置设置为 100 秒。
我的问题:
当运行我的程序并将其日志与 MySQL 中生成的日志进行比较时,我可以清楚地看到 MySQL 正在做它应该做的事情:在 100 秒后关闭睡眠连接(正是我的程序创建的连接)。但是在 MySQL 中关闭的相同连接似乎在我的 C3P0 连接池中仍然存在,因为连接数量只会增加(每次需要 cpds.getNumConnections() 的新连接时我都会对其进行测试)。
有什么方法可以清除 c3p0 中未使用的连接(在 MySQL 中关闭的连接)?因为我的最大连接数即将达到(200s - 300s)。 MySQL关闭的连接不会在c3p0中自动关闭?
【问题讨论】:
标签: java mysql jdbc connection-pooling c3p0