When a message flow thread starts, it requires storage to perform the instructions that are defined by the logic of its connected nodes. This storage comes from the execution group's heap and stack size. The default stack size that is allocated to a message flow thread depends on the operating system that is used.
Each
message flow thread is allocated 1 MB of stack space.
Each
message flow thread is allocated 8 MB of stack space.
Each
message flow thread is allocated 1 MB of stack space.
Each
message flow thread is allocated 512 KB of downward stack space and 50 KB
of upward stack space.
In a message flow, a node typically uses 2 KB of the stack space. A typical message flow can therefore include 250 nodes on z/OS, 500 nodes on UNIX systems and 500 nodes on Windows. This amount can be higher or lower depending on the type of nodes used and the processing that they perform.
You can increase the stack size by setting the MQSI_THREAD_STACK_SIZE environment variable to an appropriate value. When you restart brokers that are running on the system, they use the new value.
The value of MQSI_THREAD_STACK_SIZE that you set is used for every thread that is created within a DataFlowEngine process. If the execution group has a large number of message flows assigned to it and you set a large value for MQSI_THREAD_STACK_SIZE, the DataFlowEngine process therefore needs a large amount of storage for the stack.
Integrator components on z/OS are compiled using the XPLINKage (extra performance linkage), which adds optimization to the runtime code. However, if the initial stack size is not large enough, then stack extents are used. 128 KB is used in each extent. Ensure that you choose a large enough downward stack size because the performance of XPLINK degrades when stack extents are used.
export _CEE_RUNOPTS=XPLINK\(ON\),RPTSTG(ON)You can then override the default values for the stack sizes on z/OS by altering or adding the LE_CEE_RUNOPTS environment variable in the component profile.
export _CEE_RUNOPTS=XPLINK(ON),THREADSTACK(ON,50K,15K,ANYWHERE,KEEP,512K,128K)
When you use RPTSTG, it increases the time that an application takes to run. You should therefore use it as an aid to the development of message flows only, and not in your final production environment. When you have determined the correct stack sizes needed you should remove this option from the _CEE_RUNOPTS environment variable.
XPLINK stacks grow downward in virtual storage while the old standard linkage grows upward. If your message flow uses user-defined nodes that have been compiled with the standard linkage convention, set a suitable value for the upward stack size.
Notices |
Trademarks |
Downloads |
Library |
Support |
Feedback
![]() ![]() |
ac00340_ |