2012-07-03 16 views
5

Cómo comprobar la base de datos está conectado o no en la APP, cuando la conexión de base de datos está en o aplicación después de desplegado es decir, (Mientras se ejecuta la aplicación)Entradas APP

Respuesta

1

En general toda la implementación JPA utilizan algún pool de conexiones o Pooled Datasource (como C3P0) y estas conexiones agrupa have a configuration que prueba la conectividad de la base de datos antes de adquirir la conexión. Por favor revise su documentación del Pool de Conexión/Fuentes de Datos para esta configuración.

+0

En Mi conexión de base de datos de aplicación se corta, después de dar cualquier solicitud no tiene acción o está en blanco y no se muestra ninguna excepción en mi registro –

+0

¿Quiere decir que está abriendo y cerrando la conexión para cada consulta que inicia en la base de datos? – Santosh

+0

En mi aplicación, cada acción depende de DB. Por lo tanto, debe verificar la conexión para ejecutar la aplicación correctamente. –

4

La forma más fácil es para ejecutar una consulta, tales como

em.createNativeQuery("select 1 from dual").getSingleResult(); 

Normalmente, el/la agrupación de conexiones origen de datos o proveedor JPA proporcionará algún tipo de prueba de conexión o conexión de resolución muertos.

Si está utilizando la agrupación de conexiones de EclipseLink, detectará automáticamente conexiones inactivas y volverá a intentar consultas.

+1

Esto es bueno, pero no funciona para todos los tipos de bases de datos. No funciona para PostgreSQL, por ejemplo. Estoy usando "seleccionar 1" para postgresql. Me pregunto si hay alguna forma unificada que funcione para todas las bases de datos – Ievgen