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

c3p0 hang di getConnection ketika ada kegagalan jaringan

Saya mengalami masalah yang sama. Dalam kasus saya, itu disebabkan oleh driver JDBC yang tidak disetel ke batas waktu pada kegagalan soket. Saya membuat tambahan berikut pada ComboPooledDataSource C3P0 saya konfigurasi:

cpds = new ComboPooledDataSource();
...

//--------------------------------------------------------------------------------------
// NOTE: Once you decide to use cpds.setProperties() to set some connection properties,
//       all properties must be set, including user/password, otherwise an exception
//       will be thrown
Properties prop = new Properties();
prop.setProperty("oracle.net.CONNECT_TIMEOUT",
    Integer.toString(JDBC_CONNECTION_TIMEOUT_IN_MILLISECONDS));
prop.setProperty("oracle.jdbc.ReadTimeout",
    Integer.toString(JDBC_SOCKET_TIMEOUT_IN_MILLISECONDS));
prop.setProperty("user", username);
prop.setProperty("password", password);
cpds.setProperties(prop);
//--------------------------------------------------------------------------------------

...

Properti driver Oracle diterapkan ketika C3P0 membuat Connection obyek. Kedua properti ini secara khusus akan menyebabkan pengecualian dilempar jika koneksi soket tidak aktif selama lebih dari 30 detik.

Jika Anda tidak terhubung ke database Oracle, ada properti serupa untuk driver JDBC lain untuk vendor database lainnya. Beberapa dari mereka ditampilkan di dekat bagian bawah halaman ini .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana menemukan tabel di mana statistik dikunci

  2. perbedaan kriteria pencarian antara Suka vs Berisi () di Oracle

  3. melacak pernyataan oracle

  4. Menggunakan Pemicu di Oracle untuk Mencatat perubahan ke Tabel

  5. Jalankan Oracle Client dalam mode 32-bit pada mesin 64-bit