Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

java.sql.SQLRecoverableException - sambungkan kembali dari jdbc

Tampaknya koneksi terputus oleh beberapa firewall atau aktivitas lain. Kami menghadapi masalah serupa di mana database menghentikan koneksi yang menganggur selama 30 menit.

Untuk Mengatasi masalah tersebut, kami telah menyetel kumpulan basis data dengan menentukan properti berikut

testOnBorrow:-Setting it true will force the pooling provider to run the validation query while handing out the connection to the application.
testWhileIdle:-Setting it true will enable the validation when the connection is sitting idle in the pool.
timeBetweenEvictionRunsMillis:- Setting this property to non-zero will allow the evictor thread to run,which will test the idle connections.

Mereproduksi masalah akan membutuhkan untuk mematikan koneksi di sisi basis data. Kami telah melakukan tes kecil menggunakan mssql di mana kami dapat mengakhiri koneksi menggunakan Alat Server dan kumpulan itu membuat koneksi lagi.

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
    destroy-method="close">
    <property name="driverClassName" value="${myjdbc.driverClassName}" />
    <property name="url" value="${myjdbc.url}" />
    <property name="username" value="${myjdbc.username}" />
    <property name="password" value="${myjdbc.password}" />
    <property name="testOnBorrow" value="true" />
    <property name="testWhileIdle" value="true" />
    <property name="timeBetweenEvictionRunsMillis" value="3000" />
</bean>

Perhatikan waktuBetweenEvictionRunsMillis dalam jutaan.

Konfigurasi di atas akan memeriksa koneksi yang tidak valid dan menghapusnya dari kumpulan jika koneksi tersebut tiba-tiba ditutup oleh database atau firewall.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Mengaktifkan Mode Log Arsip Di Oracle Database 19c

  2. Akankah Oracle mengunci seluruh tabel saat melakukan pernyataan DML atau hanya baris?

  3. ORA-00979 bukan grup dengan ekspresi

  4. Menggunakan Oracle:Bisakah saya menggunakan variabel yang dibuat 'secara dinamis' dalam klausa pivot?

  5. Memanggil PROSEDUR yang tersimpan di Toad