Remove the parallelProcessing as transactions should generally occur in the same thread.
On Thu, Apr 26, 2012 at 3:56 PM, javaxmlsoapdev <javaxmlsoap...@yahoo.com> wrote: > Thanks all for taking time in responding. However it still doesn't work for > me. May some stupid mistake? Any other ideas? > > here is how my route definition looks like in Java DSL > > @Component > public class CustomRouter extends SpringRouteBuilder{ > @Autowired > private CustomQProcessor customQProcessor; > > public void configure() { > String sourceQName =""; > try { > sourceQName = > getContext().resolvePropertyPlaceholders("{{sourceQ.name}}"); > } catch (Exception e) { > > e.printStackTrace(); > } > from(sourceQName) > .transacted() > .process(customQProcessor) > .recipientList(header("recepientList")).parallelProcessing(); > } > } > > config is as below. > > <broker:broker id="broker" useJmx="false" persistent="true" > brokerName="localhost"> > <broker:transportConnectors> > <broker:transportConnector uri="vm://localhost:61616"/> > </broker:transportConnectors> > </broker:broker> > > <bean id="jmsTransactionManager" > class="org.springframework.jms.connection.JmsTransactionManager"> > <property name="connectionFactory" ref="pooledConnectionFactory"/> > </bean> > <bean id="jmsConnectionFactory" > class="org.apache.activemq.ActiveMQConnectionFactory" depends-on="broker"> > <property name="brokerURL" value="vm://localhost:61616" /> > </bean> > <bean id="pooledConnectionFactory" > class="org.apache.activemq.pool.PooledConnectionFactory"> > <property name="maxConnections" value="5" /> > <property name="connectionFactory" ref="jmsConnectionFactory" > /> > </bean> > > <bean id="jmsConfig" > class="org.apache.camel.component.jms.JmsConfiguration"> > <property name="connectionFactory" > ref="pooledConnectionFactory" /> > <property name="transacted" value="true" /> > </bean> > > <bean id="activemq" > class="org.apache.activemq.camel.component.ActiveMQComponent"> > <property name="brokerURL" value="vm://localhost:61616"/> > </bean> > > > Following is a test case which fails > > Endpoint sourceQendPoint = sourceQueue.getDefaultEndpoint(); > RouteBuilder rb = new RouteBuilder(){ > public void configure() throws Exception{ > > interceptSendToEndpoint("activemq:queue:destiQueue1") > .throwException(new > JMSException("Cannot publish to destiQueue1")); > } > }; > RouteDefinition eventRoute = > camelContext.getRouteDefinition("route1"); > eventRoute.adviceWith((ModelCamelContext)camelContext, rb); > > template.sendBody(sourceQendPoint,"Test message"); > Thread.sleep(3000); > Object body = > consumer.receiveBodyNoWait("activemq:queue:ActiveMQ.DLQ"); > assertNotNull("should not lose message",body); > > -- > View this message in context: > http://camel.465427.n5.nabble.com/Transacted-test-case-with-ActiveMQ-not-working-tp5666012p5667684.html > Sent from the Camel - Users mailing list archive at Nabble.com. -- Claus Ibsen ----------------- CamelOne 2012 Conference, May 15-16, 2012: http://camelone.com FuseSource Email: cib...@fusesource.com Web: http://fusesource.com Twitter: davsclaus, fusenews Blog: http://davsclaus.blogspot.com/ Author of Camel in Action: http://www.manning.com/ibsen/