Configure the CICSRequest node for local and globally coordinated transactions for CICS® on Linux®, UNIX, and Windows.
Before you begin
Review CICSRequest node to
understand what Transaction mode properties
you can set on a CICSRequest node
for transactions.
Ensure that the user that is running the WebSphere® MQ queue manager, typically mqm, is a member of the mqbrkrs group.
About this task
On distributed systems, a WebSphere MQ queue manager provides the coordinated
transaction support, which means that IBM® Integration Bus must have access to WebSphere MQ when it is processing the messages
in the message flow. For more information about using WebSphere MQ with IBM Integration Bus, see Installing WebSphere MQ.
To
configure the CICSRequest node
for globally coordinated transactions:
Procedure
- Create a CICSConnection configurable service
for the CICSRequest node,
by using the web user interface or the mqsicreateconfigurableservice command:
- On the egXAForRecovery property, specify
the integration server for XA recovery,
and which will own the connection. You cannot use any other integration server with the configurable service.
When this property is set, the CICSRequest node is treated
as a global resource, otherwise it participates as a non-global resource.
- On the cicsServer property, you can
choose either a direct connection or a connection through CICS Transaction Gateway.
- On the securityIdentity property, set
up a valid security ID to authenticate the connection to CICS. For more information, see Security identities for integration nodes connecting to external systems.
- In the IBM Integration Toolkit, switch
to the Integration Development
perspective.
- In the BAR file properties, set the Coordinated
Transaction message flow property value to yes.
- In the Message Flow editor, set
the Transaction mode property
to Yes or Automatic for each CICSRequest node that is required
in the globally coordinated transaction.
- Copy the switch file. The IIBXASwitch switch file is supplied
by IBM Integration Bus, and uses dynamic XA
registration (see Configuring databases for global coordination of transactions):
- On Windows:
- If you are using 64-bit WebSphere MQ,
copy the 64-bit switch file IIBXASwitch.dll from
the IBM Integration Bus installation directory
(IIB_installation_directory\bin\IIBXASwitch.dll)
to the \exits64 subdirectory in the WebSphere MQ installation directory (MQ_installation_directory\exits64\IIBXASwitch.dll).
- If you are using 32-bit WebSphere MQ,
copy the 32-bit switch file (IIBXASwitch32.dll)
from the IBM Integration Bus installation directory
(IIB_installation_directory\bin\IIBXASwitch32.dll)
to the \exits subdirectory in the WebSphere MQ installation directory, and
rename it to IIBXASwitch.dll (MQ_installation_directory\exits\IIBXASwitch.dll).
- On Linux and UNIX systems, create a symbolic link
to the switch file that is supplied in your install_dir/server/lib directory.
install_dir is the directory
to which you installed IBM Integration Bus.
The default location for this directory is install_dir/iib-10.0.0.n/server on Linux, or /opt/IBM/mqsi/10.0.0.n/server on UNIX systems. The default directory includes the version,
release, modification, and fix of the product, in the format v.r.m.f
(version.release.modification.fix).
Set
up links in the
/var/mqm/exits64 directory. The
file name is
libIIBXASwitch.so. For example:
ln -s install_dir/server/lib/libIIBXASwitch.so /var/mqm/exits64/libIIBXASwitch.so
- Add a stanza to the queue manager qm.ini file
for CICS, in the following
format:
On Linux and UNIX:
XAResourceManager:
Name=name
SwitchFile=libIIBXASwitch.so
XAOpenString=integrationNodeName,CICS,CICS_configurable_service
XACloseString=
ThreadOfControl=THREAD
On Windows:
XAResourceManager:
Name=name
SwitchFile=IIBXASwitch.dll
XAOpenString=integrationNodeName,CICS,CICS_configurable_service
XACloseString=
ThreadOfControl=THREAD
where
name is
any name,
integrationNodeName is
the name of the integration node, and
CICS_configurable_service is
the name of the CICS configurable
service.
What to do next
- Check your configuration:
- In the message flow, ensure that the Coordinated Transaction property
is enabled for the BAR file by using the IBM Integration Bus Archive editor.
- Ensure that each node that is part of the globally-coordinated
(XA) transaction has its Transaction Mode property
set to a valid global transaction value (Yes or Automatic).
- Ensure that the service ID that is used for the integration node
and the queue manager is the same user ID.
- Ensure that CICS two-phase
commit is working by using the activity log. Define an ActivityLog
configurable service by naming a file and setting the RM property
to CICS.
- Look for issues in the error log for the queue manager.
- Optional: secure the message flow connection; see Creating a security profile.