You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@servicemix.apache.org by Sandhu <ka...@gmail.com> on 2006/04/05 10:27:35 UTC

Durable Subscription in SM

I have a need for multiple endpoints for a message
and think the subscription model fits in somewhat.
: http://servicemix.org/Publish+Subscribe+Routing

But can somebody clarify if durable is supported and
how to example how configure(am using Spring) -
1. Will only work for InOnly messages?
2. What about InOut - any way to send same message to multiple
    components or need to create different messages.

Thanks
-Sandhu

Re: Durable Subscription in SM

Posted by Guillaume Nodet <gn...@gmail.com>.
Maybe something like a WireTap could solve your problem.
See http://www.enterpriseintegrationpatterns.com/WireTap.html

This can be easily implemented in a single component for all meps, but
the message sent as a duplicate will have to be an in-only mep,
because no one will use the output.  Though we could still use an
in-out if needed and discard the answer.

We need more components like this one that implements EAI patterns.

Cheers,
Guillaume Nodet

On 4/5/06, Sandhu <ka...@gmail.com> wrote:
> My useCase does not affect the other target just need an ack it is done.
>
> I could use the InOnly Ack for getting the done status but the problem
> is the original message going to target 1 ( thru destinationService)
> *has* to be a InOut message.- so looks like pub-sub is out :-(
>
> So looks like chainedComponent is the only way - this too creates new
> InOut Exchanges along the way - and the final done will have to wait for
> all of these to return - correct?
>
>
> I wanted the database stuff not to delay the first target jobs - and
> this first target invocation is an InOut exch.
> - any efficient way for this.
>
> Could you also give some idea about the overhead of creating a new InOut
> if volume is hundreds/sec.
>
> Thanks for any help
> Sandhu
>
> Guillaume Nodet wrote:
> > Just a question: what will the ack from the second target be used for ?
> > If a fault or an error is returned by one of the two target endpoints,
> > will this affect the other one ?
> > Btw, the In-Only message exchange pattern has a ack (DONE status)
> > which has to be send by the provider back to the consumer.
> >
> > Cheers,
> > Guillaume Nodet
> >
> > On 4/5/06, Sandhu <ka...@gmail.com> wrote:
> >
> >>Thanks for reply Guillaume,
> >>
> >>I need to send a message to two targets -
> >>
> >>1.One target will do further jobs and reply result.
> >>2.Second target will save some objects to DB (after retrieving other
> >>objects using message).-*and* reply some cnfm to producer.
> >>
> >>I would prefer parallel paths rather than chained - for performance
> >>reasons ( maybe many(hundreds?) of messages per sec)
> >>
> >>I guess Durable Topic kind of model would do- need to atleast cnfm ack -
> >>is something possible in SM without creating two messages for above.
> >>
> >>Pls advise any ideas you have.
> >>
> >>-Sandhu
> >>
> >>Guillaume Nodet wrote:
> >>
> >>>When using publish / subscribe, the same QoS is used as for other exchanges.
> >>>It can only works with In-Only.  I do not really understand the
> >>>usecase for In-Out exchanges, as the responses would be lost.  Such
> >>>routers can be easily written, take a look at
> >>>http://svn.apache.org/repos/asf/incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/components/util/ChainedComponent.java
> >>>which is a component that receives an In-Out exchange, sends the
> >>>exchange to multiple components (the target component receives the
> >>>output of the previous component).
> >>>A recipient list router (static or dynamic) could be writte if needed
> >>>(see http://www.enterpriseintegrationpatterns.com/RecipientList.html).
> >>>What kind of routing you want to achieve ?
> >>>
> >>>Cheers,
> >>>Guillaume Nodet
> >>>
> >>>On 4/5/06, Sandhu <ka...@gmail.com> wrote:
> >>>
> >>>
> >>>>I have a need for multiple endpoints for a message
> >>>>and think the subscription model fits in somewhat.
> >>>>: http://servicemix.org/Publish+Subscribe+Routing
> >>>>
> >>>>But can somebody clarify if durable is supported and
> >>>>how to example how configure(am using Spring) -
> >>>>1. Will only work for InOnly messages?
> >>>>2. What about InOut - any way to send same message to multiple
> >>>>   components or need to create different messages.
> >>>>
> >>>>Thanks
> >>>>-Sandhu
> >>>>
> >>>
> >>>
> >>
> >
>
>

Re: Durable Subscription in SM

Posted by Sandhu <ka...@gmail.com>.
My useCase does not affect the other target just need an ack it is done.

I could use the InOnly Ack for getting the done status but the problem
is the original message going to target 1 ( thru destinationService)
*has* to be a InOut message.- so looks like pub-sub is out :-(

So looks like chainedComponent is the only way - this too creates new
InOut Exchanges along the way - and the final done will have to wait for
all of these to return - correct?


I wanted the database stuff not to delay the first target jobs - and 
this first target invocation is an InOut exch.
- any efficient way for this.

Could you also give some idea about the overhead of creating a new InOut
if volume is hundreds/sec.

Thanks for any help
Sandhu

Guillaume Nodet wrote:
> Just a question: what will the ack from the second target be used for ?
> If a fault or an error is returned by one of the two target endpoints,
> will this affect the other one ?
> Btw, the In-Only message exchange pattern has a ack (DONE status)
> which has to be send by the provider back to the consumer.
> 
> Cheers,
> Guillaume Nodet
> 
> On 4/5/06, Sandhu <ka...@gmail.com> wrote:
> 
>>Thanks for reply Guillaume,
>>
>>I need to send a message to two targets -
>>
>>1.One target will do further jobs and reply result.
>>2.Second target will save some objects to DB (after retrieving other
>>objects using message).-*and* reply some cnfm to producer.
>>
>>I would prefer parallel paths rather than chained - for performance
>>reasons ( maybe many(hundreds?) of messages per sec)
>>
>>I guess Durable Topic kind of model would do- need to atleast cnfm ack -
>>is something possible in SM without creating two messages for above.
>>
>>Pls advise any ideas you have.
>>
>>-Sandhu
>>
>>Guillaume Nodet wrote:
>>
>>>When using publish / subscribe, the same QoS is used as for other exchanges.
>>>It can only works with In-Only.  I do not really understand the
>>>usecase for In-Out exchanges, as the responses would be lost.  Such
>>>routers can be easily written, take a look at
>>>http://svn.apache.org/repos/asf/incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/components/util/ChainedComponent.java
>>>which is a component that receives an In-Out exchange, sends the
>>>exchange to multiple components (the target component receives the
>>>output of the previous component).
>>>A recipient list router (static or dynamic) could be writte if needed
>>>(see http://www.enterpriseintegrationpatterns.com/RecipientList.html).
>>>What kind of routing you want to achieve ?
>>>
>>>Cheers,
>>>Guillaume Nodet
>>>
>>>On 4/5/06, Sandhu <ka...@gmail.com> wrote:
>>>
>>>
>>>>I have a need for multiple endpoints for a message
>>>>and think the subscription model fits in somewhat.
>>>>: http://servicemix.org/Publish+Subscribe+Routing
>>>>
>>>>But can somebody clarify if durable is supported and
>>>>how to example how configure(am using Spring) -
>>>>1. Will only work for InOnly messages?
>>>>2. What about InOut - any way to send same message to multiple
>>>>   components or need to create different messages.
>>>>
>>>>Thanks
>>>>-Sandhu
>>>>
>>>
>>>
>>
> 


Re: Durable Subscription in SM

Posted by Guillaume Nodet <gn...@gmail.com>.
Just a question: what will the ack from the second target be used for ?
If a fault or an error is returned by one of the two target endpoints,
will this affect the other one ?
Btw, the In-Only message exchange pattern has a ack (DONE status)
which has to be send by the provider back to the consumer.

Cheers,
Guillaume Nodet

On 4/5/06, Sandhu <ka...@gmail.com> wrote:
> Thanks for reply Guillaume,
>
> I need to send a message to two targets -
>
> 1.One target will do further jobs and reply result.
> 2.Second target will save some objects to DB (after retrieving other
> objects using message).-*and* reply some cnfm to producer.
>
> I would prefer parallel paths rather than chained - for performance
> reasons ( maybe many(hundreds?) of messages per sec)
>
> I guess Durable Topic kind of model would do- need to atleast cnfm ack -
> is something possible in SM without creating two messages for above.
>
> Pls advise any ideas you have.
>
> -Sandhu
>
> Guillaume Nodet wrote:
> > When using publish / subscribe, the same QoS is used as for other exchanges.
> > It can only works with In-Only.  I do not really understand the
> > usecase for In-Out exchanges, as the responses would be lost.  Such
> > routers can be easily written, take a look at
> > http://svn.apache.org/repos/asf/incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/components/util/ChainedComponent.java
> > which is a component that receives an In-Out exchange, sends the
> > exchange to multiple components (the target component receives the
> > output of the previous component).
> > A recipient list router (static or dynamic) could be writte if needed
> > (see http://www.enterpriseintegrationpatterns.com/RecipientList.html).
> > What kind of routing you want to achieve ?
> >
> > Cheers,
> > Guillaume Nodet
> >
> > On 4/5/06, Sandhu <ka...@gmail.com> wrote:
> >
> >>I have a need for multiple endpoints for a message
> >>and think the subscription model fits in somewhat.
> >>: http://servicemix.org/Publish+Subscribe+Routing
> >>
> >>But can somebody clarify if durable is supported and
> >>how to example how configure(am using Spring) -
> >>1. Will only work for InOnly messages?
> >>2. What about InOut - any way to send same message to multiple
> >>    components or need to create different messages.
> >>
> >>Thanks
> >>-Sandhu
> >>
> >
> >
>
>

Re: Durable Subscription in SM

Posted by Sandhu <ka...@gmail.com>.
Thanks for reply Guillaume,

I need to send a message to two targets -

1.One target will do further jobs and reply result.
2.Second target will save some objects to DB (after retrieving other
objects using message).-*and* reply some cnfm to producer.

I would prefer parallel paths rather than chained - for performance 
reasons ( maybe many(hundreds?) of messages per sec)

I guess Durable Topic kind of model would do- need to atleast cnfm ack - 
is something possible in SM without creating two messages for above.

Pls advise any ideas you have.

-Sandhu

Guillaume Nodet wrote:
> When using publish / subscribe, the same QoS is used as for other exchanges.
> It can only works with In-Only.  I do not really understand the
> usecase for In-Out exchanges, as the responses would be lost.  Such
> routers can be easily written, take a look at
> http://svn.apache.org/repos/asf/incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/components/util/ChainedComponent.java
> which is a component that receives an In-Out exchange, sends the
> exchange to multiple components (the target component receives the
> output of the previous component).
> A recipient list router (static or dynamic) could be writte if needed
> (see http://www.enterpriseintegrationpatterns.com/RecipientList.html).
> What kind of routing you want to achieve ?
> 
> Cheers,
> Guillaume Nodet
> 
> On 4/5/06, Sandhu <ka...@gmail.com> wrote:
> 
>>I have a need for multiple endpoints for a message
>>and think the subscription model fits in somewhat.
>>: http://servicemix.org/Publish+Subscribe+Routing
>>
>>But can somebody clarify if durable is supported and
>>how to example how configure(am using Spring) -
>>1. Will only work for InOnly messages?
>>2. What about InOut - any way to send same message to multiple
>>    components or need to create different messages.
>>
>>Thanks
>>-Sandhu
>>
> 
> 


Re: Durable Subscription in SM

Posted by Guillaume Nodet <gn...@gmail.com>.
When using publish / subscribe, the same QoS is used as for other exchanges.
It can only works with In-Only.  I do not really understand the
usecase for In-Out exchanges, as the responses would be lost.  Such
routers can be easily written, take a look at
http://svn.apache.org/repos/asf/incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/components/util/ChainedComponent.java
which is a component that receives an In-Out exchange, sends the
exchange to multiple components (the target component receives the
output of the previous component).
A recipient list router (static or dynamic) could be writte if needed
(see http://www.enterpriseintegrationpatterns.com/RecipientList.html).
What kind of routing you want to achieve ?

Cheers,
Guillaume Nodet

On 4/5/06, Sandhu <ka...@gmail.com> wrote:
> I have a need for multiple endpoints for a message
> and think the subscription model fits in somewhat.
> : http://servicemix.org/Publish+Subscribe+Routing
>
> But can somebody clarify if durable is supported and
> how to example how configure(am using Spring) -
> 1. Will only work for InOnly messages?
> 2. What about InOut - any way to send same message to multiple
>     components or need to create different messages.
>
> Thanks
> -Sandhu
>