1)A DML operation that is hanging because the table which is accessedis currently undergoing changes (ALTER TABLE). This may take quite a long timedepending on the size of the table and the type of the modification (e.g. ALTERTABLE x MODIFY (col1 CHAR(200) on a table with thousands of records)
In this case, V$LOCK will show that thesession doing the 'ALTER TABLE' with an exclusive DML enqueue lock on the tableobject (LMODE=6, TYPE=TM where ID1 is the OBJECT_ID of the table). The waitingsession however does not show up in V$LOCK. So in an environment with a lot ofconcurrent sessions, the V$LOCK information will be insufficient to track downthe culprit blocking your operation.
2)The compilation ofpackage will hang on Library Cache Lock and Library Cache Pin if any users areexecuting a procedure/function defined in the same package.