Skip to main content

This article explains a CASXO0001S XA Resource Manager initialization error whereby an open string is hidden within ESDB2XA.DLL.

Problem:

The password has changed for the XA DB2 logon user, now Enterprise Server cannot access DB2 because the ESDB2XA module fails on the connection process. Why is this?

Resolution:


  1. A valid DB2 user ID and password must be known for the DATABASE with the correct access rights. This must be made available to a person with update rights to the Enterprise Server.
  2. Stop the Enterprise Server so that the XA resource can be updated.
  3. Edit the XA resource that is fail located by using the EDIT button to the left of the problem Enterprise Server, select the XA Resources tab and the EDIT button for the failing enabled XA resource. Add the required XA open string example below. The example string could be added to the XA description so it is handy when this process is required. Do not use the real password in the description. DB=SAMPLE,uid=myuid,pwd=mypasswd,AXLIB=casaxlib.dll
  4. Save the XA changes and restart server, if the same failure occurs with the correct open string. The ESDB2XA.DLL needs to be rebuild on a machine with Studio Enterprise Server; same version as the server; installed. The program is located by starting the correct Net Express command prompt either 32 or 64 to match your product Server. Enter SET COBDIR to find the location if it is not known; you want to go to the BASE directory and then CD SOURCE\\ENTERPRISESERVER\\XA. In this directory edit ESDB2XA.CBL and find "xa-open SECTION" without the quotes.
  5. Below in bold is the change that will permit the open string to be over ridden from the XA Resource when a programmer is not available.

xa-open SECTION.

ENTRY esxa-open USING BY REFERENCE lk-open-string

BY VALUE lk-rmid

BY VALUE lk-flags.

MOVE lk-open-string(1:255) TO ws-open-string

*> CUSTOMIZE

*> If you don't want to make the userID and password visible

*> within the ES configuration pages, then code the complete

*> open string here. Note that you must specify the

*> DB, and AXLIB parameters at minimum.

*>

*> Please refer to IBM documentation for the complete

*> definition of the XA open string.

*>

*> For example:

*>

*> MOVE z"DB=SAMPLE,uid=myuid,pwd=mypasswd,AXLIB=casaxlib.dll"

*> TO ws-open-string

IF ws-open-string equal LOW-VALUES

MOVE

z"db=sample,uid=DB2ADMIN,PWD=DB2pwd,axlib=casaxlib.dll"

TO ws-open-string.

CALL DB2XA-open-entry USING BY REFERENCE ws-open-string

BY VALUE lk-rmid

BY VALUE lk-flags

RETURNING ws-open-rc

END-CALL

GOBACK RETURNING ws-open-rc

.

Build the modified program using the Build.bat located in the current directory with the following command than copy the ESDB2XA.DLL to the location specified in the XA resource for Module: BUILD DB2.

Incident Number: 2432446

Old KB# 14940

#EnterpriseDeveloper
#MFDS