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 » maxmsgl in Queue manager

Post new topic  Reply to topic
 maxmsgl in Queue manager « View previous topic :: View next topic » 
Author Message
Sukideman
PostPosted: Thu Mar 01, 2007 11:36 pm    Post subject: maxmsgl in Queue manager Reply with quote

Newbie

Joined: 26 Sep 2006
Posts: 8
Location: Melbourne

Got a question regarding the maxmsgl set at the Queue Manager Level.

Version of MQ is 6.0.1.0 on Solaris 10

The scenario I have is the following:

1. Set the mamxmsgl at the queue level to 100 MB (local queue)

2. Left the Queue Manager maxmsgl to 4 MB

3. Putting a message to a local queue in excess of 4MB (that is 4.2 meg) succeeds.

My question is when does maxmsgl at the Queue Manager level comes into play (used).

1. Is it at the time bindings (through) channels to remote queue managers
(distributed queue managers / clustered queue managers). When channels maxmsgl is set to 0 or there is a inconsistency between message lengths between queue managers or there is an inconsistency between channel maxmsgl and Queue Manager maxmsgl
2. Messages being written MQ logs.
3. When remote queues are defined.
Back to top
View user's profile Send private message
jsware
PostPosted: Fri Mar 02, 2007 12:18 am    Post subject: Reply with quote

Chevalier

Joined: 17 May 2001
Posts: 455

Check out http://publib.boulder.ibm.com/infocenter/wmqv6/v6r0/topic/com.ibm.mq.csqzaj.doc/sc10620_.htm

It says:

Quote:
MAXMSGL(integer)
The maximum length of messages allowed on queues for this queue manager.
This is in the range 32 KB through 100 MB. The default is 4 MB (4 194 304 bytes).

You can use any queue as a shared queue for storing long messages, if its MAXMSGL attribute is set to a value greater than 63 KB. The CFLEVEL parameter of an associated coupling facility structure does not impose any restrictions.

If you reduce the maximum message length for the queue manager, you must also reduce the maximum message length of the SYSTEM.DEFAULT.LOCAL.QUEUE definition, and all other queues connected to the queue manager. This ensures that the queue manager’s limit is not less than that of any of the queues associated with it. If you do not do this, and applications inquire only the value of the queue’s MAXMSGL, they might not work correctly.

This parameter is valid only on AIX, HP OpenVMS, HP-UX, Linux, i5/OS, Solaris, and Windows.


Your maxmsgl is capped at the smaller of the qlocal & qmgr definition. qremote definitions do not have a maxmsgl attribute - its fixed by the underlying xmitq definition. Channels also have a maxmsgl attribute which can stop a channel processing messages if this is smaller than the maxmsgl of the xmitq.
_________________
Regards
John
The pain of low quaility far outlasts the joy of low price.
Back to top
View user's profile Send private message
Sukideman
PostPosted: Sat Mar 03, 2007 9:49 pm    Post subject: Reply with quote

Newbie

Joined: 26 Sep 2006
Posts: 8
Location: Melbourne

G'day Scott,

Quote:
Your maxmsgl is capped at the smaller of the qlocal & qmgr definition

How do you reconcile the fact that i had the qmgr maxmsgl set to 4 meg and the ql to 100 mb and I could put messages in excess of 4 meg.
Is it true that MQPUTs only checks the ql maxmsgl rather than the queue managers maxmsgl.

I thought that the queue managers maxmsgl played an important role on channels and logs. The channels when the maxmsgl for channel is set to 0 or when there is a difference between qmgrs maxmsgl.

confused..
Back to top
View user's profile Send private message
jsware
PostPosted: Mon Mar 05, 2007 2:25 pm    Post subject: Reply with quote

Chevalier

Joined: 17 May 2001
Posts: 455

Just tried on WMQ 6. Queue @ 4MB, qmgr @ 32K. Tried to put file 11000K onto queue. It failed with MQRC 2031:

IBM Manual wrote:
2031 (X'07EF')MQRC_MSG_TOO_BIG_FOR_Q_MGR
Explanation:
An MQPUT or MQPUT1 call was issued to put a message on a queue, but the message was too long for the queue manager and MQMF_SEGMENTATION_ALLOWED was not specified in the MsgFlags field in MQMD. If segmentation is not allowed, the length of the message cannot exceed the lesser of the queue-manager MaxMsgLength attribute and queue MaxMsgLength attribute.

This reason code can also occur when MQMF_SEGMENTATION_ALLOWED is specified, but the nature of the data present in the message prevents the queue manager splitting it into segments that are small enough for the queue-manager limit:

For a user-defined format, the smallest segment that the queue manager can create is 16 bytes.
For a built-in format, the smallest segment that the queue manager can create depends on the particular format, but is greater than 16 bytes in all cases other than MQFMT_STRING (for MQFMT_STRING the minimum segment size is 16 bytes).
MQRC_MSG_TOO_BIG_FOR_Q_MGR can also occur in the Feedback field in the message descriptor of a report message; in this case it indicates that the error was encountered by a message channel agent when it attempted to put the message on a remote queue.

This reason also occurs if a channel, through which the message is to pass, has restricted the maximum message length to a value that is actually less than that supported by the queue manager, and the message length is greater than this value.

On z/OS, this return code is issued only if you are using CICS for distributed queuing. Otherwise, MQRC_MSG_TOO_BIG_FOR_CHANNEL is issued.
Completion Code:
MQCC_FAILED

Programmer Response:
Check whether the BufferLength parameter is specified correctly; if it is, do one of the following:

