Author |
Message
|
Balatseng |
Posted: Mon Aug 07, 2006 12:16 pm Post subject: MQJMS1111 error on Websphere MQ |
|
|
Newbie
Joined: 11 Jul 2006 Posts: 8
|
Hi guys,
I'm trying to publish a message to a topic in MQ, and I'm getting the following error:
javax.jms.JMSException: MQJMS1111: JMS1.1 The required Queues/Publish Subscribe services are not set up {0}.
I have setup two Qmanagers, QM1 and QM2, on two different machines, with the following settings:
1. QM2 has a JMS Broker (SYSTEM.BROKER) started with the following queues:
(a) Broker Con Queue - SYSTEM.BROKER.CONTROL.QUEUE
(b) Broker Pub Queue - SYSTEM.BROKER.DEFAULT.STREAM
(c) Broker Sub Queue - SYSTEM.JMS.ND.SUBSCRIBER.QUEUE
(d) Broker CC Queue - SYSTEM.JMS.ND.CC.SUBSCRIBER.QUEUE
2. Receiver Channel - CTI_TO_OTB
3. Listener - SYSTEM.DEFAULT.LISTENER.TCP (on port 1414)
Then on QM1, I have the following settings:
1. (a) Remote Queue Definition for Broker Con Queue (BROKER.CONTROL.QUEUE)
(b) Remote Queue Definition for Broker Pub Queue (BROKER.DEFAULT.STREAM)
(c) Remote Queue Definition for Broker Sub Queue (BROKER.SUBSCRIBER.QUEUE)
(d) Remote Queue Definition for Broker CC Queue (BROKER.CC.SUBSCRIBER.QUEUE)
2. Transmission Queue - QM2
3. Sender Channel - CTI_TO_OTB (the connection points to the machine with QM2 on port 1414)
4. Listener - SYSTEM.DEFAULT.LISTENER.TCP (on port 1414)
5. JMS Topic Connection Factory (on QM1) with the following properties:
(a) JNDI Name - TELEPHONY_EVENTS_TCF
(b) QMANAGER - QM1
(c) BROKERQMANAGER: QM2
(d) BROKERCONQ - BROKER.CONTROL.QUEUE
(e) BROKERPUBQ - BROKER.DEFAULT.STREAM
(f) BROKERSUBQ - BROKER.SUBSCRIBER.QUEUE
(g) BROKERCCSUBQ - BROKER.CC.SUBSCRIBER.QUEUE
(h) CHANNEL - CTI_TO_OTB
(i) TRANSPORT - BIND
6. JMS Topic with the following properties:
(a) JNDI Name - MakeCall
(b) TOPIC - cti/telephony/callevents/makecall
(c) BROKERCONQ - BROKER.CONTROL.QUEUE
(d) BROKERPUBQ - BROKER.DEFAULT.STREAM
(e) BROKERSUBQ - BROKER.SUBSCRIBER.QUEUE
(f) BROKERCCSUBQ - BROKER.CC.SUBSCRIBER.QUEUE
My JMS application runs on the same machine as QM1, and I'm trying to publish messages on on QM1 so that they can be consumed by a Message Driven Bean (MDB) running on the machine with QM2.
Is there anything that I have missed that might cause an error?
Cheers |
|
Back to top |
|
 |
vennela |
Posted: Mon Aug 07, 2006 1:42 pm Post subject: |
|
|
 Jedi Knight
Joined: 11 Aug 2002 Posts: 4055 Location: Hyderabad, India
|
What does the PUB/SUB broker status is shown as
Code: |
dspmqbrk -m QMGRNAME |
|
|
Back to top |
|
 |
fjb_saper |
Posted: Mon Aug 07, 2006 2:08 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
You should not need to create remote queues for the broker system queues. You need however to have a default path from QM1 to QM2 and vice versa. In the Topic factory specify that the broker resides on QM2. This should be sufficient.
Enjoy  _________________ MQ & Broker admin |
|
Back to top |
|
 |
Balatseng |
Posted: Mon Aug 07, 2006 11:49 pm Post subject: |
|
|
Newbie
Joined: 11 Jul 2006 Posts: 8
|
vennela wrote: |
What does the PUB/SUB broker status is shown as
Code: |
dspmqbrk -m QMGRNAME |
|
Hi,
The MQ Pub/Sub broker for the Queue Manager is running. |
|
Back to top |
|
 |
