Skip to content

IBM MQ Channel Binding v0.1.0

The IBM MQ channel binding defines how an AsyncAPI channel maps to a destination within an IBM MQ queue manager. This destination can be either a Queue (for point-to-point messaging) or a Topic (for publish-subscribe messaging).

Overview

This binding object is highly flexible, allowing you to specify detailed properties for both queues and topics, ensuring that your API definition accurately reflects the configuration of your IBM MQ infrastructure.

Channel Properties

PropertyTypeRequiredDescription
bindingVersionstringNoBinding version (defaults to 0.1.0).
destinationTypestringNoThe type of destination. Can be topic or queue. Defaults to topic.
queueobjectNoA queue object. Required if destinationType is queue.
topicobjectNoA topic object.
maxMsgLengthintegerNoMaximum physical message length (in bytes) for the destination.

Queue Object Properties

These properties apply when destinationType is queue.

PropertyTypeRequiredDescription
objectNamestringYesThe name of the IBM MQ queue.
isPartitionedbooleanNoDefines if the queue is a cluster queue. Defaults to false.
exclusivebooleanNoSpecifies if the queue should be opened exclusively. Defaults to false.

Queue Property Details

  • objectName: The name of the queue as it is defined in the queue manager.
  • isPartitioned: Set to true if the queue is part of a cluster, which may affect how applications bind to it.
  • exclusive: If true, it recommends that a consuming application opens the queue for exclusive input, preventing other consumers from accessing it.

Topic Object Properties

These properties apply when destinationType is topic.

PropertyTypeRequiredDescription
stringstringNoThe topic string to be used (e.g., news/sports/football).
objectNamestringNoThe name of a predefined topic object in the queue manager.
durablePermittedbooleanNoWhether durable subscriptions are allowed. Defaults to true.
lastMsgRetainedbooleanNoWhether the broker should retain the last message on this topic. Defaults to false.

Topic Property Details

  • string / objectName: You can define a topic in two ways. Use string to specify the topic hierarchy directly. Use objectName to refer to an administrative topic object defined in the queue manager, which can provide a base for the topic string and control other attributes.
  • durablePermitted: If true, clients can create durable subscriptions, allowing them to receive messages that were published while they were disconnected.
  • lastMsgRetained: If true, the queue manager will save the most recent message published to the topic and deliver it to new subscribers as soon as they subscribe.

Examples

Point-to-Point (Queue)

This example defines a channel that maps to an exclusive, partitioned cluster queue for processing orders.

yaml
channels:
  orderProcessing:
    bindings:
      ibmmq:
        bindingVersion: '0.1.0'
        destinationType: 'queue'
        queue:
          objectName: 'APP.ORDERS.IN'
          isPartitioned: true
          exclusive: true

Publish-Subscribe (Topic)

This example defines a channel for a public news feed topic where durable subscriptions are not allowed.

yaml
channels:
  publicNewsFeed:
    bindings:
      ibmmq:
        bindingVersion: '0.1.0'
        destinationType: 'topic'
        topic:
          string: 'news/public/...'
          durablePermitted: false

Changelog

Version 0.1.0

  • Initial release of the IBM MQ channel binding.
  • Added comprehensive properties for both queue and topic destination types.