Increase the value of the queue-manager's MaxMsgLength attribute; the queue's MaxMsgLength attribute may also need increasing.
Break the message into several smaller messages.
Specify MQMF_SEGMENTATION_ALLOWED in the MsgFlags field in MQMD; this will allow the queue manager to break the message into segments.
Check the channel definitions.
Check your settings etc.
_________________
Regards
John
The pain of low quaility far outlasts the joy of low price.
Back to top
View user's profile Send private message
Sukideman
PostPosted: Mon Mar 05, 2007 3:39 pm    Post subject: Reply with quote

Newbie

Joined: 26 Sep 2006
Posts: 8
Location: Melbourne

G'day Scottj2512,

In the test you conducted, that is what i would have expected. The point I am trying to make here is the following:

1. my local queue (ql) maxmsgl was set to 100000000 (bytes) that is approx 100 meg.

2. my queue manager's maxmsgl was set to 4194304 (4 meg)

3. We are using the SAP adapter to process messages from the SAP system . It uses JMS. When a message after conversion from IDOC to XML, which is in excess of 4 meg, to be more precise 4427048 bytes, was successfully put to the queue (the local queue that is).

4. My question is that there is an obvious conflict between the maxmsgl set at the queue manager level and at the queue level (4 Meg as oppsoed to 100 meg), however a message greater than 4 meg was still possibly added to the local queue.

I have a different scenario, where the local queue was a remote queue, and the qmanager maxmsgl was still 4 meg in the local queue manager as well as the remote queue manager. The queues were however still 100000000 (100 meg) on both queue managers. The XMIT queue was 100000000 and so was the channel. However this time the SAP Adapter gave a problem - message could not be delivered.

As you mention, it is definitely a question of looking at my configuration and making the necessary adjustments - which i will do ultimately.. but i just wanted to get my head around the maxmsgl for qm and queues issue and also the reason why have maxmsgl at queue levels when it will be impacted by the queue manager maxmsgl.
Back to top
View user's profile Send private message
HubertKleinmanns
PostPosted: Tue Mar 06, 2007 2:02 am    Post subject: Reply with quote

Shaman

Joined: 24 Feb 2004
Posts: 732
Location: Germany

Sukideman,

the QMgr's attribute defines an upper limit of whatever a message may have. You are able, to reduce this attributs on channel and queue level, but not, to increase it.

When sending and receiving end of a channel have different values, the channel will choose the smaller on.

When the value of the channel (choosen as described above) is smaller, than the value of the XmitQ, bigger messages cannot transported over the channel.

If the target queue has a value, which is smaller than the choosen value of the channel, bigger messages will be put to the DLQ (if this has a larger value, and the QMgr too) or the channel will stop.

So it is like a chain: The weakest link defines the strength of the whole chain.
_________________
Regards
Hubert
Back to top
View user's profile Send private message Visit poster's website
jsware
PostPosted: Tue Mar 06, 2007 6:10 am    Post subject: Reply with quote

Chevalier

Joined: 17 May 2001
Posts: 455

Sukideman wrote:
I have a different scenario, where the local queue was a remote queue, and the qmanager maxmsgl was still 4 meg in the local queue manager as well as the remote queue manager.

It might be worth displaying your QLOCAL, QREMOTE, XMITQ, channel and qmgr definitions, specifically arround the MAXMSGLEN attribute and posting the output for review because.

Unless I have mis-understood what you are saying, when the queue is a QLOCAL, it works fine, but when you put to a QREMOTE, your SAP adapter fails saying it was unable to put to the queue.

Now both of these would put to a local queue by the SAP adapter - bear with me - for a QLOCAL, the message gets put to the QLOCAL. With a QREMOTE, the message actually gets put to a QLOCAL which is the XMITQ to the other qmgr. At this point your SAP Adapter's put should complete successfully because the message has been handed off to MQ.
_________________
Regards
John
The pain of low quaility far outlasts the joy of low price.
Back to top
View user's profile Send private message
Sukideman
PostPosted: Tue Mar 13, 2007 11:20 pm    Post subject: Reply with quote

Newbie

Joined: 26 Sep 2006
Posts: 8
Location: Melbourne

Hi,

Sorry about the lateness in getting back - my system is kaput. As soon as i get everything built again , and get the SAP system connected via the SAP adapter, I will endevour to provide the details.

I will set the Qmgr maxlength to 4 meg and local queue to 100 meg and try receiving a message greater than 4 meg into the queue via the SAP adapter. Stay Tuned.


regards

Sukideman
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Wed Mar 14, 2007 2:29 am    Post subject: Reply with quote

Grand High Poobah

Joined: 18 Nov 2003
Posts: 20756
Location: LI,NY

If you're having an Idoc greater than 4 MB are you handling multiple transactions in 1 Idoc?

Don't do that. Each transaction should have it's own Idoc/message

Enjoy
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
Sukideman
PostPosted: Wed May 09, 2007 6:23 am    Post subject: Reply with quote

Newbie

Joined: 26 Sep 2006
Posts: 8
Location: Melbourne

Hello again,

Sorry for the lateness.. yes you guys were right the queue manager maxmsgl sets the upper limit of what can be put to a queue.
So essentially when i tried again after rebuilding the queue manager, putting an IDOC size greater than the queue manager maxmsgl - it gave an error. When I adjusted the queue manager maxmsgl (to a larger length) and rebounced the SAP adapter it worked.

Thanks for your help...
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 IBM MQ Support » maxmsgl in Queue manager
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.