Loc Resolve
SQL> grant connect,resource to robin identified by robin;
Grant succeeded.
SQL> grant connect,resource to alin identified by alin;
Grant succeeded.
SQL> grant select,insert,update,all on test1 to robin,alin;
Grant succeeded.
SQL> create table test1(name varchar2(30),id number);
Table created.
SQL> insert into test1 values('a',1);
1 row created.
SQL> insert into test1 values('b',2);
1 row created.
SQL> commit;
Commit complete.
SQL> select * from sys.test1;
no rows selected
From Robin session:
SQL> conn robin/robin@dba50
Connected.
SQL> select * from sys.test1;
NAME ID
------------------------------ ----------
a 1
b 2
SQL> update sys.test1 set name='T' where id =1;
1 row updated.
From Alin Session:
SQL> conn alin/alin@dba50
Connected.
SQL> select * from sys.test1;
NAME ID
------------------------------ ----------
a 1
b 2
SQL> update sys.test1 set name='U' where id=1;
From SYS:
SQL> select sid,block from v$lock;
SID BLOCK
---------- ----------
2 0
2 0
2 0
2 0
2 0
2 0
2 0
2 0
2 0
2 0
2 0
SID BLOCK
---------- ----------
3 0
4 0
5 0
12 1
12 0
16 0
16 0
18 rows selected.
SQL> select username from v$session where sid=12;
USERNAME
------------------------------
ROBIN
SQL> select waiting_session,holding_session from dba_waiters;
WAITING_SESSION HOLDING_SESSION
--------------- --------------------------------------------
16 12
SQL> select username from v$session where sid=16;
USERNAME
------------------------------
ALIN
SQL> select * from dba_blockers;
HOLDING_SESSION
---------------
12
[NOTE]- dba_waiters and dba-blockers if not exists then run C:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\catblock.sql
SQL> select object_id from v$locked_object;
OBJECT_ID
----------
30577
30577
SQL> select object_id,object_name
from dba_objects
where object_id=30577;
OBJECT_ID OBJECT_NAME
------------------------------------------------------------------------------------------------------------
30577 TEST1
SQL> select sid,serial# from v$session where username='ROBIN';
SID SERIAL#
---------- ----------
12 60
SQL> select sid,serial# from v$session where sid=12;
SID SERIAL#
---------- ----------
12 60
SQL> alter system kill session '12,60';
System altered.
After that From Robbin session loc will release and alin session hang resolve.
SQL> select * from test1;
NAME ID
------------------------------ ----------
a 1
b 2
From Robin Session:
SQL> select * from sys.test1;
select * from sys.test1
*
ERROR at line 1:
ORA-00028: your session has been killed
Above things can be done by running the below script from sys (but above procedure is better)
SQL> @C:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\utllockt.sql;