Även om du kan använda det gamla "välj 1 från dubbel"-tricket, är nackdelen med detta att det skickar en extra fråga varje gång du lånar en anslutning från poolen. För stora volymer är detta slöseri.
JBoss tillhandahåller en speciell anslutningsvalidator som ska användas för Oracle:
<valid-connection-checker-class-name>
org.jboss.resource.adapter.jdbc.vendor.OracleValidConnectionChecker
</valid-connection-checker-class-name>
Detta använder den proprietära ping()-metoden på Oracle JDBC Connection-klassen och använder drivrutinens underliggande nätverkskod för att avgöra om anslutningen fortfarande är vid liv.
Det är dock fortfarande slösaktigt att köra detta varje gång en anslutning lånas, så du kanske vill använda funktionen där en bakgrundstråd kontrollerar anslutningarna i poolen och tyst slänger de döda. Detta är mycket mer effektivt, men betyder att om anslutningarna gör försvinner, alla försök att använda dem innan bakgrundstråden körs kommer att misslyckas.
Se wiki-dokumenten för hur du konfigurerar bakgrundskontrollen (leta efter background-validation-millis
).