Configuring the CICSRequest node for global transactions on distributed systems

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.

Linux platformUNIX platformEnsure 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

  1. Create a CICS Connection policy for the CICSRequest node (see Creating policies with the IBM App Connect Enterprise Toolkit).
    1. 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.
    2. On the CICS server property, you can choose either a direct connection or a connection through CICS Transaction Gateway.
    3. 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).
  2. In the IBM App Connect Enterprise Toolkit, switch to the Integration Development perspective.
  3. In the BAR file properties, set the Coordinated Transaction message flow property value to yes.
  4. 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.
  5. 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
      
  6. 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.