A fix is available
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
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