Issue

When running an XML Toolkit request in Zend Server 2020 or 2021, the following error may appear:

Toolkit request failed. Review the database code and message. Database code (if any): '42284'. Message:

The message is blank, and database code 42284 does not appear to map to any message in the QSQLMSG message file.

Environment

Zend Server version 2020 or greater, running in any supported version of IBM i.

Resolution

This was seen on a customer machine where library QXMLSERV was not found.  Prior versions of Zend Server included the compiled XMLSERVICE objects in the Zend distribution library.  IBM recently began distributing the objects in library QXMLSERV.  This library should appear in all currently supported versions of IBM i that have been brought up to date with PTF Groups.

Please check to see if you have the QXMLSERV library, and that user *PUBLIC has *USE authority.  From a 5250 command line, with a *SECOFR class profile:

dspobjaut qxmlserv *lib

If the library is found, but the *PUBLIC user does not have *USE authority, please grant that authority.  If the library is not found, please bring your PTF groups current and check again to see if the library is there.  If you still do not have the QXMLSERV, please contact IBM for further assistance to obtain this library.

Workaround

If you have a prior version of Zend Server installed on your IBM i, you can use the XMLSERVICE objects found in that Zend distribution library.  Just make a quick change in the toolkit.ini file, which you can find here:

/usr/local/zendphp74/share/ToolkitAPI/toolkit.ini

Find these lines very near the top:

; set library where XMLSERVICE objects live
XMLServiceLib = "QXMLSERV" ; Library for XMLSERVICE shipped by IBM
;XMLServiceLib = "ZENDPHP7" ; production Zend Server 9.x

and just change which library is commented out and which is active (a comment is any line that starts with a semicolon):

; set library where XMLSERVICE objects live
;XMLServiceLib = "QXMLSERV" ; Library for XMLSERVICE shipped by IBM
XMLServiceLib = "ZENDPHP7" ; production Zend Server 9.x

Save the changed file.  Just remember not to uninstall the old version of Zend Server before you get the QXMLSERV library installed.  When you have it, you can reverse the change to toolkit.ini to begin using QXMLSERV.