Configuring an integration server to use a remote default queue manager

You can configure an independent integration server to connect to a default queue manager on a remote machine that is running IBM® MQ.

Before you begin

About this task

In IBM App Connect Enterprise, interactions between an independent integration server and IBM MQ can use a client connection to a remote queue manager, by using a default policy setting.

You can configure an independent integration server to use a remote default queue manager by setting the remoteDefaultQueueManager property in the server.conf.yaml file. This property enables an MQEndpoint policy to be used to specify an IBM MQ client connection, which is then used by default when a connection to IBM MQ is made. You can use the replacementQueuePrefix property in the server.conf.yaml file to configure the integration server to use the specified prefix instead of the usual SYSTEM.BROKER. queue prefix for MQ queues.

For more information about using a remote default queue manager, see Using a remote default queue manager. For more information about IBM MQ, see the IBM MQ product documentation online.

Procedure

Configure an independent integration server to use a remote default queue manager, by completing the following steps:

  1. Create an MQEndpoint policy, as described in Creating policies with the IBM App Connect Enterprise Toolkit.
  2. Enable a connection to the MQEndpoint policy by using one of the following methods:
    1. Set the Connection property to Client, and specify values for the Queue manager name, Queue manager host name, Listener port number, and Channel name properties.
    2. Use CCDT to set up an IBM MQ client channel definition table file. The file name must be provided in one of the following ways:
      • Set the CCDTUrl property (labeled "Location of client channel definition table") in the policy. The CCDTUrl property uses the CCDT for connections for that policy only, and is passed in to MQCONNX for IBM MQ connections for that policy only. For more information, see https://www.ibm.com/docs/en/ibm-mq/9.2?topic=mqcno-ccdturlptr-pmqchar.
      • Set the MQ environment variables MQCHLLIB and MQCHLTAB to point to the CCDT file. This environment variable provides a default for all policies and nodes that specify a connection type of CCDT but do not have CCDTUrl set. For more information, see https://www.ibm.com/docs/en/ibm-mq/9.2?topic=variables-mqchllib and https://www.ibm.com/docs/en/ibm-mq/9.2?topic=variables-mqchltab.
      • Set the mqCCDT property in the server.conf.yaml file. The mqCCDT property causes the server to set the variables MQCHLLIB and MQCHLTAB on startup (if they are not already set). These variables provide a default for all policies and nodes that specify a connection type of CCDT but do not have CCDTUrl set. The following values are examples only:
        
        BrokerRegistry:
          #mqCCDT: 'C:\ProgramData\IBM\MQ\Qmgrs\QM1\@ipcc\AMQCLCHL.TAB'
          #mqKeyRepository: 'C:\SSL\key.kdb'
  3. Deploy the policy project to the work directory for the integration server by using one of the following methods:
    • Run the mqsibar command to deploy the BAR file that contains the policy project.
    • Copy the .policyxml file into the run subdirectory of the integration server work directory, in a subdirectory that has the same name as the policy project.
  4. Set up any security credentials that are required for the remote queue manager connection, as described in Connecting to a secured IBM MQ queue manager.
  5. Configure the integration server to use the remote default queue manager, by modifying the integration server's server.conf.yaml file:
    1. Open the server.conf.yaml configuration file for your integration server, by using a YAML editor.

      You can edit the file by using the built-in YAML editor that is provided in the IBM App Connect Enterprise Toolkit, either by double-clicking the file in the Application Development view or by right-clicking the file and selecting Open with > YAML editor. If you choose to edit the file by using a plain text editor, ensure that you do not include any tab characters (which are not valid in YAML) and use a YAML validation tool to validate the contents of your file.

      The server.conf.yaml file for an independent integration server is located in the root of the integration server's work directory (<work directory>/server.conf.yaml).

    2. Specify the remote default queue manager to be used for the integration server, by setting the remoteDefaultQueueManager property to the policy name and project of the MQEndpoint policy that you created in step 1. Use the format {policyProjectName}:policyName; for example:
      remoteDefaultQueueManager: '{myPolicyProject}:policy1'
    3. Optional: If the queue manager is shared by multiple integration servers, you can use the replacementQueuePrefix property to specify a unique queue prefix for each integration server, to prevent them from sharing the same queues. Specify this property in the format replacementQueuePrefix: 'MYPREFIX1' or replacementQueuePrefix: ‘MY${ENV_VAR}PREFIX’. This prefix then replaces the SYSTEM.BROKER section of each queue name.

      If the required App Connect Enterprise queues do not exist on the remote queue manager, and if security restrictions prevent the integration server from creating those queues, you can create them by running the iib_createqueues command, as described in Creating the default system queues on an IBM MQ queue manager. If you are using nondefault queue names (by specifying a replacement queue prefix), you must modify the queue names in the sample MQSC script iib_queues_create.mqsc, which is used by the iib_createqueues command to define the queues.

    4. Save the modified server.conf.yaml file.
    For more information about configuring an integration server by setting properties in the server.conf.yaml file, see Configuring an integration server by modifying the server.conf.yaml file.
  6. Restart the integration server for the changes to take effect.