Si bien puede usar el viejo truco "seleccionar 1 de dual", la desventaja de esto es que emite una consulta adicional cada vez que toma prestada una conexión del grupo. Para grandes volúmenes, esto es un desperdicio.
JBoss proporciona un validador de conexión especial que debe usarse para Oracle:
<valid-connection-checker-class-name>
org.jboss.resource.adapter.jdbc.vendor.OracleValidConnectionChecker
</valid-connection-checker-class-name>
Esto hace uso del método ping() patentado en la clase Oracle JDBC Connection y usa el código de red subyacente del controlador para determinar si la conexión aún está activa.
Sin embargo, aún es un desperdicio ejecutar esto cada vez que se toma prestada una conexión, por lo que es posible que desee utilizar la instalación en la que un subproceso en segundo plano verifica las conexiones en el grupo y descarta silenciosamente las muertas. Esto es mucho más eficiente, pero significa que si las conexiones hacen mueren, cualquier intento de usarlos antes de que el subproceso de fondo ejecute su verificación fallará.
Consulte los documentos wiki para saber cómo configurar la verificación de antecedentes (busque background-validation-millis
).