Saya memiliki skrip untuk memperbarui beberapa fitur pada basis data setiap malam (hanya untuk menyalin dan mengganti beberapa fitur). Fitur ini "hanya-baca". Masalah saya adalah saya tidak dapat menghindari bahwa fitur ini dibuka oleh pengguna, dan skrip saya dapat menampilkan kesalahan berikut:
ExecuteError: ERROR 000464: Cannot get exclusive schema lock.
Either being edited or in use by another application.
Bisakah saya memaksa skrip phyton, melalui beberapa perintah, menyalin file, bahkan dibuka oleh beberapa pengguna? Bisakah saya menghapus semua koneksi di database saya sebelum menjalankan skrip?
Jawaban:
Saya kira Anda bekerja dengan SDE.
Anda harus mematikan semua koneksi menggunakan
sdemon
alat baris perintah.sdemon -o kill
secara lokal untuk mematikan semua koneksi. Lihatlah topik bantuan ini . Saya tidak yakin apakah itu membunuh koneksi langsung pada 10.0. Saya ingat bahwa itu semacam masalah pada 9.3 dan pasti mematikan koneksi langsung pada 10.1.sumber
sdemon -o kill
tidak cukup. Anda harus melewati parameter tambahan, lihat tautan yang disediakan .Kemungkinan lain karena Anda mengatakan Anda menggunakan SDE adalah menghapus kunci bersama dari
layer_locks
dantable_locks
tabel menggunakan SQL, PL / SQL, T-SQL, dll. Mis:Saya pasti tidak akan merekomendasikan pendekatan ini pada geodatabase versi. Lihat juga: Bagaimana berbagai mekanisme kunci diterapkan di ArcSDE dan geodatabase?
sumber
Jika preferensi adalah untuk menghapus kunci pengguna SDE tertentu, ada cara untuk melakukan ini melalui arcpy . Saya lebih suka pendekatan ini karena tidak mengharuskan Anda melompat ke server database untuk melakukan perintah sde. Saya dapat memutuskan kunci yang tidak diinginkan, kemudian melakukan pembaruan data semua dalam satu skrip / proses.
Contoh dari tautan di atas sangat bermanfaat:
sumber
Saya tidak terlalu terbiasa dengan postgresql tapi saya pikir posting ini dapat membawa Anda ke arah yang benar:
/programming/5108876/kill-a-postgresql-session-connection
sumber