IBM Support

PK64322: GENJCL.USER WITH %SELECT SLDS(%USSID,LAST) DOES NOT SELECT THE LAST VALID SLDS DATA SET FROM RECON

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • Customer want to use GENJCL.USER to get the last PRISLD data set
    name. They use %SELECT SLDS(%USSID,LAST) in the skeletal JCL to
    select the last SLDS data set name in RECON.
    Problem is when IMS restarted, the online IMS creates a new
    PRISLD record with STOP = 00.000 00:00:00.0 and #DSN=0.
    At this time, the GENJCL picks up a null DSN as the last one.
    What they want is the last valid SLDS entry in RECON because
    the returned null DSN name cause error in followed JCL.
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED: All IMS V9 DBRC users of                     *
    *                 %SELECT SLDS(SSID,LAST) statements in their  *
    *                 skeletal JCL may be affected.                *
    ****************************************************************
    * PROBLEM DESCRIPTION: GENJCL.USER returns a null DSN for      *
    *                      %SELECT SLDS(%USSID,LAST) if IMS is     *
    *                      active and no OLDS have been archived   *
    *                      yet.  The last PRISLD/SECSLD is empty.  *
    ****************************************************************
    * RECOMMENDATION: INSTALL CORRECTIVE SERVICE FOR APAR/PTF      *
    ****************************************************************
      A %SELECT SLDS(SSID,LAST) jcl statement returns the
    information for the empty data set when IMS has just been
    restarted and no OLDS have been archived.  The last valid SLDS
    for the specified SSID should be used instead.
    

Problem conclusion

  • AIDS: RIDS/DBRC RIDS/CMD DBRC CMD
     GEN:
    KEYWORDS:
    
    *** END IMS KEYWORDS ***
      DSPJBSEL, DSPJBSRL and DSPJBSSL have been modified to resolve
    this problem.  A new time qualifier, LASTDSET, has been created.
    When this time qualifier is used with the %SELECT statement such
    as:
        %SELECT SLDS(ssid,LASTDSET)
    or,
        %SELECT RLDS(ssid,LASTDSET)
    the previous PRI/SEC SLDS (or RLDS) will be located when the
    last SLDS (RLDS) for the specified SSID is empty.  If no
    previous log record exists then the empty log record is used.
    When the record is empty, the following symbolic keywords will
    have these values:
       %SLDSDSN or %LOGDSN  = blanks (null DSN)
       %SLDSTIM or %LOGSTIM = 000000000000+0000
       %SLDETIM or %LOGETIM = 000000000000+0000
       %SLDOTIM or %LOGOTIM = Log open time (the time IMS started)
    .
      LASTDSET is only valid for SLDS or RLDS.  If it is specified
    for any other record type it will default to LAST.
    .
      The IMS Version 9 Data Base Recovery Control (DBRC) Guide and
    Reference manual (SC18-7818-03) has been updated with the
    following:
     In Chapter 5. Skeletal JCL,
        under Using Control Keywords, Understanding the Selection
              Criteria Parameter,
        Add the following to 'time qualifier:'
    .
          LAST
            Specifies that the most recent record is to be selected.
          LASTDSET
            Similar to LAST but will ignore empty log records and
            return the last RLDS or SLDS that contains DSN entries.
            Only valid for RLDS or SLDS (including secondary).  Will
            default to LAST if specified for any other record type.
    .
        under Writing Control Keywords, Selecting SLDSs, slds_type,
        make the second paragraph read as follows:
    .
    If the selected PRILOG data set is marked in error, DBRC selects
    the associated secondary data set if one that is not also in
    error exists. If the associated data set exists but is also in
    error, DBRC selects the original record. If SSLDS is specified,
    the SECLOG data set is selected regardless of if whether it is
    marked in error. An SLDS record might not contain a DSN entry.
    In this case, the values for %SLDSDSN, %SLDUNIT, and %SLDVOLS
    are null. By using the LASTDSET time qualifier you can have the
    last PRISLDS data set that contains data set entries returned.
    You must use the %DELETE statement in order to ensure that DBRC
    substitutes valid data in the generated JCL. See "Example 4" on
    page 97.
    .
        under Writing Control Keywords, Selecting RLDSs,
        add the following to the end of the first paragraph:
    .
    An RLDS record might not contain a DSN entry.  In this case, the
    values for %LOGDSN, %LOGUNIT, and %LOGVOLS are null. By using
    the LASTDSET time qualifier you can have the last PRILOG data
    set that contains data set entries returned.
    

Temporary fix

Comments

APAR Information

  • APAR number

    PK64322

  • Reported component name

    IMS V9

  • Reported component ID

    5655J3800

  • Reported release

    900

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2008-04-10

  • Closed date

    2008-05-20

  • Last modified date

    2008-10-23

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

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

    PK64720 UK36620

Modules/Macros

  • DSPJBSEL DSPJBSRL DSPJBSSL DSPJSELB
    

Publications Referenced
SC18781803    

Fix information

  • Fixed component name

    IMS V9

  • Fixed component ID

    5655J3800

Applicable component levels

  • R900 PSY UK36620

       UP08/05/30 P F805

[{"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:
23 October 2008