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 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

  1. Create a CICSConnection configurable service for the CICSRequest node, by using the web user interface or the mqsicreateconfigurableservice command:
    1. 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.
    2. On the cicsServer property, you can choose either a direct connection or a connection through CICS Transaction Gateway.
    3. 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.
    Note: You should not use multiple CICSConnection configurable services (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 Creating configurable services and CICSConnection configurable service.
  2. In the IBM Integration 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 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
      
  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,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.