Oracle İpucu - ORA-...
 
Bildirimler
Hepsini Temizle

[Çözüldü] Oracle İpucu - ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired  

  RSS
Buğra PARLAYAN
(@bugraparlayan)
Saygın Üye Forum Yöneticisi

Değerli Dostlar,

Oracle Veri tabanında bir tabloda değişiklik yapmak istediğinizde başka bir kullanıcı yine bu tabloda DML işlemi gerçekleştiriyorsa veri tabanı bize "ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired " hatasını döndürür.

İlgili tabloyu kimin kilitlediğini öğrenmek isterseniz aşağıdaki script işinizi görecektir.

select
   c.owner,
   c.object_name,
   c.object_type,
   b.sid,
   b.serial#,
   b.status,
   b.osuser,
   b.machine
from
   v$locked_object a,
   v$session b,
   dba_objects c
where
   b.sid = a.session_id
and
   a.object_id = c.object_id;

Ayrıca bu kullanıcı kill etmek isterseniz ,

ALTER SYSTEM KILL SESSION 'sid,serial#';

Kimi zaman da şöyle bir senaryo olabilir, Örneğin yine bir DML ile tablo 2-3 saniye kadar kilitlenmiştir ve siz bu aralığa denk gelmişinizdir. Çok ufakta olsa bu ihtimal karşımıza çıkarsa ddl_lock_timeout parametresi ile bu işleme zaman aşımı uygulatabilirsiniz.  " alter system set ddl_lock_timeout=10 ; " komutu böyle bir durumda 10 saniye bekleyerek işlem bitmemişse hatayı döndürecektir.

 

 

Alıntı
Gönderildi : 06/12/2019 09:41
Hakan Uzuner
(@hakanuzuner)
Kıdemli Üye Yönetici

Eline sağlık Buğra

Danışman - ITSTACK Bilgi Sistemleri
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************

CevapAlıntı
Gönderildi : 06/12/2019 21:24
Paylaş: