| Oracle FAQ | Your Portal to the Oracle Knowledge Grid | |
Home -> Community -> Usenet -> c.d.o.server -> Re: Oracle 7.3 LOCK Script
On Tue, 2 May 2000 10:23:00 -0500, "Jose A. Silva" <jsilvae_at_yahoo.com> wrote:
>Does anyone have a script to show the current lockings in the database, and
>who is locking who ?
>Thanks.
>
>
this script works for 7.x databases:
drop table lock_holders;
create table LOCK_HOLDERS
(
waiting_session number,
holding_session number,
lock_type varchar2(17), mode_held varchar2(10), mode_requested varchar2(10), lock_id1 varchar2(10), lock_id2 varchar2(10)
drop table dba_locks_temp;
create table dba_locks_temp as select * from sys.dba_lock;
insert into lock_holders
select w.session_id,
h.session_id,
w.lock_type,
h.mode_held,
w.mode_requested,
w.lock_id1,
w.lock_id2
from dba_locks_temp w, dba_locks_temp h
where h.mode_held != 'None'
and h.mode_held != 'Null'
and w.mode_requested != 'None'
and w.lock_type = h.lock_type
and w.lock_id1 = h.lock_id1
and w.lock_id2 = h.lock_id2;
select lpad(' ',3*(level-1)) || waiting_session waiting_session,
lock_type, mode_requested, mode_held, lock_id1, lock_id2
select l.holding_session, s.serial#, s.username, s.osuser
from lock_holders l,v$session s
where not holding_session is null
and s.sid = l.holding_session;
select 'alter system kill session
'''||l.holding_session||','||s.serial#||''';'
from lock_holders l,v$session s
where not holding_session is null
and s.sid = l.holding_session;
drop table lock_holders;
Received on Tue May 02 2000 - 00:00:00 CDT
![]() |
![]() |