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

Oracle.DataAccess.Client.OracleException ORA-03135:kết nối bị mất liên lạc

Điều này xảy ra vì mã của bạn yêu cầu kết nối từ Nhóm kết nối Oracle và nhóm kết nối trả về một kết nối đã ngắt / cũ cho Oracle DB. ODP.NET không tự kiểm tra trạng thái kết nối của kết nối được gửi đến máy khách.

Vì vậy, để an toàn, bạn kiểm tra connection status == Open cho kết nối nhận được từ nhóm khi bạn thực hiện một Kết nối.Open ()

HOẶC

hãy để ODP.NET kiểm tra giúp bạn bằng cách đặt Validate Connection = true trong chuỗi kết nối của bạn trong web.config.

Cả hai phương pháp này đều có tác động đến hiệu suất vì chúng kiểm tra trạng thái kết nối mỗi khi bạn cần kết nối với cơ sở dữ liệu.

Tùy chọn thứ ba mà tôi sử dụng là sử dụng các ngoại lệ. Đầu tiên, hãy lạc quan và sử dụng kết nối whateven được trả về từ nhóm kết nối. Nếu bạn nhận được ORA - 3135 thì hãy yêu cầu một kết nối mới và thực hiện lại truy vấn của bạn giống như một vòng lặp while. Trong trường hợp tốt nhất, bạn có thể lấy kết nối đầu tiên của mình là hợp lệ và truy vấn của bạn sẽ thực thi. Trong trường hợp xấu nhất, tất cả các kết nối trong nhóm của bạn đều cũ, trong trường hợp đó, mã sẽ được thực thi N lần (trong đó N là kích thước nhóm kết nối).



  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 in ra con trỏ tham chiếu được trả về bởi một thủ tục được lưu trữ

  2. Tìm độ dài của hàng dài nhất trong một cột trong oracle

  3. ORA-01830:hình ảnh định dạng ngày kết thúc trước khi chuyển đổi toàn bộ chuỗi đầu vào / Chọn tổng trong đó truy vấn ngày

  4. SQLT trong 12c không thể thu thập số liệu thống kê

  5. Chọn Giá trị từ Biến / Mảng Bảng Oracle?