ALTER TABLE TABLO1 ADD ( adi VARCHAR2 (20));
line 1: ORA-00054: kaynak meşgul ve NOWAIT ile elde etme belirlendi veya zaman aşımı süresi doldu
Sorunu aşmanın farklı yolları var. Tabloyu kullanan sessionı bulup kill edebilirsiniz.
col object format a30 col username format a20 col sidserial format a12 set linesize 200 SELECT a.SID||','||s.serial# SIDserial, s.last_call_et, s.status,s.sql_hash_value, s.username, s.sql_hash_value, a.owner || '.' || a.OBJECT OBJECT, s.lockwait,s.osuser FROM gv$session s, gv$access a WHERE s.SID = a.SID and s.inst_id = a.inst_id AND a.owner != 'SYS' --and s.status ='ACTIVE' AND UPPER (SUBSTR (a.OBJECT, 1, 2)) != 'V$' AND a.OBJECT = upper(trim('&object_name'));
Çok yoğun kullanılan ama sürekli küçük transactionlar olan bir tablo ise
belirli bir zaman bekleyip yeniden deneyen bir prosedür yazabilirsiniz.(0.1 sn gibi)
11g ile gelen bir parametre ile hata almadan önce bekleyebileceğimiz süreyi session bazında set edebiliyoruz.
alter session set DDL_LOCK_TIMEOUT=60;
böylece hata almadan önce 60sn beklemiş olacaksınız.
oracle reference linki : http://docs.oracle.com/cd/B28359_01/server.111/b28320/initparams068.htm
alter session set DDL_LOCK_TIMEOUT=60;
böylece hata almadan önce 60sn beklemiş olacaksınız.
oracle reference linki : http://docs.oracle.com/cd/B28359_01/server.111/b28320/initparams068.htm
adamsın vesselam :)
YanıtlaSil