IBM Support

PK90040: Enabling APAR to remove the 50M bytes limitation on XML schema

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • DK1256 enabling APAR
    

Local fix

  • No Work Around
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED: DB2 R910 Users of DSN_XMLVALIDATE.           *
    ****************************************************************
    * PROBLEM DESCRIPTION: Current DB2 9 for z/OS user-defined     *
    *                      function DSN_XMLVALIDATE cannot         *
    *                      validate an XML document larger than    *
    *                      50M bytes. Currently, the XML parser    *
    *                      process invoked through XML validation  *
    *                      does not take advantage of IBM          *
    *                      Specialty Engines (zIIP or zAAP).       *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    The current DSN_XMLVALIDATE user-defined function is
    implemented as a C stored procedure executing in the WLM
    address space. This limits the size of the XML document to be
    validated to 50M bytes. Also, the XML parser process invoked
    through XML validation does not take advantage of IBM
    Specialty Engines (zIIP or zAAP).
    
    To support validation of an XML document larger than
    50M bytes and take advantage of IBM Specialty Engines
    (zIIP or zAAP), a new SQL scalar function, DSN_XMLVALIDATE,
    will be added. The new function can validate up to a maximum
    length of 2G-1 bytes of XML data, depending on system
    resources.
    
    To use this new scalar function, users need to
    1. ensure the z/OS OS level is R1.9 with PTF OA25903 or R1.10.
       If you try to use this new function without this z/OS
       level, DB2 will issue SQLCODE904: reason-code 00D50005,
       resource-type 00003000, resource-name z/OS 1.9 or 1.10 XML
       System Services.
    
    2. run the following command after each ipl
       SETPROG LPA,ADD,MODNAME=(GXLIMODV),DSNAME=SYS1.SIEALNKE
       Otherwise, SYSIBM.DSN_XMLVALIDATE will fail with SQLCODE904
       with RC00D50005.
    
    3. qualify DSN_XMLVALIDATE explicitly with
       SYSIBM. When DSN_XMLVALIDATE is unqualified
       or qualified with SYSFUN, the UDF version of
       DSN_XMLVALIDATE is invoked.
    
    The DSN_XMLVALIDATE function returns an XML value that is
    the result of applying XML schema validation to the first
    argument of the function. DSN_XMLVALIDATE can validate XML
    data up to a maximum length of 2 GB - 1 bytes, depending on
    system resources.
    
    >>-DSN_XMLVALIDATE(string-expression, ---------------------->>
    >>-+ schema-name-string----------------------------------+)-><
       '-target-namespace-uri-string,-schema-location-string-'
    
    The schema is SYSIBM.
    
    string-expression
     An expression that returns a built-in character, graphic,
     or binary string. The value must be a well-formed XML document
     that conforms to the XML Version 1.0 standard.
    
    schema-name-string
     An expression that returns a built-in varying length character
     string that is not a CLOB. The value specifies the name of
     the XML schema object that is used for validation. The value
     must not be an empty string or the null value, and the actual
     length must be less than or equal to 257. If the XML schema
     name is qualified, the qualifier must be SYSXSR (SYSXSR is
     the default qualifier). The value must identify a registered
     XML schema in the DB2 XML schema repository.
    
    target-namespace-uri-string
     An expression that returns a built-in varying length character
     string that is not a CLOB, with a length attribute that is
     not greater than 1000. The value specifies the target namespace
     name or universal resource identifier (URI) of the XML schema
     that is to be used for validation. If the value is an empty
     string of the null value, no namespace is used to locate the
     XML schema.
    
    schema-location-string
     An expression that returns a built-in varying length character
     string that is not a CLOB, with a length attribute that is
     not greater than 1000. The value specifies the XML schema
     location hint URI of the XML schema that is to be used for
     validation. If the value is an empty string of the null value,
     no schema location is used to locate the XML schema.
    
    If target-namespace-uri-string and schema-location-string are
    specified, the combination must identify a registered XML
    schema in the DB2 XML schema repository, and there must be
    only one such registered XML schema.
    
    A schema must be registered successfully in the DB2 XML schema
    repository before it can be used for DSN_XMLVALIDATE. If the
    validation fails, DB2 returns an error.
    
    To use the version of DSN_XMLVALIDATE described here, you need
    to explicitly qualify DSN_XMLVALIDATE with SYSIBM. When
    DSN_XMLVALIDATE is unqualified or is qualified with SYSFUN,
    the version of the DSN_XMLVALIDATE function that is used as
    input to the DSN_XMLPARSE function is invoked.
    
    The result of the function is an XML value. The result can be
    null; if the first argument is null, the result is the null
    value.
    
    Example 1: The following example shows how the DSN_XMLVALIDATE
    function validates the XML data that is contained in the
    value_host_var host variable. The XML schema,
    SYSXSR.ORDERSCHEMA, was registered prior to this statement:
     INSERT INTO T1(C1) VALUES(
     SYSIBM.DSN_XMLVALIDATE(:value_host_var, 'SYSXSR.MYXMLSCHEMA'));
    
    Example 2: The following example is similar to the previous
    example but references the namespace and schema location:
     INSERT INTO T1(C1) VALUES(
     SYSIBM.DSN_XMLVALIDATE(:value_host_var,
                            'http://www.n1.com',
                            'http://www.n1.com/report.xsd'));
    

Problem conclusion

  • DB2 is modified to add a new SQL scalar function,
     SYSIBM.DSN_XMLVALIDATE using z/OS XMLSS
     which can validate up to a maximum length of 2G-1
     bytes, depending on system resources
     and at the same time take advantage of IBM
     Specialty Engines (zIIP or zAAP).
    

Temporary fix

Comments

APAR Information

  • APAR number

    PK90040

  • Reported component name

    DB2 OS/390 & Z/

  • Reported component ID

    5740XYR00

  • Reported release

    910

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2009-06-26

  • Closed date

    2010-06-29

  • Last modified date

    2010-09-01

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

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

    UK58408

Modules/Macros

  • DSNXFN   DSNXOBFA DSNXOBFF DSNXOBF2 DSNXOBF3
    DSNXOBF4
    

Fix information

  • Fixed component name

    DB2 OS/390 & Z/

  • Fixed component ID

    5740XYR00

Applicable component levels

  • R910 PSY UK58408

       UP10/07/15 P F007

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"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"9.1","Edition":"","Line of Business":{"code":"LOB10","label":"Data and AI"}},{"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SG19M","label":"APARs - z\/OS environment"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"9.1","Edition":"","Line of Business":{"code":"","label":""}}]

Document Information

Modified date:
01 September 2010