Increasing the stack size on z/OS

Change the stack size on z/OS® by altering or adding the Language Environment® (LE) _CEE_RUNOPTS environment variable. This can be done for all integration servers defined to an integration node, or a specific integration server.

Before you begin

Integration node 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, stack extents are used. The initial stack size is 1 MB, and 1 MB is used in each extent. Ensure that you choose a large enough downward stack size because the performance of XPLINK can be adversely affected when stack extents are used.

To determine suitable stack sizes, you can use the Language Environment Report Storage tool.

To use this tool, use the RPTSTG option with the _CEE_RUNOPTS environment variable to test a message flow. Set this option in the component profile (BIPBPROF for an integration node) during the development and test of message flows that are intended for production; for example:
export _CEE_RUNOPTS=RPTSTG\(ON\)
You can then override the default values for the stack sizes on z/OS by altering or adding the _CEE_RUNOPTS environment variable.

You can do this for all integration servers defined to an integration node, or a specific integration server.

About this task

To update the component profile, take the following steps:

Procedure

  1. Stop the integration node.
  2. Make the necessary changes to the profile.
  3. Submit BIPGEN to re-create the integration node ENVFILE and any integration server specific ENVFILEs.
  4. Restart the integration node.

Results

To update the stack sizes for a specific integration server in an integration node, take the following steps:
  1. Stop the integration node.
  2. Make the necessary changes to the integration server specific profile.
  3. Submit BIPGEN to re-create the integration node ENVFILE and any integration server specific ENVFILEs.
  4. Restart the integration node.

Example

The following example shows how you can change the default stack value of 1 MB to 2 MB:
export _CEE_RUNOPTS=THREADSTACK64\(ON,2M,1M,128M\)

What to do next

When you use the RPTSTG option, it increases the time that an application takes to run, so 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, remove this option from the _CEE_RUNOPTS environment variable.

XPLINK stacks grow downward in virtual storage while the standard linkage grows upward. To avoid affecting performance by switching between downward stack space and upward stack space during run time, compile user-defined extensions using the XPLINK option where possible. If your message flow uses user-defined extensions that have been compiled with the standard linkage convention, set a suitable value for the upward stack size.