IBM Support

PK90294: INVALID RSA RETURNED ON GSAM ISRT DLI CALL

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • The RSA returned by ISRT DL1 calls on a GSAM file are incorrect
    except for the first record.  The RSA returned is the RSA of the
    previous record, not the RSA of the currently inserted record.
    The sequence of RSA returned  corresponding to the sequence of
    ISRT calls are the following for a file with a fixed length of
    19000 (2 records by track):
    Fisrt ISRT, RSA : 0000000101010000
      2nd ISRT, RSA : 0000000101010000
      3rd ISRT, RSA : 0000000201010000
      4th ISRT, RSA : 0000010101010000
    The problem comes from DFSZD210 where on the 1st ISRT, LKREF
    is set to 0001 even if NOTE returns 0000.
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED: All IMS V10 users of GSAM.                   *
    ****************************************************************
    * PROBLEM DESCRIPTION: Two problems are being fixed in this    *
    *                      APAR:                                   *
    *                                                              *
    *                      1. Incorrect RSA (Record Search         *
    *                         Argument) values are returned to     *
    *                         the Key Feedback Area during insert  *
    *                         (ISRT) processing of GSAM records    *
    *                         that span to the next block.         *
    *                                                              *
    *                      2. Customers encountered MSGASMA044E    *
    *                         undefined symbol when assembling     *
    *                         DFSZD110.                            *
    ****************************************************************
    * RECOMMENDATION: INSTALL CORRECTIVE SERVICE FOR APAR/PTF      *
    ****************************************************************
    Insert calls to a GSAM Data Base contain invalid RSA values in
    the DBPCB Key Feedback Area.  This occurs because the zone bit
    in the RSA was removed in IMS V10.  The RSA format was changed
    from TTRZ to TTTR to accommodate large format data sets greater
    than 64,000 tracks.  The zone bit was replaced with a zone flag,
    GBZFLAG, which is enabled internally in the IMS GSAM code when
    the current record spans blocks.
    
    This issue was detected when a GSAM Data Base was defined as one
    record per block.  The first record was in the first block and
    all subsequent records spanned into other blocks thus enabling
    the zone flag, GBZFLAG.  However, since the zone bit no longer
    exists in the RSA, the RSA values returned in the DBPCB Key
    Feedback Area did not accurately represent the exact location of
    the GSAM record on DASD.  When the RSA values were used for Get
    Unique (GU) calls incorrect GSAM records will be returned.
    
    Also, after a CLSE (Close) call, all insert calls that span
    blocks will contain a DBPCB Key Feedback Area with invalid RSA
    values.  This occurs because GBZFLAG is not reset during a CLSE
    call in module DFSZD110.
    
    As for the second problem the customer could not assemble
    DFSZD110 when they applied a fixtest/aparfix due to missing
    macros IEZCTGPL and IEZCTGFL.  Beginning with DFSMS 1.5, those
    macros were provided on the optional source tape only.  The
    customers did not have the macros in their library.
    

