Skip to Main Content

Breadcrumb

Question and Answer

Connor McDonald

Thanks for the question, Frank.

Asked: April 28, 2008 - 7:46 am UTC

Last updated: February 24, 2026 - 5:15 am UTC

Version: 10.2.0.3

Viewed 10K+ times! This question is

You Asked

Hi Tom

How do I confirm that the following event has been set:

SQL>alter system set events '12899 trace name errorstack level 3';

?

ORA-12899 has occured after the event was set but no trace file is found in the udump catalog. The event was not set by me and I am trying to confirm if the event is set or not.

The database is NOT using spfile (sorry !).

I have tried:

SQL>set serveroutput on
SQL>declare
event_level number;
begin
for i in 12000..12999 loop
sys.dbms_system.read_ev(i,event_level);
if (event_level > 0) then
dbms_output.put_line('Event '||to_char(i)||' set at level '||
to_char(event_level));
end if;
end loop;
end;
/

I only get "PL/SQL procedure successfully completed".

On another database I tried running the above PL/SQL, set the event and run the PL/SQL again. All I get back from the database is: "PL/SQL procedure successfully completed".

Can I use dbms_system.read_ev for this at all ?

Thanks,
Frank

and Tom said...

check out support Note 436036.1 on metalink.

Errorstack and heapdumps cannot be seen by read_ev, but oradebug can be used. Eg:

<b>
sys%ORA10GR2> oradebug setmypid
Statement processed.
sys%ORA10GR2> oradebug dump events 1
Statement processed.
sys%ORA10GR2> oradebug tracefile_name
/home/ora10gr2/rdbms/log/ora10gr2_ora_21445.trc</b>

sys%ORA10GR2> Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - Production
With the Partitioning, OLAP and Data Mining options
[tkyte@dellpe ~]$ cat /home/ora10gr2/rdbms/log/ora10gr2_ora_21445.trc
/home/ora10gr2/rdbms/log/ora10gr2_ora_21445.trc
Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - Production
With the Partitioning, OLAP and Data Mining options
ORACLE_HOME = /home/ora10gr2
System name:    Linux
Node name:      dellpe
Release:        2.6.9-11.ELsmp
Version:        #1 SMP Fri May 20 18:26:27 EDT 2005
Machine:        i686
Instance name: ora10gr2
Redo thread mounted by this instance: 1
Oracle process number: 13
Unix process pid: 21445, image: oracle@dellpe (TNS V1-V3)

*** 2008-04-29 09:50:05.730
*** SERVICE NAME:(SYS$USERS) 2008-04-29 09:50:05.729
*** SESSION ID:(37.78) 2008-04-29 09:50:05.729
Dump event group for level SESSION<b>
TC Addr  Evt#(b10)   Action   TR Addr    Arm    Life
B72900B0 12899       1       b729011c 0 0
        TR Name             TR level   TR address       TR arm     TR life    TR type
        ERRORSTACK                    3 0          1          2 -1222049680</b>



The #1 cause of "should be seeing a trace file but aren't" is that...

the tracefile was created for this session a while ago - for something else - and subsequently 'erased', but that doesn't really erase a tracefile until the session exits - just makes it impossible to SEE the tracefile at the OS level.


eg: in a clean session, you should be able to 'see this' tracefile...


OR, maybe you set the event - but not realizing it would only affect NEWLY CREATED sessions... (eg: you might have to log out, log in to have it take effect for YOU)

but it works:

ops$tkyte%ORA10GR2> @gettrace

TRACE
-------------------------------------------------------------------------------
/home/ora10gr2/rdbms/log/ora10gr2_ora_21488.trc

ops$tkyte%ORA10GR2> !ls -l /home/ora10gr2/rdbms/log/ora10gr2_ora_21488.trc
ls: /home/ora10gr2/rdbms/log/ora10gr2_ora_21488.trc: No such file or directory

ops$tkyte%ORA10GR2> insert into t values ( 'xx' );
insert into t values ( 'xx' )
                       *
ERROR at line 1:
ORA-12899: value too large for column "OPS$TKYTE"."T"."X" (actual: 2, maximum:
1)


ops$tkyte%ORA10GR2> !ls -l /home/ora10gr2/rdbms/log/ora10gr2_ora_21488.trc
-rw-rw----  1 ora10gr2 ora10gr2 2003775 Apr 29 09:56 /home/ora10gr2/rdbms/log/ora10gr2_ora_21488.trc

ops$tkyte%ORA10GR2> !head -100 /home/ora10gr2/rdbms/log/ora10gr2_ora_21488.trc
/home/ora10gr2/rdbms/log/ora10gr2_ora_21488.trc
Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - Production
With the Partitioning, OLAP and Data Mining options
ORACLE_HOME = /home/ora10gr2
System name:    Linux
Node name:      dellpe
Release:        2.6.9-11.ELsmp
Version:        #1 SMP Fri May 20 18:26:27 EDT 2005
Machine:        i686
Instance name: ora10gr2
Redo thread mounted by this instance: 1
Oracle process number: 13
Unix process pid: 21488, image: oracle@dellpe (TNS V1-V3)

*** ACTION NAME:() 2008-04-29 09:56:10.425
*** MODULE NAME:(SQL*Plus) 2008-04-29 09:56:10.425
*** SERVICE NAME:(SYS$USERS) 2008-04-29 09:56:10.425
*** SESSION ID:(37.87) 2008-04-29 09:56:10.425
*** 2008-04-29 09:56:10.425
ksedmp: internal or fatal error
ORA-12899: value too large for column "OPS$TKYTE"."T"."X" (actual: 2, maximum: 1)
Current SQL statement for this session:
insert into t values ( 'xx' )
----- Call Stack Trace -----


Rating

  (1 rating)

Is this answer out of date? If it is, please let us know via a Comment

Comments

Events dump not found on 19c

fpe, February 18, 2026 - 4:38 pm UTC

17:34:40 SYS@PROD> oradebug setmypid
Statement processed.
17:35:46 SYS@PROD> oradebug dump events 1
ORA-00076: dump EVENTS not found

Connor McDonald
February 24, 2026 - 5:15 am UTC

The available dumps change over time/versions

You can see the list of available dumps with

SQL> oradebug dumplist

More to Explore

VLDB

If you are new to partitioning, check out Connor McDonald's introduction series here.

VLDB

Documentation set on VLDB and Partitioning.