Oracle internals experts.
What is this utility for ? It seems there is a 2Gb SGA size limit on NT ? That does not sound correct.
when you execute it without any params it returns the foll:
The ORASTACK utility was created to allow users to modify
the amount of stack that's reserved and/or committed by
each thread in the Oracle Server. By running ORASTACK on
certain .exe files, the headers of these executables are patched
to reflect the settings specified. Typically, changing the
commit size of each thread's stack is not necessary, since NT
will commit more stack as needed. However, decreasing each
thread's reserved size may be necessary since this size comes
out of the Oracle Server's 2 gigabyte address space. When
thousands of connections or a large SGA are in use, running
out of address space in the Oracle server process [although
still having available physical memory in the machine] is a
c) Altering the way Oracle creates per session memory structures
The per session memory allocations listed in section 4.a do not come from
the threads stack, section 4.d describes how they are separately allocated
from the address space. Keeping parameters such as SORT_AREA_SIZE to a minimum
is the easiest way to minimize per session memory allocations, the only other
alternative is to alter the default stack size.
Oracle supplies the ORASTACK utility to allow customers to modify the default
stack size of a thread / session when created in the Oracle executable. When
ORASTACK is run against specific executables it alters the part of the binary
header that defines the default stack size used by the create thread API. It
is not necessary to change the default number of pages committed by the thread
because these will be allocated as required from the stack. By reducing the
stack of every session created in the Oracle executable, it is possible to
achieve a larger user population. In a system with a 1000 users reducing the
stack from 1Mb to 500K would release 500Mb of the address space for other
allocations or more users.
Customers should thoroughly test their applications against databases that
have the stack trimmed to less than 1Mb before using the new stack size in
their production systems. If the Oracle stack has been trimmed below the size
required by the Oracle server side code a stack overrun will occur and the
users session will fail with a ORA-3113, there will be no trace files or
entries in the CORE.LOG file. Oracle Support Services does not recommend
that customers trim the stack below 500K, although a number of systems run
without error on a 300K stack.
ORASTACK must be run against all processes that can create a thread in the
Oracle executable, use the following syntax :
orastack executable_name new_stack_size_in_bytes
Below are examples of setting the stack to 500K for the main executables :
orastack oracle.exe 500000
orastack tnslsnr.exe 500000
orastack svrmgrl.exe 500000
orastack sqlplus.exe 500000
In addition, if there are programs on the server machine which connect to the
database locally [without SQL*NET], run orastack on those as well.
For more details, refer
Life is a journey, not a destination!
Click Here to Expand Forum to Full Width