2011-11-23 14 views
8

necesito una visión sobre el seguimiento de la agrupación de conexiones en mi aplicación web.
Las especificaciones técnicas sobre la aplicación se mencionan a continuación:Connection Pool Monitoring

  1. Application Server - servidor de aplicaciones JBoss
  2. base de datos - Oracle 10g
  3. back-end - Hibernate

Necesito saber que ¿Cuáles son las diferentes maneras de monitorear el grupo de conexiones y cómo podemos hacer eso? Ya sea a través de Hibernate o a través de JBoss o de cualquier otra manera? Por favor sugiérame la forma correcta de hacerlo.

Respuesta

3

esto podría no ser lo que quieres. Pero, ¿qué estás usando para la piscina de todos modos? Si usted no ha decidido, echa un vistazo a C3PO, proporciona JMX expuesto atributos para el control de

9

Para una aplicación Java del lado del servidor típico, uno de la forma más preferente de monitoreo es a través del JMX. La mayor parte de la aplicación (incluyendo conjuntos de conexiones) ofrecen un defecto JMX frijol (llamado MBeans o frijoles administrados) que puede ser utilizado para el monitoreo. Un grupo de conexión (por ejemplo C3P0) crea un MBean se une con el servidor subyacente disponibles JMX (que es allí en casi todo el servidor de aplicaciones que incluye Tomcat, JBoss)

Este MBean contendrá toda la información sobre la conexión piscina. Usted ha mencionado que está utilizando el servidor de JBoss. En la consola de administración web ofrecido por Jboss, no debería haber una disposición para ver todos los MBeans (incluyendo el MBean de agrupación de conexiones desplegado).

Otra manera de controlar es a pesar de JConsole utilidad que viene con Java. La misma JConsole también se puede usar en monitor the JBoss AS.

+0

Cómo usar JConsole para supervisar el conjunto de DBCP. Estoy perdido !!Cualquier ayuda o guía para señalarme en la dirección correcta. Estoy usando java 5 y Tomcat 5. – Mubasher

+1

DBCP no es compatible con JMX fuera de la caja. Pero hay forma de hacer eso. Mira este enlace. http://www.nurkiewicz.com/2011/12/enabling-jmx-in-hibernate-ehcache-qurtz.html – Santosh

+0

Parece más exacto decir que un módulo (o clase) de una aplicación proporcionará un MBean predeterminado. ..no hay un MBean para la aplicación. Habría múltiples ¿verdad? Y cada módulo proporcionaría (potencialmente) un MBean que se una al Servidor JMX. –

3

FlexyPool es un proxy fuente de datos que ofrece un mejor control y conmutación por error para agrupaciones de conexiones casi todos conocidos:

  • Apache DBCP
  • Apache DBCP2
  • C3P0
  • BoneCP
  • HikariCP
  • Tomcat CP
  • Vibur DBCP
  • Bitronix Transaction Manager
  • atomikos TransactionsEssentials

Permite monitorizar las siguientes mediciones:

  • conexiones simultáneas histograma
  • concurrentes solicitudes de conexión de histograma
  • conexión de origen de datos de adquisición histograma de tiempo
  • conexión tiempo de concesión de histograma
  • máximo tamaño de la piscina histograma
  • de conexión de tiempo total de adquisición de histograma
  • desbordamiento tamaño de la piscina histograma
  • reintentos intentos histograma

De esta manera se puede ajustar el tamaño de la piscina para que se puede acomodar tantos nodos de aplicación como sea posible mientras lo protege de algunos unexpected traffic spikes.

0

He encontrado que cuando se utiliza JConsole como se sugiere en otras respuestas para conectarse a JBoss (5.2) a través de JMX los MBeans para la agrupación de conexiones no eran visibles.

En lugar de eso utiliza el construido en JMXConsole normalmente disponible en: http://localhost:8080/jmx-console - puede que tenga que cambiar el nombre de host y el puerto para su despliegue.

Si esto se está ejecutando, verá un nombre de usuario y contraseña.
El nombre de usuario/Contraseña por defecto es: admin/admin
he encontrado la primera vez que probé esto, no pasó nada, tuve que actualizar el archivo: server/default/conf/los apoyos/JMX consola usuarios. propiedades y elimine la 2ª línea:

# A sample users.properties file for use with the UsersRolesLoginModule 
admin=admin 

Una vez hecho esto pude entrar. En ese punto en el filtro ObjectName entré: jboss.jca: * entonces he seleccionado en el enlace correspondiente grupo de conexión por ejemplo: name = DefaultDS, servicio = ManagedConnectionPool que muestra toda la información de agrupación de conexiones, por ejemplo, AvailableConnectionCount, InUseConnectionCount etc.