¿Cómo mejor depurar las fugas de connection JDBC en Glassfish v2?

¿Alguien tiene algún buen consejo sobre la debugging de fugas de connection en GlassFish?

Actualmente estoy depurando un server GlassFish que contiene una aplicación que tiene memory leaks esporádicamente, eventualmente conduce a tener que reiniciar el server para liberar la piscina (purga de la piscina sólo está disponible en Glassfish 3 me dijeron).

Cuando depuro este tipo de errores hoy miro a través del logging del server alnetworkingedor del time cuando puedo ver que nuestro monitoreo ha informado de que la piscina ha crecido y ver si hay algún error interesante o similar alnetworkingedor de este punto.

¿Alguien tiene alguna forma mejor de depurar problemas como estos?

Todas las aplicaciones son EJB / EAR que utilizan la anotación para inyectar bases de datos. Las aplicaciones a continuación, utilizar el origen de datos para get una connection. Por supuesto, cada connection se supone que debe ser cerrada por los progtwigdores, pero supongo que alguien se ha olvidado en un caso aquí.

2 Solutions collect form web for “¿Cómo mejor depurar las fugas de connection JDBC en Glassfish v2?”

Creo que una buena manera de localizar memory leaks es adjuntar VisualVM al process Java en ejecución (en este caso una instancia de GF) y mirar el tree de reference de volcados de montón.

Otra manera que viene a mi mente, pero requiere un poco de trabajo, sería escribir su propia connection / envoltura de la piscina de la connection y registrar un rastro de la stack cada vez que la connection se toma de la piscina así como cerrada.

Puede configurar las opciones de "Recuperación de fugas de connection" para las agrupaciones de conexiones y puede get trazas de stack completas indicando las causas raíz en un logging de server.

Consulte la página de documentation – http://docs.oracle.com/cd/E19879-01/820-4335/geveg/index.html .

  • la aplicación web no puede conectarse a la database
  • Configuración de jdbc-pool (tomcat 7)
  • ¿Hay una manera de supervisar / dev / random?
  • No se puede conseguir que Glassfish 3.1.2.2 utilice otra cosa que no sea jdbc / __ TimerService para el service Timer de EJB
  • MySQL Tablas Federadas Tablas Escapadas
  • Intermitente java.sql.SQLException: ORA-03120: rutina two-taskconversion: exception de desbordamiento integer
  • ¿Cuáles son los aspectos negativos de establecer un alto valor de wait_timeout en MySQL?
  • Herramienta basada en la command-line / NCurses para explorar la database JDBC
  • ¿Cuál es el mejor URI de connection JDBC para las instancias de AWS RDS?
  • ¿Una instancia de SQL Server permite conexiones tanto seguras como no seguras al mismo time?
  • ¿Cómo utilizar JDBC Connection Pooling sin JNDI DataSource? (en Apache Tomcat)
  • El linux y los temas del servidor de Windows, como ubuntu, centos, apache, nginx, debian y consejos de red.