Creating a multi-instance integration node

If you specify a multi-instance queue manager for an integration node, you must configure that integration node as multi-instance.

Before you begin

  • Create the shared directories that you require for the multi-instance integration node, as described in the topic Create a multi-instance queue manager in the IBM® MQ product documentation. The examples shown in this topic assume that you have created a shared directory called MQHA.
  • Create the IBM MQ multi-instance queue manager. On Windows, the queue manager must be created with the "-a" or "-ar" flag on crtmqm, specifying a domain group that IBM MQ can use for securing shared files. If you have the choice, use the "-ar" flag. For more information, see Create a multi-instance queue manager in the IBM MQ product documentation.

About this task

You can use two configurations for a multi-instance integration node:
  • Configure the multi-instance integration node with explicit instances where the queue manager can run. The multi-instance integration node runs in all the defined locations where the multi-instance queue manager is available, and is inactive in locations where the queue manager is not running.
  • Configure the multi-instance integration node as an MQ Service dependency. When a multi-instance integration node depends on an MQ Service, whenever the multi-instance queue manager becomes unavailable, the integration node stops. When the queue manager starts, the integration node is also started on the same computer that the queue manager is running on.

To create a multi-instance integration node of either configuration, complete the following steps:

Procedure

  1. On the computers that will run the instances of the integration node, configure the required users and groups so that they will have access to the directory for the shared file system:
    • Linux platformUNIX platformOn Linux® and UNIX, the uid and gid for the mqbrkrs group in /etc/password must be the same on each server. For more information, see Create a multi-instance queue manager in the IBM MQ product documentation.
    • Windows platformOn Windows, create the following users and groups:
      1. A domain group that is a member of the local mqbrkrs group on both systems. For example, ACE\Domain mqbrkrs.
      2. A domain user that is a member of the Domain mqbrkrs and mqm groups. This ID is used for running the integration node.
      3. A domain user that is a member of the Domain mqbrkrs group and a member of the local Administrators group on both machines. This ID is used for creating the integration node. You can use the same ID for both creating and running the integration node, but you do not have to be an Administrator to run the integration node. For example, WMB\mqsiuser-admin. The listed user and groups are using the example domain name ACE.
  2. Create a directory for the integration node shared files on the file server:
    • Linux platformOn Linux and UNIX systems, create a subdirectory (such as mqsi) on the shared drive (MQHA); for example: /MQHA/mqsi. Ensure that this directory is owned by the mqbrkrs user and group, and has the access permissions rwx. The UID of the integration node user ID in /etc/passwd and the GID for mqbrkrs in /etc/group must be the same on each server.
    • Windows platformOn Windows, update the security permissions of the folder:
      1. In Windows Explorer, right-click the shared directory that you created, and select Properties.
      2. Click the Security tab, then click Advanced > Change Permissions...
      3. Clear include inheritable permissions from this objects parent.
      4. In the Permission entries window, select the entries for individual users and then click Remove. Leave the entries for SYSTEM, Administrators, and CREATOR OWNER.
      5. Add mqbrkrs with Full Control. If this folder is also being used for multi-instance queue manager, then the domain group that is used to secure the queue manager must also be added with Full Control set.
      6. Add the global group domain mqm. Click Check Names, and then click OK. If this folder is also being used for multi-instance queue manager, then the domain group that is used to secure the queue manager must also be added with Full Control set.
      7. Remove the default Everyone user from the list.
  3. Open the command console or command prompt by running one of the following commands:
    • Linux platformUNIX platformOn Linux and UNIX systems, as a non-root user that is in the mqm and mqbrkrs groups, open a command prompt, navigate to the bin directory of the installation, and run the mqsiprofile command. For example:
      . /opt/ibm/ace-11.0.0.n/server/bin/mqsiprofile
    • Windows platformOn Windows, as the user mqsiuser-admin, open a command prompt with elevated privileges by using the mqsicommandconsole command; see mqsicommandconsole command

  4. Create a multi-instance integration node on computer A, by running one of the following commands:
    • Linux platformOn Linux and UNIX systems:
      mqsicreatebroker INODE -q QM1 -e /MQHA/mqsi
      where INODE is the name of the integration node and the -e parameter specifies the name of the shared directory created in step 2.
    • Windows platformOn Windows:
      mqsicreatebroker INODE -i "WMB\mqsiuser" -a password -q QM1 -e \\MQHA\\mqsi -B "WMB\Domain mqbrkrs"
      where INODE is the name of the integration node, and password is the mqsiuser-admin password. The -e parameter specifies the name of the shared directory that was created in step 2, and QM1 is the name of the multi-instance queue manager that was created previously.
    If you want to start the multi-instance integration node as an MQ Service dependency, specify -d as defined on the mqsicreatebroker command. For more information, see mqsicreatebroker command.
    Note: You must be a member of the mqm group to run the mqsicreatebroker command with the -d parameter.

    You must ensure that the shared location exists, and that your user ID has access to the shared location before you run this command.

  5. Add the details of integration node INODE onto computer B as an instance of that integration node.
    Use the mqsiaddbrokerinstance command, in the appropriate format for your operating system.
    • Linux platformOn Linux and UNIX:
      mqsiaddbrokerinstance INODE -e /MQHA/mqsi
      where the -e parameter specifies the name of the shared directory created in step 2.
    • Windows platformOn Windows:
      mqsiaddbrokerinstance INODE -i "WMB\mqsiuser" -a password -e \\MQHA\\mqsi
      where the -e parameter specifies the name of the shared directory created in step 2.
    For more information, see mqsiaddbrokerinstance command.

    Repeat this step for every computer that the multi-instance queue manager runs on.

  6. Start queue manager QM1 so that it is active on computer A.
    See Starting and stopping a multi-instance queue manager in the IBM MQ product documentation.
  7. Start integration node INODE on computer A.
    Use the mqsistart command:
    mqsistart INODE
  8. Start integration node INODE on computer B.
    You can observe that integration node INODE is running in standby mode against the standby queue manager QM1 by running the command mqsilist.
  9. Optional: Optional: test that the integration node works as follows:
    1. Stop integration node INODE and queue manager QM1 on computer A.
      Observe on computer B that integration node INODE and queue manager QM1 change from standby to active mode.
    2. Restart queue manager QM1 and integration node INODE on computer A.
      Observe on computer A that queue manager QM1 and integration node INODE are in standby mode and, on computer B, queue manager QM1 and integration node INODE remain in active mode.

Results

You have configured a multi-instance integration node, and created an instance of that integration node. When integration node INODE and queue manager QM1 stop on computer A, the same integration node and queue manager on computer B become active, and return to standby when computer A becomes active again.

If you chose to define the multi-instance integration node as an MQ Service dependency, then the integration node stops whenever the multi-instance queue manager becomes unavailable. The integration node is started again when the queue manager starts.