IBM Support

PI27015: SQLCODE-20212 ISSUED FOR SYSPROC.XSR_COMPLETE WHEN RUNNING DSNTIJRT. XSRCOMPLETE

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • SQLCODE-20212 for SYSPROC.SXR_COMPLETE was issued when
    running DSNTIJRT at the step executing the BIND statement:
      BIND PACKAGE(DSNTRIN) MEMBER(DSNTRIN)
      ACT(REP) ISO(CS) ENCODING(EBCDIC) OWNER(SYSADM)
    
    DSNT408I SQLCODE = -20212, ERROR: USER-DEFINED ROUTINE
      SYSPROC.XSR_COMPLETE ENCOUNTERED AN EXCEPTION ATTEMPTING TO
    LOADCOM.......2..390..10.........~(....)~(....) FROM JAR .
    ORIGINAL EXCEPTION
    DSNT418I SQLSTATE   = 46103 SQLSTATE RETURN CODE
    DSNT415I SQLERRP    = DSNX9CAC SQL PROCEDURE DETECTING ERROR
    DSNT416I SQLERRD    = 0  0  0  -1  0  0 SQL DIAGNOSTIC
    INFORMATION
    DSNT416I SQLERRD    = X'00000000'  X'00000000'  X'00000000'
           X'FFFFFFFF'  X'00000000'  X'00000000'
    The illegible character stream in the message text is supposed
    to be the EXTERNAL_NAME COM.ibm.db2os390.v10.dsnnvxcv.xsr_comple
    te.  Due to CCSID conversion, the translated stream becomes
    invalid.
    

Local fix

  • Use BIND ENCODING(939 or 1047)
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED: All users of DSNTRIN, the installation and   *
    *                 configuration tool for DB2-supplied stored   *
    *                 procedures and user-defined functions (UDFs) *
    *                 in DB2 10 for z/OS and DB2 11 for z/OS.      *
    ****************************************************************
    * PROBLEM DESCRIPTION: One or both of the following errors     *
    *                      occur:                                  *
    *                      (1) Calls to these DB2-supplied Java    *
    *                          routines:                           *
    *                          - SYSFUN.SYSTS_ENCRYPT              *
    *                          - SYSFUN.XSLTRANSFORM               *
    *                          - SYSPROC.XSR_COMPLETE              *
    *                          end with SQLCODE -20212 (USER-      *
    *                            DEFINED ROUTINE name ENCOUNTERED  *
    *                            AN EXCEPTION ATTEMPTING TO LOAD   *
    *                            JAVA CLASS class-name FROM JAR    *
    *                            jar-name.  ORIGINAL EXCEPTION:    *
    *                            exception-string)                 *
    *                          when DB2's default mixed-byte       *
    *                          EBCDIC CCSID (DSNHDECP.MCCSID)      *
    *                          setting is 930, 1390, or 5026       *
    *                          (Katakana character support)        *
    *                                                              *
    *                      (2) Users of JSON support in DB2 for    *
    *                          z/OS can experience failures that   *
    *                          include these diagnostics:          *
    *                            ILLEGAL SYMBOL ".". SOME SYMBOLS  *
    *                            THAT MIGHT BE LEGAL ARE: , FROM   *
    *                            INTO.  SQLCODE=-104,              *
    *                            SQLSTATE=42601                    *
    ****************************************************************
    * RECOMMENDATION: Apply the fixing PTF for this APAR.          *
    ****************************************************************
    Program DSNTRIN is called by job DSNTIJRT to install and
    configure DB2-supplied routines (stored procedures and UDFs),
    including the DB2 objects, such as databases, used by the
    routines.  Currently, there are two problems affecting
    DSNTRIN:
    
    ----------------------------------------------------------------
    (1) Calls to the DB2-supplied Java routines get SQLCODE -20212:
    ----------------------------------------------------------------
    The CREATE statement of a DB2 Java routine must include an
    EXTERNAL NAME clause specified as a delimited string that
    contains the routine's jar name, method name, and method
    signature.  These names may contain lower case Latin letters
    (a - z) as well as upper case (A - Z).  When the EXTERNAL NAME
    is specified incorrectly, attempts to use the routine will fail
    with SQLCODE -20212 as described in the problem description
    section of this APAR.
    
    The DB2-supplied Java routines are created and configured by
    running DB2 installation job DSNTIJRT, program DSNTRIN.  DSNTRIN
    generates CREATE statements and processes them dynamically.
    This works well except when DSNTRIN is bound with an application
    encoding scheme for a mixed-byte EBCDIC CCSID setting of 930,
    1390, or 5026 (Katakana character support).  The single-byte
    EBCDIC CCSIDs associated with 930, 1390, and 5026 are all based
    on codepage 290.  In code page 290, the lower case Latin
    characters, 'a' - 'z', do not reside at the same code points as
    they do in all other EBCDIC code pages, including the one used
    for the program source code of DSNTRIN.  Therefore, when DSNTRIN
    is bound with an application encoding scheme for Katakana
    character support, lower case Latin letters in the EXTERNAL NAME
    statement can be corrupted when the CREATE statement for a DB2-
    supplied Java routine is processed.  Attempts to use the routine
    then fail with SQL CODE -20212.
    
    ----------------------------------------------------------------
    (2) Users of DB2 JSON support get SQLCODE -104 errors:
    ----------------------------------------------------------------
    JSON (JavaScript Object Notation) support in DB2 for z/OS
    includes a native SQL procedure called SYSTOOLS.REGSP.  The
    CREATE or ALTER statement for this procedure includes a
    delimited string that contains lower-case Latin characters, 'a'
    to 'z', and a national symbol, '$'.
     * As explained in item (1), above, lower-case Latin characters
       can be corrupted  when DSNTRIN is bound with an application
       encoding scheme for Katakana support.
     * The '$' symbol is a so-called variant character because it
       does not reside at the same code point in all EBCDIC code
       pages.  For example, it resides at code point x'5B' in code
       pages 37 and 1047 but it resides at code point x'E0' in
       code page 290 and at code point x'67' in code page 277.
    Currently, when DSNTRIN is bound with an application encoding
    scheme in which the lower-case Latin characters or the '$'
    symbol (or both) do not reside at the same code points where
    they reside in code page 1047, the delimited string in the
    CREATE or ALTER statement for SYSTOOLS.REGSP can become
    corrupted.  Attempts to use JSON support then fail with SQLCODE
    -104 errors.
    

