Author |
Message
|
dmitry_ame |
Posted: Wed May 22, 2002 10:28 am Post subject: mq jms using non system default queus for pub/sub |
|
|
Newbie
Joined: 22 May 2002 Posts: 7
|
Hi everyone,
here is what I put on jndi for my topicn (using JMSAdmin tool of cource)
DEFINE TCF(SSFS.PAGECONSUMER.TCF) HOSTNAME(mcdundee.intra.scudder.com) QMGR(mcdundee.qmgr) TRAN(CLIENT) CHANNEL(SSFS.TCF) BROKERQMGR(mcdundee.qmgr) BROKERPUBQ(SSFS.PageConsumer.pub) BROKERSUBQ(SSFS.PageConsumer.sub)
DEFINE T(SSFS.PAGECONSUMER.T) TOPIC(SSFS.PageConsumer)
As you can see I'm explicitly specifying BROKERPUBQ and BROKERSUBQ and it just does not work (of cource I have these queues created). The messages show up on SSFS.PageConsumer.pub queue and then the subscriber never receives it throwing an exception com.ibm.mq.jms.NoBrokerResponseException: MQJMS5053: *** No broker response. Please ensure that the broker is running. ***
If I dont specify these two on jndi entry the JMSAdmin tool will put some system.admin queues and everything works just fine.
For me it would be important not to use the system default queues for pub/sub -- I don't want all my applications share the same queus, instead I want to control the acl per apllication (wich would not be possible if all pub/sub messages go throgh the same default system queues).
Please help! This problem drives me crazy -- what am I doing wrong? |
|
Back to top |
|
 |
amurugan |
Posted: Wed May 22, 2002 6:30 pm Post subject: |
|
|
Voyager
Joined: 10 Sep 2001 Posts: 75 Location: india
|
hi ,
Have u defined the queues by altering the script provided by mq series or have u defined by yourself . kindly verify the definitions. i think its a defnition problem and also check whether the broker is running .
Regards,
murugan |
|
Back to top |
|
 |
dmitry_ame |
Posted: Thu May 23, 2002 4:45 am Post subject: |
|
|
Newbie
Joined: 22 May 2002 Posts: 7
|
The broker is running,
I tried to define the queues by myself as well as I tried to modify the names of the queues in the script (reflecting the queus i specify in jndi entry) provided by mq and running it by runmqsc. Still does not work.
Murugan, have you ever been able to use non system queus in jms pub/sub application?
Thanks,
Dmitry A. |
|
Back to top |
|
 |
dmitry_ame |
Posted: Thu May 23, 2002 5:22 am Post subject: |
|
|
Newbie
Joined: 22 May 2002 Posts: 7
|
One thing that I noticed, that looks strange,
on the JNDI entry property "version" for the topic has value "1" and for the topic connection factory has value "2".
What are these properties are there for? |
|
Back to top |
|
 |
dmitry_ame |
Posted: Thu May 23, 2002 6:15 am Post subject: |
|
|
Newbie
Joined: 22 May 2002 Posts: 7
|
I also tried aliasing the names of the queues i want to use in the future to the system default queues, still does not work,
please help!
Dmitry A. |
|
Back to top |
|
 |
