We're trying to set up an administrative subscription on one of our MQ servers. We have a publisher client that posts messages to a MQ topic and other subscribers listening to the topic. Internally, on the queue manager we have defined an administrative subscription that listens for messages and copies these to a queue. Another client is connected to this queue to receive the messages.
The server is built into a Docker image so it runs in our private cloud. I am able to build and configure this server locally (running in Docker on my laptop) so that the subscription works as expected. By this I mean I can publish a message and see a subscriber client display the content as well as another client that is connected to the queue. However, in the cloud deployment this does not work. I see the subscriber print the message but not the client that is connected to the queue.
We have verified that we can directly read/write to the topic and directly read/write to the queue. The problem seems to be somewhere inside the queue manager in that it does not automatically put messages published to the topic onto the queue.
The configuration is as follows, where "prospect-messages" is the topicstring. We use LDAP security, thus the AUTHRECs. In this particular case the ID we're using is a member of both LDAP groups.
DEFINE TOPIC('PRI.RECRUITING.V1') TOPICSTR('prospect-messages') REPLACE
SET AUTHREC GROUP('mq_prospect_messages_recv') OBJTYPE(QMGR) AUTHADD(CONNECT,INQ)
SET AUTHREC GROUP('mq_prospect_messages_sndr') OBJTYPE(QMGR) AUTHADD(CONNECT,INQ)
SET AUTHREC PROFILE('PRI.RECRUITING.V1') GROUP('mq_prospect_messages_sndr') OBJTYPE(TOPIC) AUTHADD(PUB)
SET AUTHREC PROFILE('PRI.RECRUITING.V1') GROUP('mq_prospect_messages_recv') OBJTYPE(TOPIC) AUTHADD(SUB)
DEFINE QLOCAL('PROSPECT.QUEUE.V1') REPLACE
SET AUTHREC GROUP('mq_prospect_messages_recv') OBJTYPE(QMGR) AUTHADD(CONNECT,INQ)
SET AUTHREC GROUP('mq_prospect_messages_sndr') OBJTYPE(QMGR) AUTHADD(CONNECT,INQ)
SET AUTHREC PROFILE('PROSPECT.QUEUE.V1') GROUP('mq_prospect_messages_sndr') OBJTYPE(QUEUE) AUTHADD(PUT)
SET AUTHREC PROFILE('PROSPECT.QUEUE.V1') GROUP('mq_prospect_messages_recv') OBJTYPE(QUEUE) AUTHADD(GET,INQ,BROWSE)
DEFINE SUB('PRI.RECRUITING.V1') TOPICSTR('prospect-messages') DESTCLAS(PROVIDED) DEST('PROSPECT.QUEUE.V1') EXPIRY(3000) PUBPRTY(ASPUB)
I'm fairly new to MQ and still learning. Any thoughts or help in debugging this is much appreciated. Is there some condition that would cause the queue to become disabled or disconnected from its subscription in this scenario? The MQ version is 9.1.14 running on Ubuntu. We are using a single queue manager.
Does any of the following affect an administrative subscription?
- DEFINE SUB completes before the DEFINE TOPIC completes and thus no subscription occurs.
- A SUBUSER parameter is required (This is not used in the local scenario that is working).
Thanks,
Jim
------------------------------
Jim Creasman
------------------------------