You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@servicemix.apache.org by Andrea Zoppello <zo...@tiscali.it> on 2007/11/22 16:41:27 UTC
Some question about queue persistence.
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 ?
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.
Andrea Zoppello
Re: Some question about queue persistence.
Posted by Guillaume Nodet <gn...@gmail.com>.
On Nov 26, 2007 10:22 AM, Andrea Zoppello <zo...@tiscali.it> wrote:
> 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
Well, if the JBI exchange is flagged as persistent, it will go through the
JMS flow which will create a persistent JMS message.
>
>
> <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.
I would try searching the activemq web site using the google search box, or
looking at the forums.
>
>
> 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 <zo...@tiscali.it> 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 <zo...@tiscali.it> 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
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>
> >>>
> >>
> >
> >
> >
>
>
--
Cheers,
Guillaume Nodet
------------------------
Blog: http://gnodet.blogspot.com/
Re: Some question about queue persistence.
Posted by Andrea Zoppello <zo...@tiscali.it>.
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 <zo...@tiscali.it> 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 <zo...@tiscali.it> 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
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>
>
>
>
Re: Some question about queue persistence.
Posted by Guillaume Nodet <gn...@gmail.com>.
There's a difference between persisting a JBI exchange and a JMS message.
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 <zo...@tiscali.it> 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 <zo...@tiscali.it> 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
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >
> >
> >
>
>
--
Cheers,
Guillaume Nodet
------------------------
Blog: http://gnodet.blogspot.com/
Re: Some question about queue persistence.
Posted by Andrea Zoppello <zo...@tiscali.it>.
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 <zo...@tiscali.it> 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
>>
>>
>>
>>
>>
>>
>>
>
>
>
Re: Some question about queue persistence.
Posted by Guillaume Nodet <gn...@gmail.com>.
On Nov 22, 2007 4:41 PM, Andrea Zoppello <zo...@tiscali.it> 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
>
>
>
>
>
>
--
Cheers,
Guillaume Nodet
------------------------
Blog: http://gnodet.blogspot.com/