sql >> Database teknologi >  >> RDS >> Oracle

Er der nogen måde at få JBoss-forbindelsespuljen til at oprette forbindelse til Oracle igen, når forbindelserne går dårlige?

Mens du kan bruge det gamle "vælg 1 fra dual" trick, er ulempen ved dette, at det udsender en ekstra forespørgsel hver gang du låner en forbindelse fra poolen. For store mængder er dette spild.

JBoss leverer en speciel forbindelsesvalidator, som skal bruges til Oracle:

<valid-connection-checker-class-name>
    org.jboss.resource.adapter.jdbc.vendor.OracleValidConnectionChecker
</valid-connection-checker-class-name>

Dette gør brug af den proprietære ping()-metode på Oracle JDBC Connection-klassen og bruger driverens underliggende netværkskode til at bestemme, om forbindelsen stadig er i live.

Det er dog stadig spild at køre dette hver gang en forbindelse er lånt, så du vil måske bruge faciliteten, hvor en baggrundstråd tjekker forbindelserne i poolen og kasserer de døde. Dette er meget mere effektivt, men betyder, at hvis forbindelserne gør går død, vil ethvert forsøg på at bruge dem, før baggrundstråden kører sin kontrol mislykkes.

Se wiki-dokumenterne for, hvordan du konfigurerer baggrundskontrollen (se efter background-validation-millis ).



  1. Match en sætning, der ender på et præfiks, med fuldtekstsøgning

  2. GATHER_PLAN_STATISTICS genererer ikke grundlæggende planstatistik

  3. Rækkemønstergenkendelse i SQL

  4. Oracle sql:rækkefølge efter og distinkt klausul