Question & Answer
Question
Why would JVM server transactions hang in a CICS Transaction Server for z/OS CICS TS) V5.1 region until the TCLASS for the Java transaction was increased? The THREADCOUNT value on the JVMSERVER resource is set to 2 and the TCLASS on the Java transaction is set to 3. After increasing the TCLASS for the Java transaction, the transactions were no longer hanging. Recycling the JVM server did not clear things up.
Answer
The TCLASS of the Java transactions prevents the waiters from ever being resumed. Increasing the TCLASS to allow another task to run cleared the backlog because it drove the CICS resume code and woke the other Java tasks up.
In this setup, the Java tasks have a TCLASS limit of 3 and the JVMSERVER THREADLIMIT is set to 2. This causes one of the Java tasks to always have to wait if 3 Java tasks run at the same time. It would be better to make the JVMSERVER THREADLIMIT the same or higher than the TCLASS value (given that some Java work appears to not be part of the TCLASS).
The THREADLIMIT of 2 also seems very low. The JVM storage is almost entirely 64-bit so if THREADLIMIT was set low because of concerns about storage usage this was unnecessary.
See Managing the thread limit of JVM servers in the CICS TS documentation for more information.
Product Synonym
CICS/TS CICSTS CICS TS CICS Transaction Server
Was this topic helpful?
Document Information
Modified date:
07 December 2016
UID
dwa1324370