Author |
Message
|
Ravee Bhat |
Posted: Thu Sep 04, 2008 3:22 am Post subject: designing message flows |
|
|
Apprentice
Joined: 28 Apr 2004 Posts: 28 Location: Bangalore, INDIA
|
Hi All
I have a message flow where the MQOut is having the property DestinationList is set and am providing the queue names in the Compute node. My assumption is that if one of the outgoing queues specified, starts throwing errors (e.g. the outgoing channel is stopped and the xmit queue is full to the depth), it will affect the messages flowing into rest of the outgoing queues defined as well.
What's the better design to avoid this?
or is my understanding incorrect?!
thanks in advance
Ravee _________________ Lets go see The World. |
|
Back to top |
|
 |
Gaya3 |
Posted: Thu Sep 04, 2008 3:59 am Post subject: |
|
|
 Jedi
Joined: 12 Sep 2006 Posts: 2493 Location: Boston, US
|
how good it will be if you dont use destination list.
where there are options to use try, and throw nodes to redirects the error.
i prefer to this solution than that of using destination list and use propagate terminal command to push the message to output queues. _________________ Regards
Gayathri
-----------------------------------------------
Do Something Before you Die |
|
Back to top |
|
 |
zpat |
Posted: Thu Sep 04, 2008 4:43 am Post subject: |
|
|
 Jedi Council
Joined: 19 May 2001 Posts: 5866 Location: UK
|
Xmit queues should be sized to hold all the messages needed for a reasonable outage of the channel.
You could just route the message to multiple MQoutput nodes to keep things easier to maintain.
The extra overhead of multiple MQPUTs is unlikely to be an issue unless you are looking at millions of messages a day.
Destination lists are more useful in non-broker applications where it's hard work to code it all. |
|
Back to top |
|
 |
AkankshA |
Posted: Thu Sep 04, 2008 10:20 pm Post subject: Re: designing message flows |
|
|
 Grand Master
Joined: 12 Jan 2006 Posts: 1494 Location: Singapore
|
Ravee Bhat wrote: |
Hi All
I have a message flow where the MQOut is having the property DestinationList is set and am providing the queue names in the Compute node. My assumption is that if one of the outgoing queues specified, starts throwing errors (e.g. the outgoing channel is stopped and the xmit queue is full to the depth), it will affect the messages flowing into rest of the outgoing queues defined as well.
What's the better design to avoid this?
or is my understanding incorrect?!
thanks in advance
Ravee |
yes
you are absolutely correct
if one queue throws error all the messages would be rolled back..
use try catch node before MQOutput node to commit the message and take care of the message which is thrown back.. _________________ Cheers |
|
Back to top |
|
 |
Ravee Bhat |
Posted: Fri Sep 05, 2008 4:04 am Post subject: |
|
|
Apprentice
Joined: 28 Apr 2004 Posts: 28 Location: Bangalore, INDIA
|
Quote: |
how good it will be if you dont use destination list. |
Topic based pub/sub better perhaps!!
Quote: |
The extra overhead of multiple MQPUTs is unlikely to be an issue unless you are looking at millions of messages a day. |
Should not be a problem I believe, as of now we are only dealing with around 70k messages max. And this is not likely to increase any drastic way!
Yes, routing to multiple MQOut nodes seems to be a better approach than a single Compute node deciding where all the message should flow to. This way I feel the exception handling can even be fine grained on individual output basis.
Thanks so much
cheers
Ravee
ps:
Quote: |
Destination lists are more useful in non-broker applications where it's hard work to code it all. |
zpat, frankly i did not understand what do you mean by non-broker applications. Could you please throw some light there? _________________ Lets go see The World. |
|
Back to top |
|
 |
zpat |
Posted: Fri Sep 05, 2008 4:25 am Post subject: |
|
|
 Jedi Council
Joined: 19 May 2001 Posts: 5866 Location: UK
|
By non-broker I just mean when using the MQI from a standard application and having to code the MQPUTs by hand. |
|
Back to top |
|
 |
AkankshA |
Posted: Fri Sep 05, 2008 5:43 am Post subject: |
|
|
 Grand Master
Joined: 12 Jan 2006 Posts: 1494 Location: Singapore
|
Ravee Bhat
hold on..
why are you creating multiple output nodes in a flow.. that would make your flow look awefully bad...
if i understood correctly You simply want to put same message to multiple queues and do not want to rollback the entire transaction in case message could not be put on some specific queue .... is that correct??
Use a TryCatch node before MQOutput... This way any message that could not be put to a specified queue qould come to catch terminal and you can write the code to handle that and processing for rest of messages would go smoothly.. _________________ Cheers |
|
Back to top |
|
 |
