IBM Support

PK37843: JDK 5.0 SUPPORT IN JAVA DEPENDENT REGIONS (JDRS)

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as new function.

Error description

  • This IMS Service enhancement provides the following:
    1. JDK 5.0 support in Java Dependent Regions (JDRs).
    2. JDR / COBOL Interoperability support.
    
    Note - addidtional sympton :
       "DFSJVM00: Exception: java.lang.NoClassDefFoundError:
    
    DCR KZ00046
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED: All IMS V9 users of Java Dependent Regions   *
    *                 who need JDK 5.0 support.                    *
    *                                                              *
    *                 This maintenance requires at least JDK 1.5.0 *
    *                 SR4 maintenance level.                       *
    ****************************************************************
    * PROBLEM DESCRIPTION: JDK 5.0 is not supported by IMS V9 Java *
    *                      Dependent Regions.  This SPE provides   *
    *                      for JDK 5.0 support in IMS V9 Java      *
    *                      Dependent Regions.                      *
    *                                                              *
    *                      This maintenance requires at least JDK  *
    *                      1.5.0 SR4 maintenance level which is    *
    *                      PTF UK21775.                            *
    ****************************************************************
    * RECOMMENDATION: INSTALL CORRECTIVE SERVICE FOR APAR/PTF      *
    ****************************************************************
    DCR KZ00046
    This maintenance requires at least JDK 1.5.0 SR4 maintenance
    level which is PTF UK21775.
    
    JDK 5.0 support in Java Dependent Regions (JDRs)
    ------------------------------------------------
    In order to support JDK 5.0, remove the master/worker JVM model
    that was supported by JDK 1.4.2 and instead support a standalone
    JVM model in JMP and JBP regions.
    
    JDR/COBOL Interoperability
    --------------------------
    Also, IMS message GU/CHKP processing was altered for Java
    Dependent Regions (JDRs) when JDRs were initially implemented.
    For JDRs, an IMS message GU means "get the message only, do not
    perform syncpoint processing" and CHKP processing means "perform
    syncpoint processing only, do not get the next message".  In the
    standard IMS model, message GU and CHKP mean "perform syncpoint
    AND get the next message".
    
    Due to this behavioral change in standard IMS model message
    GU/CHKP processing, users wishing to take advantage of
    transactions using IMS Java and OO COBOL executing in a JDR and
    invoking legacy business logic written in COBOL are unable to do
    so without changing their existing legacy COBOL applications.
    
    Thus, this SPE will restore the standard IMS model GU/CHKP
    processing for JDRs.  This change will be transparent to
    existing user applications with the exception of the following:
    
    - If an application uses a U118 to enforce a rollback (for
      example, it detects a rollback situation and instead of
      driving the rollback just ends without doing a commit), the
      application will need to be changed to properly issue
      IMSTransaction.getTransaction() .rollback Relying on the U118
      for rollback processing is not a recommended programming
      technique.  This affects only JMP applications.
    
    - If an application directly calls CHKP using the low level Java
      API, the application will now receive the next input message
      as part of CHKP processing.  This affects only JMP appls.
    
    * * * * * * * * * RAS MODIFICATION * * * * * * * * * * * *
    
    This SPE also implements changes to the ENVIRON= member for JDRs
    that will allow the user to specify any environment variables in
    the form X=Y instead of being restricted to only specifying the
    LIBPATH=, DEBUG=, and JLEOPT= options.  The environment
    variables are presented as Java system properties at runtime and
    are therefore accessible by a Java application running in the
    JDR.  This is a RAS modification.
    

Problem conclusion

Temporary fix

