【发布时间】:2014-10-06 15:20:03
【问题描述】:
我有几个关于 JDBC 连接的问题。
- 有什么方法可以查看使用的 JDBC 连接吗?
- 例如,如果我将 JDBC 连接限制为 100,如果我到达已用 jbdc 连接的顶部,如何在不重新启动服务器的情况下释放它们?
谢谢
【问题讨论】:
标签: jdbc connection pool
我有几个关于 JDBC 连接的问题。
谢谢
【问题讨论】:
标签: jdbc connection pool
这取决于池/服务器。但这是一个非常不稳定的信息。通常在事务期间(几毫秒)从池中检索连接,然后将其添加回池中。而在一个典型的企业应用程序上,每秒有很多很多事务。因此,在您查看连接时,已使用的连接数已经发生了变化。
如果您的意思是要关闭在给定时间内未使用的连接(即缩小池的大小),那么再一次,这是一个取决于您的池的配置重新使用。他们中的大多数人都允许这样做。阅读您的池文档。
【讨论】:
如果您使用的是 DBCP2,那么您可以打印未关闭的活动连接。 在这里,该类扩展了 BasicDataSource,并覆盖了 getConnection 方法。
try {String className = Thread.currentThread().getStackTrace()[2].getClassName();
LOG.info("For class :: " + className + " || " + "max total connections :: " + super.getMaxTotal()+ " || " +" Active Connections count :: "+ super.getNumActive());
connection = super.getConnection();
}catch (SQLException e) {
LOG.error("SQL Exception in Connection", e);
}
【讨论】: