IBM Support

PM83997: DSNT285I COMPARISON COULD NOT BE PERFORMED WHEN BIND WITH APCOMPARE(WARN)

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • Error message DSNT285I when bind with APCOMPARE(WARN), it can be
    reproduced in Case 3 of following test.
    <CASE1>
    ---------------------------------------------------------------
    1.create a new program(precompile and link edit)
    2.BIND a package with the program created in Step1 with
    APCOMPARE(WARN)
       BIND PACKAGE(CBPK30) MEMBER(COB30) APCOMPARE(WARN)
    => DSNT292I  -DBXX DSNTBCM2 BIND PACKAGE =
    DB2XYZ.CBPK30.COB30.(),
                 DB2 WAS UNABLE TO FIND A PRE-EXISTING PACKAGE TO
    OBTAIN
                 PRIOR ACCESS PATHS. APCOMPARE AND/OR APREUSE
    OPTIONS
                 WERE IGNORED.
    3.BIND another package with COPY of the package in Step2 with
    APCOMPARE
     (WARN).
     BIND PACKAGE(CBPK30C) COPY(CBPK30.COB30) APCOMPARE(WARN)
    =>DSNT285I  -DBXX DSNTBBP2 BIND FOR PACKAGE =
    DB2XYZ.CBPK30C.COB30,
                USE OF APCOMPARE RESULTS IN:
                2 STATEMENTS WHERE COMPARISON IS SUCCESSFUL
                0 STATEMENTS WHERE COMPARISON IS NOT SUCCESSFUL
                0 STATEMENTS WHERE COMPARISON COULD NOT BE
    PERFORMED.
      DSNT294I  -DBXX DSNTBCM2 BIND PACKAGE =
    DB2XYZ.CBPK30C.COB30.(),
                  TO PROCESS APCOMPARE AND/OR APREUSE, PRIOR ACCESS
    PATHS
                  FROM VERSION (DB2XYZ.CBPK30.COB30.()) WERE USED.
    ----------------------------------------------------------------
    <CASE2>
    ----------------------------------------------------------------
    1.just BIND the existing package with the same DBRM
      BIND PACKAGE(CBPK30) MEMBER(COB30) APCOMPARE(WARN)
    =>DSNT285I  -DBXX DSNTBBP2 BIND FOR PACKAGE =
    DB2XYZ.CBPK30.COB30,
                USE OF APCOMPARE RESULTS IN:
                2 STATEMENTS WHERE COMPARISON IS SUCCESSFUL
                0 STATEMENTS WHERE COMPARISON IS NOT SUCCESSFUL
                0 STATEMENTS WHERE COMPARISON COULD NOT BE
    PERFORMED.
     DSNT294I  -DBXX DSNTBCM2 BIND PACKAGE = DB2XYZ.CBPK30.COB30.(),
                  TO PROCESS APCOMPARE AND/OR APREUSE, PRIOR ACCESS
    PATHS
                  FROM VERSION () WERE USED.
    2.BIND another package with COPY of the package in Step1 with
    APCOMPARE
     (WARN).
      BIND PACKAGE(CBPK30C) COPY(CBPK30.COB30) APCOMPARE(WARN)
    =>DSNT285I  -DBXX DSNTBBP2 BIND FOR PACKAGE =
    DB2XYZ.CBPK30C.COB30,
                USE OF APCOMPARE RESULTS IN:
                2 STATEMENTS WHERE COMPARISON IS SUCCESSFUL
                0 STATEMENTS WHERE COMPARISON IS NOT SUCCESSFUL
                0 STATEMENTS WHERE COMPARISON COULD NOT BE
    PERFORMED.
     DSNT294I  -DBXX DSNTBCM2 BIND PACKAGE =
    DB2XYZ.CBPK30C.COB30.(),
                  TO PROCESS APCOMPARE AND/OR APREUSE, PRIOR ACCESS
    PATHS
                  FROM VERSION (DB2XYZ.CBPK30.COB30.()) WERE USED.
    ----------------------------------------------------------------
    <CASE3>
    ----------------------------------------------------------------
    1.Pre-compile the program, but no change in SQL.
    2.BIND the package with APCOMPARE
     BIND PACKAGE(CBPK30) MEMBER(COB30) APCOMPARE(WARN)
    =>DSNT285I  -DBXX DSNTBBP2 BIND FOR PACKAGE =
    DB2XYZ.CBPK30.COB30,
                USE OF APCOMPARE RESULTS IN:
                2 STATEMENTS WHERE COMPARISON IS SUCCESSFUL
                0 STATEMENTS WHERE COMPARISON IS NOT SUCCESSFUL
                0 STATEMENTS WHERE COMPARISON COULD NOT BE
    PERFORMED.
     DSNT294I  -DBXX DSNTBCM2 BIND PACKAGE = DB2XYZ.CBPK30.COB30.(),
                  TO PROCESS APCOMPARE AND/OR APREUSE, PRIOR ACCESS
    PATHS
                  FROM VERSION () WERE USED.
    3.BIND another package with COPY of the package in Step2 with
    APCOMPARE
     (WARN).
     BIND PACKAGE(CBPK30C) COPY(CBPK30.COB30) APCOMPARE(WARN)
    =>DSNT285I  -DBXX DSNTBBP2 BIND FOR PACKAGE =
    DB2XYZ.CBPK30C.COB30,
                USE OF APCOMPARE RESULTS IN:
                0 STATEMENTS WHERE COMPARISON IS SUCCESSFUL
                0 STATEMENTS WHERE COMPARISON IS NOT SUCCESSFUL
                2 STATEMENTS WHERE COMPARISON COULD NOT BE
    PERFORMED.
     DSNT294I  -DBXX DSNTBCM2 BIND PACKAGE =
    DB2XYZ.CBPK30C.COB30.(),
                  TO PROCESS APCOMPARE AND/OR APREUSE, PRIOR ACCESS
    PATHS
                  FROM VERSION (DB2XYZ.CBPK30.COB30.()) WERE USED.
    ----------------------------------------------------------------
    

