I'm using 4.1-SNAPSHOT and Jencks 1.3. I'll try this again in 4.1
On 12/14/06, James Strachan <[EMAIL PROTECTED]> wrote:
Which version are you using? Have you managed to reproduce this with 4.1? On 12/14/06, Tim Chen <[EMAIL PROTECTED]> wrote: > The follow exception is thrown which kills the MessageListener and leave the > bad message in the queue. > > [junit] 18:22:28,437 DEBUG [org.apache.activemq.ra.ServerSessionImpl :2] > Endpoint failed to process message. > [junit] java.lang.RuntimeException: Endpoint after delivery notification > failure > [junit] at org.apache.activemq.ra.ServerSessionImpl.afterDelivery( > ServerSessionImpl.java:217) > [junit] at org.apache.activemq.ActiveMQSession.run( > ActiveMQSession.java:751) > [junit] at org.apache.activemq.ra.ServerSessionImpl.run( > ServerSessionImpl.java:164) > [junit] at org.apache.geronimo.connector.work.WorkerContext.run( > WorkerContext.java:291) > [junit] at > EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run( > PooledExecutor.java:748) > [junit] at java.lang.Thread.run(Thread.java:595) > [junit] Caused by: javax.resource.ResourceException: commit failed. > [junit] at org.apache.activemq.ra.LocalAndXATransaction.commit( > LocalAndXATransaction.java:59) > [junit] at org.jencks.LocalTransactionEndpoint.afterDelivery( > LocalTransactionEndpoint.java:52) > [junit] at > org.apache.activemq.ra.MessageEndpointProxy$MessageEndpointAlive.afterDelivery > (MessageEndpointProxy.java:125) > [junit] at org.apache.activemq.ra.MessageEndpointProxy.afterDelivery > (MessageEndpointProxy.java:64) > [junit] at org.apache.activemq.ra.ServerSessionImpl.afterDelivery( > ServerSessionImpl.java:215) > [junit] ... 5 more > [junit] Caused by: org.apache.activemq.ConnectionClosedException: The > connection is already closed > [junit] at org.apache.activemq.ActiveMQConnection.syncSendPacket ( > ActiveMQConnection.java:1108) > [junit] at org.apache.activemq.TransactionContext.commit( > TransactionContext.java:259) > [junit] at org.apache.activemq.ra.LocalAndXATransaction.commit( > LocalAndXATransaction.java:57) > [junit] ... 9 more > [junit] 18:22:28,440 INFO [org.apache.activemq.ra.ServerSessionImpl :2] > Endpoint failed to process message. Reason: java.lang.RuntimeException: > Endpoint after delivery notification failure > [junit] 18:22:28,440 DEBUG [org.apache.activemq.ra.ServerSessionImpl :2] > run loop end > [junit] 18:22:28,440 DEBUG [org.apache.activemq.ra.ServerSessionImpl :2] > Endpoint did not release properly: > org.apache.activemq.ra.InvalidMessageEndpointException > [junit] org.apache.activemq.ra.InvalidMessageEndpointException > [junit] at > org.apache.activemq.ra.MessageEndpointProxy$MessageEndpointDead.release( > MessageEndpointProxy.java:156) > [junit] at org.apache.activemq.ra.MessageEndpointProxy.release( > MessageEndpointProxy.java:68) > [junit] at org.apache.activemq.ra.ServerSessionImpl.close( > ServerSessionImpl.java:252) > [junit] at > org.apache.activemq.ra.ServerSessionPoolImpl.removeFromPool( > ServerSessionPoolImpl.java:180) > [junit] at org.apache.activemq.ra.ServerSessionImpl.run( > ServerSessionImpl.java:178) > [junit] at org.apache.geronimo.connector.work.WorkerContext.run( > WorkerContext.java:291) > [junit] at > EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run( > PooledExecutor.java:748) > [junit] at java.lang.Thread.run(Thread.java:595) > [junit] 18:22:28,441 DEBUG [org.apache.activemq.ra.ServerSessionImpl :2] > Run finished > [junit] 18:22:28,441 DEBUG [org.apache.activemq.ra.ServerSessionImpl :2] > Work completed: javax.resource.spi.work.WorkEvent[source=Work > :ServerSessionImpl:2] > [junit] 18:22:28,396 WARN [org.jencks.LocalTransactionEndpoint] Failed > to rollback local transaction: javax.resource.ResourceException: rollback > failed. > [junit] javax.resource.ResourceException: rollback failed. > [junit] at org.apache.activemq.ra.LocalAndXATransaction.rollback ( > LocalAndXATransaction.java:73) > [junit] at org.jencks.LocalTransactionEndpoint.release( > LocalTransactionEndpoint.java:58) > [junit] at > org.apache.activemq.ra.MessageEndpointProxy$MessageEndpointDead.enter( > MessageEndpointProxy.java:140) > [junit] at > org.apache.activemq.ra.MessageEndpointProxy$MessageEndpointState.transition ( > MessageEndpointProxy.java:98) > [junit] at > org.apache.activemq.ra.MessageEndpointProxy$MessageEndpointAlive.beforeDelivery > (MessageEndpointProxy.java:114) > [junit] at > org.apache.activemq.ra.MessageEndpointProxy.beforeDelivery( > MessageEndpointProxy.java:56) > [junit] at org.apache.activemq.ra.ServerSessionImpl.beforeDelivery( > ServerSessionImpl.java:200) > [junit] at org.apache.activemq.ActiveMQSession.run( > ActiveMQSession.java:686) > [junit] at org.apache.activemq.ra.ServerSessionImpl.run( > ServerSessionImpl.java:164) > [junit] at org.apache.geronimo.connector.work.WorkerContext.run( > WorkerContext.java:291) > [junit] at > EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run( > PooledExecutor.java:743) > [junit] at java.lang.Thread.run(Thread.java:595) > [junit] Caused by: org.apache.activemq.ConnectionClosedException: The > connection is already closed > [junit] at org.apache.activemq.ActiveMQConnection.asyncSendPacket( > ActiveMQConnection.java:1088) > [junit] at org.apache.activemq.TransactionContext.rollback( > TransactionContext.java:225) > [junit] at org.apache.activemq.ra.LocalAndXATransaction.rollback ( > LocalAndXATransaction.java:71) > [junit] ... 11 more > [junit] 18:22:28,441 DEBUG [org.apache.activemq.ra.ServerSessionImpl :1] > Endpoint failed to process message. > [junit] java.lang.RuntimeException: Endpoint before delivery > notification failure > [junit] at org.apache.activemq.ra.ServerSessionImpl.beforeDelivery( > ServerSessionImpl.java:202) > [junit] at org.apache.activemq.ActiveMQSession.run( > ActiveMQSession.java:686) > [junit] at org.apache.activemq.ra.ServerSessionImpl.run( > ServerSessionImpl.java:164) > [junit] at org.apache.geronimo.connector.work.WorkerContext.run( > WorkerContext.java:291) > [junit] at > EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run( > PooledExecutor.java:743) > [junit] at java.lang.Thread.run(Thread.java:595) > [junit] Caused by: javax.resource.ResourceException: begin failed. > [junit] at org.apache.activemq.ra.LocalAndXATransaction.begin( > LocalAndXATransaction.java:51) > [junit] at org.jencks.LocalTransactionEndpoint.beforeDelivery( > LocalTransactionEndpoint.java:48) > [junit] at > org.apache.activemq.ra.MessageEndpointProxy$MessageEndpointAlive.beforeDelivery > (MessageEndpointProxy.java:109) > [junit] at > org.apache.activemq.ra.MessageEndpointProxy.beforeDelivery( > MessageEndpointProxy.java:56) > [junit] at org.apache.activemq.ra.ServerSessionImpl.beforeDelivery( > ServerSessionImpl.java:200) > [junit] ... 5 more > [junit] Caused by: javax.jms.JMSException: Transport disposed. > [junit] at org.apache.activemq.util.JMSExceptionSupport.create( > JMSExceptionSupport.java:57) > [junit] at org.apache.activemq.ActiveMQConnection.asyncSendPacket( > ActiveMQConnection.java:1094) > [junit] at org.apache.activemq.TransactionContext.begin( > TransactionContext.java:199) > [junit] at org.apache.activemq.ra.LocalAndXATransaction.begin( > LocalAndXATransaction.java:48) > [junit] ... 9 more > [junit] Caused by: java.io.IOException: Transport disposed. > [junit] at org.apache.activemq.transport.vm.VMTransport.oneway( > VMTransport.java:69) > [junit] at org.apache.activemq.transport.MutexTransport.oneway( > MutexTransport.java:44) > [junit] at org.apache.activemq.transport.ResponseCorrelator.oneway( > ResponseCorrelator.java:60) > [junit] at org.apache.activemq.ActiveMQConnection.asyncSendPacket( > ActiveMQConnection.java:1092) > [junit] ... 11 more > [junit] 18:22:28,525 INFO [org.apache.activemq.ra.ServerSessionImpl :1] > Endpoint failed to process message. Reason: java.lang.RuntimeException: > Endpoint before delivery notification failure > [junit] 18:22:28,525 DEBUG [org.apache.activemq.ra.ServerSessionImpl :1] > run loop end > [junit] 18:22:28,525 DEBUG [org.apache.activemq.ra.ServerSessionImpl :1] > Endpoint did not release properly: > org.apache.activemq.ra.InvalidMessageEndpointException > [junit] org.apache.activemq.ra.InvalidMessageEndpointException > [junit] at > org.apache.activemq.ra.MessageEndpointProxy$MessageEndpointDead.release( > MessageEndpointProxy.java:156) > [junit] at org.apache.activemq.ra.MessageEndpointProxy.release( > MessageEndpointProxy.java:68) > [junit] at org.apache.activemq.ra.ServerSessionImpl.close( > ServerSessionImpl.java:252) > [junit] at > org.apache.activemq.ra.ServerSessionPoolImpl.removeFromPool( > ServerSessionPoolImpl.java:180) > [junit] at org.apache.activemq.ra.ServerSessionImpl.run( > ServerSessionImpl.java:178) > [junit] at org.apache.geronimo.connector.work.WorkerContext.run( > WorkerContext.java:291) > [junit] at > EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run( > PooledExecutor.java:743) > [junit] at java.lang.Thread.run(Thread.java:595) > > Setup is ActiveMQ 4.1-SNAPSHOT/Jencks 1.3/Spring 2.0.1 > > <bean id="retryConnector" class="org.jencks.JCAConnector"> > <property name="jcaContainer" ref="jcaContainer"/> > <property name="activationSpec"> > <bean class="org.apache.activemq.ra.ActiveMQActivationSpec"> > <property name="activeMQDestination" ref="asyncQueue"/> > </bean> > </property> > <!-- property name="transactionManager" ref="txManager"/ --> > <property name="ref" value="rollbackCommandProcessor"/> > </bean> > > <bean id="jmsResourceAdapter" class=" > org.apache.activemq.ra.ActiveMQResourceAdapter"> > <property name="initialRedeliveryDelay" value="500"/> > <property name="maximumRedeliveries" value="2"/> > <property name="connectionFactory" ref="jmsConnectionFactory"/> > </bean> > > <bean id="jcaContainer" class="org.jencks.JCAContainer"> > <property name="bootstrapContext"> > <bean class="org.jencks.factory.BootstrapContextFactoryBean"> > <property name="threadPoolSize" value="25"/> > </bean> > </property> > <property name="resourceAdapter" ref="jmsResourceAdapter"/> > </bean> > > Strangely enough if you put the transactionManager back in it doesn't have > the error but it doesn't seem to send to the DLQ. > It ignores the maximumRedeliveries option as well. > I could set it to 1 and see multiple consumer retries. > > Is this a bug with 4.1-SNAPSHOT and/or Jencks or is this a configuration > issue? > > -- James ------- http://radio.weblogs.com/0112098/