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