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 IndexIBM MQ API SupportBreakthrough in COD problem but need some Clarification

Post new topicReply to topic
Breakthrough in COD problem but need some Clarification View previous topic :: View next topic
Author Message
kvnathan
PostPosted: Wed Oct 31, 2001 1:18 am Post subject: Reply with quote

Novice

Joined: 19 Oct 2001
Posts: 19

Hai,

As we said earlier about the problem in getting the COD from the other end, we found the exact root cause of the problem.
In our java program we have to set the applicationIdData for some type of messages we are going to send. So for that we added the following code
-------------------------------------
int openoptions = MQC.MQOO_OUTPUT | MQC.MQOO_SET_IDENTITY_CONTEXT;
queueobj = QMGR.accessQueue(sQueueName,openoptions,null,null,null);
.
.
MQPutMessageOptions pmo = new MQPutMessageOptions();
pmo.options = MQC.MQOO_SET_IDENTITY_CONTEXT ;
.
.
msg.applicationIdData = "AppIdData";
.
.
---------------------------------------
If we send the message by the above set option, we are getting the 2063 error. But if we send the message without the applicationIdData and without setting the MQC.MQOO_SET_IDENTITY_CONTEXT option, we are getting both the COA and COD in the specified Queue.

If we set the MQC.MQOO_SET_IDENTITY_CONTEXT option for applicationIdData we are getting the following error message.
------------------------------------------
AMQ7310: Report message could not be put on a reply-to queue.

EXPLANATION:
The attempt to put a report message on queue COACOD.LISTEN on
queue manager TESTQMGR failed with reason code 2063. The message will be
put on the dead-letter queue.
------------------------------------------
Please Clarify regarding this and tell us how to go about this problem. And for your information that we are loding and accessing the Queues from our own login in unix, not from mqm login. But we have created Queuemanager and Queues from our login itself. Please help us.

Thanks in advance.

Nathan

Back to top
View user's profile Send private message Send e-mail
kolban
PostPosted: Wed Oct 31, 2001 7:13 am Post subject: Reply with quote

Grand Master

Joined: 22 May 2001
Posts: 1072
Location: Fort Worth, TX, USA

I think (hope) this is an easy one. In order to SET the MQMD header information, you need special authorizations. This is because the MQMD contains information such as the sending application name, the name of the userid that sent the message and so on. If "just anyone" could set that information then a malicious user could inject messages into the system (for example ... move account funds) that would be indistinguishable from real messages.

It looks like the userid that the APPLICATION is running as does NOT have authority to put messages which have been modified at the low level to the queue which is causing the error (COACOD.LISTEN). I think you either need to:

1. Run the program as a user which is a member of the mqm group
2. Explicitly create a new privaleged group, make the user a member of the group and uset setmqaut to add that group to the target queue.
Back to top
View user's profile Send private message
bduncan
PostPosted: Wed Oct 31, 2001 12:06 pm Post subject: Reply with quote

Padawan

Joined: 11 Apr 2001
Posts: 1554
Location: Silicon Valley

Another possibility is that (depending on the API you're using) when you tell the queue manager you want to set the context fields of the message, and you pass in the MQMD structure you have built up, it *may* treat any fields you never set as being "". In other words, while you only want to set the ApplicId field, other fields like ReplyToQMgr name, userid, etc., may be getting left blank because you are overriding the default values that the queue manager would have set by using the set context parameter. You may want to browse the messages you are putting and see if any fields in the MQMD that should be populated are being left blank, and then compare this result to the MQMDs that you get when you comment out the set context parameter...
just a thought, but I'm not sure...


_________________
Brandon Duncan
IBM Certified MQSeries Specialist
MQSeries.net forum moderator
Back to top
View user's profile Send private message Visit poster's website AIM Address
Display posts from previous:
Post new topicReply to topic Page 1 of 1

MQSeries.net Forum IndexIBM MQ API SupportBreakthrough in COD problem but need some Clarification
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.