2012-08-06 96 views
8

我们试图从c3p0移动到bonecp连接池。我们使用休眠作为ORM工具。监视骨骼连接池

现在有没有办法监控boncecp中的连接,比如在特定的时间点了解池中最大可用连接和繁忙连接,以及是否有任何未归还的池连接等等?

感谢您的帮助

回答

7

大量监控信息是通过BoneCP连接池类(BoneCP)进行访问。这被注册为托管bean,因此,如果您使用的JConsole或其他一些监控工具,你应该得到一个详细视图此信息,例如:

BoneCP MBean Screenshot

如果需要,你可以从一个BoneCPDataSource得到BoneCP实例使用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; 
} 
+0

+ Matt Ball感谢您的编辑! – FrVaBe 2014-01-06 07:50:36