10.4.2.3 Insufficient Thread Stack Size
On certain operating systems, the operating system default thread stack size is insufficient for use with the Oracle Tuxedo system. Compaq Tru64 UNIX and UnixWare are two operating systems for which this is known to be the case. If the default thread stack size parameter is used, applications on these platforms dump core when a function with substantial stack usage requirements is called by any thread other than the main thread. Often the core file that is created does not give any obvious clues to the fact that an insufficient stack size is the cause of the problem.
When the Oracle Tuxedo system is creating threads on its own, such as server-dispatched threads or a client unsolicited message thread, it can adjust the default stack size parameter on these platforms to a sufficient value. However, when an application is creating threads on its own, the application must specify a sufficient stack size. At a minimum, a value of 512K must be used for any thread that will access the Oracle Tuxedo system.
On Compaq Tru64 UNIX and other systems on which POSIX threads
are used, a thread stack size is specified by invoking
pthread_attr_setstacksize()
before calling
pthread_create()
. On UnixWare, the thread stack size
is specified as an argument to thr_create()
. Consult
your operating system documentation for further information on this
subject.