Author |
Message
|
vc1981 |
Posted: Thu Feb 22, 2007 2:18 am Post subject: 2082 on cluster Alias queue ;amqsput works fine |
|
|
Apprentice
Joined: 18 Jan 2006 Posts: 46
|
Hi,
I have two queue managare QM1 and QM2 in a cluster CLUS
The Queue Manager QM1 has an alias queue A1 not shared in the cluster CLUS , the target queue for this is a local queue L1 defined under QM2 and shared in CLUS .
Now when i try to put the message on A1 using my Java client i get an error message:
MQJE001: Completion Code 2, Reason 2082
com.ibm.mq.MQException: MQJE001: Completion Code 2, Reason 2082
at com.ibm.mq.MQQueueManager.accessQueue(MQQueueManager.java:1544)
But when i use amqsput A1 QM1 then it works fine .
Also from QM1 when i do an Dis Qcluster(A2) i can see the queue .
Kindly advise ! _________________ Regards ,
VC |
|
Back to top |
|
 |
Vitor |
Posted: Thu Feb 22, 2007 2:22 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
Why is the alias not shared on the cluster? Also what is the A2 queue in the display command? You don't mention it anywhere else on the post. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
vc1981 |
Posted: Thu Feb 22, 2007 2:28 am Post subject: |
|
|
Apprentice
Joined: 18 Jan 2006 Posts: 46
|
Vitor wrote: |
Also what is the A2 queue in the display command? You don't mention it anywhere else on the post. |
Apologies its L1 and not A2
There are two queue managers both are member of the cluster called CLUS.
Queue Manager : QM1
Alias queue : A1 ( not shared in the cluster) Target Q is L1
Queue Manager : QM2
Local queue : L1 shared in the cluster called CLUS
Vitor wrote: |
Why is the alias not shared on the cluster? |
I didn't get it why should i share the alias queue in the cluster when the targer queue is shared in the cluster and visible under the queue manager which hosts the Alias queue.More over if this was the case then amqsput should also not work ..... _________________ Regards ,
VC |
|
Back to top |
|
 |
Vitor |
Posted: Thu Feb 22, 2007 2:38 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
vc1981 wrote: |
Vitor wrote: |
Why is the alias not shared on the cluster? |
I didn't get it why should i share the alias queue in the cluster when the targer queue is shared in the cluster and visible under the queue manager which hosts the Alias queue.More over if this was the case then amqsput should also not work ..... |
I was trying to understand the requirements a bit better; it certainly should work (as the amqsput demonstrates).
What level of MQ are you on? It smells like a bug within the Java, which could easily be the case if you're lower than 5.3.10. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
Mr Butcher |
Posted: Thu Feb 22, 2007 2:44 am Post subject: |
|
|
 Padawan
Joined: 23 May 2005 Posts: 1716
|
I had this alias / qlocal issue in a different context, but the resulting error was the same.
i defined a qalias pointing to a qlocal on the same qmgr (no clustering involved here). anyway, we set up our security only for the qalias, the qlocal is not allowed to be accessed.
when the jms application accesses the qalias, i get an security open error on the qlocal.
i was explained by jms specialists, that the "factory" that lies beyond the jms queueing mechanism openes the queue, it recognises that this is an alias queue, so it tries to find out more things about the target queue (like priority) and also openes the target queue.
in my case this gives a security error.
in your case (when the open is done with queuemanagername and queuename) - it will result in 2082 because the qlocal does not exist in qm1
i'd really know how to switch that target-queue-opening off.
maybe some jms specialists can give us hints here. _________________ Regards, Butcher |
|
Back to top |
|
 |
vc1981 |
Posted: Thu Feb 22, 2007 3:17 am Post subject: |
|
|
Apprentice
Joined: 18 Jan 2006 Posts: 46
|
Vitor wrote: |
What level of MQ are you on? It smells like a bug within the Java, which could easily be the case if you're lower than 5.3.10. |
I am on 5.3 CSD 11. _________________ Regards ,
VC |
|
Back to top |
|
 |
