2012-08-06 100 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