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 » Why is MQC.MQMF-SEGMENTATION_ALLOWED not working?

Post new topic  Reply to topic
 Why is MQC.MQMF-SEGMENTATION_ALLOWED not working? « View previous topic :: View next topic » 
Author Message
mqrules
PostPosted: Mon Oct 09, 2006 10:37 am    Post subject: Why is MQC.MQMF-SEGMENTATION_ALLOWED not working? Reply with quote

Centurion

Joined: 01 Jun 2005
Posts: 100
Location: US

Hi all,

App on Windows (havinf MQClient 5.3... CSD11) is trying to put a message to the queue on the qmgr, which is on Solaris (5.3... CSD .

We created an SVRCONN (maxmsglength=4MB) channel for this particular app. We asked the develper to set the MQSERVER env variable on the app Windows machine. He is aware that he cannot send more than 4MB msgs (a limitation of using MQSERVER). We don't want to give him a channel table (company policy... maxmsglenght on all xmitq's, channels and qmgrs are set to 4MB which the management does not want to change) So, he is using MQC.MQMF_SEGMENTATION_ALLOWED as part of the MQPUT options in his .Net C# program. He tried the samething (i.e. segmentation) in his Java program and he still got the MQRC_DATA_LENGTH_ERROR. Any ideas, Please?

mr
Back to top
View user's profile Send private message
mqrules
PostPosted: Mon Oct 09, 2006 10:40 am    Post subject: Reply with quote

Centurion

Joined: 01 Jun 2005
Posts: 100
Location: US

Again : Windows MQClient: 5.3 CSD 11, Solaris is 5.3 CSD 8...
Back to top
View user's profile Send private message
mqrules
PostPosted: Mon Oct 09, 2006 10:47 am    Post subject: Reply with quote

Centurion

Joined: 01 Jun 2005
Posts: 100
Location: US

Here is the code in the C# program:

mqMsg = new MQMessage();
mqMsg.Format = MQC.MQFMT_NONE; //MQC.MQFMT_STRING;
mqMsg.MessageFlags = MQC.MQMF_SEGMENTATION_ALLOWED;
mqMsg.ApplicationIdData = destination;
mqMsg.ApplicationOriginData = originator;
Back to top
View user's profile Send private message
mqrules
PostPosted: Mon Oct 09, 2006 1:59 pm    Post subject: Reply with quote

Centurion

Joined: 01 Jun 2005
Posts: 100
Location: US

Noone could tell me why the segmentation is not working although it is coded properly by the program? Any help would be much appreciated!!!
Back to top
View user's profile Send private message
Nigelg
PostPosted: Tue Oct 10, 2006 12:35 am    Post subject: Reply with quote

Grand Master

Joined: 02 Aug 2004
Posts: 1046

You do not actually say what length msg the app is trying to put.

If it is less than 4Mb, then the msg will be put in its entirety.
If it more than 4Mb, the channel will reject the msg. Segmentation is only done when the msg is put to the queue, not when it is passed over the channel. The client channel is rejecting the msg.

See this in the Messages manual:

Quote:
2010 (X'07DA')MQRC_DATA_LENGTH_ERROR
Explanation:
...
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.


The msg would be segmented if the app was run as a server app rather than as a client app.
_________________
MQSeries.net helps those who help themselves..
Back to top
View user's profile Send private message
mqrules
PostPosted: Tue Oct 10, 2006 4:52 am    Post subject: Reply with quote

Centurion

Joined: 01 Jun 2005
Posts: 100
Location: US

nogelg,

Quote:
You do not actually say what length msg the app is trying to put.



App is trying to put a Binary 8 M message (Format is MQFMT_NONE)

Quote:

If it more than 4Mb, the channel will reject the msg. Segmentation is only done when the msg is put to the queue, not when it is passed over the channel. The client channel is rejecting the msg


Really? I did not know that the segmentation is done only on the queue. WHere does it say? Is it really the client channel rejecting message? The msg will be put on a remtoe q, and the xmitq is defined with maxmsglenght=4M also as well as the SDR/RCVR channels and the qmgrs...

I tought the message will be segmented into smaller chunks to go thru the client channel and get reassabled on the queue --but then I would have to increase the xmitq and qmgr maxmsglength to at least 8 M for the whole message to be put on it, I think.

I have read the manual on segmentation over and over and over again. I am still not 100% sure how it works. If I don't want to change qmgr/xmitq/channel maxmsglength as I said before (my hands are tied). So, should the app use "Application Segmentation" as opposed to "Qmgr Segmentation" or Grouping? Please... please... I need help.

Thanks. mr
Back to top
View user's profile Send private message
Nigelg
PostPosted: Tue Oct 10, 2006 6:05 am    Post subject: Reply with quote

Grand Master

Joined: 02 Aug 2004
Posts: 1046

Please see the explanation of the reason code above, about the client channel.

Your ONLY option is to change the MAXMSGL of the channel by:
either
Using a CLNTCONN channel
or
MQCONNX with an MQCD object, varying the MAXMSGL

Don't whine, you have had help. Here is the quote from the manual that should have told you that the segmentation is done on the queue.

Quote:
Segmentation flags: When a message is too big for a queue, an attempt to put the message on the queue usually fails. Segmentation is a technique whereby the queue manager or application splits the message into smaller pieces called segments, and places each segment on the queue as a separate physical message.

_________________
MQSeries.net helps those who help themselves..
Back to top
View user's profile Send private message
mqrules
PostPosted: Tue Oct 10, 2006 7:23 am    Post subject: Reply with quote

Centurion

Joined: 01 Jun 2005
Posts: 100
Location: US

Thanks Nigelg. I am not whining .. I am just under so much pressure -- multitasking .... thanks again.
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 » Why is MQC.MQMF-SEGMENTATION_ALLOWED not working?
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.