Problem conclusion

  • GEN:
    POSTREQ PM15152
    KEYWORDS:
    
    *** END IMS KEYWORDS ***
    
    DOCUMENTATION CHANGE FOR APAR PK90294
    THIS MAINTENANCE IS BEING HELD SO YOU WILL BE
    AWARE OF DOCUMENTATION CHANGE TO MANUAL(S):
    GC18970701
    SC18969801
    -
    THE FOLLOWING TEXT DESCRIBES THE DOC CHANGE:
    -
    * IMS Version 10 Diagnosis Reference  (GC18970701)
    
    -Under Section entitled: GSAM control block dump-DFSZD510
     Sub-Section entitled:  Converting an SMS-managed, non-striped
                            data set to a striped data set
    
      --The 3rd paragraph, second to last sentence, update:
    
    ... but also having a different relative track and record
    (TTRZ or TTTRZ for large format data sets) .
    
      --The 4th paragraph, first sentence, update:
    
    Migration from GSAM/BSAM non-striped data sets, which use TTRZ
    (or TTTRZ for large format data sets) for repositioning, ...
    
      --Update #3 in the list entitled:  "To convert to an
        SMS-managed, non-striped data set to a striped data set:"
    
    3.  When using DFSMS striped data sets, the restriction
    regarding maintaining the same number of records on the copied
    from and copied to volumes does not apply because with striped
    data sets, GSAM uses the RBN for NOTE/POINT, not the TTRZ (or
    TTTRZ for large format data sets) .
    
    * IMS Version 10 Application Programming Guide (SC18969801)
    
    -Section entitled: Accessing GSAM databases
     --In "Table 15. GSAM DB PCB mask"
     --Update column 2 "Byte length", row 10 "Key feedback area"
              as follows:
    
    Descriptor          Byte
                        length
    
    Key feedback area   8 or 12 for large data sets
    
     --In the Notes: section after table 15 update 7. and 9.:
    
    7.  Length of Key Feedback Area and Undefined-Length Records
    Area. This is a 4-byte field that contains the decimal value of
    12 (or 16 for large format data sets) . This is the sum of the
    lengths of the Key Feedback Area and Undefined-Length Record
    area.
     -- Update 9.  last sentence as follows:
    This field is 8 bytes for basic format data sets or 12 bytes
    for large format data sets.
     --Update Under Sub-Section: Retrieving and Inserting GSAM
        --Second paragraph, last sentence:
     For BSAM disk data sets, the RSA contains the disk address and
     uses the relative track and record (TTRZ or TTTRZ for large
     format data sets) format.
     --Rename table 16 to 16a. and rename the title of the table to:
    "Table 16a. Format of the RSA (for basic format data sets)"
     --Update table 16a., column 2 "Address", row 1 "Positions 1-4",
                          1st bullet as follows:
    Positions 1-4    * BSAM (DASD) relative track and record (TTRZ)
                       for the block in the buffer.
     -- Add a new table (Table 16b.) as follows after table 16a.
    Table 16b. Format of the RSA (for large format data sets)
    Position       Address
    Positions 1-4  * BSAM (DASD) relative track and record (TTTR)
                     for the block in the buffer.
                   * BSAM RBA.
    Position 5     Zone byte
    Position 6     Relative data set of the concatenated data set.
                   The first data set number is 1.
    Position 7     Relative volume of the data set.  The first
                   volume of data set is 1.
    Position 8-10  Null bytes. Not used.
    Positions 11   Current displacement.
    and 12
    
      --Update Under Sub-section: Resetting the Position in a GSAM
                                  Database
        --Update the 1st bullet to the following:
            * To reset the position to the start of the GSAM
              database using basic format data sets, issue a
              GU call with an RSA that consists of a fullword
              with a binary value of 1, followed by a fullword
              with a binary value of 0.
        --Add a new bullet after the 1st bullet to the following:
            * To reset the position to the start of the GSAM
              database using large format data sets, issue a
              GU call with an RSA that consists of a fullword
              with a binary value of 1, followed by 2 fullwords
              with a binary value of 0.
    
    -Section: Origin of GSAM data set characteristics
     Sub-section: Copying GSAM Data Sets Between Checkpoint and
                  Restart
      --Update the 1st paragraph, sentences 1 and 2
    To position GSAM data sets when restarting non-striped GSAM
    DASD data sets use the relative track and record format (TTRZ or
    TTTRZ for large format data sets) . GSAM uses TTRZ or TTTRZ on
    the volume to position non-striped GSAM DASD data sets when
    restarting.  For a tape data set, ...
    
      --Make a change to the last sentence in the Note: paragraph.
    
    After the data set is copied, unlike with non-striped DASD data
    sets, you do not need to ensure that the restart record's TTRZ
    or TTTRZ is unchanged.
    
     -Sub-section: Converting Data Sets From Non-Striped Data Sets
                   to Striped Data Sets
      --Update the 3rd paragraph, last sentence
    
    Because the issued checkpoint saved a TTRZ or TTTRZ value in the
    log record for repositioning, the log record for striped data
    sets will be used by GSAM restart after failure, which requires
    a relative block number (RBN) to perform the repositioning.
    
    -Section: "Data areas in GSAM databases" (3rd paragraph) update:
    
    The RSA (record search argument) is an 8-byte token for basic
    format data sets or 12-byte token for large format data
    sets that can be returned on GN and ISRT calls.
    
    Code Changes:
    
       *********************************************************
       * DBFDLB00 DFSADLR0 DFSAPSB0 DFSBIND0 DFSERA20 DFSPCC30 *
       * DFSDLB00 - DFSDLB80                                   *
       *********************************************************
    Modules DBFDLB00, DFSADLR0, DFSAPSB0, DFSBIND0, DFSERA20,
    DFSPCC30, DFSDLB00, DFSDLB10, DFSDLB20, DFSDLB30, DFSDLB40,
    DFSDLB50, DFSDLB60, DFSDLB70, and DFSDLB80 were recompiled to
    include the change to the IDLI macro.
    
       * DFSDDLS3 *
    The declaration of RSA1-RSA4 has been changed from 8 bytes to
    12 bytes.
       * DFSDDLS5 *
    Code was added to module DFSDDLS5 in routine PR@CALL to print
    the last 4 bytes of a 12 byte RSA value in the SEG= field when
    DSNTYPE=LARGE is specified.  When the key feedback size is equal
    to 16 bytes this indicates that DSNTYPE=LARGE was specified and
    the RSA format is 12 bytes.  The last 2 bytes of the additional
    4 bytes contains the displacement value in the RSA for variable
    length GSAM records during get unique calls.
    
       * DFSIPSB  DFSIPSBA *
    Macros DFSIPSB and DFSIPSBA have been changed in PBPCB DSECT to
    increase the size of the GSAM key feedback area, and RSA area.
    PBPCBGFD is increased to 16 bytes and PBPCBRRA is increased to
    12 bytes.
       * DFSZDC00 *
    Code has been added to module DFSZDC00 in the OPENED routine to
    parse the input RSA to either a 8 byte RSA or a 12 byte RSA for
    GU calls.  An 8 byte RSA is used when GB64KTRK is not enabled.
    An 12 byte RSA is used when GB64KTRK is enabled.
    
       * DFSZDI00 DFSZDI20 *
    Modules DFSZDI00 and DFSZDI20 were recompiled to include the
    changes to IDLI and IGLI macros.
       * DFSZDI30 *
    Code has been added to module DFSZDI30 after the OBTAIN of the
    Format 1-DSCB after label INST0200 to determine if
    DSNTYPE=LARGE, DS1LARGE, is specified on the GSAM data set.  If
    it has been specified then GB64KTRK flag is enabled and
    BLOCKTOKENSIZE=LARGE, DCBELARGE, is not disabled.  However, if
    DSNTYPE=LARGE is not specified then GB64KTRK flag will not be
    enabled and DCBELARGE flag will be disabled.
       * DFSZD110 *
    Code has been added to module DFSZD110 after label NOTR05 to
    reset GBZFLAG and GB64KTRK flags during a CLSE call.
    For the second problem, implemented CAMLST macro to generate the
    parameter list for SVC 26 call to locate the catalog of a
    GSAM/BSAM data set.  Message MSGASMA044E undefined symbol when
    assembling is resolved with this fix.  This is a forward fit of
    APAR PK43207.
       * DFSZD150 DFSZD250 DFSZSR00 *
    Modules DFSZD150, DFSZD250 and DFSZSR00 are recompiled to
    include the changes to IGLI macro.
       * DFSZD210 *
    Code has been added to module DFSZD210 to check if GB64KTRK,
    DSNTYPE=LARGE, is set.  If set then process the RSA as TTTRZ.
    Otherwise, process the RSA as TTRZ.
    Code in routine MOVDATA after label MOVD0850 has been added for
    GN and ISRT calls to parse the RSA and key feedback for Fixed,
    Variable, and Undefined record lengths.  The RSA and Key
    feedback have been changed to the following formats:
    * DSNTYPE=LARGE NOT specified: (<64K TRACK Data Sets)
    =====================================================
      - RSA format: (8 bytes)
        FORMAT:     T T R Z  DS   VL  DISP
         BYTES:    |   4   | 1  | 1  |  2  |
    
      - Key feedback area format: (12 bytes)
        FORMAT:     T T R Z  DS   VL  DISP  UNDEF LEN
         BYTES:    |   4   | 1  | 1  |  2  |   4     |
    
    * DSNTYPE=LARGE specified: (>64K TRACK Data Sets)
    =================================================
      - RSA format: (12 bytes)
        FORMAT:     T T T R Z  DS   VL   NULL  DISP
         BYTES:    |    5    | 1  | 1  |  3   | 2  |
    
      - Key feedback area format: (16 bytes)
        FORMAT:     T T T R Z  DS   VL   NULL  DISP UNDEF LEN
         BYTES:    |    5    | 1  | 1  |  3   | 2  |   4     |
    
       * DFSZD310 *
    Code was added to module DFSZD310 after label NOTR11 to do a
    POINT call with TYPE=RELNEXT if GBZFLAG and GBDASD are enabled.
    
       * DFSZD510 *
    Code was added to module DFSZD510 to add GPTDSCB to the GPT dump
    formatter.  GPTDSCB is a pointer to the format 1-DSCB which is
    added in macro IGLI.
       * DFSZSC00 *
    Code was added to module DFSZSC00 after label DBPCBRT5 to check
    if GB64KTRK is enabled.  If not then skip code to test and set
    GBZFLAG into XGBZFLAG.
       * DFSZSR10 *
    Code was added to module DFSZSR10 after label GSPCB200 to check
    if GB64KTRK is enabled.  If not then skip code to test and set
    GBZFLAG into XGBZFLAG and set '01'x in XGBLKREF.  If GB64KTRK
    is enabled then check if GBZFLAG is set in XGBZFLAG.  If not
    then set GBZFLAG in XGBZFLAG to indicate the record is in the
    next block.
       * IDLI and DFSPCBS *
    Macros IDLI and DFSPCBS have been changed in DBPCB DSECT to
    increase the size of the GSAM key feedback area, and RSA area
    for large format data sets.  DBPCBGFD is increased to 16 bytes
    and DBPCBRRA is increased to 12 bytes.
    Two new declarations were added.  DBPCBR12 is defined as 8 bytes
    and is used for the RSA area when basic format data sets are
    used.  DBPCBU12 is defined as 4 bytes and is used as the
    undefined length area in the key feedback area when basic format
    data sets are used.
    
       * IGLI *
    A flag was added in IGLI macro in the GB DSECT.  Flag, GB64KTRK,
    represents the case where the GSAM data set is defined with
    DSNTYPE=LARGE.
    
    GPTDSCB has been defined in the GPT DSECT as a pointer to the
    Format 1-DSCB.
    

