Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Czy istnieje sposób na ponowne połączenie puli połączeń JBoss z Oracle, gdy połączenia się zepsują?

Chociaż możesz użyć starej sztuczki „wybierz 1 z podwójnych”, wadą tego jest to, że generuje dodatkowe zapytanie za każdym razem, gdy pożyczasz połączenie z puli. W przypadku dużych ilości jest to marnotrawstwo.

JBoss zapewnia specjalny walidator połączeń, który powinien być używany dla Oracle:

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

Wykorzystuje to zastrzeżoną metodę ping() w klasie Oracle JDBC Connection oraz bazowy kod sieciowy sterownika w celu określenia, czy połączenie jest nadal aktywne.

Jednak uruchamianie tego za każdym razem, gdy połączenie jest pożyczane, nadal jest marnotrawstwem, więc możesz użyć funkcji, w której wątek w tle sprawdza połączenia w puli i po cichu odrzuca te martwe. Jest to znacznie wydajniejsze, ale oznacza, że ​​jeśli połączenia tak zgasną, każda próba użycia ich przed uruchomieniem wątku w tle zakończy się niepowodzeniem.

Zobacz dokumentację wiki, aby dowiedzieć się, jak skonfigurować sprawdzanie w tle (poszukaj background-validation-millis ).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PL/SQL, jak uciec od pojedynczego cudzysłowu w ciągu?

  2. Błąd zamknięcia Oracle ORA-01033

  3. Lista zadań

  4. Hierarchiczne pytanie SQL

  5. Podział chmury Oracle — koszty hostingu bazy danych w OCI