You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@servicemix.apache.org by "Sloan, John L (John)" <js...@avaya.com> on 2006/04/24 22:23:40 UTC

SEDA vs. JMS flows and persistence of exchanges versus normalized messages

I've been playing around with changing the activemq.xml
config file to turn persistence on and off. Can someone
point me towards a web page that discusses how and when
to exploit persistence and how I can expect it to
behave?

Specific questions:

Do you have to use JMS flows to get persistence? Seems like
I have restarted the system while running an application
with an activemq.xml config'ed for persistence but using
SEDA flow and I noticed my service component getting "old"
normalized messages (NM) after I bought my service back up
but before I started up my client. But this seems contrary to
how I think SEDA works, so it's possible I'm confused. (I've
also played with JMS flows, so my memory may be suspect.)

What exactly is persistent? I'm guessing that only NMs bound
from a CONSUMER to a PROVIDER may persist, but once the Message
Exchange (ME) is accepted by the PROVIDER, all persistence is
up to the PROVIDER. (I.e. if the system crashes after delivery
of the NM to the PROVIDER, it is the PROVIDER's responsibility
to recover the accepted ME.) It's not clear to me how NMs that
are replies to a request flowing from the PROVIDER to the CONSUMER
can persist since the original ME created by the CONSUMER will
be lost.

I figure this is all written down somewhere... T H A N K S !

--
John Sloan           |  email jsloan@avaya.com
Avaya Inc.           |  voice  +1 303 538 2746
1300 West 120th Ave. | office           B1-C46
Westminster CO 80234-2701 USA 


Re: SEDA vs. JMS flows and persistence of exchanges versus normalized messages

Posted by Bruce Snyder <br...@gmail.com>.
On 4/24/06, Sloan, John L (John) <js...@avaya.com> wrote:
>
> I've been playing around with changing the activemq.xml
> config file to turn persistence on and off. Can someone
> point me towards a web page that discusses how and when
> to exploit persistence and how I can expect it to
> behave?
>
> Specific questions:
>
> Do you have to use JMS flows to get persistence? Seems like
> I have restarted the system while running an application
> with an activemq.xml config'ed for persistence but using
> SEDA flow and I noticed my service component getting "old"
> normalized messages (NM) after I bought my service back up
> but before I started up my client. But this seems contrary to
> how I think SEDA works, so it's possible I'm confused. (I've
> also played with JMS flows, so my memory may be suspect.)

Yes, the JMS flow is required for message persistence. Using SEDA will
only persist messages in memory.

> What exactly is persistent? I'm guessing that only NMs bound
> from a CONSUMER to a PROVIDER may persist, but once the Message
> Exchange (ME) is accepted by the PROVIDER, all persistence is
> up to the PROVIDER. (I.e. if the system crashes after delivery
> of the NM to the PROVIDER, it is the PROVIDER's responsibility
> to recover the accepted ME.) It's not clear to me how NMs that
> are replies to a request flowing from the PROVIDER to the CONSUMER
> can persist since the original ME created by the CONSUMER will
> be lost.

IIRC, the entire message exchange is persisted and this takes place
for each message that is sent. Granted, message persistence must be
explicitly configured in the ActiveMQ configuration.

Bruce
--
perl -e 'print unpack("u30","D0G)U8V4\@4VYY9&5R\"F)R=6-E+G-N>61E<D\!G;6%I;\"YC;VT*"
);'

Apache Geronimo - http://geronimo.apache.org/
Apache ActiveMQ - http://incubator.apache.org/activemq/
Apache ServiceMix - http://incubator.apache.org/servicemix/
Castor - http://castor.org/

Re: SEDA vs. JMS flows and persistence of exchanges versus normalized messages

Posted by Guillaume Nodet <gn...@gmail.com>.
FYI, the only way to ensure that no messages can be lost is to use a
transaction.
On the provider side, the transaction could span the delivery of the
exchange containing the request and the send of the response...
In any other case, there may be a time during which the message has
been consumed, but not processed.

Cheers,
Guillaume Nodet

On 4/24/06, Sloan, John L (John) <js...@avaya.com> wrote:
> ...
> What exactly is persistent? I'm guessing that only NMs bound
> from a CONSUMER to a PROVIDER may persist, but once the Message
> Exchange (ME) is accepted by the PROVIDER, all persistence is
> up to the PROVIDER. (I.e. if the system crashes after delivery
> of the NM to the PROVIDER, it is the PROVIDER's responsibility
> to recover the accepted ME.) It's not clear to me how NMs that
> are replies to a request flowing from the PROVIDER to the CONSUMER
> can persist since the original ME created by the CONSUMER will
> be lost.
>