Skip to content

IBM MQ

The IBM MQ binding. The emitted member is ibmmq, and every object carries bindingVersion: 0.1.0.

@ibmMqServer

typespec
extern dec ibmMqServer(target: Namespace, config: valueof AsyncAPIIbmMqServerBinding);
FieldTypeRequired
groupIdstringno
ccdtQueueManagerNamestringno
cipherSpecstringno
multiEndpointServerbooleanno
heartBeatIntervalint32no

Apply it to the service namespace.

heartBeatInterval is from 0 to 999999 seconds.

AsyncAPI states that cipherSpec applies only when the server uses TLS. The emitter does not check that, because the rule spans two objects.

@ibmMqChannel

typespec
extern dec ibmMqChannel(
  target: Interface | Namespace,
  config: valueof AsyncAPIIbmMqChannelBinding
);
FieldTypeRequired
destinationTypestringno
queueRecord<unknown>no
topicRecord<unknown>no
maxMsgLengthint32no

destinationType is topic or queue. maxMsgLength is from 0 to 104857600 bytes, which is 100 MB.

AsyncAPI states that queue applies only when the type is queue, and topic only when it is topic. The emitter does not check that pairing.

@ibmMqMessage

typespec
extern dec ibmMqMessage(target: Model, config: valueof AsyncAPIIbmMqMessageBinding);
FieldTypeRequired
typestringno
headersstringno
descriptionstringno
expiryint32no

type is string, jms or binary. expiry is a number of milliseconds and is never negative. Zero means the message never expires.

headers is a comma-separated list of header names, not a Schema Object. IBM MQ is the one binding in this library that states the field that way.