The session waits for the lock handle of a global lock request on the distributed file system (DFS). It is most common in a parallel server situation.
Solutions
During a period of wait, use the following SQL statement to retrieve the name of the lock and the mode of the lock request:
select chr(bitand(p1,-16777216)/16777215) || chr(bitand(p1, 16711680)/65535) “Lock”,
to_char(bitand(p1, 65536)) “Mode”,
p2, p3 , seconds_in_wait
from v$session_wait
where event = ‘DFS lock handle’
Then use the following to identify the requesting session and the blocking session:
select inst_id, sid, type, id1, id2, lmode, request, block
from gv$lock
where type=’CI’ and id1=9 and id2=5
In this example, use the values from the first query in the where clause. type=Lock, id1=p1 and id2=p2.
Waits of this type generally indicate competition between distributed nodes for data.
Leave a Reply