IBM Support

PH30759: CONL HUNG AFTER ISSUING A CEMT SET JVMSERVER COMMAND

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • From the dump we can see that the system T8 in the JVM is
    acquired by the XXXX task.  The thread then gets stuck getting
    into the JVM because the entire JVM is locked due to heap and GC
    issues.
    
    The CONL task tries to do a SET JVMSERVER DISABLED PURGE
    command.  This acquires the JVMSRVLK in DFHSJJS and then goes
    through each active task issuing purges against them.  The purge
    goes to DFHXMIQ and then to DFHSJTH because the target task is
    currently running in the JVM.  DFHSJTH needs to get the system
    T8.  The TCB is allocated to the XXXX task so the CONL task has
    has to suspend.  The JVMSRVLK should be released before waiting
    on JVMTHRED but DFHSJTH did not detect that the lock was already
    held.  This meant that the JVMTHRED wait was issued still
    holding the lock.  That caused all the other Java tasks to back
    up waiting for the lock.
    
    ADDITIONAL KEYWORDS: CONL JVMSRVLK JVMTHRED DFHSJTH
    KIXREVxxx
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED: All CICS Users.                              *
    ****************************************************************
    * PROBLEM DESCRIPTION: A task suspends on the system thread    *
    *                      (JVMTHRED) whilst holding the JVM       *
    *                      server lock (JVMSRVLK).                 *
    *                      This causes all other tasks requiring   *
    *                      the JVMSRVLK to suspend.                *
    ****************************************************************
    A SET TASK PURGE is issued against a Java task, this operation
    requires the system T8 for the JVMSERVER that the Java task is
    running in.  The system T8 is obtained but this task then gets
    held up, for example if Garbage Collection has control of the
    JVM at this time.
    A SET JVMSERVER PURGE command is then issued to PURGE the
    JVMSERVER, this task obtains the JVMSRVLK exclusively and then
    attempts to purge each task that is using the JVMSERVER. The
    system T8 is required for the purge so this task tries to obtain
    it. The system T8 however is still allocated to the SET TASK
    PURGE request that is currently held up by Garbage Collection.
    The SET JVMSERVER task now suspends on JVMTHRED and waits for
    the system T8 to become available. This wait is issued without
    releasing the JVMSRVLK.
    As a result, all other tasks requiring the JVMSRVLK suspend.
    

Problem conclusion

  • CICS code has been updated to ensure that the JVMSRVLK is
    released before suspending on JVMTHRED.
    

Temporary fix

Comments

APAR Information

  • APAR number

    PH30759

  • Reported component name

    CICS TS Z/OS V5

  • Reported component ID

    5655Y0400

  • Reported release

    100

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    YesHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2020-10-21

  • Closed date

    2020-12-16

  • Last modified date

    2021-01-04

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

    UI73178 UI73180 UI73181 UI73182

Modules/Macros

  • DFHSJDM  DFHSJDUF DFHSJJS  DFHSJST  DFHSJTH
    

Fix information

  • Fixed component name

    CICS TS Z/OS V5

  • Fixed component ID

    5655Y0400

Applicable component levels

  • R000 PSY UI73182

       UP20/12/18 P F012 ¢

  • R100 PSY UI73181

       UP20/12/17 P F012 ¢

  • R200 PSY UI73180

       UP20/12/17 P F012 ¢

  • R300 PSY UI73178

       UP20/12/17 P F012 ¢

Fix is available

  • Select the PTF appropriate for your component level. You will be required to sign in. Distribution on physical media is not available in all countries.

[{"Line of Business":{"code":"LOB35","label":"Mainframe SW"},"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSGMGV","label":"CICS Transaction Server"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"5.4"}]

Document Information

Modified date:
05 January 2021