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 Discussion » MQRC 2010 on PUT

Post new topic  Reply to topic
 MQRC 2010 on PUT « View previous topic :: View next topic » 
Author Message
Mut1ey
PostPosted: Tue Jan 08, 2008 3:56 am    Post subject: MQRC 2010 on PUT Reply with quote

Acolyte

Joined: 07 Oct 2005
Posts: 74
Location: England

A couple of messages exceeeded the client channel maxmsgl so where thrown back to the (.NET) application with mqrc 2010 (MQRC_DATA_LENGTH_ERROR).

There is a concern that one of those two messages was written to the queue, in truncated form, and however I have tested as close to this scenario as possible, and cannot replicate it. The reason the client think it has worked is that both messages have a "random" application key as part of the message data. This key is subsequently used as a backend database entry lookup. The client see a DB record matching that key, indicating that the message did get through.

There are two reasons why I do not want to believe this. Intuitively the atempt to put will fail completely. Part of backend process is to parse the XML message data. If the message was truncated how can the XML remail well-formed?
Back to top
View user's profile Send private message
jefflowrey
PostPosted: Tue Jan 08, 2008 7:05 am    Post subject: Reply with quote

Grand Poobah

Joined: 16 Oct 2002
Posts: 19981

The message couldn't have been put to the queue.
_________________
I am *not* the model of the modern major general.
Back to top
View user's profile Send private message
Mut1ey
PostPosted: Tue Jan 08, 2008 7:19 am    Post subject: Reply with quote

Acolyte

Joined: 07 Oct 2005
Posts: 74
Location: England

jefflowrey wrote:
The message couldn't have been put to the queue.


Jeff - thanks for the vote of confidence. Can you elaborate on why it could not have been put to the queue?

Also I forgot to mention this is MQ5.3 CSD 11 Windows to AIX.
Back to top
View user's profile Send private message
PeterPotkay
PostPosted: Tue Jan 08, 2008 7:23 am    Post subject: Reply with quote

Poobah

Joined: 15 May 2001
Posts: 7722

Because a 2010 MQRC is always a "2" for the MQCC.

"2" =
Quote:
"The processing of the call did not complete, and the state of the queue manager is normally unchanged; exceptions are specifically noted. Only the CompCode and Reason output parameters have been set; all other parameters are unchanged.

The reason might be a fault in the application program, or it might be a result of some situation external to the program, for example the application's authority might have been revoked. The Reason parameter gives additional information."

http://publib.boulder.ibm.com/infocenter/wmqv6/v6r0/topic/com.ibm.mq.csqsao.doc/csq0519.htm?resultof=%22%32%30%31%30%22%20

There is no exception noted for MQRC 2010, so nothing was changed at the Queue Manager.
_________________
Peter Potkay
Keep Calm and MQ On
Back to top
View user's profile Send private message
PeterPotkay
PostPosted: Tue Jan 08, 2008 7:25 am    Post subject: Reply with quote

Poobah

Joined: 15 May 2001
Posts: 7722

Either your "random" key is not that random, the client is not giving you all the details, or you have discovered a bug in MQ where 2010 allows a message thru. I doubt there is a 2010 bug.
_________________
Peter Potkay
Keep Calm and MQ On
Back to top
View user's profile Send private message
Vitor
PostPosted: Tue Jan 08, 2008 7:29 am    Post subject: Reply with quote

Grand High Poobah

Joined: 11 Nov 2005
Posts: 26093
Location: Texas, USA

Mut1ey wrote:
Can you elaborate on why it could not have been put to the queue?


Because the put call returned a fatal 2010 error?

Or are you seeing the error someplace other than your application?
_________________
Honesty is the best policy.
Insanity is the best defence.
Back to top
View user's profile Send private message
Mut1ey
PostPosted: Wed Jan 09, 2008 2:55 am    Post subject: Reply with quote

Acolyte

Joined: 07 Oct 2005
Posts: 74
Location: England

PeterPotkay wrote:
Because a 2010 MQRC is always a "2" for the MQCC.

"2" =
Quote:
"The processing of the call did not complete, and the state of the queue manager is normally unchanged; exceptions are specifically noted. Only the CompCode and Reason output parameters have been set; all other parameters are unchanged.

The reason might be a fault in the application program, or it might be a result of some situation external to the program, for example the application's authority might have been revoked. The Reason parameter gives additional information."

http://publib.boulder.ibm.com/infocenter/wmqv6/v6r0/topic/com.ibm.mq.csqsao.doc/csq0519.htm?resultof=%22%32%30%31%30%22%20

There is no exception noted for MQRC 2010, so nothing was changed at the Queue Manager.


Looking at the manual it states:

2010 (X'07DA')MQRC_DATA_LENGTH_ERROR
Explanation:
The DataLength parameter is not valid. Either the parameter pointer is not valid, or it points to read-only storage. (It is not always possible to detect parameter pointers that are not valid; if not detected, unpredictable results occur.)

This reason can also be returned to an MQ client program on the MQGET, MQPUT, or MQPUT1 call, if the BufferLength parameter exceeds the maximum message size that was negotiated for the client channel.

Completion Code:
MQCC_FAILED

Programmer Response:
Correct the parameter.

If the error occurs for an MQ client program, also check that the maximum message size for the channel is big enough to accommodate the message being sent; if it is not big enough, increase the maximum message size for the channel.
-------
What concerns me is the explanation section: "(It is not always possible to detect parameter pointers that are not valid; if not detected, unpredictable results occur.)" Does this imply that actually a message may have been written?
Back to top
View user's profile Send private message
Vitor
PostPosted: Wed Jan 09, 2008 3:02 am    Post subject: Reply with quote

Grand High Poobah

Joined: 11 Nov 2005
Posts: 26093
Location: Texas, USA

Mut1ey wrote:
Does this imply that actually a message may have been written?


I would say not, because a client connection is syncronous so if the client call fails with a 2010 (or other fatal error) nothing has actually happened.

IMHO the explaination is a bit of IBM catch-all - translates as "if your code has done something whacky with the pointers we may do something whacky as well". I'm reminded of a phrase commonly seen in old mainframe manuals when talking about various invalid opperations or calls - "The results of this are undefined". Accepted translation was "Something bad will happen but we're damned if we know what. Accept you're doomed and exit."

I'd still be surprised if the "something whacky" included firing random bits of message down the connection.

With luck a passing IBMer will offer a more definative insight.
_________________
Honesty is the best policy.
Insanity is the best defence.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » General Discussion » MQRC 2010 on PUT
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.