Home

 

Error conditions

 

There is an opportunity here for a confusing failure in the queue manager. Here is a common example. If you forget to set your database environment variables properly before starting your queue manager, the queue manager's calls to xa_open fail. No global units of work can be used.

To avoid this, ensure that you have set the relevant environment variables before starting the queue manager. Review your database product's documentation, and the advice given in Checking the DB2 environment variable settings, Checking the Oracle environment variable settings, and Checking the Sybase environment variable settings.

With all database products, the queue manager calls xa_open once at queue manager startup, as part of the recovery session (as explained in Administration tasks). This xa_open call fails if you set your database environment variables incorrectly, but it does not cause the queue manager to fail to start. This is because the same xa_open error code is used by the database client library to indicate that the database server is unavailable. We do not treat this as a serious error, as the queue manager must be able to start to continue processing data outside global units of work involving that database.

Subsequent calls to xa_open are made from the queue manager during the first MQBEGIN on a WebSphere MQ connection (if dynamic registration is not being used) or during a call by the database client code to the WebSphere MQ-provided ax_reg function (if dynamic registration is being used).

The timing of any error conditions (or, occasionally, FFST™ reports) depends on whether you are using dynamic registration:

Ensure that your environment variables are set correctly in your application and queue manager processes.

 

Parent topic:

XA dynamic registration


fa13880_


 

Home