Skip to content

IBM MQ Server Binding v0.1.0

The IBM MQ server binding defines the connection details for an IBM MQ queue manager, including support for high-availability (HA) configurations.

Overview

This binding object provides a way to specify how a client application should connect to one or more queue managers. It is crucial for defining HA topologies, where an application can connect to a group of queue managers for workload balancing and automatic failover.

Server Properties

PropertyTypeRequiredDescription
bindingVersionstringNoBinding version (defaults to 0.1.0).
groupIdstringNoDefines a logical group of queue managers for HA.
ccdtQueueManagerNamestringNoThe name of the queue manager in the CCDT file to connect to. Defaults to * (any).
cipherSpecstringNoThe recommended TLS cipher specification to use for the connection.
multiEndpointServerbooleanNoIf true, indicates that messages can be processed on any queue manager in the group. Defaults to false.
heartBeatIntervalintegerNoThe heartbeat interval in seconds. Defaults to 300.

Property Details

groupId

This property is key to defining an HA group. Multiple server objects with the same groupId are treated as a single logical connection. This is used to represent a multi-instance queue manager or a cluster of queue managers that a client can connect to.

ccdtQueueManagerName

When using a Client Channel Definition Table (CCDT), this specifies the name of the queue manager definition within the CCDT file that the client should use. A value of * means the client can connect to any queue manager in the CCDT that matches the groupId.

cipherSpec

Specifies the required cipher for establishing a secure TLS connection (e.g., ANY_TLS12_OR_HIGHER). This is essential for defining the security requirements of the connection.

multiEndpointServer

Set this to true for workload-balanced clusters where a message can be processed by any queue manager in the group. If message affinity or strict ordering is required, this should be false, indicating the client needs to connect to a specific instance.

heartBeatInterval

Defines the interval (in seconds) for the client to send a heartbeat to the queue manager during periods of inactivity to keep the connection alive. A value of 0 disables heartbeats.

Example

High-Availability Group Definition

This example defines two server instances that are part of the same logical group (PAYMENT_PROCESSING_GROUP). This tells the client application that it can connect to either instance for processing payments, likely using a CCDT for connection details. The connection requires a strong TLS cipher.

yaml
servers:
  qmgr-instance-a:
    url: qma.example.com:1414
    protocol: ibmmq
    bindings:
      ibmmq:
        bindingVersion: '0.1.0'
        groupId: 'PAYMENT_PROCESSING_GROUP'
        cipherSpec: 'ANY_TLS12_OR_HIGHER'

  qmgr-instance-b:
    url: qmb.example.com:1414
    protocol: ibmmq
    bindings:
      ibmmq:
        bindingVersion: '0.1.0'
        groupId: 'PAYMENT_PROCESSING_GROUP'
        cipherSpec: 'ANY_TLS12_OR_HIGHER'

Changelog

Version 0.1.0

  • Initial release of the IBM MQ server binding.
  • Added properties for defining queue manager connections, with a focus on high-availability (groupId) and security (cipherSpec).