Customizing UNIX System Services on z/OS

This is part of the larger task of customizing your z/OS environment.

WebSphere Message Broker requires the setup of some UNIX System Services system characteristics. You can use the SETOMVS operator command for dynamic changes or the BPXPRMxx PARMLIB member for permanent changes. See the z/OS UNIX System Services Planning manual for more information.

Do not include the broker addresses if you use the IEFUSI exit to limit the region size of OMVS address spaces.

Set the UNIX System Services characteristics as follows:

Description Parameter Value
The maximum core dump file size (in bytes) that a process can create. Allow an unlimited size. MAXCORESIZE 2 147 483 647
The CPU time (in seconds) that a process is allowed to use. Allow an unlimited CPU time MAXCPUTIME 2 147 483 647
The address space region size. Set to the size of the biggest address space. MAXASSIZE > 1 GB

A minimum of 375 MB is required.

Specifies the maximum number of threads that a single process can have active. Depends on the definitions of message flows. MAXTHREADS MAXTHREADTASKS The value of MAXTHREADS and MAXTHREADTASKS depends on your application. You can calculate the value needed for WebSphere Message Broker as follows:

For each message flow:
  1. Multiply the number of input nodes by the number of instances (additional threads +1).
  2. Sum the values of all message flows and add 10 to the resultant sum.
  3. Add in the number of threads used for each HTTP listener.

Deploying a message flow, that starts an Execution Group in a new address space, uses USS Semaphore and SharedMemorySegment resources. In particular, each new address space uses a semaphore and SharedMemorySegment. The SharedMemorySegment is deleted immediately after the new address space has started, but the semaphore remains for the life of the new address space.

Certain USS system parameters can affect the start of a new Execution Group address space, if you set them incorrectly. These include:
  • IPCSEMNIDS
  • IPCSHMNIDS
  • IPCSHMNSEGS
You need a minimum of three semaphores for each Execution Group address space started.

You must set IPCSEMNIDS to a value four times the number of potential Execution Group address spaces on a system.

You need one SharedMemorySegment for each Execution Group address space started. You must set IPCSEMNIDS to a value that exceeds the number of potential Execution Group address spaces on a system.

A control address space (BIPSERVICE and BIPBROKER processes) can be attached to many SharedMemorySegments - potentially, one for each Execution Group address space started for that broker. You must set IPCSHMNSEGS to a value that exceeds the potential number of Execution Groups for each broker.

Start of change

Ensuring sufficient space for temporary files

The environment variable TMPDIR is the path name of the directory being used for temporary files. If it is not set, the z/OS shell uses /tmp.

When starting WebSphere Message Broker components, sufficient space is required in the directory referenced by TMPDIR. In particular, Java needs sufficient space to hold all JAR files required by WebSphere Message Broker.

If you do not allocate sufficient space, the execution group address spaces will abend with a 2C1 code.

Allow at least 50 MB of space in this directory for broker components and 10 MB of space for Configuration Manager components. More space might be needed if you deploy large user-defined nodes or other JARs to the broker component.

End of change
Start of change

Defining WebSphere Message Broker files as shared-library programs

If you plan to deploy to more than one execution group on z/OS, the amount of storage required by the execution group address spaces can be reduced by setting the shared-library extended attribute on the following WebSphere Message Broker files:
     /usr/lpp/mqsi/bin/*
     /usr/lpp/mqsi/lil/*  
     /usr/lpp/mqsi/lib/*  
     /usr/lpp/mqsi/lib/wbirf/*  
     /usr/lpp/mqsi/lib/wbimb/*
     /usr/lpp/mqsi/lib/wbieb/*
To set the shared-library attribute, use the extattr command with the +l option. For example:
    extattr +l /usr/lpp/mqsi/bin/*

To find out if the shared-library extended attribute has been set, use the ls -E command.

Using ls -E bipimain results in, for example:
-rwxr-x---  a-s-  1 USER  GROUP   139264 Mar 15 10:05 bipimain
where s shows that the program is enabled to run in a shared address space.
Use the following command to see if you have enough SHRLIBRGNSIZE to contain all of the shared-library programs that are to be used on the system.
     /D OMVS,LIMITS
End of change
Related tasks
Customizing the z/OS environment
Related reference
Customization tasks and roles on z/OS