我们正在尝试从c3p0迁移到bonecp连接池。我们使用hibernate作为ORM工具。
现在,有没有办法监控boncecp中的连接,比如在特定时间点了解池中最大可用和繁忙连接以及池中是否有任何未返回的连接等?
感谢您的帮助
答案 0 :(得分:7)
可以通过BoneCP连接池类(BoneCP)访问许多监视信息。这是注册为托管bean,因此如果您使用jconsole或其他一些监视工具,您应该获得此信息的详细视图,例如:
如果需要,您可以使用BoneCP
从BoneCPDataSource
获取BoneCPDataSource#getPool()
个实例:
/**
* Get a status information of the JDBC connections.
*
* @return The status information of the JDBC connections.
*/
public String getConnectionStatus() {
String status = "unknown";
if (dataSource instanceof BoneCPDataSource) {
BoneCPDataSource bcpDataSource = (BoneCPDataSource) dataSource;
BoneCP bcp = bcpDataSource.getPool();
status = "JDBC connections: " + bcp.getTotalLeased()
+ " in use / " + bcp.getTotalFree()
+ " in pool / total created "
+ bcp.getTotalCreatedConnections();
}
return status;
}