Examining processor usage by JVM servers

You can use the CICS® monitoring facility to monitor the processor time that is used by transactions running in a JVM server. CICS-enabled threads in a JVM server run on T8 TCBs.

About this task

You can use the DFH$MOLS utility to print the SMF records or use a tool such as CICS Performance Analyzer to analyze the SMF records.

Procedure

  1. Turn on monitoring in the CICS region to collect the performance class of monitoring data.
  2. Check the performance data group DFHTASK.
    In particular, you can look at the following fields:
    Field ID Field name Description
    283 MAXTTDLY The elapsed time for which the user task waited to obtain a T8 TCB, because the CICS region reached the limit of available threads. The thread limit is 2000 for each CICS region and each JVM server can have up to 256 threads.
    400 T8CPUT The processor time during which the user task was dispatched by the CICS dispatcher domain on a CICS T8 mode TCB. When a thread is allocated a T8 TCB, that same TCB remains associated with the thread until the processing completes.
    401 JVMTHDWT The elapsed time that the user task waited to obtain a JVM server thread because the CICS system had reached the thread limit for a JVM server in the CICS region. This does not apply to Liberty JVM servers.
  3. To improve processor usage, reduce or eliminate the use of tracing where possible.
    1. In a production environment, consider running your CICS region with the CICS main system trace flag set off.
      Having this flag on significantly increases the processor cost of running a Java™ program. You can set the flag off by initializing CICS with SYSTR=OFF, or by using the CETR transaction.
    2. Ensure that you activate JVM trace only for special transactions.
      JVM tracing can produce large amounts of output in a very short time, and increases the processor cost. For more information about controlling JVM tracing, see Diagnostics for Java.
  4. Do not use the USEROUTPUTCLASS option in JVM profiles in a production environment.
    Specifying this option has a negative effect on the performance of JVMs. The USEROUTPUTCLASS option enables developers using the same CICS region to separate JVM output, and direct it to a suitable destination, but it involves the building and invocation of additional class instances.