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

Apakah Tomcat menggunakan versi cache dari modul pl/sql?

Masalah ini dengan kumpulan koneksi JDBC dan merupakan masalah yang Anda dapatkan dengan semua server aplikasi menggunakan kumpulan koneksi JDBC, bukan hanya Tomcat. Kumpulan koneksi akan membuat sejumlah koneksi tetap terbuka di kumpulan siap untuk permintaan berikutnya. Jika paket PL/SQL telah direferensikan oleh koneksi dan dikompilasi ulang maka panggilan berikutnya ke paket tersebut akan memunculkan kesalahan ORA-06508. Ini akan memengaruhi paket di mana pun di tumpukan panggilan - bukan hanya paket yang Anda panggil secara langsung.

Untuk mengatasi ini beberapa server aplikasi (seperti Weblogic) memiliki metode pengujian yang dipanggil secara berkala. Jika tes gagal, koneksi dihapus dari kumpulan atau disegarkan dengan cara tertentu. Saya tidak yakin mekanisme apa yang dimiliki Tomcat.

Cara lain untuk mengatasinya adalah dengan memanggil dbms_session.reset_package sebagai panggilan metode pertama dalam panggilan JDBC Anda. Ini akan menghapus status paket dari sesi Anda. Pendekatan ini tidak disarankan karena memiliki overhead kinerja ditambah variabel cakupan paket apa pun diatur ulang sehingga blok inisialisasi paket perlu dipanggil lagi - hit kinerja lainnya.

Jika Anda mengalami masalah dan tidak memiliki cara untuk menghentikan koneksi yang buruk, Anda harus menyetel ulang seluruh kumpulan koneksi karena koneksi apa pun di kumpulan akan mengalami pengecualian yang sama.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara menulis kueri SQL yang menggabungkan beberapa baris dari tabel input menjadi satu baris di tabel output

  2. php oci_bind_by_name mengapung ke numerik

  3. Hapus dinamis di Oracle

  4. Pilih subquery yang mengembalikan beberapa baris sebagai string (satu kolom) dalam tabel (Oracle SQL)

  5. Pisahkan kolom CLOB berdasarkan baris baru - Oracle SQL