Informix configuration

Do the following:

  1. Ensure that you have installed the appropriate Informix(R) client SDK:
  2. Ensure Informix databases are created correctly.
  3. Check environment variable settings.
  4. Build the Informix switch load file.
  5. Add resource manager configuration information.

A current list of levels of Informix supported by WebSphere MQ is provided at:

http://www.ibm.com/software/ts/mqseries/platforms/supported.html

Ensuring Informix databases are created correctly

Every Informix database that is to be coordinated by a WebSphere MQ queue manager must be created specifying the log parameter. For example:

create database mydbname with log;

WebSphere MQ queue managers are unable to coordinate Informix databases that do not have the log parameter specified on creation. If a queue manager attempts to coordinate an Informix database that does not have the log parameter specified on creation, the xa_open call to Informix will fail, and a number of FFST(TM) errors will be generated.

Checking the Informix environment variable settings

Ensure that your Informix environment variables are set for queue manager processes as well as in your application processes. In particular, always set the following environment variables before starting the queue manager:

INFORMIXDIR
The directory of the Informix product installation. For systems that have 64-bit queue managers that must support both 32-bit and 64-bit applications, you need both the Informix 32-bit and 64-bit client SDKs installed. The sample make file xaswit.mak, used for creating a switch load file also sets both product installation directories.
INFORMIXSERVER
The name of the Informix server. For example, on UNIX(R) systems, use:
export INFORMIXSERVER=hostname_1
On Windows(R) systems, use:
set INFORMIXSERVER=hostname_1
ONCONFIG
The name of the Informix server configuration file. For example, on UNIX systems, use:
export ONCONFIG=onconfig.hostname_1
On Windows systems, use:
set ONCONFIG=onconfig.hostname_1

Creating the Informix switch load file

The easiest way to create the Informix switch load file is to use the sample file xaswit.mak, which WebSphere MQ provides to build the switch load files for a variety of database products.

On Windows systems, you can find xaswit.mak in the directory C:\Program Files\IBM\WebSphere MQ\tools\c\samples\xatm. To create the Informix switch load file with Microsoft Visual C++, use:

nmake /f xaswit.mak infswit.dll
The generated switch file is placed in c:\Program Files\IBM\WebSphere MQ\exits.

On AIX(R), you can find xaswit.mak in the directory /usr/mqm/samp/xatm; on other UNIX systems, you can find it in the directory /opt/mqm/samp/xatm.

Edit xaswit.mak to uncomment the lines appropriate to the version of Informix you are using. Then execute the makefile using the command:

make -f xaswit.mak infswit

The generated 32-bit switch load file is placed in /var/mqm/exits.

The generated 64-bit switch load file is placed in /var/mqm/exits64.

Adding resource manager configuration information for Informix

The next step is to modify the configuration information for the queue manager, as described in Adding configuration information to the queue manager, to declare Informix as a participant in global units of work.

Figure 13 is a UNIX sample, showing an XAResourceManager entry where the database to be coordinated is called mydbname, this name being specified in the XAOpenString:

Figure 13. Sample XAResourceManager entry for Informix on UNIX platforms
XAResourceManager:
  Name=myinformix
  SwitchFile=infswit
  XAOpenString=mydbname
  ThreadOfControl=PROCESS
Note:
In Figure 13, ThreadOfControl is specified as PROCESS. This value is required for the queue manager to use the Informix XA switch-load file. However, also note that the supported levels of Informix do not allow multi-threaded XA applications.