Thank you very much.
See inline comments.
Guillaume Nodet ha scritto:
There's a difference between persisting a JBI exchange and a JMS message.
Yes I know the difference. Now ( thank to you ) i know how to make JBI
Exchange persistent but not how to make jms message persistent
<amq:persistenceAdapter>
<amq:jdbcPersistenceAdapter dataSource="#derby-ds"/>
</amq:persistenceAdapter>
As you already know i've try this to save the JMS Message, but i don't
find anything
on the activemq tables.
Do you know if is there detailed documentation, or books about ActiveMQ?
I've already see the doc in the site but i need something more detailed.
Thanks
Andrea
ActiveMQ is a JMS broker and persist the message if it has been configured
to do so (this is done when sending the message). For JBI exchange, each
message can have a "persistent" flag (with default values on the
ActivationSpec and on the container). If the flag is true, then the NMR
will select a flow that can handle persistent message: i.e. the jms flow.
The thing is that the JMS flow can also be used for remoting, so that
message won't be persistent by default iirc.
Just try the following:
<smx:container persistent="true" ...>
and all messages will be persistent.
On Nov 26, 2007 9:50 AM, Andrea Zoppello <[EMAIL PROTECTED]> wrote:
Hi Guillaume,
Thanks for the response.
BTW In my previous post i've say something wrong.
If i configure the activemq persistence like:
<amq:persistenceAdapter>
<amq:jdbcPersistenceAdapter dataSource="#derby-ds"/>
</amq:persistenceAdapter>
and then after running some processes, i stop smx and i look to
derby database i don't find any message in the queue.
I think this was enough, but it seems i was missing something.
The solution to register a custom listener enabling the persistence by
setting the property
on the message seems to fit my need, so i think i'll adopt this solution.
Btw, if i really understand well, it seems that i can enable persistence
of only * Lightweigth
Endpoint* is this right?
If i want to persist all messages, which is the right way to configure
persistence on the
broker.
Andrea Zoppello
Guillaume Nodet ha scritto:
On Nov 22, 2007 4:41 PM, Andrea Zoppello <[EMAIL PROTECTED]> wrote:
Hi all,
I'm trying to configure servicemix to use the activemq persistence of
message so i add this:
configuration:
<amq:persistenceAdapter>
<amq:jdbcPersistenceAdapter dataSource="#derby-ds"/>
</amq:persistenceAdapter>
This seems to work.
BTW I've two question:
1) In smx there's a queue for each jbi endpoint. The question is if
i've
a sa composed of three
endpoint Ep1->Ep2->Ep3 it's possible to make persistent only the
message
of the queue related to EP1 ?
Persistence is defined on a per message level, but it's kinda hard to
configure.
The NMR will check if persistence is enabled at three different levels:
on
the message by looking for a given property on the exchange (
org.apache.servicemix.persistent), on the endpoint by looking at the
corresponding activationSpec (so it does not really fit well with non
lightweight components) and on the broker. I suppose the way you could
change that is by registering a listener on the container, filter the
exchanges you want and put the property on it.
2) I try the configuration with mysql database and smx 3.1.2 but this
is
not working. I set the log level
to debug and it seems that smx is blocked trying to aquire a lock on
the
database. This cause smx not to start.
Any suggestion about this.
You should try with the default ActiveMQ distribution and / or ask on
the
activemq user list.
Andrea Zoppello