Kami perlu memastikan bahwa hanya satu salinan dari prosedur tertentu yang berjalan di Oracle. Jika sudah berjalan dan pengguna mencoba untuk membuka yang lain, maka itu harus kesalahan.
Apa metode terbaik untuk melakukan ini?
oracle
oracle-11g-r2
locking
plsql
rfusca
sumber
sumber
Ketika klien saya memiliki permintaan yang memiliki logika bisnis unik seperti ini, saya mencoba membalikkan pertanyaan dan menanyakan mengapa ini diperlukan.
Cara terbaik untuk memastikan hanya satu salinan yang berjalan tidak membiarkan pengguna menjalankan prosedur sama sekali. Jika prosedur ini sangat istimewa maka penggunaannya harus dibatasi untuk dba / pengembang.
Cara lain adalah dengan hanya menjalankan prosedur ini sebagai pekerjaan. Tambahkan tanda centang pada prosedur untuk melihat apakah ada pekerjaan yang memanggil ini sedang berjalan. Jika kemudian berhenti diproses lebih lanjut dan catat kejadiannya.
sumber