Balatseng |
Posted: Tue Aug 08, 2006 3:57 am Post subject: |
|
|
Newbie
Joined: 11 Jul 2006 Posts: 8
|
fjb_saper wrote: |
You should not need to create remote queues for the broker system queues. You need however to have a default path from QM1 to QM2 and vice versa. In the Topic factory specify that the broker resides on QM2. This should be sufficient.
Enjoy  |
Sorry for my ignorance, but
How do you specify a path between two Queue Managers to be DEFAULT?
Also, I'm I correct to specify the transport parameter as "bind"? |
|
Back to top |
|
 |
Vitor |
Posted: Tue Aug 08, 2006 4:05 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
Balatseng wrote: |
How do you specify a path between two Queue Managers to be DEFAULT?
|
Give the xmitq queue the same name as the queue manager it services.
So for example on QM1, there will be a sender channel pointing to QM2 that uses an xmitq called QM2. Messages that are addressed to QM2 will go to that xmitq by default because the name matches.
Remember case is significant. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
Balatseng |
Posted: Tue Aug 08, 2006 4:57 am Post subject: |
|
|
Newbie
Joined: 11 Jul 2006 Posts: 8
|
Hi guys,
I still get the error
javax.jms.JMSException: MQJMS1111: JMS1.1 The required queues/Publish Subscribe services are not set up {0} at com.ibm.mq.jms.MQConnection.setSubscriptionStoresMQConnection.java:3755)
at com.ibm.mq.jms.MQConnection.getMQPubSubServices(MQConnection.java:3686)
at com.ibm.mq.jms.MQSession.addPubSubServices(MQSession.java:6609)
at com.ibm.mq.jms.MQSession.createTPublisher(MQSession.java:5564)
at com.ibm.mq.jms.MQTopicSession.createPublisher(MQTopicSession.java:503)
at com.comp.cc.events.JMSBase.createTopicPublisher(JMSBase.java:169)
at za.co.fnb.cc.events.EventsPublisher.publishEvent(EventsPublisher.java:257)
My logs say:
INFO - The looked up topic is topic://MakeCallTest
INFO - TopicSession is com.ibm.mq.jms.MQTopicSession@6cb9004c
INFO - Topic is topic://MakeCallTest
ERROR - Could not create a Topic Publisher
javax.jms.JMSException: MQJMS1111: JMS1.1 The required queues/Publish Subscribe services are not set up {0}
I have two Qmanagers, QM1 and QM2, on two different machines, with the following settings:
1. QM2 has a JMS Broker (SYSTEM.BROKER) started with the following queues:
(a) Broker Con Queue - SYSTEM.BROKER.CONTROL.QUEUE
(b) Broker Pub Queue - SYSTEM.BROKER.DEFAULT.STREAM
(c) Broker Sub Queue - SYSTEM.JMS.ND.SUBSCRIBER.QUEUE
(d) Broker CC Queue - SYSTEM.JMS.ND.CC.SUBSCRIBER.QUEUE
2. Receiver Channel - CTI_TO_OTB
3. Sender channel - OTB_TO_CTI
4. Transmission queue - QM1
5. Listener - SYSTEM.DEFAULT.LISTENER.TCP (on port 1414)
QM1 only has:
1. Receiver Channel - OTB_TO_CTI
2. Sender channel - CTI_TO_OTB
3. Transmission queue - QM2
4. Listener - SYSTEM.DEFAULT.LISTENER.TCP (on port 1414)
5. TCF defined as follows:
JNDI Name: EVENTS_TCF
BROKERSUBQ(SYSTEM.JMS.ND.SUBSCRIBER.QUEUE)
MSGSELECTION(CLIENT)
BROKERCONQ(SYSTEM.BROKER.CONTROL.QUEUE)
BROKERCCSUBQ(SYSTEM.JMS.ND.CC.SUBSCRIBER.QUEUE)
BROKERQMGR(QM2)
BROKERPUBQ(SYSTEM.BROKER.DEFAULT.STREAM)
QMANAGER(QM1)
BROKERVER(V1)
TRANSPORT(BIND)
6. Topic defined as follows
BROKERPUBQMGR(QM2)
BROKERDURSUBQ(SYSTEM.JMS.D.SUBSCRIBER.QUEUE)
TOPIC(MakeCallTest)
BROKERPUBQ()
BROKERVER(V1)
TARGCLIENT(JMS)
BROKERCCDURSUBQ(SYSTEM.JMS.D.CC.SUBSCRIBER.QUEUE)
Is there anything that I'm missing? |
|
Back to top |
|
 |
