reading the SGA from my own program

  • From: "Jeremiah Wilton" <jeremiah@xxxxxxxxxxx>
  • To: "'Oracle Discussion List'" <oracle-l@xxxxxxxxxxxxx>
  • Date: Fri, 18 Aug 2006 14:14:12 -0700

I am trying to play around with reading the SGA using my own program, as
popularized by Kyle Hailey and Miladin Modrakovic's papers and
presentations.  I am confused about where to find x$ksusecst (session wait)
and other items in the fixed area.

 

The base address of the SGA from x$ksmmem is hex 20000000. 

 

The lowest ADDR I see in x$ksusecst on my instance is 27133F24.  So far so
good.  

 

That means that x$ksusecst begins (27133F24-20000000=7133F24) bytes into the
segment containing the fixed SGA, right?  

 

Hex 7133F24 is decimal 118,701,860, so that should be about 113Mb into the
segment.

 

The problem is that the segment containing my fixed area (from oradebug ipc)
is only 4Mb.  All the shared memory segments owned by oracle on my host
(according to ipcs -a) total less than 108Mb.

 

So according to x$ksusecst(ADDR), session waits have an address beyond the
highest address in the SGA.  What am I getting wrong?

 

Thanks for any insights!

--

Jeremiah Wilton

ORA-600 Consulting

http://www.ora-600.net

Other related posts: