IBM Support

PI97168: SQLCODE10 IF BINARY ZERO IN EXPRESSION FROM THE SELECT CLAUSE SQLCODE -10

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • (HPU 5.1 only) An error SQLCODE, such as SQLCODE=-10, is issued
    and the unload process stops with completion code 8 if a logical
    unload (OUTDDN option) run in native mode has a SELECT clause
    involving a constant that contains a binary zero (0x00).
    
    PB52730
    
    (HPU 5.1 only) For some specific memory maps, unpredictable
    failures can occur if some other conditions that cannot be
    explicitly listed are fulfilled, Some of those conditions are:
    
    case 1) the unload is processed in native mode and specifies a
    WHERE clause
    case 2) the unload requests a format conversion via an INTO
    clause, a REFORMAT clause or the USER format
    
    PB52637
    

Local fix

  • specify the concerned constant in hexadecimal representation or
    run the unload in SQL mode by specifying DB2 FORCE.
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED:                                              *
    * Users of High Performance Unload                             *
    ****************************************************************
    * PROBLEM DESCRIPTION:                                         *
    * PI95259:                                                     *
    * Currently HPU ends with COND CODE 4 if no records get        *
    * written to the unload file. That is HPU ends                 *
    * with COND CODE 4 if all the SELECTS, in multiple SELECT      *
    * SYSIN, return zero rows. There is no way for                 *
    * customer to determine whether any one SELECT of multiple     *
    * SELECT returns zero rows.                                    *
    *                                                              *
    * PI96267:                                                     *
    * When a TEMPLATE statement describes the most recent data set *
    * of a Generation Data Group (GDG) by                          *
    * specifying a data set name (DSN) with the (0) part as in the *
    * following example:                                           *
    * TEMPLATE COPY DSN 'ME.COP&PART.(+0)'                         *
    * the related data set(s) is(are) not correctly allocated as   *
    * the whole GDG is allocated instead. This                     *
    * might lead to various and unpredictible results depending on *
    * which dataset the TEMPLATE statement is                      *
    * used for and on the content of the undesired datasets.       *
    *                                                              *
    * PI96657:                                                     *
    * Although the IC subsoption is specified for the              *
    * CHECK_INTEGRITY LEVEL1 feature,the utility does not          *
    * report the incorrect situation by issuing a user ABEND       *
    * following unsupported or abnormal situation:                 *
    * - an unload requests the data from image copy data set(s) be *
    * unloaded                                                     *
    * - a compressed record is read before the related dictionary  *
    * pages have not yet been read                                 *
    * and a failure such as a system ABEND occurs instead.         *
    *                                                              *
    * PI96676:                                                     *
    * The unload end with an ABEND if the following conditions are *
    * fulfilled:                                                   *
    * - the table to unload is in a partitionned table space       *
    * - the unload is performed in SQL mode                        *
    * - the unload statement specified SQLPART                     *
    * - the output data set specified for OUTDDN is allocated via  *
    * a TEMPLATE statement which DSN option                        *
    * does not include a partition dependent part.                 *
    * When the output data set if allocated on tape, the unload    *
    * ends with ABENDS0C4.                                         *
    * When the output data set if allocated on disk, the unload    *
    * ends with ABENDU1003.                                        *
    *                                                              *
    * PI97004:                                                     *
    * The following situation should be supported.                 *
    * an unload request the data from image copy data set(s) be    *
    * unloaded                                                     *
    * - the input image copy contains no versions                  *
    * - the target table space (the one specified by the UNLOAD    *
    * TABLESPACE statement or that contains the                    *
    * table specified in the SELECT statement) has versions        *
    *                                                              *
    * PI97005:                                                     *
    * For some specific memory maps, unpredictable failures can    *
    * occur if some other conditions that cannot                   *
    * be explicitly listed are fulfilled, Some of those conditions *
    * are:                                                         *
    * case 1) the unload is processed in native mode and specifies *
    * a WHERE clause                                               *
    * case 2) the unload requests a format conversion via an INTO  *
    * clause, a REFORMAT clause or the USER                        *
    * format                                                       *
    *                                                              *
    * PI97098:                                                     *
    * When unloading in native mode a non partitioned tablespace,  *
    * the job terminates with return code 8                        *
    * after having issued the following message :                  *
    *  INZI800E ERROR ACCESSING TO A DATASET. ACTION: GET RC: 0x8  *
    * REASON: 0x18.                                                *
    *  This occurs when the following situation :                  *
    *  the table space has several LDS                             *
    *  and at least one of the following situation is true:        *
    *  case 1) the tablespace contains a table with compressed     *
    * data                                                         *
    *  some of the dictionary pages are located in a LDS different *
    * from the first LDS                                           *
    *  case 2) the tablespace contains a table with rows from      *
    * distinct DDL versions                                        *
    *  some of the version pages are located in a LDS different    *
    * from the first LDS                                           *
    *                                                              *
    * PI97168:                                                     *
    * An error SQLCODE, such as SLCOE=-10, is issued and the       *
    * unload process stops with completion code 8 if               *
    * a logical unload (OUTDDN option) run in native mode has a    *
    * SELECT clause involving a constant that                      *
    * contains a binary zero (0x00).                               *
    *                                                              *
    * PI98081:                                                     *
    * The allocation of an image copy located on tape to be        *
    * unloaded (COPYDDN option) fails and the error                *
    * is reported by a message such as                             *
    * IKJ56221I DATA SET dsname NOT ALLOCATED, VOLUME NOT          *
    * AVAILABLE                                                    *
    * IKJ56221I VOLUME  IS ALLOCATED TO ANOTHER JOB OR USER, TRY   *
    * LATER.                                                       *
    * This occurs when the following conditions are fulfilled:     *
    * - the image copies to be unloaded are described by a         *
    * template (COPYDDN template_name).                            *
    * - several image copies to be unloaded are located on the     *
    * same tape.                                                   *
    *                                                              *
    * PI98082:                                                     *
    * Fix #1                                                       *
    * When an unload involves a LISTDEF specifying a duplicate     *
    * INCLUDE clause with the PARTLEVEL option, an                 *
    * ABENDS0C4 occurs after messages as follows have been issued: *
    * CEE3204S The system detected a protection exception (System  *
    * Completion Code=0C4).                                        *
    * From compile unit                                            *
    * ZPS1:/u/mzlhpu/views/hz4850_dev/infotel/infotel/source/obf.c *
    * at entry point                                               *
    * obfResize at statement 1638 at                               *
    *                                                              *
    *                                                              *
    *          compile unit offset +000000001F1477E6 at entry      *
    * offset +00000000000000A6 at address                          *
    * 000000001F1477E6.                                            *
    *                                                              *
    * Traceback:                                                   *
    * DSA   Entry       E  Offset  Statement   Load Mod            *
    * Program Unit                                                 *
    * ...                                                          *
    * 6     obfResize   +000000A6  1638        OLDUTK27            *
    * obf.c                                                        *
    * 7     _olistdefIncludeObjInList                              *
    *                                                              *
    *                   +000005B2  3243        OLDUTK27            *
    * olistdef.c                                                   *
    * 8     _olistdefApplyFilter                                   *
    *                                                              *
    *                   +000002B0  3148        OLDUTK27            *
    * olistdef.c                                                   *
    * 9     olistdefEvaluateTs                                     *
    *                                                              *
    *                   +0000062A  2843        OLDUTK27            *
    * olistdef.c                                                   *
    * 10    inzhyyparse +000115E4  11263       OLDUTK27            *
    * inzhyacc.c                                                   *
    * 11    inzmyyparse +00000EA2  572         OLDUTK27            *
    * inzmyacc.c                                                   *
    * 12    main        +00000D96  1219        OLDUTK27            *
    * inzmain.c                                                    *
    * Fix #2                                                       *
    * An ABENDS0C4 occurs when unloading to a file on tape the     *
    * data from an image copy requiring a SORT                     *
    * process.                                                     *
    * Fix #3                                                       *
    * The processing of an unload command containing several       *
    * UNLOAD or SELECT statements dos not report a                 *
    * failure that affects one of the single unload processes.     *
    * Fix #4                                                       *
    * The unloaded data is not written into the relevant dataset.  *
    * This can occur where either of the                           *
    * following applies:                                           *
    * case # 1) the data from several partitioned tablespaces is   *
    * to be unloaded into the same set of output                   *
    * datasets per partition and the partition reading parallelism *
    * is less than the number of involved                          *
    * partitions.                                                  *
    *                                                              *
    * For example: This occurs for an UNLOAD command as follows    *
    *  GLOBAL DB2 NO PARALLELISM (1,1,1);                          *
    *  UNLOAD TABLESPACE                                           *
    *                                                              *
    *  SELECT * FROM MZLFD.TBUTSRG1                                *
    *  OUTDDN (SYSREC  ) FORMAT DSNTIAUL                           *
    *                                                              *
    *  SELECT * FROM MZLFD.TA_PAYROLL_HIST                         *
    *  OUTDDN (SYSREC  ) FORMAT DSNTIAUL                           *
    *                                                              *
    *  SELECT * FROM MZLFD.TBUTSIBM                                *
    *  OUTDDN (SYSREC  ) FORMAT DSNTIAUL                           *
    *                                                              *
    * and an output dataset allocation as follows:                 *
    * //SYSREC01 DD                                                *
    * DSN=MZLFD.TEST.PRT48P.P01,DISP=(NEW,CATLG,DELETE),           *
    * //            SPACE=(TRK,(30,10),RLSE),UNIT=WORK             *
    * ...                                                          *
    * //SYSRECnn DD                                                *
    * DSN=MZLFD.TEST.PRT48P.Pnn,DISP=(NEW,CATLG,DELETE),           *
    * //            SPACE=(TRK,(30,10),RLSE),UNIT=WORK             *
    *                                                              *
    * case #2) the data from some partition of a tablespace is to  *
    * be unloaded into a single dataset while                      *
    * the resto of the partitions are to be unloaded into a single *
    * dataset per partition.                                       *
    *                                                              *
    * For example : This occurs for an UNLOAD command as follows   *
    *  GLOBAL                                                      *
    *  DB2 NO                                                      *
    *  PARALLELISM (1,1,1)                                         *
    *  ;                                                           *
    *  UNLOAD TABLESPACE                                           *
    *  SELECT *                                                    *
    *  FROM MZLFD.TBUTSRG1                                         *
    *  PART(ALL)                                                   *
    *  OUTDDN (SYSREC  ) FORMAT DSNTIAUL                           *
    *                                                              *
    * and an putput dataset allocation as follows                  *
    * //SYSREC   DD                                                *
    * DSN=MZLFD.TEST.PRT48.GBL,DISP=(NEW,CATLG,DELETE),            *
    * //            SPACE=(TRK,(30,10),RLSE),UNIT=WORK             *
    * //SYSREC02 DD                                                *
    * DSN=MZLFD.TEST.PRT48.P02,DISP=(NEW,CATLG,DELETE),            *
    * //            SPACE=(TRK,(30,10),RLSE),UNIT=WORK             *
    * //SYSREC03 DD                                                *
    * DSN=MZLFD.TEST.PRT48.P03,DISP=(NEW,CATLG,DELETE),            *
    * //            SPACE=(TRK,(30,10),RLSE),UNIT=WORK             *
    * //SYSREC04 DD                                                *
    * DSN=MZLFD.TEST.PRT48.P04,DISP=(NEW,CATLG,DELETE),            *
    * //            SPACE=(TRK,(30,10),RLSE),UNIT=WORK             *
    * //SYSREC07 DD                                                *
    * DSN=MZLFD.TEST.PRT48.P07,DISP=(NEW,CATLG,DELETE),            *
    * //            SPACE=(TRK,(30,10),RLSE),UNIT=WORK             *
    ****************************************************************
    * RECOMMENDATION:                                              *
    * Apply the PTF for problem resolution                         *
    ****************************************************************
    

Problem conclusion

  • Code has been changed to fix this problem
    

Temporary fix

  • PI96676:
    Remove the SQLPART option that has no effect in this situation
    with a global output data set.
    
    PI97168:
    Specify the concerned constant in hexadecimal representation or
    run the unload in SQL mode by
    specifying DB2 FORCE.
    
    PI98082:
    Fix #1 Remove the duplicate INCLUDE clause.
    Fix #4 Increase the partition reading parallelism up to the
    number of partition unloaded if possible
    When several unload of partitionned tablespaces are performed
    into a single file per partition, the
    data are not unloaded in the right files. Depending the
    parallelism and the number of partition data
    of several partitions are cumulated in one or several file.
    

Comments

APAR Information

  • APAR number

    PI97168

  • Reported component name

    DB2 HI PERF UNL

  • Reported component ID

    5697F4400

  • Reported release

    510

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    YesHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2018-04-24

  • Closed date

    2018-05-24

  • Last modified date

    2018-08-27

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

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

    UI56082

Modules/Macros

  • INZ$$PRM INZUTILK INZTVAR
    

Fix information

  • Fixed component name

    DB2 HI PERF UNL

  • Fixed component ID

    5697F4400

Applicable component levels

  • R510 PSY UI56082

       UP18/05/31 P F805

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":"SSAUUV","label":"IBM Db2 High Performance Unload for z\/OS"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"5.1.0","Edition":"","Line of Business":{"code":"LOB10","label":"Data and AI"}}]

Document Information

Modified date:
12 February 2021