You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by Stanisław Kuś <st...@gmail.com> on 2016/02/11 12:17:41 UTC

ActiveMQ Consuming

Hi folks,

I have a short question :

Is it  possible to consume from 2 different brokers within a single Route
with transactions.

something like  form("activemq1:queue1", "activemq2:queue" )....

Do I need to specify a separate transaction manager pro
ActiveMQConnectionFactory instance or is there a way to have one
(Transaction M.) for both ?

Thanks for answers in advance !

Best,

Stan

Re: ActiveMQ Consuming

Posted by Stanisław Kuś <st...@gmail.com>.
Hi,

I solved it as follows:

1. Each Broker -> One JMSTransactionMager with ConnectionPool.
2. Each Broker -> separated Route
3. Whole construction with SpringTransactionPolicy set in transacted()
4. Routes created & started  at runtime

Best,

Stan

On Sat, Feb 13, 2016 at 5:32 PM, Quinn Stevenson <
quinn@pronoia-solutions.com> wrote:

> It sounds like you’re not using any other endpoints that support
> transactions, so all you should need is the “transacted=true” URI - I don’t
> think you’ll need an external transaction manager.
>
> > On Feb 12, 2016, at 1:09 PM, Stanisław Kuś <st...@gmail.com> wrote:
> >
> > Hi,
> >
> > 1. Each message from each Jms should be processed in a separated
> > transaction and will be passed to a webservice. Additionaly basen on a
> > certain message part a file will be transfered from one ftp to another.
> >
> > 2. For each message independend from which broker it comes a new
> > transaction should be created.
> >
> > Best,
> >
> > Stan
> > 12 lut 2016 5:17 PM "Quinn Stevenson" <qu...@pronoia-solutions.com>
> > napisał(a):
> >
> >> Two questions -
> >>
> >> - What are the other transaction endpoints you’ll be using?
> >> - Will messages from both broker1 and broker2 be involved in the same
> >> transaction?
> >>
> >>
> >>> On Feb 12, 2016, at 1:19 AM, Stanisław Kuś <st...@gmail.com> wrote:
> >>>
> >>> Hi,
> >>>
> >>> thanks for answering. I have two separate servers running ActiveMQ ( my
> >>> datasources ) and a single Camel App that should consume from those 2
> >>> instances in a transactional way.
> >>>
> >>> What I can do is from( broker1:queue:source,
> >>> broker2:queue:source).process(....  . The problem is what transaction
> >>> manager should I use  ? Trying with JTATransactionManager for all of
> them
> >>> or use separated JMSTransactionManager for each server ?
> >>>
> >>> Thanks for anwers,
> >>>
> >>> Best,
> >>>
> >>> Stan
> >>>
> >>> On Thu, Feb 11, 2016 at 5:54 PM, Quinn Stevenson <
> >>> quinn@pronoia-solutions.com> wrote:
> >>>
> >>>> You can always have two “from” clauses and route the exchange to a
> >> direct
> >>>> route for the common processing.
> >>>>
> >>>> from( “activemq1://queue1”).to( “direct://process );
> >>>> from( “activemq2://queue2”).to( “direct://process );
> >>>>
> >>>> from( “direct://process” )…….
> >>>>
> >>>> Can you give a little more detail on what you’re trying to accomplish
> >> with
> >>>> the transaction?
> >>>>
> >>>>> On Feb 11, 2016, at 4:17 AM, Stanisław Kuś <st...@gmail.com>
> wrote:
> >>>>>
> >>>>> Hi folks,
> >>>>>
> >>>>> I have a short question :
> >>>>>
> >>>>> Is it  possible to consume from 2 different brokers within a single
> >> Route
> >>>>> with transactions.
> >>>>>
> >>>>> something like  form("activemq1:queue1", "activemq2:queue" )....
> >>>>>
> >>>>> Do I need to specify a separate transaction manager pro
> >>>>> ActiveMQConnectionFactory instance or is there a way to have one
> >>>>> (Transaction M.) for both ?
> >>>>>
> >>>>> Thanks for answers in advance !
> >>>>>
> >>>>> Best,
> >>>>>
> >>>>> Stan
> >>>>
> >>>>
> >>
> >>
>
>

Re: ActiveMQ Consuming

Posted by Quinn Stevenson <qu...@pronoia-solutions.com>.
It sounds like you’re not using any other endpoints that support transactions, so all you should need is the “transacted=true” URI - I don’t think you’ll need an external transaction manager.

> On Feb 12, 2016, at 1:09 PM, Stanisław Kuś <st...@gmail.com> wrote:
> 
> Hi,
> 
> 1. Each message from each Jms should be processed in a separated
> transaction and will be passed to a webservice. Additionaly basen on a
> certain message part a file will be transfered from one ftp to another.
> 
> 2. For each message independend from which broker it comes a new
> transaction should be created.
> 
> Best,
> 
> Stan
> 12 lut 2016 5:17 PM "Quinn Stevenson" <qu...@pronoia-solutions.com>
> napisał(a):
> 
>> Two questions -
>> 
>> - What are the other transaction endpoints you’ll be using?
>> - Will messages from both broker1 and broker2 be involved in the same
>> transaction?
>> 
>> 
>>> On Feb 12, 2016, at 1:19 AM, Stanisław Kuś <st...@gmail.com> wrote:
>>> 
>>> Hi,
>>> 
>>> thanks for answering. I have two separate servers running ActiveMQ ( my
>>> datasources ) and a single Camel App that should consume from those 2
>>> instances in a transactional way.
>>> 
>>> What I can do is from( broker1:queue:source,
>>> broker2:queue:source).process(....  . The problem is what transaction
>>> manager should I use  ? Trying with JTATransactionManager for all of them
>>> or use separated JMSTransactionManager for each server ?
>>> 
>>> Thanks for anwers,
>>> 
>>> Best,
>>> 
>>> Stan
>>> 
>>> On Thu, Feb 11, 2016 at 5:54 PM, Quinn Stevenson <
>>> quinn@pronoia-solutions.com> wrote:
>>> 
>>>> You can always have two “from” clauses and route the exchange to a
>> direct
>>>> route for the common processing.
>>>> 
>>>> from( “activemq1://queue1”).to( “direct://process );
>>>> from( “activemq2://queue2”).to( “direct://process );
>>>> 
>>>> from( “direct://process” )…….
>>>> 
>>>> Can you give a little more detail on what you’re trying to accomplish
>> with
>>>> the transaction?
>>>> 
>>>>> On Feb 11, 2016, at 4:17 AM, Stanisław Kuś <st...@gmail.com> wrote:
>>>>> 
>>>>> Hi folks,
>>>>> 
>>>>> I have a short question :
>>>>> 
>>>>> Is it  possible to consume from 2 different brokers within a single
>> Route
>>>>> with transactions.
>>>>> 
>>>>> something like  form("activemq1:queue1", "activemq2:queue" )....
>>>>> 
>>>>> Do I need to specify a separate transaction manager pro
>>>>> ActiveMQConnectionFactory instance or is there a way to have one
>>>>> (Transaction M.) for both ?
>>>>> 
>>>>> Thanks for answers in advance !
>>>>> 
>>>>> Best,
>>>>> 
>>>>> Stan
>>>> 
>>>> 
>> 
>> 


Re: ActiveMQ Consuming

Posted by Stanisław Kuś <st...@gmail.com>.
Hi,

1. Each message from each Jms should be processed in a separated
transaction and will be passed to a webservice. Additionaly basen on a
certain message part a file will be transfered from one ftp to another.

2. For each message independend from which broker it comes a new
transaction should be created.

Best,

Stan
12 lut 2016 5:17 PM "Quinn Stevenson" <qu...@pronoia-solutions.com>
napisał(a):

> Two questions -
>
> - What are the other transaction endpoints you’ll be using?
> - Will messages from both broker1 and broker2 be involved in the same
> transaction?
>
>
> > On Feb 12, 2016, at 1:19 AM, Stanisław Kuś <st...@gmail.com> wrote:
> >
> > Hi,
> >
> > thanks for answering. I have two separate servers running ActiveMQ ( my
> > datasources ) and a single Camel App that should consume from those 2
> > instances in a transactional way.
> >
> > What I can do is from( broker1:queue:source,
> > broker2:queue:source).process(....  . The problem is what transaction
> > manager should I use  ? Trying with JTATransactionManager for all of them
> > or use separated JMSTransactionManager for each server ?
> >
> > Thanks for anwers,
> >
> > Best,
> >
> > Stan
> >
> > On Thu, Feb 11, 2016 at 5:54 PM, Quinn Stevenson <
> > quinn@pronoia-solutions.com> wrote:
> >
> >> You can always have two “from” clauses and route the exchange to a
> direct
> >> route for the common processing.
> >>
> >> from( “activemq1://queue1”).to( “direct://process );
> >> from( “activemq2://queue2”).to( “direct://process );
> >>
> >> from( “direct://process” )…….
> >>
> >> Can you give a little more detail on what you’re trying to accomplish
> with
> >> the transaction?
> >>
> >>> On Feb 11, 2016, at 4:17 AM, Stanisław Kuś <st...@gmail.com> wrote:
> >>>
> >>> Hi folks,
> >>>
> >>> I have a short question :
> >>>
> >>> Is it  possible to consume from 2 different brokers within a single
> Route
> >>> with transactions.
> >>>
> >>> something like  form("activemq1:queue1", "activemq2:queue" )....
> >>>
> >>> Do I need to specify a separate transaction manager pro
> >>> ActiveMQConnectionFactory instance or is there a way to have one
> >>> (Transaction M.) for both ?
> >>>
> >>> Thanks for answers in advance !
> >>>
> >>> Best,
> >>>
> >>> Stan
> >>
> >>
>
>

Re: ActiveMQ Consuming

Posted by Quinn Stevenson <qu...@pronoia-solutions.com>.
Two questions -

- What are the other transaction endpoints you’ll be using?
- Will messages from both broker1 and broker2 be involved in the same transaction?


> On Feb 12, 2016, at 1:19 AM, Stanisław Kuś <st...@gmail.com> wrote:
> 
> Hi,
> 
> thanks for answering. I have two separate servers running ActiveMQ ( my
> datasources ) and a single Camel App that should consume from those 2
> instances in a transactional way.
> 
> What I can do is from( broker1:queue:source,
> broker2:queue:source).process(....  . The problem is what transaction
> manager should I use  ? Trying with JTATransactionManager for all of them
> or use separated JMSTransactionManager for each server ?
> 
> Thanks for anwers,
> 
> Best,
> 
> Stan
> 
> On Thu, Feb 11, 2016 at 5:54 PM, Quinn Stevenson <
> quinn@pronoia-solutions.com> wrote:
> 
>> You can always have two “from” clauses and route the exchange to a direct
>> route for the common processing.
>> 
>> from( “activemq1://queue1”).to( “direct://process );
>> from( “activemq2://queue2”).to( “direct://process );
>> 
>> from( “direct://process” )…….
>> 
>> Can you give a little more detail on what you’re trying to accomplish with
>> the transaction?
>> 
>>> On Feb 11, 2016, at 4:17 AM, Stanisław Kuś <st...@gmail.com> wrote:
>>> 
>>> Hi folks,
>>> 
>>> I have a short question :
>>> 
>>> Is it  possible to consume from 2 different brokers within a single Route
>>> with transactions.
>>> 
>>> something like  form("activemq1:queue1", "activemq2:queue" )....
>>> 
>>> Do I need to specify a separate transaction manager pro
>>> ActiveMQConnectionFactory instance or is there a way to have one
>>> (Transaction M.) for both ?
>>> 
>>> Thanks for answers in advance !
>>> 
>>> Best,
>>> 
>>> Stan
>> 
>> 


Re: ActiveMQ Consuming

Posted by Stanisław Kuś <st...@gmail.com>.
Hi,

thanks for answering. I have two separate servers running ActiveMQ ( my
datasources ) and a single Camel App that should consume from those 2
instances in a transactional way.

What I can do is from( broker1:queue:source,
broker2:queue:source).process(....  . The problem is what transaction
manager should I use  ? Trying with JTATransactionManager for all of them
or use separated JMSTransactionManager for each server ?

Thanks for anwers,

Best,

Stan

On Thu, Feb 11, 2016 at 5:54 PM, Quinn Stevenson <
quinn@pronoia-solutions.com> wrote:

> You can always have two “from” clauses and route the exchange to a direct
> route for the common processing.
>
> from( “activemq1://queue1”).to( “direct://process );
> from( “activemq2://queue2”).to( “direct://process );
>
> from( “direct://process” )…….
>
> Can you give a little more detail on what you’re trying to accomplish with
> the transaction?
>
> > On Feb 11, 2016, at 4:17 AM, Stanisław Kuś <st...@gmail.com> wrote:
> >
> > Hi folks,
> >
> > I have a short question :
> >
> > Is it  possible to consume from 2 different brokers within a single Route
> > with transactions.
> >
> > something like  form("activemq1:queue1", "activemq2:queue" )....
> >
> > Do I need to specify a separate transaction manager pro
> > ActiveMQConnectionFactory instance or is there a way to have one
> > (Transaction M.) for both ?
> >
> > Thanks for answers in advance !
> >
> > Best,
> >
> > Stan
>
>

Re: ActiveMQ Consuming

Posted by Quinn Stevenson <qu...@pronoia-solutions.com>.
You can always have two “from” clauses and route the exchange to a direct route for the common processing.

from( “activemq1://queue1”).to( “direct://process );
from( “activemq2://queue2”).to( “direct://process );

from( “direct://process” )…….

Can you give a little more detail on what you’re trying to accomplish with the transaction?

> On Feb 11, 2016, at 4:17 AM, Stanisław Kuś <st...@gmail.com> wrote:
> 
> Hi folks,
> 
> I have a short question :
> 
> Is it  possible to consume from 2 different brokers within a single Route
> with transactions.
> 
> something like  form("activemq1:queue1", "activemq2:queue" )....
> 
> Do I need to specify a separate transaction manager pro
> ActiveMQConnectionFactory instance or is there a way to have one
> (Transaction M.) for both ?
> 
> Thanks for answers in advance !
> 
> Best,
> 
> Stan