bower5932 |
Posted: Tue Aug 08, 2006 5:59 am Post subject: |
|
|
 Jedi Knight
Joined: 27 Aug 2001 Posts: 3023 Location: Dallas, TX, USA
|
Out of curiosity, does it work on just a single QM? I'd confirm this before going to the two QMs. |
|
Back to top |
|
 |
fjb_saper |
Posted: Tue Aug 08, 2006 2:28 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
And you did not specify at all what your JNDI settings were on the tcf. This where you need to specify where the broker is...
You connect to qm1 on the tcf but the tcf knows that the broker is on qm2. Otherwise it will try to have the service run on qm1 and it just won't work...
Enjoy  _________________ MQ & Broker admin |
|
Back to top |
|
 |
jefflowrey |
Posted: Tue Aug 08, 2006 2:36 pm Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
fjb_saper wrote: |
And you did not specify at all what your JNDI settings were on the tcf. |
Balatseng wrote: |
5. TCF defined as follows:
JNDI Name: EVENTS_TCF
BROKERSUBQ(SYSTEM.JMS.ND.SUBSCRIBER.QUEUE)
MSGSELECTION(CLIENT)
BROKERCONQ(SYSTEM.BROKER.CONTROL.QUEUE)
BROKERCCSUBQ(SYSTEM.JMS.ND.CC.SUBSCRIBER.QUEUE)
BROKERQMGR(QM2)
BROKERPUBQ(SYSTEM.BROKER.DEFAULT.STREAM)
QMANAGER(QM1)
BROKERVER(V1)
TRANSPORT(BIND) |
_________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
fjb_saper |
Posted: Tue Aug 08, 2006 2:50 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
jefflowrey wrote: |
fjb_saper wrote: |
And you did not specify at all what your JNDI settings were on the tcf. |
Balatseng wrote: |
5. TCF defined as follows:
JNDI Name: EVENTS_TCF
BROKERSUBQ(SYSTEM.JMS.ND.SUBSCRIBER.QUEUE)
MSGSELECTION(CLIENT)
BROKERCONQ(SYSTEM.BROKER.CONTROL.QUEUE)
BROKERCCSUBQ(SYSTEM.JMS.ND.CC.SUBSCRIBER.QUEUE)
BROKERQMGR(QM2)
BROKERPUBQ(SYSTEM.BROKER.DEFAULT.STREAM)
QMANAGER(QM1)
BROKERVER(V1)
TRANSPORT(BIND) |
|
I am going blind.
Jeff what does that mean for the subscription delivery. Would not the delivery need to be made to a queue on QM1 ? If that is not specified on the subscription registration what should be expected as error message? Would that error message hit at subscription time or publication time? _________________ MQ & Broker admin |
|
Back to top |
|
 |
jefflowrey |
Posted: Tue Aug 08, 2006 6:22 pm Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
I'm not quite sure what it means for the Topic.
I suspect that it means that the Topic should NOT set the Broker Queue Manager.
It'd be instructive to stop the channel and view the subscription request on the xmit queue and see what the replytoqueue was. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
fjb_saper |
Posted: Wed Aug 09, 2006 12:20 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
jefflowrey wrote: |
I'm not quite sure what it means for the Topic.
I suspect that it means that the Topic should NOT set the Broker Queue Manager.
It'd be instructive to stop the channel and view the subscription request on the xmit queue and see what the replytoqueue was. |
I understand that the replyto destination is used to send the result of the registration to. The subscription queue and queue manager are being set into the subscription queue manager and subscription queue fields (RFHUTIL with header version 1 or 2). Haven't looked into how the JMS interface treats this. Like you said it is probably worth stopping the channel and looking at the subscription on the queue... _________________ MQ & Broker admin |
|
Back to top |
|
 |
Balatseng |
Posted: Wed Aug 09, 2006 10:45 pm Post subject: |
|
|
Newbie
Joined: 11 Jul 2006 Posts: 8
|
bower5932 wrote: |
Out of curiosity, does it work on just a single QM? I'd confirm this before going to the two QMs. |
Yes. It works perfectly fine with a single Queue Manager. The problem only starts to occur when I try to link two Queue Managers. |
|
Back to top |
|
 |
|