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