Local fix

  • N/A
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED: Users of DB2 for z/OS executing a            *
    *                 BIND PACKAGE COPY command using              *
    *                 APCOMPARE.                                   *
    ****************************************************************
    * PROBLEM DESCRIPTION: THE PROBLEM THIS FIX ADDRESSES HAS THE  *
    *                      FOLLOWING REPORTED SYMPTOMS:            *
    *                                                              *
    *                         DSNT285I -DBXX DSNTBCM2              *
    *                         BIND PACKAGE = <package>             *
    *                          <x> STATEMENTS WHERE COMPARISON     *
    *                       COULD NOT BE PERFORMED.                *
    *                                                              *
    *                                                              *
    *                      PROBLEM SCENARIO:                       *
    *                                                              *
    *                      The reported error occurred when        *
    *                      attempting a BIND PACKAGE COPY on       *
    *                      an existing package with APCOMPARE      *
    *                      after a precompile. This can also       *
    *                      affect BIND PACKAGE DEPLOY with         *
    *                      APCOMPARE.                              *
    *                                                              *
    *                      Here is an example:                     *
    *                                                              *
    *                       Case1 - Comparison OK                  *
    *                       1.Create a new program (precompile     *
    *                         and link edit)                       *
    *                       2.BIND PACKAGE(XX) MEMBER(YY)          *
    *                         APCOMPARE(WARN)                      *
    *                       3.BIND PACKAGE(ZZ) COPY(XX.YY)         *
    *                         APCOMPARE(WARN)                      *
    *                                                              *
    *                       Case2 - Comparison OK                  *
    *                       1.BIND PACKAGE(XX) MEMBER(YY)          *
    *                         APCOMPARE(WARN)                      *
    *                       2.BIND PACKAGE(ZZ) COPY(XX.YY)         *
    *                         APCOMPARE(WARN)                      *
    *                                                              *
    *                       Case3 - Doesn't compare                *
    *                       1.Precompile the program, but          *
    *                         no change in SQL.                    *
    *                       2.BIND PACKAGE(XX) MEMBER(YY)          *
    *                         APCOMPARE(WARN)                      *
    *                       3.BIND PACKAGE(ZZ) COPY(XX.YY)         *
    *                         APCOMPARE(WARN)                      *
    *                                                              *
    *                      Case 3 BIND COPY gets this error:       *
    *                                                              *
    *                      =>DSNT285I  -DBXX DSNTBBP2 BIND FOR     *
    *                           PACKAGE = DB2.XX.YY,               *
    *                       USE OF APCOMPARE RESULTS IN:           *
    *                        0 STATEMENTS WHERE COMPARISON IS      *
    *                          SUCCESSFUL                          *
    *                        0 STATEMENTS WHERE COMPARISON IS      *
    *                          NOT SUCCESSFUL                      *
    *                        2 STATEMENTS WHERE COMPARISON         *
    *                          COULD NOT BE PERFORMED.             *
    *                                                              *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    SUMMARY OF DB2 EVENTS:
    DB2 uses contoken as one of the search criteria to find the
    previous access path to do the comparison for APCOMPARE. Because
    the contoken changed with the precompile, DB2 used the wrong
    contoken variable to do the comparison. This comparison
    failed.
    

Problem conclusion

  • DB2 has been fixed to point to the correct variable when
    searching for the previous access path to do the APCOMPARE.
    
    ADDITIONAL KEYWORDS:
    BIND COPY DEPLOY APCOMPARE MSGDSNT285I
    

Temporary fix

Comments

APAR Information

  • APAR number

    PM83997

  • Reported component name

    DB2 OS/390 & Z/

  • Reported component ID

    5740XYR00

  • Reported release

    A10

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2013-03-04

  • Closed date

    2013-04-04

  • Last modified date

    2013-05-03

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

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

    UK93150

Modules/Macros

  • DSNTBCM2
    

Fix information

  • Fixed component name

    DB2 OS/390 & Z/

  • Fixed component ID

    5740XYR00

Applicable component levels

  • RA10 PSY UK93150

       UP13/04/19 P F304

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":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSEPEK","label":"Db2 for z\/OS"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"10.1","Edition":"","Line of Business":{"code":"LOB10","label":"Data and AI"}},{"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":""}}]

Document Information

Modified date:
03 May 2013