Vitor |
Posted: Thu Feb 22, 2007 3:23 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
vc1981 wrote: |
I am on 5.3 CSD 11. |
Not that then.
I think Mr Butcher may be onto something; I have a dim memory of reading something about a Java program failing because it was trying to do an inquire on a base queue, but I can't find the post & my Java is not my strongest language.
We need a JMS person. They'll be one along in a minute. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
vc1981 |
Posted: Thu Feb 22, 2007 3:27 am Post subject: |
|
|
Apprentice
Joined: 18 Jan 2006 Posts: 46
|
Mr Butcher wrote: |
i defined a qalias pointing to a qlocal on the same qmgr (no clustering involved here).
|
Well there you are right , when the target queue for the alias queue is an queue local to the queue manager , then the same code works, but then that won't serve the purpose i need to make use of clustering , as going forward i would be implementing load balancing as well.
Also this queue manager QM1 of mine is the default queue manager of mine , so when i run the code without mentioning any queue manager name , the application works fine , that to a great extent indicates that when we mention a queue manager name , the application probably looks for the target queue under the same queue manager !
Wonder how this can be done away , as i won't be using the default queue manager always. _________________ Regards ,
VC |
|
Back to top |
|
 |
Vitor |
Posted: Thu Feb 22, 2007 3:52 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
vc1981 wrote: |
Wonder how this can be done away , as i won't be using the default queue manager always. |
You might consider starting a new thread in the JMS section; this is clearly something fairly JMS specifc (witness the behaviour of amqsput) and reposting in there is more likely to bring your query to the attention of the "right" specialists...  _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
anantha sreenivasan |
Posted: Wed Mar 07, 2007 1:53 am Post subject: |
|
|
Acolyte
Joined: 26 Sep 2006 Posts: 72
|
Alter the DEFBIND property of your alias queue to NOTFIXED and try out. |
|
Back to top |
|
 |
vc1981 |
Posted: Thu Mar 08, 2007 10:20 pm Post subject: |
|
|
Apprentice
Joined: 18 Jan 2006 Posts: 46
|
anantha sreenivasan wrote: |
Alter the DEFBIND property of your alias queue to NOTFIXED and try out. |
That doesn't help ! _________________ Regards ,
VC |
|
Back to top |
|
 |
Ivans |
Posted: Fri Mar 09, 2007 1:37 am Post subject: |
|
|
Apprentice
Joined: 03 Jan 2006 Posts: 48 Location: Hursley
|
Hi,
This should work no problem. I'd check that you are not fully qualifying the put with the local queue manager name (QM1).
This fails:
1) oQueue = queueSession.createQueue( "queue://QM1/A1");
These work:
2) oQueue = queueSession.createQueue( "queue://QM2/A1");
3) oQueue = queueSession.createQueue( "queue:///A1");
4) oQueue = queueSession.createQueue( "A1");
Cheers,
Ian |
|
Back to top |
|
 |
fjb_saper |
Posted: Fri Mar 09, 2007 3:25 am Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
And don't forget to authorize your alias queue for inq. JMS specifically requires inq on all objects accessed...
Enjoy  _________________ MQ & Broker admin |
|
Back to top |
|
 |
jsware |
Posted: Fri Mar 09, 2007 9:58 am Post subject: |
|
|
 Chevalier
Joined: 17 May 2001 Posts: 455
|
According to the MQRC descriptions, 2082 can also occur when BaseQName is the name of a cluster queue that cannot be resolved successfully. Programmer response is to correct the queue definitions (shouldn't that be get admin to correct queue definitions and score a point for the developer types ).
Since amqsput works OK, I don't think there's anything wrong unless the problem is with Java access is failing at the "cluster queue resolution" part.
Unfortunately, the MQRC description doesn't elaborate on what it means by "...cannot be resolved successfully" - helpful  _________________ Regards
John
The pain of low quaility far outlasts the joy of low price. |
|
Back to top |
|
 |
|