Comments

  • This maintenance requires at least JDK 1.5.0 SR4 maintenance
    level.
    -------------------------------
    The IMS JVM launcher, DFSJVM00, has been modified to remove the
    master/worker JVM support and provide a standalone JVM in order
    to support JDK 5.0.
    
    The program controllers and region controller for JBP/JMP
    regions have been modified to remove master/worker JVM support
    in order to support JDK 5.0 (DFSPCJB0, DFSPCJM0, DFSRCJM0) .
    
    DFSTMS00 has been modified to remove ABENDU0118.
    
    DFSFXC30, DFSCPY00 and DFSDLA00 have been modified to support
    the changes described under the JDR/COBOL Interoperability
    section above.
    
    DFSJJAR was modified to perform SYNC instead of CHKP for the IMS
    Java commit method.
    
    ****************** USER REFERENCES ***********************
    
    You can refer to the following user guide for more information
    on the SDK V5 JVM and to determine which JVM options are
    appropriate for your installation:
    
    "IBM 31-bit and 64-bit SDKs for z/OS, Java 2 Technology Edition,
    Version 5 SDK and Runtime Environment User Guide"
    
    Link to JDK V5 restrictions and other considerations doc:
    ---------------------------------------------------------
    http://www-03.ibm.com/servers/eserver/zseries/software/java/
    j5restrict31.html
    
    
    Link to JDK V5 doc that describes all the JVM options:
    ------------------------------------------------------
    http://www-03.ibm.com/servers/eserver/zseries/software/java/pdf/
    sdkguide.zos.pdf
    
    
    ****************** PUBS CHANGES **************************
    
    ---------------------------------------------------------------
    GC17-7831
    BOOK: Release Planning Guide
    ---------------------------------------------------------------
    Add a couple of statements indicating the behavior change of
    GU/CHKP processing for a JMP application and the removal of the
    U118 abend as follows:
    
    - If an application uses a U118 to enforce a rollback (for
    example, it detects a rollback situation and instead of driving
    the rollback just ends without doing a commit), the application
    will need to be changed to properly issue
    IMSTransaction.getTransaction() .rollback Relying on the U118
    for rollback processing is not a recommended programming
    technique.  This affects only JMP applications.
    
    - If an application directly calls CHKP using the low level Java
    API, the application will now receive the next input message as
    part of CHKP processing.  This affects only JMP applications.
    
    ---------------------------------------------------------------
    GC18-7827
    BOOK: Messages and Codes Volume 1
    ---------------------------------------------------------------
    Delete abend code 0118 (ABENDU0118)
    
    ---------------------------------------------------------------
    SC18-7821
    BOOK: Java Guide and Reference - section
    "Enterprise COBOL interoperability w/ JMP and JBP applications"
    ---------------------------------------------------------------
    Add the following statement:
    
    Users wishing to take advantage of transactions using IMS Java
    and OO COBOL executing in a Java Dependent Region and invoking
    legacy business logic written in COBOL can do so without
    changing their existing legacy COBOL applications.
    
    
    Delete ALL of the following lines:
    
    When Java is the front-end language, you must perform all
    message-queue and message-synchronization processing in Java.
    
    For example, you must call both the
    IMSMessageQueue.getUniqueMessage method (to read messages from
    the queue) and the IMSTransaction.getTransaction() .commit()
    method (to commit changes) before reading subsequent messages
    from the message queue or exiting the application.
    
    Important:
    Do not mix the languages that are used to read messages from the
    message queue or to commit resources.  The IMS Java library
    tracks the calls that are made in Java to ensure that the
    syncpoint rules are followed, but it does not track calls made
    in COBOL.
    
    The COBOL application must commit resources before reading
    subsequent messages or exiting the application.  A COBOL GU call
    does not implicitly commit resources when the program is running
    in a JMP or JBP region as it does when the program is running in
    an MPP region.
    
    Use Dl/I calls for message processing (GU and GN) and
    transaction synchronization (CHKP) . A CHKP call in a JMP or JBP
    region does not automatically retrieve a message from the
    message queue.
    
    ---------------------------------------------------------------
    GC18-7823
    BOOK: Installation Volume 2 - System Definition and Tailoring
    "Parameter descriptions for IMS supplied procedures"
    ---------------------------------------------------------------
    Delete JVMOPWKR= description and state this parm is now obsolete
    and ignored if specified.
    ===
    Delete DEBUG= parameter.  There is no debug version of
    JDK 5.0 like there was for JDK 1.4 (libjvm_g.so)
    ===
    Replace the description of JVMOPMAS= with the following:
    
    Sets the name of the member in IMS.PROCLIB that contains the JVM
    options for the standalone JVM for Java Dependent Regions (JBPs
    and JMPs) . member name is a maximum of 8 uppercase characters.
    
    This JVM options member must contain the following:
    
    o Specify -Xoptionsfile=<HFS JVM properties file> and then
      specify the -Djava.class.path=<application class path> option
      in the options file. -Xoptionsfile allows you to specify
      pathnames greater than 255 characters in length on the
      -Djava.class.path option.
    
      OR
    
    o Specify -Djava.class.path=<application class path> directly in
      this member.
    
    Specify the path name (or path names) of your IMS Java
    application class files.  If your .class files are contained in
    a .jar file, the path name to the .jar file must be fully
    qualified, including the name of the .jar file.
    
    Comments are supported for this options member.  The comments
    begin with an asterisk (*) in the first column.
    
    Each line in the options file must not be longer than 72 bytes,
    including the continuation mark.  Use a greater-than symbol (>)
    at the end of the line as a continuation character.
    
    If you do not use the -Xoptionsfile JVM option, path strings can
    be a maximum of 255 bytes in length (any characters over 255
    bytes will be ignored) . A path string can be one path name or
    several path names.  If you are specifying multiple path names,
    separate each by a colon (:) .
    
    The sample member, DFSJVMMS, demonstrates how to specify the JVM
    options for Java Dependent Regions (JBPs and JMPs)
    
    ====
    Add following to description of ENVIRON=:
    
    Environment variables in the form X=Y can be specified where X
    is the environment variable and Y is the value of the
    environment variable.  For example, you can specify
    JAVA_DUMP_OPTS=ONINTERRUPT(ALL),ONANYSIGNAL(ALL) in the member
    and IMS will set the environment variable "JAVA_DUMP_OPTS" to
    the value "ONINTERRUPT(ALL),ONANYSIGNAL(ALL)".
    

APAR Information

  • APAR number

    PK37843

  • Reported component name

    IMS V9

  • Reported component ID

    5655J3800

  • Reported release

    900

  • Status

    CLOSED UR1

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    YesSpecatt / New Function / Xsystem

  • Submitted date

    2007-01-22

  • Closed date

    2007-12-07

  • Last modified date

    2008-04-14

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

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

    PK56409 UK32054 UK32055

Modules/Macros

  • DFSCPY00 DFSDLA00 DFSFXC30 DFSJJAR  DFSJVM00
    DFSPCJB0 DFSPCJM0 DFSRCJM0 DFSTMS00 PARMBLK
    

Publications Referenced
GC17783100GC18782700SC18782100GC18782300 

Fix information

  • Fixed component name

    IMS V9

  • Fixed component ID

    5655J3800

Applicable component levels

  • R900 PSY UK32054

       UP07/12/14 P F712

[{"Business Unit":{"code":"BU048","label":"IBM Software"},"Product":{"code":"SSCVRBJ","label":"System Services"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"9.1","Edition":"","Line of Business":{"code":"","label":""}}]

Document Information

Modified date:
14 April 2008