Details
-
Bug
-
Status: Resolved
-
Blocker
-
Resolution: Fixed
-
3.2
-
None
-
Windows XP
-
Patch Available
Description
When the "transactionnal" BC JMS receives a JBI exchange with status ERROR, it deletes it from the queue instead of replays it !
BC JMS Config :
----------------------
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:jms="http://servicemix.apache.org/jms/1.0"
xmlns:amq="http://activemq.org/config/1.0"
xmlns:janus="http://www.etnic.be/janus">
<jms:consumer service="janus:ServiceJmsIn" endpoint="endpoint"
targetService="janus:ServicePipeline" targetEndpoint="endpoint"
destinationName="queue/TEST_REJOUER"
connectionFactory="#connectionFactory" synchronous="true"
concurrentConsumers="8" listenerType="default"
transacted="xa" cacheLevel="3" />
<amqpool:xa-pool xmlns:amqpool="http://jencks.org/amqpool/2.0"
id="connectionFactory"
brokerURL="tcp://localhost:51616?jms.redeliveryPolicy.useExponentialBackOff=true&jms.redeliveryPolicy.maximumRedeliveries=3&wireFormat.maxInactivityDuration=0"
transactionManager="#transactionManager" maxConnections="8" />
<bean id="transactionManager"
class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName"
value="javax.transaction.TransactionManager" />
</bean>
</beans>
Exception :
---------------
10:14:49,233 | ERROR | DefaultMessageListenerContainer-1 | MessageListenerContainer | stractMessageListenerContainer 929 | Execution of JMS message listener failed
javax.jms.JMSException: Error sending JBI exchange
at org.apache.servicemix.jms.endpoints.AbstractConsumerEndpoint.onMessage(AbstractConsumerEndpoint.java:388)
at org.apache.servicemix.jms.endpoints.JmsConsumerEndpoint$1.onMessage(JmsConsumerEndpoint.java:387)
at org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:833)
at org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:794)
at org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:767)
at org.springframework.jms.listener.DefaultMessageListenerContainer.doReceiveAndExecute(DefaultMessageListenerContainer.java:531)
at org.springframework.jms.listener.DefaultMessageListenerContainer.receiveAndExecute(DefaultMessageListenerContainer.java:459)
at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:889)
at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:842)
at org.springframework.core.task.SimpleAsyncTaskExecutor$ConcurrencyThrottlingRunnable.run(SimpleAsyncTaskExecutor.java:203)
at java.lang.Thread.run(Thread.java:595)
Caused by: org.apache.servicemix.jbi.FaultException: <?xml version="1.0" encoding="UTF-8"?><janusRequest xmlns="http://www.etnic.be/janus">
<content>
<blabla>coucou</blabla>
</content>
</janusRequest>
at org.apache.servicemix.eip.patterns.Pipeline.processAsync(Pipeline.java:353)
at org.apache.servicemix.eip.EIPEndpoint.process(EIPEndpoint.java:160)
at org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:489)
at org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:463)
at org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46)
at org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:595)
at org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:174)
at org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:176)
at org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665)
at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)
... 1 more