Setting up a shared queue for the SAP adapter event store

To achieve high availability when processing SAP messages on distributed systems, you can set up a shared queue for the SAP adapter event store.

About this task

On distributed systems, you can configure the integration node to use a client connection to a remote IBM® MQ queue manager to persist the transaction ID (TID) store for SAP transactional RFC (tRFC) data. By using this configuration, two adapters that are deployed to two integration nodes can share the same TID, and can therefore operate as a single RFC server. This configuration is essential if the adapters have been configured with the same RFC Program ID. For important information about using IBM MQ with IBM App Connect Enterprise, see Installing IBM MQ.

Before the integration node can use a remote queue manager as the TID store, you must complete some administration tasks on that queue manager.
  1. You must first create the queue for the integration node to use as the TID store.
  2. Then you must define two channels for the integration node to use to connect to that queue manager: define the server channel on the queue manager, and define a client channel in a file, which you must make available to the integration node.

    You can use the Run WebSphere® MQ Commands (runmqsc) command or IBM MQ Explorer to create this client channel definition file on any queue manager. After you have created the file, you must move it from the queue manager to a file system that is accessible to the integration node.

To set up a shared queue for the SAP adapter event store, complete the following steps.

Procedure

  1. Create the queue SYSTEM.BROKER.ADAPTER.PROCESSED.
    You can create the queue either by using IBM MQ Explorer or by running the following command in IBM MQ runmqsc:
    DEFINE QLOCAL('SYSTEM.BROKER.ADAPTER.PROCESSED')
  2. Create the server channel.
    1. On the computer that hosts the shared queue manager, create a server channel by running the IBM MQ runmqsc command and entering the following parameters, where WSADAPTERS.SAP is an example of the channel name.
      DEFINE CHANNEL ('WSADAPTERS.SAP') CHLTYPE (SVRCONN) TRPTYPE(TCP)
    2. After you have created the channel, start it by using the following command in runmqsc:
      START CHANNEL ('WSADAPTERS.SAP')
  3. Create the client definition file.
    On any queue manager, create a client definition file by running the runmqsc command and entering the following parameters, where the following criteria apply:
    • WSADAPTERS.SAP is an example of the channel name.
    • myhost.ibm.com is an example of the host name of the computer where the queue manager is running. This queue manager is the one on which you created the queue in step 1 and the server channel in step 2. This name is used by the integration node to connect to the queue manager, therefore do not use localhost.
    • 1414 is an example of the port number where the listener is running on that queue manager.
    • QMGR is an example of the queue manager name.
    • You can use any name for the server and client channels, but they must match.
    • Set the CONNAME parameter to the host name or IP address of the computer that hosts the shared queue manager, and the port number of the MQ Listener that is running on that computer. 1414 is the default listener port.
    DEFINE CHANNEL ('WSADAPTERS.SAP') CHLTYPE (CLNTCONN) CONNAME(‘myhost.ibm.com(1414)') TRPTYPE(TCP) QMNAME(QMGR)
    If the queue manager is running in multi-instance mode, define two channels, one for each instance of the queue manager
  4. Move the client definition file to a file system that is accessible by the integration node.
    • Linux platformUNIX platformOn Linux® and UNIX, you can find this file at /var/mqm/qmgrs/QMGR_NAME/@ipcc/AMQCLCHL.TAB.
    • Windows platformOn Windows, you can find this file at C:\Program Files\IBM\IBM MQ\Qmgrs\QMGR_NAME\@ipcc\AMQCLCHL.TAB.
  5. Configure the integration node.
    1. Create an SAP Connection policy for the .inadapter component and ensure that the name of the policy matches the name of the adapter component (see Creating policies with the IBM App Connect Enterprise Toolkit).
    2. Set the Shared TID store client definition file property of the policy to the path of the file that you created in step 3 and moved in step 4.
    3. Set the Shared TID store queue manager parameter to the name of the queue manager for which you created the queue in step 1 and the server channel in step 2.

      For more information about these parameters, see SAP Connection policy (SAPConnection).

  6. Deploy the SAP Connection policy.
  7. Verify the setup.

    After you have completed these steps, you can verify that the integration node is using the queue on the remote queue manager by inspecting user trace. If the setup is successful, message BIP3470 is issued, specifying which queue manager the integration node is using as the TID store.