Meskipun Anda dapat menggunakan trik lama "pilih 1 dari ganda", kelemahannya adalah ia mengeluarkan kueri tambahan setiap kali Anda meminjam koneksi dari kumpulan. Untuk volume tinggi, ini boros.
JBoss menyediakan validator koneksi khusus yang harus digunakan untuk Oracle:
<valid-connection-checker-class-name>
org.jboss.resource.adapter.jdbc.vendor.OracleValidConnectionChecker
</valid-connection-checker-class-name>
Ini menggunakan metode ping() berpemilik pada kelas Oracle JDBC Connection, dan menggunakan kode jaringan yang mendasari driver untuk menentukan apakah koneksi masih hidup.
Namun, masih sia-sia untuk menjalankan ini setiap kali koneksi dipinjam, jadi Anda mungkin ingin menggunakan fasilitas di mana utas latar belakang memeriksa koneksi di kumpulan, dan diam-diam membuang yang mati. Ini jauh lebih efisien, tetapi berarti jika koneksi melakukan mati, setiap upaya untuk menggunakannya sebelum utas latar belakang menjalankan pemeriksaannya akan gagal.
Lihat dokumen wiki untuk cara mengonfigurasi pemeriksaan latar belakang (cari background-validation-millis
).