Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

c3p0 bị treo trên getConnection khi có lỗi mạng

Tôi gặp phải vấn đề tương tự. Trong trường hợp của tôi, nguyên nhân là do trình điều khiển JDBC không được thiết lập để hết thời gian chờ khi lỗi ổ cắm. Tôi đã thực hiện các bổ sung sau vào C3P0 ComboPooledDataSource của mình cấu hình:

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);
//--------------------------------------------------------------------------------------

...

Các thuộc tính trình điều khiển Oracle được áp dụng khi C3P0 tạo Connection sự vật. Đặc biệt, hai thuộc tính này sẽ gây ra một ngoại lệ nếu kết nối ổ cắm không hoạt động trong hơn 30 giây.

Nếu bạn không kết nối với cơ sở dữ liệu Oracle, có các thuộc tính tương tự cho các trình điều khiển JDBC khác cho các nhà cung cấp cơ sở dữ liệu khác. Một số trong số chúng được hiển thị gần cuối trang này .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để gọi một proc được lưu trữ từ bao phấn và sửa đổi con trỏ được trả về?

  2. Lỗi kích hoạt ORA-04092 ORA-04088

  3. Python 3.3 - Kết nối với cơ sở dữ liệu Oracle

  4. Nhận danh sách các số ở giữa hai cột bằng khóa

  5. Những điều bạn phải biết về Bảng FND_LOBS trong Ứng dụng Oracle