9

我们正在尝试从 c3p0 移动到 bonecp 连接池。我们使用hibernate作为ORM工具。

现在,有什么方法可以监控 boncecp 中的连接,例如了解池中特定时间点的最大可用和繁忙连接,以及是否有任何未返回的连接到池等?

谢谢您的帮助

4

1 回答 1

7

通过 BoneCP 连接池类 ( BoneCP ) 可以访问大量监控信息。这已注册为托管 bean,因此如果您使用 jconsole 或其他一些监视工具,您应该获得此信息的详细视图,例如:

BoneCP MBean 截图

如果需要,您可以从using获取BoneCP实例:BoneCPDataSourceBoneCPDataSource#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;
}
于 2012-08-21T12:40:25.313 回答