The error message means that one (or more) of the shared libraries required for TCP communications to work could not be loaded, perhaps due to o/s package updates? or it can mean that the /tmp/.oracle directory is not writeable by the oracle user (or doesn't exist perhaps because someone did some 'housekeeping' on /tmp . In either case tracing the listener at level 16 as Gaius suggested should reveal the issue.
OBJ#=-1 means either means that the object number is missing or it's not related to an object.
The best idea is to go into V$active_session_history and find the SQL_ID then get the SQL text via the SQL_ID and look at the object sin the SQL and what the SQL was doing.
As far as people suggesting INIT TRANS, that is unlikely as there is a separate wait event for INIT TRANS.
USN, SLOT and SEQUENCE map the UNDO entry for the transaction.
They could be used to map back to activity in the UNDO but it's probably easier to get the transaction id the XID and use VERSIONS_XID on the objects involved.
see http://www.slideshare.net/khailey/ukoug-oracle-transaction-locks
Example ASH query
col object for A15
col otype for A10
select
substr(event,0,20) lock_name,
ash.session_id waiter,
mod(ash.p1,16) lmode,
--ash.p2 p2,
--ash.p3 p3,
o.object_name object,
o.object_type otype,
CURRENT_FILE# filen,
CURRENT_BLOCK# blockn,
ash.SQL_ID waiting_sql,
BLOCKING_SESSION blocker
--,ash.xid
from
v$active_session_history ash,
all_objects o
where
event like 'enq: TX - index contention'
and o.object_id (+)= ash.CURRENT_OBJ#
/
Best Answer
Any process can write in the alert log.
Even you can write in the alert log using the PL/SQL
DBMS_SYSTEM
package.Trace file names clearly indicate which process they belong to. Trace files are named like
ORCL_smon_1234.trc
, whereORCL
is the name of the instance,smon
is the name of the server process,1234
is the OS PID of the process.