Forum
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.
Oracle ACE Associate - Türkiye Hayat & Emeklilik
****************************************************************
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.
*****************************************************************
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.
*****************************************************************