Temporary fix

  • *********
    * HIPER *
    *********
    

Comments

  • REPINNED RP10/05/24 (ATXT) TO ADD POSTREQ PM15152 INFO.
     **** PE10/05/24 PTF IN ERROR. SEE APAR PM15152 FOR DESCRIPTION
    &#215;**** PE10/05/24 FIX IN ERROR. SEE APAR PM15152  FOR DESCRIPTION
    

APAR Information

  • APAR number

    PK90294

  • Reported component name

    IMS V10

  • Reported component ID

    5635A0100

  • Reported release

    010

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    YesHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2009-07-01

  • Closed date

    2010-04-16

  • Last modified date

    2010-06-25

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

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

    PK94661 UK56158

Modules/Macros

  • DBFDLB00 DFSADLR0 DFSAPSB0 DFSBIND0 DFSDDLS3
    DFSDDLS5 DFSDLB00 DFSDLB10 DFSDLB20 DFSDLB30 DFSDLB40 DFSDLB50
    DFSDLB60 DFSDLB70 DFSDLB80 DFSERA20 DFSIPSB  DFSIPSBA DFSPCBS
    DFSPCC30 DFSZDC00 DFSZDI00 DFSZDI20 DFSZDI30 DFSZD110 DFSZD150
    DFSZD210 DFSZD250 DFSZD310 DFSZD510 DFSZSC00 DFSZSR00 DFSZSR10
    IDLI     IGLI
    

Publications Referenced
SC18969801GC18970701   

Fix information

  • Fixed component name

    IMS V10

  • Fixed component ID

    5635A0100

Applicable component levels

  • R010 PSY UK56158

       UP10/04/22 P F004 Ž

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":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SG19M","label":"APARs - z\/OS environment"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"10.1","Edition":"","Line of Business":{"code":"","label":""}},{"Business Unit":{"code":"BU048","label":"IBM Software"},"Product":{"code":"SSCVRBJ","label":"System Services"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"10.1","Edition":"","Line of Business":{"code":"","label":""}}]

Document Information

Modified date:
25 June 2010