IBM Support

DFHSJ0002 0B07 in DFHSJJS and DFHDU0201 when starting multiple CICS JVM Servers

Question & Answer


Question

Should only one JVM be defined per CICS Transaction Server for z/OS (CICS TS) region or is it okay to use multiple JVM Servers in a CICS region? If so, how do I calculate the memory allocation to each JVM? I defined 12 JVM Servers in my CICS region. However my region encounters an abend and fails to initialize the JVM Servers. Here are the messages I get in the CICS joblog:

DFHSJ0002 MYCICS A severe error (code X'0B07') has occurred in module DFHSJJS.
DFHDU0201 MYCICS ABOUT TO TAKE SDUMP. DUMPCODE: SJ0002 , DUMPID: 1/0001

This is a new setup and I created more JVM servers to separate the JVMservers per application. I am able to start the JVMservers manually one by one, however it fails if all are started at the same time.

Answer

CICS only supplies 3 types of JVM Servers. Liberty, OSGi, and Axis2 are the JVMServers supplied. Each JVMServer can handle many concurrent requests form different Java applications in a single JVM. You can read more about the JVM Server Runtime Environment in Getting started with Java section of the CICS TS documentation. I think after you review this information you will have a better understanding about the JVMServers supplied by CICS.

The problem you are having when starting all the JVM Servers at the same time is due to them competing for resources. Keep in mind, starting JVMs is a very CPU intensive process that involves many threads. It is possible that there simply is not enough capacity on your system to handle the multiple JVM Servers starting at the same time. It is recommended that you stagger the start of the JVM Servers and in this case that is why you are able to start them one by one. Try starting 3 or 4 at a time for a test and see how many you can start at the same time. Also consider using Java shared class cache which can help reduce the JVMServer startup time.

Each JVM server can have a maximum of 256 threads to run Java applications. In a CICS region you can have a maximum of 2000 threads. If you have many JVM Servers running in a CICS region (for example, more than seven), you cannot set each JVM Server to the maximum value (256) of threads. You need to adjust the thread limit of each JVM Server to balance the number of threads in the CICS region against the performance of the Java applications.

You will find information for calculating storage requirements for JVM Servers in the Improving JVM Server Performance section in the CICS TS documentation.

[{"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSGMGV","label":"CICS Transaction Server"},"Platform":[{"code":"PF035","label":"z\/OS"}],"Component":"Java","Version":"","Line of Business":{"code":"LOB35","label":"Mainframe SW"}}]

Product Synonym

CICS/TS CICSTS CICS TS CICS Transaction Server

Document Information

Modified date:
11 May 2017

UID

dwa1374218