IFCID 376 - Incompatible Functions Executed
This topic shows detailed information about Record Trace - IFCID 376 - Incompatible Functions Executed
.
IFCID 0376 is a serviceability trace. It can be used to identify SQL statements with potential incompatible changes when switching to the new application behavior (e.g V11R1). This trace record is written once for each unique dynamic cached statement and static statement if it was bound on V10 NFM or later. For static statements that are bound before V10 NFM, this trace record will be externalized once per unique combination of: plan, package ID, statement number.
Note that it is not practical to maintain history of every SQL that has been processed, and therefore, it is possible that more than one trace record will be written for the same statement. This should be a rare occurence.
This trace record is similar to IFCID 0366 trace record except the IFCID 0366 trace could be written much more frequently, since it does not perform uniqness checking. For instance, when the same dynamic SQL statement is executed by several threads (or repeatedly by the same thread) multiple IFICD 0366 records would be written, but only one IFCID 0376 record would be written. See IFCID 0366 description for additional information.
Record Trace - IFCID 376 - Incompatible Functions Executed
The field labels shown in the following sample layout of Record Trace - IFCID 376 - Incompatible Functions Executed
are described in the following section.
INCOMPATIBLE FUNCTIONS EXECUTED COLLECTION ID : NULLID PROGRAM NAME : SYSLH200 TYPE : 1109 REASON : CAST(STRING AS TIMESTAMP) STMT NBR QUERY : 0 SECTION : 1 PLAN NAME QUERY: DISTSERV STMT ID : 29 STMT TYPE : DYNAMIC CONTOKEN (TS) : X'5359534C564C3031' VERSION LENGTH : 0 VERSION : 'BLANK' -------------------------------------------------------------------------------------------------------------------------
- COLLECTION ID
-
The package collection ID.
Field Name: QW0376PC
- PROGRAM NAME
-
The program name.
Field Name: QW0376PN
- TYPE
-
Incompatibility type numeric representation. This number meaning further explained in the REASON field description.
Field Name: QW0376FNT
- REASON
-
The incompatible change indicator. It can have the following values:
- 1
- V9 SYSIBM.CHAR(decimal-expr) function
- 2
- V9 SYSIBM.VARCHAR(decimal-expr) function. CAST (decimal as VARCHAR or CHAR)
- 3
- Unsupported character string representation of a timestamp
- 7
- Unsupported implicit cast of input host variables
- 8
- Server returned output data match the data types of call args
- 9
- Ignore time zone in hostvar BIND in TMSTZ data type to TMS
- 10
- V9 LTRIM(string-expr), RTRIM(string-expr) or STRIP(string-expr)
- 11
- Illegal SELECT INTO with a SET operator is being bound
- 13
- Insert, update or delete is prepared with WITH UR attribute
- 14
- Invalid argument to SUBSTR function
- 1101
- Insert into an XML column without XMLDOCUMENT function
- 1102
- XPath evaluation error
- 1103
- RLF governing
- 1104
- Long CLIENT_ACCTNG Special Reg value
- 1105
- Long CLIENT_APPLNAME Special Reg value
- 1106
- Long CLIENT_USERID Special Reg value
- 1107
- Long CLIENT_WRKSTNNAME Special Reg value
- 1108
- Long client Special Reg value for RLF
- 1109
- CAST(string AS TIMESTAMP)
- 1110
- SPACE integer argument greater than 32764
- 1111
- VARCHAR int argument greater than 32764
- 1112
- Empty XML element is serialized to <X></X>
- 1201
- Pre-V12 POWER function returned -802 (out of range)
- 1215031
- SYSTEM-PERIOD temporal table defined with ON DELETE ADD EXTRA ROW
- 1215032
- SET_MAINT_MODE_RECORD_NO_TEMPORALHISTORY is deprecated
- 1204
- CURRENT_SERVER or CURRENT_TIMEZONE is used as a col name or var name
- 1315001
- Default MAXPARTITIONS is set to 254
- 1315031
- Row change timestamp is changed to the ALTER TABLE statement timestamp
Note: REASON shows the description of the incompatible change indicator according to the Db2® macro. If the indicator is not known, N/A is shown in the report.Background and Tuning Information
The QW0376FN field indicates the type of incompatible change as:
QW0376FN = 1
Indicates that the pre Version 10 CHAR built-in function has been invoked. There is an incompatible change to the output of the CHAR function for some decimal data. The zparm BIF_COMPATIBILITY and/or the SYSCOMPAT_V9 schema have been used by this application to get the old behavior. Please make the appropriate changes and rebind with the SYSCURRENT schema to use the Version 10 CHAR(decimal) built-in function. (PM29124 V10 only, usermod V8/V9)
QW0376FN = 2
Indicates that the pre Version 10 VARCHAR built-in function or CAST(decimal AS CHAR or VARCHAR) has been invoked.
QW0376FN = 3
Indicates that an unsupported character representation of a timestamp string was used. PM48741 V10 only.
QW0376FN = 7
A QW0376FN 7 record indicates that Db2 for z/OS server issued a SQLCODE -301 for incompatible data type conversion from string data type (e.g. CHAR, VARCHAR, GRAPHIC, VARGRAPHIC etc.) to numeric data type in V10 CM mode when implicit cast is not supported or V10 NFM mode when DDF_COMPATIBILITY zparm is set to DISABLE_IMPCAST_NJV or SP_PARMS_NJV to disable implicit cast, and the client is CLI driver or v11 NFM mode and APPLCOMPAT = V10R1 when DDF_COMPATIBILITY is set to SP_PARMS_NJV or DISABLE_IMPCAST_NJV to disable implicit cast either from string data type to numeric or from numeric data type to string data type.
QW0376FN = 8
A QW0376FN 8 record indicates that Db2 for z/OS server returned output data match the data types of the corresponding CALL statement arguments when DDF_COMPATIBILITY zparm is set to SP_PARMS_NJV or SP_PARMS_JV or both.
QW0376FN = 9
A QW0376FN 9 record indicates that Db2 for z/OS server ignores the TIMEZONE part in the input of TIMESTAMP WITH TIMEZONE data type when the client application using IBM Java Data Server driver is binding a TIMESTAMP WITH TIMEZONE input into a TIMESTAMP target and DDF_COMPATIBILITY zparm is set to IGNORE_TZ. Note that in Db2 Version 11, IGNORE_TZ is effective only if application compatibility is set to V10R1.
QW0376FN = 10
A QW0376FN 10 record indicates that pre-version 10 function for LTRIM, RTRIM or STRIP has been executed.
QW0376FN = 11
A QW0376FN 11 record indicates that an illegal SELECT INTO with a set operator is being bound.
QW0376FN = 13
A QW0376FN 13 record indicates that Insert, update or delete is prepared with WITH UR attribute.
QW0376FN = 14
A QW0376FN 14 record indicates that the value of the argument of the SUBSTR built-in function was invalid.
QW0376FN = 1101
Indicates that the INSERT statement that inserts into an XML column without XMLDOCUMENT function has been processed (which should result in SQLCODE -20345 when run on Db2 release prior to V11). Starting with V11, SQL error will no longer be issued. Application will no longer recieve SQLCODE for this statement.
QW0376FN = 1102
Indicates that V10 XPath evaluation behavior was in effect which resulted in an error. For instance, a data type conversion error could have occured for a predicate that would otherwise be evaluated to false. Starting from V11, such "irrelevant" errors might be suppressed so an application might no longer recieve the SQLCODE for this statement.
QW0376FN = 1103
Indicates that a dynamic SQL uses the ASUTime limit that has been set for the entire thread for RLF reactive governing. For instance, when a dynamic SQL is processed from package A, if the ASUTime limit is already set during other dynamic SQL processing from package B in the same thread, the SQL from package A will use the ASUTime limit set during the SQL processing from package B. Stating with v11, dynamic SQLs from multiple packages will use the ASUTime limit that is set considering its own package information.
QW0376FN = 1104, 1105, 1106, 1107
Indicates that CLIENT special register (CLIENT_USERID, CLIENT_WRKSTNNAME, CLIENT_APPLNAME, CLIENT_ACCTNG) has been set to a value that is longer than what is supported prior to V11. A shorter value has been used instead.
QW0376FN = 1108
Indicates that CLIENT special register (CLIENT_USERID, CLIENT_WRKSTNNAME, CLIENT_APPLNAME, CLIENT_ACCTNG) has been set to a value that is longer than what is supported prior to V11. Truncated values upto the supported lengths prior to v11 have been used for RLF table search instead.
QW0376FN = 1109
Indicates that CAST(string AS TIMESTAMP) was processed for the input string of length 8 and input was treated as a store clock value (or input string was of length 13 and was treated as a GENERATE_UNIQUE value). This behavior is incorrect for a CAST and is valid for TIMESTAMP built-in function only. This behavior is being corrected in Db2 11 so that input to CAST is not treated as a store clock value nor GENERATE_UNIQUE.
QW0376FN = 1110
Indicates the integer argument of SPACE function is greater than 32764.
QW0376FN = 1111
Indicates the optional integer argument of VARCHAR function has a value greater than 32764.
QW0376FN = 1112
Indicates the empty XML element is serialized to <X></X> instead of <X/>.
QW0376FN = 1201
Indicates that pre-v12 POWER BIF returned SQLCODE = -802 for out of range. The SQLCODE is +802 starting v12.
QW0376FN = 1301
Indicates that default MAXPARTITIONS will be changed to 254.
QW0376FN = 1315031
Indicates that row change timestamp for existing rows will be changed to the ALTER TABLE statement timestamp.
Field Name: QW0376FN
- STMT NBR QUERY
-
The statement number of the query.
Field Name: QW0376SN
- SECTION
-
The section number.
Field Name: QW0376SE
- PLAN NAME QUERY
-
The plan name of the query.
Field Name: QW0376PL
- STMT ID
-
The statement identifier.
Field Name: QW0376SI
- STMT TYPE
-
The statement information. It can be a DYNAMIC or STATIC statement.
Field Name: QW0376TY
- CONTOKEN (TS)
-
The consistency token is shown in hexadecimal format.
Field Name: QW0376TS
- VERSION LENGTH
-
Length of version field QW0376VE.
Field Name: QW0376VL
- VERSION
-
The version (max. 64-character string).
Field Name: QW0376VN
- SCHEMA NAME
-
Schema name.
Field Name: QW0376SC
- SPECIFIC NAME
-
Specific name.
Field Name: QW0376PR
- INCOMPAT PARMS
-
The ordinal number of output parm (if fn8) or input parm (if fn7), source datatype, target datatype.
Field Name: QW0376INC
- SQL TEXT
-
SQL statement text. Full SQL text length in this field can be as big as 4000 bytes.
Field Name: QW0376SQL