IBM Support

PK60455: CICS ABENDS U1800 AT STARTUP WITH PROGRAM IN PLT

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • If a CICS Java program is included in the CICS PLT (stage 3),
    the CICS region will issue the following message and then
    terminate with a DFHKE1800 (U1800 abend):
    .
       DFHSR0606  Abend (code ........) has ben detected.
    .
    If this Java program is not included in the CICS PLT at
    startup, CICS will initialize without any problems.
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED: All CICS Users                               *
    ****************************************************************
    * PROBLEM DESCRIPTION: A Java PLT program ABENDs when          *
    *                      running in USER key with Storage        *
    *                      Protection                              *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    A Java PROGRAM is defined with EXECKEY(USER) and is part of
    the Program List Table (PLT) to execute on CICS startup.
    Storage Protection is active.
    
    Because the PROGRAM is being run as part of PLT processing,
    the PROGRAM should be invoked in CICS key regardless of the
    EXECKEY value in the program definition. DFHAPLJ1 therefore
    overrides the TCB key field, EIS_PROGRAM_MODE, for the
    program changing it from J9 to J8. When the Java program is
    invoked from DFHSJIN, this is not honoured and the program
    is run in USER key.
    
    As part of the Java program running it makes a JCICS call
    which results in an EXEC CICS ADDRESS command to be issued.
    This starts running on a J9, but because the call could have
    switched to QR if necessary, DFHEIP switches back to what it
    thinks was the caller's original TCB, using the
    EIS_PROGRAM_MODE field. This causes CICS to switch the task
    to a different J8 TCB instead of the caller's J9 TCB, and
    in turn leads to CICS ABENDing as this is not the TCB that
    the JVM was started on.
    
    Additional Keywords: abendU1800 msgDFHKE1800 msgDFHSR0606
    

Problem conclusion

  • CICS has been updated to not override EIS_PROGRAM_MODE in
    DFHLI1 if the PLT program has been invoked on a J9 TCB -
    as Java programs with EXECKEY(USER) are. This restores the
    behaviour to how CICS behaved prior to CICS TS 3.1.
    This contrasts with what the Customization Guide states, and
    a Documentation change will be made to the guide for Java
    programs only.
    
    The Customization Guide for CICS TS 3.1 (SRL: SC34-6429-04)
    will be updated as follows:
    
    In chapter 4 'Writing initialization and shutdown programs',
    the section titled 'Execution key for PLT programs' will
    be updated as follows:
    
    - Under the 'Execution key for PLT programs' title add the
      following line:
    
    At PLT time CICS handles Java and non-Java program differently.
    
    - After this add a title 'Non-Java Programs' before the
      paragraph starting "CICS always gives control to PLT programs
      in CICS Key'.
    
    - After this paragraph (including the 'Important' section')
      add a new paragraph titled 'Java Programs' as follows:
    
    Java Programs
    A Java program in the PLT runs in the key defined in its
    PROGRAM resource definition (EXECKEY) and is not overridden
    to run in CICS key, unlike all other program types.
    
    When a Java program runs, a JVM is created if one does not
    already exist for that JVM profile in the key the program is
    executing. If REUSE=YES is specified in the corresponding JVM
    profile, the JVM persists after the Java program has ended.
    If a Java program, that is defined as EXECKEY(USER), was
    overridden to start in CICS key at PLT time, any subsequent
    invocations of that program would run in USER key and would
    therefore not be able to reuse the JVM created when the program
    ran at PLT time. Other Java programs that are defined with
    EXECKEY(USER) and use the same JVM Profile would also not be
    able to access the JVM that is started at PLT time. Therefore
    CICS does not override the execution key of Java programs at PLT
    time.
    
    If you want to run an EXECKEY(USER) Java program in CICS key
    at PLT time:
    1. Create a separate PROGRAM resource definition using the
    same JVMCLASS attribute value and specify EXECKEY(CICS).
    2. Add the PROGRAM resource definition to the PLT.
    
    The original PROGRAM resource definition with EXECKEY(USER)
    can then be used subsequently.
    
    -------------------------------------------------------------
    
    The Customization Guide for CICS TS 3.2 (SRL: SC34-6814-01)
    will be updated as follows:
    
    In chapter 4 'Writing initialization and shutdown programs',
    the section titled 'Execution key for PLT programs' will
    be updated as follows:
    
    - Under the 'Execution key for PLT programs' title add the
      following line:
    
    At PLT time CICS handles Java and non-Java program differently.
    
    - After this add a title 'Non-Java Programs' before the
      paragraph starting "CICS always gives control to PLT programs
      in CICS Key'.
    
    - After this paragraph (including the 'Important' section')
      add a new paragraph titled 'Java Programs' as follows:
    
    Java Programs
    A Java program in the PLT runs in the key defined in its
    PROGRAM resource definition (EXECKEY) and is not overridden
    to run in CICS key, unlike all other program types.
    
    When a Java program runs, a JVM is created if one does not
    already exist for that JVM profile in the key the program is
    executing. If REUSE=YES is specified in the corresponding JVM
    profile, the JVM persists after the Java program has ended.
    If a Java program, that is defined as EXECKEY(USER), was
    overridden to start in CICS key at PLT time, any subsequent
    invocations of that program would run in USER key and would
    therefore not be able to reuse the JVM created when the program
    ran at PLT time. Other Java programs that are defined with
    EXECKEY(USER) and use the same JVM Profile would also not be
    able to access the JVM that is started at PLT time. Therefore
    CICS does not override the execution key of Java programs at PLT
    time.
    
    If you want to run an EXECKEY(USER) Java program in CICS key
    at PLT time:
    1. Create a separate PROGRAM resource definition using the
    same JVMCLASS attribute value and specify EXECKEY(CICS).
    2. Add the PROGRAM resource definition to the PLT.
    
    The original PROGRAM resource definition with EXECKEY(USER)
    can then be used subsequently.
    

Temporary fix

  • FIX AVAILABLE BY PTF ONLY
    

Comments

APAR Information

  • APAR number

    PK60455

  • Reported component name

    CICSTS V3 Z/OS

  • Reported component ID

    5655M1500

  • Reported release

    400

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2008-02-04

  • Closed date

    2008-07-16

  • Last modified date

    2008-08-01

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

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

    UK38206 UK38207

Modules/Macros

  •    DESLI1   DFHAPLI1 DFHAPLJ1 DFHAPLX1
    

Publications Referenced
SC34642904SC34681401   

Fix information

  • Fixed component name

    CICSTS V3 Z/OS

  • Fixed component ID

    5655M1500

Applicable component levels

  • R400 PSY UK38206

       UP08/07/19 P F807

  • R500 PSY UK38207

       UP08/07/19 P F807

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.

[{"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSGMGV","label":"CICS Transaction Server"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"3.1","Edition":"","Line of Business":{"code":"LOB35","label":"Mainframe SW"}},{"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SG19M","label":"APARs - z\/OS environment"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"3.1","Edition":"","Line of Business":{"code":"","label":""}}]

Document Information

Modified date:
01 August 2008