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

Kegagalan rollback transaksi JDBC pada koneksi tertutup

Tidak (kecuali ada bug serius di Oracle atau kecuali kita berbicara tentang transaksi terdistribusi).

Jika koneksi antara klien dan database terputus, kemungkinan database tidak pernah menerima permintaan untuk melakukan transaksi. Dalam hal ini, setelah database menemukan bahwa klien sudah mati (yang mungkin memakan waktu lama), transaksi akan dibatalkan. Jika koneksi terputus, ada kemungkinan database berhasil melakukan tetapi klien tidak pernah mendapat pemberitahuan bahwa komit berhasil.

Jika kita berbicara tentang transaksi terdistribusi, ada kemungkinan bahwa transaksi tersebut tetap diragukan pada satu (atau lebih) node terdistribusi. Jika demikian, transaksi akan muncul di dba_2pc_pending pada node di mana transaksi masih tertunda. Tapi itu tidak akan dilakukan sebagian pada node mana pun.

Jika saya harus menebak, jika Anda melihat sesuatu yang "berkomitmen sebagian", saya berani bertaruh bahwa masalahnya adalah batas transaksi Anda tidak benar dan Anda memiliki beberapa kode di suatu tempat yang melakukan (secara implisit atau eksplisit) di tempat yang tidak Anda duga.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL bergabung dengan subkueri

  2. PILIH kueri dengan karakter Literal (Colon, Semi-colon) di Oracle

  3. Bulan antara tidak mengembalikan nilai yang benar

  4. Cara memilih rentang dalam rentang catatan di oracle

  5. Presisi JOOQ Oracle Number dan pemetaan angka java