Oracle Internals
JulianDyke.com

Welcome

Seminars

Consultancy

Calendar

Presentations

Diagnostics

Internals

References

Acknowledgements

Packages

PROCEDURE DBMS_MONITOR.CLIENT_ID_TRACE_ENABLE

This procedure, which was introduced in Oracle 10.1, enables event 10046 trace for all sessions with the specified client ID.

Argument Name Type In/Out Default?
CLIENT_ID VARCHAR2 IN  
WAITS BOOLEAN IN DEFAULT
BINDS BOOLEAN IN DEFAULT

The CLIENT_ID must be specified, but does not need to belong to a current session at the time this procedure is invoked.

There are two optional Boolean parameters, waits and binds, both of which default to FALSE.

The client identifier was introduced to provide a method of uniquely identifying sessions when many connect using the same Oracle user. This frequently occurs systems which include mid-tier servers or connection pools.

The client identifier can be set for a session using the SET_IDENTIFIER procedure in the DBMS_SESSION package. For example:

    EXECUTE DBMS_SESSION.SET_IDENTIFIER ('ID1');

The client identifier is externalised in the CLIENT_IDENTIFIER column of the V$SESSION dynamic performance view. For example:

    SELECT sid FROM v$session WHERE client_identifier = 'ID1';

For example to enable event 10046, level 1 trace for CLIENT_ID 'ID1' use:

    EXECUTE dbms_monitor.client_id_trace_enable (client_id=>'ID1');

To enable event 10046, level 4 trace (bind variables) for CLIENT_ID 'ID1' use:

    EXECUTE dbms_monitor.client_id_trace_enable (client_id=>'ID1',binds=>true);

To enable event 10046, level 8 trace (waits) for CLIENT_ID 'ID1' use:

    EXECUTE dbms_monitor.client_id_trace_enable (client_id=>'ID1',waits=>true);

The current state of client_id trace is reported in the data dictionary view DBA_ENABLED_TRACES. This contains the following columns:

Name Type
TRACE_TYPE VARCHAR2(21)
PRIMARY_ID VARCHAR2(64)
QUALIFIER_ID1 VARCHAR2(48)
QUALIFIER_ID2 VARCHAR2(32)
WAITS VARCHAR2(5)
BINDS VARCHAR2(5)
INSTANCE_NAME VARCHAR2(16)

For client_id trace, the TRACE_TYPE column will be 'CLIENT_ID' and the PRIMARY_ID column will contain the client identifier.

The DBA_ENABLED_TRACES view is based on the underlying data dictionary table SYS.WRI$_TRACING_ENABLED.