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 IBM® MQ queue manager, typically mqm, is
a member of the mqbrkrs group.
About this task
If you configure an integration node that specifies a local IBM MQ queue manager,
you can set up globally coordinated transactions for the message flows that are managed by the
integration node. The specified queue manager then performs the transaction manager role.
The queue manager provides
the coordinated transaction support, which means that IBM App Connect Enterprise must have access to IBM MQ when it is processing the messages
in the message flow. For more information about using IBM MQ with IBM App Connect Enterprise, see Installing IBM MQ.
To
configure the CICSRequest node
for globally coordinated transactions:
Procedure
- Create a CICS Connection policy for the CICSRequest node (see Creating policies with the IBM App Connect Enterprise Toolkit).
- On the Integration server used for XA recovery property, specify the
integration server for XA recovery, and which is to own the connection. You
cannot use any other integration server with the policy. When this property
is set, the CICSRequest node is treated as a global resource,
otherwise it participates as a non-global resource.
- On the CICS server property, you can
choose either a direct connection or a connection through CICS Transaction Gateway.
- On the Security identity (DSN) property,
set up a valid security ID to authenticate the connection to CICS (see Security identities for the integration server connecting to external systems).
Note: You must not use multiple CICS Connection policies that connect to the same CICS system in the same transaction or you might have problems
with the overall transaction results.
For more information, see
CICS Connection policy (CICSConnection).
- In the IBM App Connect Enterprise
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 App Connect Enterprise, and uses dynamic XA
registration (see Configuring databases for global coordination of transactions):
- On Windows:
- If you are using 64-bit IBM MQ,
copy the 64-bit switch file IIBXASwitch.dll from
the IBM App Connect Enterprise installation directory
(IIB_installation_directory\bin\IIBXASwitch.dll)
to the \exits64 subdirectory in the IBM MQ installation directory (MQ_installation_directory\exits64\IIBXASwitch.dll).
- If you are using 32-bit IBM MQ,
copy the 32-bit switch file (IIBXASwitch32.dll)
from the IBM App Connect Enterprise installation directory
(IIB_installation_directory\bin\IIBXASwitch32.dll)
to the \exits subdirectory in the IBM 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 App Connect Enterprise.
The default location for this directory is install_dir/ace-13.0.n.0/server on Linux, or /opt/IBM/mqsi/13.0.n.0/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,{policyProjectName}:PolicyName
XACloseString=
ThreadOfControl=THREAD
On Windows:
XAResourceManager:
Name=name
SwitchFile=IIBXASwitch.dll
XAOpenString=integrationNodeName,CICS,{policyProjectName}:PolicyName
XACloseString=
ThreadOfControl=THREAD
where
name is any name,
integrationNodeName is the name of the integration node,
policyProjectname is the name of the project that contains the CICS Connection policy, and
policyName is the name of the
CICS Connection policy.
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 App Connect Enterprise 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 Activity log
policy 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.