ASG
IBM
Zystems
Cressida
Icon
Netflexity
 
  MQSeries.net
Search  Search       Tech Exchange      Education      Certifications      Library      Info Center      SupportPacs      LinkedIn  Search  Search                                                                   FAQ  FAQ   Usergroups  Usergroups
 
Register  ::  Log in Log in to check your private messages
 
RSS Feed - WebSphere MQ Support RSS Feed - Message Broker Support

MQSeries.net Forum Index » General IBM MQ Support » Local and Remote QM behaves differently in Expiry report

Post new topic  Reply to topic
 Local and Remote QM behaves differently in Expiry report « View previous topic :: View next topic » 
Author Message
boblo
PostPosted: Fri May 17, 2002 12:29 pm    Post subject: Local and Remote QM behaves differently in Expiry report Reply with quote

Newbie

Joined: 17 May 2002
Posts: 4

Hi all,

I have a java application sending message to MY.REQUEST.QUEUE in local queue manager with some properties of MQMD set as follow:
MQMessage msg = new MQMessage();
msg.report = MQC.MQRO_EXPIRATION_WITH_DATA;
msg.expiry = 100;
msg.replyToQueueName = "MY.ERROR.QUEUE";
msg.replyToQueueManagerName = ""; //default is local queue manager

When the message expired, MQ manager create a report message and forward it to MY.ERROR.QUEUE which is exactly what I expected.

However, if I send the message to remote queue manager with some properties of MQMD set as follow:
MQMessage msg = new MQMessage();
msg.report = MQC.MQRO_EXPIRATION_WITH_DATA;
msg.expiry = 100;
msg.replyToQueueManagerName = "remote queue manager";

msg.replyToQueueName = "MY.ERROR.QUEUE"; //also defined in remote queue manager


or

msg.replyToQueueName = "remoteQ definition" //which pointing back to MY.ERROR.QUEUE in local queue manager


In either case, when the message expired, remote MQ manager always create a report message in SYSTEM.DEAD.LETTER.QUEUE with reason code MQRC_NOT_AUTHORIZED.

I think this is misunderstanding because I am logon as user mqm and the application is able to send a message to MY.ERROR.QUEUE in remote queue manager and also able to send a message to remoteQ -> remoteQ ->local queue (MY.ERROR.QUEUE in local queue manager).
Back to top
View user's profile Send private message
mqonnet
PostPosted: Fri May 17, 2002 1:10 pm    Post subject: Reply with quote

Grand Master

Joined: 18 Feb 2002
Posts: 1114
Location: Boston, Ma, Usa.

Check the following thread i replied earlier to. Same scenario you are having.

http://www.mqseries.net/phpBB/viewtopic.php?topic=2680&forum=5&1

Cheers.
Kumar
_________________
IBM Certified WebSphere MQ V5.3 Developer
IBM Certified WebSphere MQ V5.3 Solution Designer
IBM Certified WebSphere MQ V5.3 System Administrator
Back to top
View user's profile Send private message Send e-mail Visit poster's website
boblo
PostPosted: Fri May 17, 2002 1:57 pm    Post subject: Reply with quote

Newbie

Joined: 17 May 2002
Posts: 4

Kumar,

Thanks your reply. Before I post the question I already browsed almost all the discussion threads in the forum including your eariler reply. But I don't think it is applicable to me. Because both my MQ managers are installed on Solaris platform. And as I said my application was able to send message remoteQ->remoteQ->localQ (round trips) without MQRC_NOT_AUTHORIZED.
Also remember the report message(Exception, COD, COA and Expiration) is created by MQ Manager not by the application.
Back to top
View user's profile Send private message
mqonnet
PostPosted: Sat May 18, 2002 12:09 pm    Post subject: Reply with quote

Grand Master

Joined: 18 Feb 2002
Posts: 1114
Location: Boston, Ma, Usa.

Well my explaination in the thread i referred explains the QM view point and not the application view point.
And in your case, you are getting 2035 Not from an app but from the QM which is trying to generate a report message and put it on the reply_to_q. And this is failing because the userid that is trying to put the message onto the remote queue at the other end, does not have authority to do so.
I am still very much with my earlier thread explaination only. And would strongly recommend you to go through it once again.

There is only a small window which is not covered in my explaination and that is, if you are having both qm's on the same system. But, in this context too, my explaination would FIT in. Only if you have the same userid on both qm's and the sending app, then the situation would be different.

Hence, i would want you to gather the following.
1) What is the userid that you are logged in as on QM A.
2) What is the userid with which your app is putting the message onto remote queue on QM A.
3) When you get the message onto the DLQ on QM B, what is the userid within the message. You could verify this by checking the message using DLQ browse program. Also could check the mqerrlog to see what is the userid that it shows there with 2035.
4) If these are 2 diff users, do you have a valid principal(case sensitive), on QM a defined.

Hope this helps.

Cheers.
Kumar
_________________
IBM Certified WebSphere MQ V5.3 Developer
IBM Certified WebSphere MQ V5.3 Solution Designer
IBM Certified WebSphere MQ V5.3 System Administrator
Back to top
View user's profile Send private message Send e-mail Visit poster's website
boblo
PostPosted: Sat May 18, 2002 8:33 pm    Post subject: Reply with quote

