We began to experience this event yesterday afternoon. Normally, oracle takes the TM enqueue (table lock) out when activity is occurring such as an insert and we want to ensure the structure is not changed during the insert.
variable min_snap number
variable max_snap number
begin
select min(snap_id) into :min_snap from dba_hist_snapshot where begin_interval_time > sysdate - &start_of_problem;
select min(snap_id) into :max_snap from dba_hist_snapshot where begin_interval_time > sysdate - &end_of_problem;
end;
/
select count(*),sql_id,p2 object_id
from dba_hist_active_sess_history
where snap_id between :min_snap and :max_snap
and event = 'enq: TM - contention' group by sql_id,p2;
select owner,object_type,object_name,last_ddl_time
from dba_objects
where object_id = &object_id_above;