Since adding JMS transaction support to our camel / activemq routes I've noticed a lot of "transport interrupted" and "transport resumed" log messages being outputted from our application. Is this change in behavior to be expected? Does the JMS connection handling change once a TransactionManager has been introduced? Are the ActiveMQ connections or sessions dropped and reopened periodically, or after a period of inactivity?
The application itself appears to work fine; the JMS messages are still processed successfully and when a transaction is rolled back then the message isn't lost. However we have a monitoring system monitoring the application's log files, in particular for any connection errors between the application and the activemq broker. This leads to a lot of alarms being raised. Im using Camel Version: 2.10.0, ActiveMQ: 5.5.1 and Spring: 3.1.0 Thanks in advance for any help. Below is the spring / activemq configuration we're using: <bean id="activemqtx" class="org.apache.activemq.camel.component.ActiveMQComponent"> <property name="configuration" ref="txJmsConfiguration"/> <property name="transactionManager" ref="jmsTransactionManager"/> </bean> <bean id="activemq" class="org.apache.activemq.camel.component.ActiveMQComponent"> <property name="configuration" ref="ntxJmsConfiguration"/> </bean> <bean id="amqPooledConnectionFactory" class="org.apache.activemq.pool.PooledConnectionFactory" destroy-method="stop"> <property name="maxConnections" value="5"/> <property name="connectionFactory" ref="amqConnectionFactory"/> </bean> <bean id="amqConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory"> <property name="brokerURL" value="${activemq.brokerURL}"/> <property name="userName" value="${activemq.username}"/> <property name="password" value="${activemq.password}"/> <property name="exceptionListener" ref="jmsExceptionListener"/> <property name="transportListener" ref="jmsTransportListener"/> <property name="redeliveryPolicy" ref="redeliveryPolicy"/> </bean> <bean id="jmsExceptionListener" class="..JmsExceptionListener"/> <bean id="jmsTransportListener" class=".JmsTransportListener"/> <bean id="redeliveryPolicy" class="org.apache.activemq.RedeliveryPolicy"> <property name="backOffMultiplier" value="2"/> <property name="collisionAvoidancePercent" value="15"/> <property name="initialRedeliveryDelay" value="5000"/> <property name="maximumRedeliveries" value="2"/> <property name="useCollisionAvoidance" value="false"/> <property name="maximumRedeliveryDelay" value="5000"/> <property name="redeliveryDelay" value="5000"/> <property name="useExponentialBackOff" value="false"/> </bean> <bean id="abstractJmsConfiguration" abstract="true" class="org.apache.camel.component.jms.JmsConfiguration"> <property name="connectionFactory" ref="amqPooledConnectionFactory"/> <property name="exceptionListener" ref="jmsExceptionListener"/> </bean> <bean id="txJmsConfiguration" parent="abstractJmsConfiguration" class="org.apache.camel.component.jms.JmsConfiguration"> <property name="transacted" value="true"/> <property name="cacheLevelName" value="CACHE_CONSUMER"/> <property name="transactionTimeout" value="60000"/> </bean> <bean id="ntxJmsConfiguration" parent="abstractJmsConfiguration" class="org.apache.camel.component.jms.JmsConfiguration"> <property name="transacted" value="false"/> </bean> <bean id="jmsTransactionManager" class="org.springframework.jms.connection.JmsTransactionManager"> <property name="connectionFactory" ref="amqPooledConnectionFactory"/> </bean> <bean id="PROPAGATION_REQUIRED" class="org.apache.camel.spring.spi.SpringTransactionPolicy"> <property name="transactionManager" ref="jmsTransactionManager"/> </bean> <bean id="PROPAGATION_REQUIRES_NEW" class="org.apache.camel.spring.spi.SpringTransactionPolicy"> <property name="transactionManager" ref="jmsTransactionManager"/> <property name="propagationBehaviorName" value="PROPAGATION_REQUIRES_NEW"/> </bean> <bean id="jmsTransaction" class="org.apache.camel.spring.spi.SpringTransactionPolicy"> <property name="transactionTemplate" ref="jmsTransactionTemplate"/> </bean> <bean id="jmsTransactionTemplate" class="org.springframework.transaction.support.TransactionTemplate"> <property name="transactionManager" ref="jmsTransactionManager"/> <property name="timeout" value="60"/> </bean> -- View this message in context: http://camel.465427.n5.nabble.com/JMS-Transactions-with-ActiveMQ-tp5717528.html Sent from the Camel - Users mailing list archive at Nabble.com.