Interoperability between IBM MQ Light and Apache Qpid JMS applications
MQ Light and Apache Qpid™ JMS applications work in similar ways, and when subscribing to a topic, create IBM MQ subscriptions that follow the same naming convention.
Private, non-shared subscription
The name of the IBM MQ subscription created by the application is :private:<clientid>:<topicstring>.
An application using a different client ID is not able to access the subscriptions created by a other applications, because the subscription name is automatically generated and includes the AMQP client ID.
Both Apache Qpid JMS and MQ Light applications use this naming convention for private subscriptions.
Globally shared subscriptions
The name of a globally shared IBM MQ subscription created by an AMQP client is :share:<sharename>:<topicstring>.
If several applications with different AMQP client IDs specify the same share name and topic string, they share a single subscription, and can work together to process the messages for that subscription. We can use this pattern if we want to scale the number of worker applications draining messages from a subscription.
Both Apache Qpid JMS and MQ Light applications use this naming convention for globally shared subscriptions. In the case of Apache Qpid JMS, this requires that the JMS connection does not have a client ID specified on it.
The Apache Qpid JMS library generates an AMQP client ID automatically, but this client ID is not used for the purposes of IBM MQ subscription naming.Note: Globally shared subscriptions are still scoped to an individual queue manager.Private shared subscriptions
The name of a privately shared IBM MQ subscription created by an AMQP client is :privateshare:<clientid>:<sharename>:<topicstring>.
If several threads from a single Apache Qpid JMS application use the same share name and topic string, and a client ID has been configured on the JMS connection, those threads share the same IBM MQ subscription object.
However, other Apache Qpid JMS connections are not able to share the subscription because they must use a different client ID.
MQ Light clients do not support the concept of private shared subscriptions, and cannot consume messages from a private shared subscription created by an Apache Qpid JMS application.
IBM MQ JMS subscriptions
IBM MQ JMS subscriptions use a different naming scheme from AMQP channels. It is not possible for MQ Light or Apache Qpid JMS applications to share subscriptions with IBM MQ JMS applications.
Parent topic: Topologies for AMQP clients with IBM MQRelated concepts