Problem conclusion

  • In response to the SQLCODE -20212 errors, this APAR modifies
    DSNTRIN to prevent corruption of lower case Latin characters
    in the EXTERNAL NAME clauses of CREATE statements for DB2-
    supplied Java routines, even when DSNTRIN is bound with an
    application encoding scheme for Katakana character support.
    
    In response to the SQLCODE -104 errors, this APAR modifies
    DSNTRIN to:
     * Prevent corruption of lower case Latin characters in the
       text of the CREATE or ALTER statement for the SYSTOOLS.REGSP
       stored procedure when DSNTRIN is bound with an application
       encoding scheme for Katakana character support.
     * Prevent possible corruption of the '$' symbol in the text of
       the CREATE or ALTER statement for the SYSTOOLS.REGSP stored
       procedure when DSNTRIN is bound with an application encoding
       scheme in which the '$' symbol does not reside at the same
       code point where it resides in code page 1047.
    => Attention: These changes apply only to version V1, the
                  DB2-supplied version of SYSTOOLS.REGSP.  If you
                  have created other versions of SYSTOOLS.REGSP,
                  they are not affected by this change.
    

Temporary fix

Comments

APAR Information

  • APAR number

    PI27015

  • Reported component name

    DB2 OS/390 & Z/

  • Reported component ID

    5740XYR00

  • Reported release

    A10

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2014-10-04

  • Closed date

    2015-03-26

  • Last modified date

    2015-05-04

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

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

    UI26304 UI26305

Modules/Macros

  •    DSN@RIN  DSNTRIN
    

Fix information

  • Fixed component name

    DB2 OS/390 & Z/

  • Fixed component ID

    5740XYR00

Applicable component levels

  • RA10 PSY UI26304

       UP15/04/14 P F504

  • RB10 PSY UI26305

       UP15/04/14 P F504

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"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Line of Business":{"code":"LOB10","label":"Data and AI"}}]

Document Information

Modified date:
06 May 2020