dmitry_ame |
Posted: Thu May 23, 2002 10:32 am Post subject: |
|
|
Newbie
Joined: 22 May 2002 Posts: 7
|
If anybody is still interested in this (unfortunately I have not seen much of activity around this issue, so maybe someone else will be able to benefit from all I've learned):
I'm pretty much convinced that this is a bug in MQJMS and this is why:
1. The JMS pub/sub works fine if I use default PUB and default SUB queus in JNDI, in order to do so I'd have to create a following entry in JNDI:
DEFINE TCF(Test.TCF) QMGR(mcdundee.qmgr) TRAN(CLIENT) CHANNEL(Test.TCF) BROKERQMGR(mcdundee.qmgr)
2. If the entry created like this:
DEFINE TCF(Test.TCF) QMGR(mcdundee.qmgr) TRAN(CLIENT) CHANNEL(Test.TCF) BROKERQMGR(mcdundee.qmgr) BROKERSUBQ(QUEUE.TEST)
The JMS client will throw an error:
MQJMS3021: Invalid subscriber queue prefix
3. So that made me think that I should start the BROKERSUBQ with the name of the default BROKERSUBQ like this:
DEFINE TCF(Test.TCF) HOSTNAME(mcdundee.intra.scudder.com) QMGR(mcdundee.qmgr) TRAN(CLIENT) CHANNEL(Test.TCF) BROKERQMGR(mcdundee.qmgr) BROKERSUBQ(SYSTEM.JMS.ND.SUBSCRIBER.QUEUE.TEST)
and it does work.
4. unfortunately similar trick does not work for BROKERPUBQ:
DEFINE TCF(Test.TCF) HOSTNAME(mcdundee.intra.scudder.com) QMGR(mcdundee.qmgr) TRAN(CLIENT) CHANNEL(Test.TCF) BROKERQMGR(mcdundee.qmgr) BROKERSUBQ(SYSTEM.JMS.ND.SUBSCRIBER.QUEUE.TEST) BROKERPUBQ(SYSTEM.BROKER.DEFAULT.STREAM.TEST)
will result in com.ibm.mq.jms.BrokerCommandFailedException: Broker command failed: MQRCCF_UNKNOWN_STREAM Reason code 3082
on the subscriber.
So, the conclusion is:
even though the mq documentation describes how to change the default pub/sub queus for JMS to use, the functionality is not implemented (or it's better to say not implemented properly -- by a definition it's a bug).
I'm hoping some day IBM will fix it.
Thanks every one.
Dmitry A. |
|
Back to top |
|
 |
bower5932 |
Posted: Wed May 29, 2002 12:16 pm Post subject: |
|
|
 Jedi Knight
Joined: 27 Aug 2001 Posts: 3023 Location: Dallas, TX, USA
|
I used your definitions from the top of this append, and I (finally) got things to work. I ran into some funny problems (MQJMS3013, MQJMS5053). The only way that I was able to get around things was to start up the publisher and the subscriber at the same time. Once I did this the first time, everything works fine. However, if I start up the publisher with no subscriber, I get one of the errors above. If I start up the subscriber with no publisher, I get one of the other errors. I'm guessing that something has to be initialized one time for it to work (correctly).
Ron |
|
Back to top |
|
 |
Sandyjo15 |
Posted: Wed May 29, 2002 3:36 pm Post subject: |
|
|
Newbie
Joined: 08 May 2002 Posts: 4
|
Go through the MQ-JMS manual thoroughly esp. Chapter 5. In case of JMS, the queue name should have a prefix SYSTEM.JMS, which you seem to be ignoring. Try that and let me know. |
|
Back to top |
|
 |
bower5932 |
Posted: Thu May 30, 2002 9:37 am Post subject: |
|
|
 Jedi Knight
Joined: 27 Aug 2001 Posts: 3023 Location: Dallas, TX, USA
|
I just looked through Chapter 5. Can you be more specific on where the manual indicates that the queue names have to start with SYSTEM.JMS?
Thanks, Ron |
|
Back to top |
|
 |
dmitry_ame |
Posted: Fri May 31, 2002 7:28 am Post subject: |
|
|
Newbie
Joined: 22 May 2002 Posts: 7
|
As I specified in my previous posting the only way I could get it to work was to specify BROKERPUBQ(SYSTEM.BROKER.DEFAULT.STREAM.TEST)
wich has the SYSTEM prefix. Once again, the same trick does not work for BROKERSUBQ
And yes, I could not find any explicit references to the necesity of using the system ques in chapter 5 of the manual.
Dmitry A. |
|
Back to top |
|
 |
techno |
Posted: Wed Dec 01, 2004 8:51 am Post subject: |
|
|
Chevalier
Joined: 22 Jan 2003 Posts: 429
|
Anybody got this worked?
Is there any improvement done on using non default system queues.. in current version of pub sub?
thanks |
|
Back to top |
|
 |
|