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

ORA-01000:kursor terbuka maksimum terlampaui saat menggunakan Spring SimpleJDBCCall

Setelah banyak pengujian, kami telah memperbaiki masalah ini. Ini adalah kombinasi dari bagaimana kami menggunakan kerangka pegas dan klien oracle dan oracle DB. Kami sedang membuat SimpleJDBCCalls baru yang menggunakan panggilan metadata klien JDBC Oracle yang dikembalikan sebagai kursor yang tidak ditutup dan dibersihkan. Saya menganggap ini sebagai bug dalam kerangka Spring JDBC dalam cara memanggil metadata tetapi kemudian tidak menutup kursor. Spring harus menyalin data meta dari kursor dan menutupnya dengan benar. Saya tidak repot-repot membuka masalah jira dengan pegas karena jika Anda menggunakan praktik terbaik, bug tidak ditampilkan.

Mengubah OPEN_CURSORS atau parameter lainnya adalah cara yang salah untuk memperbaiki masalah ini dan hanya menunda kemunculannya.

Kami mengatasinya/memperbaikinya dengan memindahkan SimpleJDBCCall ke DAO tunggal sehingga hanya ada satu kursor yang terbuka untuk setiap proc Oracle yang kami panggil. Kursor ini terbuka untuk masa pakai aplikasi - yang saya anggap sebagai bug. Selama OPEN_CURSORS lebih besar dari jumlah objek SimpleJDBCCall maka tidak akan ada kerepotan.



  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 kita bisa mengetahui bahwa kolom di tabel Oracle saya sedang diisi/diperbarui oleh pemicu tabel lain?

  2. Bagaimana saya bisa memasukkan ke dalam kolom BLOB dari pernyataan insert di sqldeveloper?

  3. Ubah tabel, tambahkan kolom / ORA-00984:kolom tidak diizinkan di sini PLSQL

  4. Bagaimana cara mengatur variabel ORACLE_HOME dengan benar di Ubuntu 9.x?

  5. Bagaimana cara melihat Explain Plan di pengembang Oracle Sql?