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.
In this example, use the values from the first query in the where clause. type=Lock, id1=p1 and id2=p2.这里应该是id1=p2,id2=p3.参考文档:http://docs.oracle.com/cd/B19306_01/server.102/b14237/waitevents002.htm#i970885id1The first identifier (id1) of the enqueue or global lock takes its value from P2 or P2RAW. The meaning of the identifier depends on the name (P1).id2The second identifier (id2) of the enqueue or global lock takes its value from P3 or P3RAW. The meaning of the identifier depends on the name (P1).