2012-08-06 20 views
8

Estamos intentando movernos al pool de conexión de bonecp desde c3p0. usamos Hibernate como la herramienta ORM.Monitoreo Bone cp Connection pool

Ahora, ¿hay alguna manera de controlar las conexiones en boncecp, como conocer la conexión máxima disponible y ocupada en la agrupación en un punto determinado de tiempo y si hay conexiones no devueltas al grupo, etc.?

Gracias por la ayuda

Respuesta

7

Una gran cantidad de información de monitoreo es accesible a través de la clase de agrupación de conexiones BoneCP (BoneCP). Esto está registrada como un bean gestionado, por lo que si se utiliza jconsole o alguna otra herramienta de supervisión que debe obtener una vista detallada de esta información, por ejemplo:

BoneCP MBean Screenshot

Si es necesario se puede obtener la instancia BoneCP de un BoneCPDataSource usando 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 ¡Gracias por la edición! – FrVaBe