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.bug...@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 <aka...@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&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: cib...@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/