Ravee Bhat |
Posted: Mon Sep 08, 2008 2:09 am Post subject: |
|
|
Apprentice
Joined: 28 Apr 2004 Posts: 28 Location: Bangalore, INDIA
|
Thanks for the clarification zpat.
AkankshA, yes it does look bad. Then again its one of the ways flow can be wired. right? I mean if one has multiple labels to route to (not exactly the requirement in my query!)
And yes, You got that correct. I do not want the entire set t fail 'cos of one exception prone o/p path. Having a try/catch seems a lot more cleaner implementation.
Will this behave different if the messages are not bound by a transaction?
thanks,
Ravee _________________ Lets go see The World. |
|
Back to top |
|
 |
sridhsri |
Posted: Mon Sep 08, 2008 4:47 am Post subject: |
|
|
Master
Joined: 19 Jun 2008 Posts: 297
|
I am not sure how a try-catch will alleviate your worries about a all or nothing transaction. In my opinion you could try one of the following
1) A FOR/WHILE loop in compute with propagate. A MQOutout with transaction set to "no".
2) Continue to use MQDestination with MQOutput's transaction set to "no". |
|
Back to top |
|
 |
Gaya3 |
Posted: Mon Sep 08, 2008 8:17 pm Post subject: |
|
|
 Jedi
Joined: 12 Sep 2006 Posts: 2493 Location: Boston, US
|
sridhsri wrote: |
I am not sure how a try-catch will alleviate your worries about a all or nothing transaction. In my opinion you could try one of the following
1) A FOR/WHILE loop in compute with propagate. A MQOutout with transaction set to "no".
2) Continue to use MQDestination with MQOutput's transaction set to "no". |
dont make it pretty complex,
it will be great if you to try Try-Catch first, this functions will _________________ Regards
Gayathri
-----------------------------------------------
Do Something Before you Die |
|
Back to top |
|
 |
AkankshA |
Posted: Mon Sep 08, 2008 8:21 pm Post subject: |
|
|
 Grand Master
Joined: 12 Jan 2006 Posts: 1494 Location: Singapore
|
sridhsri wrote: |
I am not sure how a try-catch will alleviate your worries about a all or nothing transaction. In my opinion you could try one of the following
|
hey Sridhsri
its not a all or nothing scenerio which is desired
all or nothing is which is happening by default and Ravee wants to get rid of that _________________ Cheers |
|
Back to top |
|
 |
Ravee Bhat |
Posted: Tue Sep 09, 2008 12:36 am Post subject: |
|
|
Apprentice
Joined: 28 Apr 2004 Posts: 28 Location: Bangalore, INDIA
|
Thats right AkankshA.
Sridhsri , The situation I am dealing with is the one where a failure on one o/p path must not troble the rest of the o/p defined.
I guess I will settle down to using the try-catch
thanks
Ravee _________________ Lets go see The World. |
|
Back to top |
|
 |
AkankshA |
Posted: Tue Sep 09, 2008 1:04 am Post subject: |
|
|
 Grand Master
Joined: 12 Jan 2006 Posts: 1494 Location: Singapore
|
good..
2 years back i had done enough reserach on this with MB v5 and we too opted try catch ... _________________ Cheers |
|
Back to top |
|
 |
Ravee Bhat |
Posted: Tue Sep 09, 2008 1:42 am Post subject: |
|
|
Apprentice
Joined: 28 Apr 2004 Posts: 28 Location: Bangalore, INDIA
|
ah ok!
Quote: |
2 years back i had done enough reserach on this with MB v5 ... |
Do you think anything has changed with the newer versions of WMB?
thanks
Ravee _________________ Lets go see The World. |
|
Back to top |
|
 |
AkankshA |
Posted: Tue Sep 09, 2008 2:06 am Post subject: |
|
|
 Grand Master
Joined: 12 Jan 2006 Posts: 1494 Location: Singapore
|
Ravee Bhat wrote: |
ah ok!
Quote: |
2 years back i had done enough reserach on this with MB v5 ... |
Do you think anything has changed with the newer versions of WMB?
thanks
Ravee |
Many things changed but not for this context...
we still use try catch for such a feature if desired _________________ Cheers |
|
Back to top |
|
 |
|