Author |
Message
|
kash3338 |
Posted: Tue Apr 17, 2012 10:39 pm Post subject: Message Size in WMB |
|
|
Shaman
Joined: 08 Feb 2009 Posts: 709 Location: Chennai, India
|
Hi,
I just need to know what is the maximum message a message flow can handle? I have a message with size upto 15MB, is it possible to process this message without doing any other configuration? I tried doing it and dont see the messages getting processed. The flow just hangs. I have increased the Queue Size to handle this size.
MB Version: 6.1
MQ Version: 7.0 |
|
Back to top |
|
 |
mqsiuser |
Posted: Tue Apr 17, 2012 10:45 pm Post subject: Re: Message Size in WMB |
|
|
 Yatiri
Joined: 15 Apr 2008 Posts: 637 Location: Germany
|
kash3338 wrote: |
The flow just hangs. |
Reduce your flow to MQInput -> ESQL -> MQOutput
ESQL-CODE: "SET OutputRoot = InputRoot; RETURN TRUE;"
and nothing else !
Does the message get processed then ? I guess: YES (if not for you, then you need to try harder )
Increase/Decrease the message size and tell us where you find a limit.
Thank you  _________________ Just use REFERENCEs |
|
Back to top |
|
 |
Esa |
Posted: Tue Apr 17, 2012 10:51 pm Post subject: |
|
|
 Grand Master
Joined: 22 May 2008 Posts: 1387 Location: Finland
|
There is no precise limit of message size in Message Broker. It depends on how much memory your machine has, among other things. Max message size in MQ is a little over 100 MB, but you can process larger messages than that in MB, if you use MQ segmentation or compressed messages.
Increasing queue size just increases the amount of messages that can reside in the queue simultaneously. Increasing the queue message size (default is 4 MB, max is 100 MB) helps you to send larger messages, but it does not affect Message Brokers ability to process messages.
If your flow hangs with 15 MB messages, it is because of bad flow design. |
|
Back to top |
|
 |
kash3338 |
Posted: Tue Apr 17, 2012 11:01 pm Post subject: |
|
|
Shaman
Joined: 08 Feb 2009 Posts: 709 Location: Chennai, India
|
Thanks for your elaborate responses.
I ment I increaed the Message Size in MQ and not the Queue Size. May be I was not clear on that.
The flow design is just simple one,
MQInput --> Invoke Subflow to Log Entry EVent --> Compute Node (Just copy the message to Output) --> Invoke Subflow to Log Exit EVent --> MQOutput.
I dont think its a Bad design and its pretty simple. When I try to debug, it does not even get triggered when I drop a Message of 15MB. |
|
Back to top |
|
 |
Esa |
Posted: Wed Apr 18, 2012 12:43 am Post subject: |
|
|
 Grand Master
Joined: 22 May 2008 Posts: 1387 Location: Finland
|
kash3338 wrote: |
The flow design is just simple one,
MQInput --> Invoke Subflow to Log Entry EVent --> Compute Node (Just copy the message to Output) --> Invoke Subflow to Log Exit EVent --> MQOutput.
I dont think its a Bad design and its pretty simple. |
Even that simple flow can copy the message several times. In the case of large messages each unnecessary copy has a huge effect on performance. It seems the flow does not transform the message or message headers at all. My guess is that if you check the flow and the subflows, you will find out that the message gets copied from InputRoot to OutputRoot at least three times - each of them unnecessary.
That kind of a simple flow should not hang. Have you checked the backout count of the first message in the queue? You should have an exception handler capturing and logging exceptions.
kash3338 wrote: |
When I try to debug, it does not even get triggered when I drop a Message of 15MB. |
In practice it is not possible to debug large messages, because whole parsed message will be transferred from the broker to the toolkit for each step in the debugger. Usually you just get a timeout if if try. Try user trace instead. |
|
Back to top |
|
 |
mqsiuser |
Posted: Wed Apr 18, 2012 12:57 am Post subject: |
|
|
 Yatiri
Joined: 15 Apr 2008 Posts: 637 Location: Germany
|
Esa wrote: |
Try user trace instead. |
Wouldn't a user trace create relativly large trace files (with large messages).
I am usually detaching the debugger to having nothing that might interfer (with my code).
Then I test based on input and output msgs (only)... works great on my laptop.
For coding, debugging use small messages & the debugger... when you are finished start putting large messages through (blindly).
This is just the way it works for me. _________________ Just use REFERENCEs |
|
Back to top |
|
 |
Esa |
Posted: Wed Apr 18, 2012 1:07 am Post subject: |
|
|
 Grand Master
Joined: 22 May 2008 Posts: 1387 Location: Finland
|
mqsiuser wrote: |
Esa wrote: |
Try user trace instead. |
Wouldn't a user trace create relativly large trace files (with large messages).
|
Yes. Especially if the flow hangs with a loop.
On the other hand, if the flow repeatedly crashes the execution group, you wont see anything of value in the trace file, except that something is repeatedly missing. |
|
Back to top |
|
 |
kimbert |
Posted: Wed Apr 18, 2012 1:23 am Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
Quote: |
For coding, debugging use small messages & the debugger... when you are finished start putting large messages through (blindly).
This is just the way it works for me. |
Nothing wrong with that, if it works for you. User trace contains a lot more information than the debugger can give you, but a lot less information than a service trace. Sometimes ( especially when debugging a message parsing/writing problem ) it is the only way to find out what you need to know. |
|
Back to top |
|
 |
|