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

Lỗi khôi phục giao dịch JDBC khi kết nối đã đóng

Không (trừ một lỗi nghiêm trọng trong Oracle hoặc trừ khi chúng ta đang nói về một giao dịch phân tán).

Nếu kết nối giữa máy khách và cơ sở dữ liệu bị mất, có thể cơ sở dữ liệu chưa bao giờ nhận được yêu cầu thực hiện giao dịch. Trong trường hợp đó, một khi cơ sở dữ liệu phát hiện ra rằng máy khách đã chết (có thể mất một thời gian), giao dịch sẽ được khôi phục. Nếu kết nối bị mất, có thể cơ sở dữ liệu cam kết thành công nhưng máy khách không bao giờ nhận được thông báo rằng cam kết đã thành công.

Nếu chúng ta đang nói về một giao dịch phân tán, có thể giao dịch vẫn còn nghi ngờ trên một (hoặc nhiều) nút phân tán. Nếu đúng như vậy, giao dịch sẽ xuất hiện trong dba_2pc_pending trên các nút nơi giao dịch vẫn đang chờ xử lý. Nhưng nó sẽ không được cam kết một phần trên bất kỳ nút nào.

Nếu tôi phải đoán, nếu bạn thấy điều gì đó được "cam kết một phần", tôi cá rằng vấn đề là ranh giới giao dịch của bạn không chính xác và bạn có một số mã ở đâu đó đang cam kết (ngầm hoặc rõ ràng) nơi bạn không mong đợ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. Xuất cơ sở dữ liệu oracle sang tệp sql?

  2. Tại sao Oracle 9i xử lý một chuỗi rỗng là NULL?

  3. Loại trừ giá trị của một bản ghi trong một nhóm nếu có một bản ghi khác

  4. Oracle Chèn qua Chọn từ nhiều bảng trong đó một bảng có thể không có hàng

  5. Không thể biên dịch GI 12.1.0.2 và lỗi phân đoạn