Newbie

Joined: 17 May 2002
Posts: 4

After sending a message with expiry report option to MY.REQUEST.QUEUE in remote queue manager. I immediately use MQExplorer to browse the message. It shows userid "mqm", reply to queue "MY.ERROR.QUEUE", reply to queue manager "QMD1" (remote queue manager) and Expiration Report checked. I keeped clicking refresh button. After one minute it disappeared from MY.REQUEST.QUEUE and then exipration report showing in SYSTEM.DEAD.LETTER.QUEUE.

BTW, I am able to use MQExplorer to browse message remotely is because my NT user id is synced with my Solaris user id and is in mqm group. However, my testing program was running on Solaris and I logon as mqm.

The reason code 2035 really puzzled because I logon as MQ super user "mqm". So I changed my program to send two messages, one went to "MY.ERROR.QUEUE" and the other to "MY.RESQUEST.QUEUE" with expiry report option set. They both went through successfully. Again, I use MQExplorer to verify that. I saw one message in "MY.ERROR.QUEUE" and another one in "MY.REQUEST.QUEUE" (userid mqm).

Why my program was able to put message to "MY.ERROR.QUEUE" and MQ Manager complained MQRC_NOT_AUTHORIZED (2035) while it tried to open queue "MY.ERROR.QUEUE" when message expired ?
Back to top
View user's profile Send private message
mqonnet
PostPosted: Mon May 20, 2002 5:23 am    Post subject: Reply with quote

Grand Master

Joined: 18 Feb 2002
Posts: 1114
Location: Boston, Ma, Usa.

BTW, I am able to use MQExplorer to browse message remotely is because my NT user id is synced with my Solaris user id and is in mqm group. However, my testing program was running on Solaris and I logon as mqm.
--- You would always be able to browse the message from MQExplorer or even amqsbcg. Reason being, the userid that you are using is external and the one that QM uses internally to put the expiration report is different. This is what is causing all the problem.

The reason code 2035 really puzzled because I logon as MQ super user "mqm". So I changed my program to send two messages, one went to "MY.ERROR.QUEUE" and the other to "MY.RESQUEST.QUEUE" with expiry report option set. They both went through successfully. Again, I use MQExplorer to verify that. I saw one message in "MY.ERROR.QUEUE" and another one in "MY.REQUEST.QUEUE" (userid mqm).
---See the explaination above.

Why my program was able to put message to "MY.ERROR.QUEUE" and MQ Manager complained MQRC_NOT_AUTHORIZED (2035) while it tried to open queue "MY.ERROR.QUEUE" when message expired ?
---Please answer my questions i asked earlier to understand your environment. Or explain your setup. QM1->QM2 remote, local queues, where you are putting message and where you expect to get it. What userid you are using when you put the message. What userid the message shows up within the SYSTEM.DEAD.LETTER.QUEUE at the other end.

Just a reminder, any message that is browsable using utilities such as AMQSBCG or MQExplorer, does not mean that everything's fine. Reason, QM internally processes request in a different way than when requested by an application to process the same request.


Cannot go any further until you furnish the above info.

Hope this helps.

Cheers.
Kumar
_________________
IBM Certified WebSphere MQ V5.3 Developer
IBM Certified WebSphere MQ V5.3 Solution Designer
IBM Certified WebSphere MQ V5.3 System Administrator
Back to top
View user's profile Send private message Send e-mail Visit poster's website
boblo
PostPosted: Mon May 20, 2002 7:14 am    Post subject: Reply with quote

Newbie

Joined: 17 May 2002
Posts: 4

Kumar,

Thanks for the reply. Before I get a chance to see your latest reply, I decided to clean up my queue managers because there were so many testing queues, transmision queues, channels .. etc. And after reset up communication between my local, remote queue managers. I rerun my application and now it works fine now. Thank you for your kindly help.
Back to top
View user's profile Send private message
mqonnet
PostPosted: Mon May 20, 2002 7:32 am    Post subject: Reply with quote

Grand Master

Joined: 18 Feb 2002
Posts: 1114
Location: Boston, Ma, Usa.

Hmmm....
Magically everything has setlled down fine enough. :).

Good to note that the problem got fixed. [img] :roll: [img]

But quite unfortunate that we could not really get to know what the problem was. Even though i suspect it is JUST SIMILAR to the one i have always been mentioning. The other thread.

Any ways. Glad that helped and resolved your problem.

Cheers.
Kumar[/img]
_________________
IBM Certified WebSphere MQ V5.3 Developer
IBM Certified WebSphere MQ V5.3 Solution Designer
IBM Certified WebSphere MQ V5.3 System Administrator
Back to top
View user's profile Send private message Send e-mail Visit poster's website
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » General IBM MQ Support » Local and Remote QM behaves differently in Expiry report
Jump to:  



You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
Protected by Anti-Spam ACP
 
 


Theme by Dustin Baccetti
Powered by phpBB © 2001, 2002 phpBB Group

Copyright © MQSeries.net. All rights reserved.