Edit / Pendahuluan: Pertanyaan ini telah dimigrasikan dari SO karena saya sangat tertarik dengan pertanyaan tentang timeout pada permintaan tautan DB. Solusi yang disediakan dari SO agak OK, tapi saya benar-benar tertarik dengan pertanyaan itu sendiri.
Motivasi:
Saya memiliki satu kueri yang menjalankan "selamanya" (lebih dari 2 hari, sampai saya mengakhiri sesi), yang menggunakan tautan basis data. Masalahnya tampaknya bahwa basis data jauh menjadi tidak tersedia dan untuk beberapa alasan belum diketahui tidak ORA-02068
ada dinaikkan (tidak akan dibahas di sini) dan permintaan hanya menunggu dan menunggu.
(Permintaan dikeluarkan oleh pekerjaan dbms_scheduler, yang menjalankan prosedur dalam paket PL / SQL. Akibatnya, pekerjaan itu juga macet. Tapi itu bukan minat khusus untuk inti dari pertanyaan ini)
Saya telah mensimulasikan situasi ini dengan meletakkan salah satu DB pengujian saya dalam mode diam dan menanyakannya melalui tautan basis data. Seperti yang telah diantisipasi, permintaan menunggu sampai dibatalkan secara manual atau DB jarak jauh tidak diumumkan.
Pertanyaan:
Saya tidak memiliki kontrol atas perilaku dan up-time basis data jauh, jadi saya sedang mencari beberapa kemungkinan untuk menetapkan batas waktu pada permintaan yang menggunakan tautan basis data.
Saya sudah melihat profil ( CPU_PER_CALL
dll), sqlnet.ora
parameter, menambahkan parameter penamaan lokal langsung ke string koneksi (seperti menambahkan (connect_timeout=10)
ke definisi tautan basis data), menjalankan perintah dengan ... for update wait 1
, tetapi mereka bekerja untuk sesi sibuk atau idle, tetapi tidak untuk sesi menunggu.
Jadi saya sedang mencari beberapa opsi di sisi "lokal" dari tautan basis data, yang mana yang menetapkan batas waktu untuk permintaan atas tautan basis data.
Beberapa solusi suka alter session set xyz
atau select ... from a@b "wait 100" --(yes, I know this syntax doesn't exist)
akan dihargai, karena saya tidak punya hak DBA pada DB tertentu ini.
Saya saat ini menggunakan 10gR2 tetapi meningkatkan ke 11gR2 dalam beberapa minggu, jadi ide untuk versi ini akan berguna.