camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Claus Ibsen <claus.ib...@gmail.com>
Subject Re: Problem with JMS transaction
Date Tue, 10 May 2011 06:40:06 GMT
Remove this
        <property name="acknowledgementModeName"  value="CLIENT_ACKNOWLEDGE"/>

As when you use transacted=true, it has to use TRANSACTED_ACKNOWLEDGE.
So do not override/change this setting.

2011/5/10 Céline Bugaud <c.bugaud@gmail.com>:
> Hi Ashwin,
>
> I didn't sent my entire spring configuration, but my ActiveMQComponent
> was already linked to the transactionManager :
>
> ----------------------------------------------------
>        <bean id="activemqPersistent"
> class="org.apache.activemq.camel.component.ActiveMQComponent"
>        lazy-init="true">
>            <property name="connectionFactory"
> ref="amqPoolConnectionFactory"/>
>                <property name="transactionManager"       ref="amqTransactionManager"/>
>                <property name="transacted"               value="true"/>
>                <property name="brokerURL"                value="${bo.activemq.brokerurl}"
/>
>                <property name="acknowledgementModeName"  value="CLIENT_ACKNOWLEDGE"/>
>                <property name="maxConcurrentConsumers"   value="10" />
>                <property name="receiveTimeout"           value="3000"/>
>                <property name="maxMessagesPerTask"       value="1"/>
>                <property name="deliveryPersistent"       value="true"/>
>                <property name="usePooledConnection"      value="true"/>
>                <property name="testConnectionOnStartup"  value="true"/>
>        </bean>
> ----------------------------------------------------
>
> However, I tried using two different activeMQComponent, and that
> seemed to solve my problem : I no longer loose messages. The
> transaction does not seem to work well either : I now have duplicate
> messages.
>
> Regards,
>
> --
> Céline
>
> On Mon, May 9, 2011 at 10:43 PM, Ashwin Karpe <akarpe@fusesource.com> wrote:
>> Hi,
>>
>> Sorry about the confusion... You do not need the second connection factory
>> "activemq2". This is an error on my part.
>>
>> The key difference in your setup vs mine is that there is a
>> "transactionManager" property set in my ActiveMQ component and the
>> "transacted" property is set to true . This wires in the transactional
>> capability to the ActiveMQ component.
>>
>> Please see the corrected XML below.
>>
>> Cheers,
>>
>> Ashwin...
>>
>>
>>
>> =======================================
>> ----------------------------------------------------
>> <beans xmlns="http://www.springframework.org/schema/beans"
>>       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>       xmlns:camel="http://camel.apache.org/schema/spring"
>>       xsi:schemaLocation="
>>         http://www.springframework.org/schema/beans
>> http://www.springframework.org/schema/beans/spring-beans.xsd
>>         http://camel.apache.org/schema/spring
>> http://camel.apache.org/schema/spring/camel-spring.xsd">
>>
>>     <camelContext>
>>            <route>
>>                   <from ref="activemq:queue:foo" />
>>                   <transacted ref="required"/>
>>                   <to ref="activemq:topic:bar" />
>>            </route>
>>     </camelContext>
>>
>>    <bean id="jmsConnectionFactory"
>> class="org.apache.activemq.ActiveMQConnectionFactory">
>>        <property name="brokerURL"
>> value="vm://localhost?broker.persistent=false&amp;broker.useJmx=false"/>
>>    </bean>
>>
>>    <bean id="jmsTransactionManager"
>> class="org.springframework.jms.connection.JmsTransactionManager">
>>        <property name="connectionFactory" ref="jmsConnectionFactory"/>
>>    </bean>
>>
>>    <bean id="activemq"
>> class="org.apache.activemq.camel.component.ActiveMQComponent">
>>        <property name="connectionFactory" ref="jmsConnectionFactory"/>
>>        <property name="transacted" value="true"/>
>>        <property name="transactionManager" ref="jmsTransactionManager"/>
>>    </bean>
>>
>>   <bean id="required"
>> class="org.apache.camel.spring.spi.SpringTransactionPolicy">
>>         <property name="transactionManager" ref="amqTransactionManager" />
>>         <property name="propagationBehaviorName"
>> value="PROPAGATION_MANDATORY" />
>>   </bean>
>>
>> </beans>
>>
>



-- 
Claus Ibsen
-----------------
FuseSource
Email: cibsen@fusesource.com
Web: http://fusesource.com
CamelOne 2011: http://fusesource.com/camelone2011/
Twitter: davsclaus
Blog: http://davsclaus.blogspot.com/
Author of Camel in Action: http://www.manning.com/ibsen/

Mime
View raw message