Stack storage

Depending on the design of your message flow, you might need to increase the stack size.

When a message flow thread starts, it requires storage to perform the instructions that are defined by the message flow nodes. This storage comes from the integration server'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:

Windows platformOn Windows, each message flow thread is allocated 1 MB of stack space.

Linux platformOn Linux®, each message flow thread is allocated 1 MB of stack space.

UNIX platformOn UNIX, each message flow thread is allocated 1 MB of stack space.

AIX platformOn AIX®, each message flow thread is allocated 2 MB of stack space.

z/OS platformOn z/OS®, 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.

In IBM® Integration Bus, any processing that involves nested or recursive processing can cause extensive usage of the stack. For example, in the following situations you might need to increase the stack size:
  • When a message flow is processing a message that contains a large number of repetitions or complex nesting.
  • When a message flow is executing ESQL that calls the same procedure or function recursively, or when an operator (for example, the concatenation operator) is used repeatedly in an ESQL statement.

You can increase the stack size to improve performance. For details, see: