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 » IBM MQ API Support » 2033 when using MQGMO_COMPLETE_MSG

Post new topic  Reply to topic Goto page 1, 2  Next
 2033 when using MQGMO_COMPLETE_MSG « View previous topic :: View next topic » 
Author Message
hdjur
PostPosted: Tue May 23, 2006 12:53 am    Post subject: 2033 when using MQGMO_COMPLETE_MSG Reply with quote

Centurion

Joined: 16 Sep 2004
Posts: 116
Location: Zagreb

Hi everyone!

I have specified this options MQGMO_WAIT+MQGMO_COMPLETE_MSG,
and I'm receiving 2033. I want qmgr to make reassembling of segmented messages. Putting application has limit of 30k for the buffer, so it has to segment messages and it does so:
PMO.Options = MQPMO_LOGICAL_ORDER | MQPMO_SYNCPOINT

MQPUT MD.MsgFlags = MQMF_SEGMENT
MQPUT MD.MsgFlags = MQMF_SEGMENT
. . .
MQPUT MD.MsgFlags = MQMF_SEGMENT
MQPUT MD.MsgFlags = MQMF_LAST_SEGMENT

MQCMIT

If I copy all messages to another queue, I can get them all, without 2033.
If I add MQGMO_LOGICAL_ORDER to get message options, it does not help.
What am I missing? Thanks in advance!
Back to top
View user's profile Send private message
jefflowrey
PostPosted: Tue May 23, 2006 4:37 am    Post subject: Reply with quote

Grand Poobah

Joined: 16 Oct 2002
Posts: 19981

How are yo copying the messages to another queue?

What is different about the messages when they are on the other queue?

What is different about the other queue from the first queue?

What options does the sending program specify?

What does the documentation say about getting a 2033 when trying to unsegment messages?
_________________
I am *not* the model of the modern major general.
Back to top
View user's profile Send private message
hdjur
PostPosted: Tue May 23, 2006 5:48 am    Post subject: Reply with quote

Centurion

Joined: 16 Sep 2004
Posts: 116
Location: Zagreb

Quote:
What does the documentation say about getting a 2033 when trying to unsegment messages?

All segments must be available before the logical message may be
received. The reason code MQRC_NO_MSG_AVAILABLE (2033) is returned
on the MQGET if all segments comprising the composite logical message
are not available.
All messages must be available before the logical message may be
received. The reason code MQRC_NO_MSG_AVAILABLE (2033) is
returned on the MQGET if one or more of the segments are missing
Quote:
What options does the sending program specify?

MQPMO_LOGICAL_ORDER | MQPMO_SYNCPOINT

Fact is that nothing is different about the other queue, and when I copy all messages before I try to get any of them, I receive 2033. I don't receive 2033 when I try to get them before I copy them all. I know that is somewhat different from what I said before, but that is more accurate, and that is something that I realized after my first post.
Back to top
View user's profile Send private message
jefflowrey
PostPosted: Tue May 23, 2006 5:51 am    Post subject: Reply with quote

Grand Poobah

Joined: 16 Oct 2002
Posts: 19981

So, then, it's likely that the copy process is not managing the headers correctly, and causing them not to match what they should be.
_________________
I am *not* the model of the modern major general.
Back to top
View user's profile Send private message
hdjur
PostPosted: Tue May 23, 2006 5:51 am    Post subject: Reply with quote

Centurion

Joined: 16 Sep 2004
Posts: 116
Location: Zagreb

another thing specified in putting application:
MQMD_VERSION_2
Back to top
View user's profile Send private message
jefflowrey
PostPosted: Tue May 23, 2006 5:58 am    Post subject: Reply with quote

Grand Poobah

Joined: 16 Oct 2002
Posts: 19981

use amqsbcg to dump out the contents of the queue before you copy the messages.

Use amqsbcg to dump out the contents of the other queue after you copy the messages.

Compare the two results.
_________________
I am *not* the model of the modern major general.
Back to top
View user's profile Send private message
hdjur
PostPosted: Tue May 23, 2006 6:01 am    Post subject: Reply with quote

Centurion

Joined: 16 Sep 2004
Posts: 116
Location: Zagreb

Do you mean something regarding ccsid, MQMD_VERSION on getting messages, ... ? I have problem before I copy messages, too. I copied them in the first place, because I suspected something was wrong with the original queue, but it was not.
Back to top
View user's profile Send private message
wschutz
PostPosted: Tue May 23, 2006 6:12 am    Post subject: Reply with quote

Jedi Knight

Joined: 02 Jun 2005
Posts: 3316
Location: IBM (retired)

So, which is it?
Quote:
If I copy all messages to another queue, I can get them all, without 2033.
Quote:
when I copy all messages before I try to get any of them, I receive 2033. I don't receive 2033 when I try to get them before I copy them all.
Quote:
I have problem before I copy messages, too.

_________________
-wayne
Back to top
View user's profile Send private message Send e-mail AIM Address
hdjur
PostPosted: Tue May 23, 2006 6:15 am    Post subject: Reply with quote

Centurion

Joined: 16 Sep 2004
Posts: 116
Location: Zagreb

Jeff, I don't think my problem is in copying messages.

What does that mean:

The MD version does not travel with the message. The version of the
MD on return from MQGET is dependent on the version of the MD on
input of the MQGET. If a Version 1 MD is supplied on the MQGET, the
MD2 specific fields are packaged in an MD extension (MDE) and
prepended to the data.

Shall I set MD version to 2 in receiving application?
Back to top
View user's profile Send private message
hdjur
PostPosted: Tue May 23, 2006 6:20 am    Post subject: Reply with quote

Centurion

Joined: 16 Sep 2004
Posts: 116
Location: Zagreb

Quote:
So, which is it?


Again, I would not copy messages at all, if I had no problem to get them from the original queue. When I copy all messages before I try to get any of them, I receive 2033. I don't receive 2033 when I try to get them before I copy them all.
Back to top
View user's profile Send private message
jefflowrey
PostPosted: Tue May 23, 2006 6:26 am    Post subject: Reply with quote

Grand Poobah

Joined: 16 Oct 2002
Posts: 19981

hdjur wrote:
I don't receive 2033 when I try to get them before I copy them all.


So what problem do you get when you try to get them before you copy them, if not a 2033?

The problem you've been asking about is "After I copy these messages, then I get a 2033 - why is that?".

But it seems like your real question is "I have some undiagnosed problem with segmented messages - how do I solve it?"

And we can't help with that until you diagnose it better, or at least describe some actual symptoms - rather than symptoms of a different problem caused by whatever tool you are using to copy the messages in an attempt to diagnose the original problem.

Use AMQSBCG to dump out the original messages on the original queue. This is a browse program, it will leave the messages unchanged on the queue.

Then show us what problem you get when you first try to get these segmented messages.
_________________
I am *not* the model of the modern major general.
Back to top
View user's profile Send private message
hdjur
PostPosted: Tue May 23, 2006 6:50 am    Post subject: Reply with quote

Centurion

Joined: 16 Sep 2004
Posts: 116
Location: Zagreb

O.K. If you suggest so, it must be that I was unclear in describing my problem.
As I said, I receive 2033 when I try to get messages from the original
queue, because "I have some undiagnosed problem with segmented messages".
If the copying process finishes (and I use mo71 for that purpose) before I try to get messages from ANOTHER queue, than I get 2033 while getting from ANOTHER queue. Otherwise I don't get 2033 while getting from ANOTHER queue. I would be satisfied if I figure out, why do I get 2033 when getting messages from the original queue.
Back to top
View user's profile Send private message
EddieA
PostPosted: Tue May 23, 2006 10:58 am    Post subject: Reply with quote

Jedi

Joined: 28 Jun 2001
Posts: 2453
Location: Los Angeles

Maybe your PUTting code is not setting some other fields correctly, like the GroupID. And so MQ thinks each segment is part of a different message.

Cheers,
_________________
Eddie Atherton
IBM Certified Solution Developer - WebSphere Message Broker V6.1
IBM Certified Solution Developer - WebSphere Message Broker V7.0
Back to top
View user's profile Send private message
jefflowrey
PostPosted: Tue May 23, 2006 11:03 am    Post subject: Reply with quote

Grand Poobah

Joined: 16 Oct 2002
Posts: 19981

Okay, that makes more sense.

You always get a 2033 from the original queue.

You only get a 2033 from the copied queue if you allow M071 to finish copying all messages.

If you start the copy process in m071, and then immediately start your get process, then you get all messages and they unsegment properly and you don't get a 2033?

Is the last message in the segment incorrect somehow?
_________________
I am *not* the model of the modern major general.
Back to top
View user's profile Send private message
EddieA
PostPosted: Tue May 23, 2006 2:28 pm    Post subject: Reply with quote

Jedi

Joined: 28 Jun 2001
Posts: 2453
Location: Los Angeles

Quote:
If you start the copy process in m071, and then immediately start your get process, then you get all messages

But, if the GET specified Complete Message, then the GET wouldn't return anything until they were "all present and correct". It wouldn't return a partial message. And if:
Quote:
Is the last message in the segment incorrect somehow

Then it would fail, no matter at what point in the process the GET was issued.

Cheers,
_________________
Eddie Atherton
IBM Certified Solution Developer - WebSphere Message Broker V6.1
IBM Certified Solution Developer - WebSphere Message Broker V7.0
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Goto page 1, 2  Next Page 1 of 2

MQSeries.net Forum Index » IBM MQ API Support » 2033 when using MQGMO_COMPLETE_MSG
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.