java关闭到DB的连接不会关闭所有连接
我的代码中有到DB的连接泄漏。 有趣的是,当我调试时,所有连接都被成功关闭(或者当我执行Thread.Sleep(100))时)。但如果没有这一点,总会有一种联系存在! 你能告诉我这里有什么问题吗
ComboPooledDataSource dataSource = null;
try {
dataSource = dataSourceFactory.getDataSource(dbType, dbProps);
dataSource.getConnection();
} finally {
if (dataSource != null)
{
try
{
log.debug("validate() : Closing SQL connection pool");
DataSources.destroy(dataSource);
dataSource = null;
log.debug("validate() : SQL connection pool is closed");
}
catch (Exception e)
{
log.error("validate() : Error closing data source", e);
}
}
}
# 1 楼答案
我认为你的问题与C3P0有关。我想
Thread.sleep(delay)
之前的DataSources.destroy(dataSource)
解决了你的问题。我还猜想您知道,在检查MySQL日志时,某些连接保持不变。但是,除此之外,在您的情况下,我建议手动关闭与数据源之间的连接,这是每次使用数据源后都要做的事情。因此,我建议进行以下修改: