[
https://issues.apache.org/activemq/browse/AMQ-1824?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jerry Shea updated AMQ-1824:
----------------------------
Attachment: repro_AMQ.zip
Here's a better test case i.e. this one compiles from clean (sorry about the
last one!)
> Single producer and multiple consumer processes, some consumers stop getting
> messages.
> --------------------------------------------------------------------------------------
>
> Key: AMQ-1824
> URL: https://issues.apache.org/activemq/browse/AMQ-1824
> Project: ActiveMQ
> Issue Type: Bug
> Affects Versions: 5.1.0
> Environment: Windows XP SP2, Sun JDK 1.6.03 and RHEL 64 bit Sun 1.6.05
> Reporter: Jerry Shea
> Priority: Blocker
> Attachments: repro_AMQ.zip, repro_AMQ.zip
>
>
> With a single producer and multiple consumer processes using the
> ActiveMQResourceAdapter (inside Jencks), some consumers stop getting
> messages. If you look at the JMX counters inside jconsole you can see the
> stuck subscription's pending queue size increasing. Nearly every time this
> exception is thrown by one of the failing consumers:
> {noformat}
> 2008-06-25 12:07:29,297 [pool-1-thread-7] WARN Transaction - Error ending
> association for XAResource [EMAIL PROTECTED]; transaction will roll back. XA
> error code: -7
> javax.transaction.xa.XAException: The connection is already closed
> at
> org.apache.activemq.TransactionContext.toXAException(TransactionContext.java:624)
> at
> org.apache.activemq.TransactionContext.setXid(TransactionContext.java:559)
> at
> org.apache.activemq.TransactionContext.end(TransactionContext.java:339)
> at
> org.apache.activemq.ra.LocalAndXATransaction.end(LocalAndXATransaction.java:90)
> at
> org.apache.geronimo.transaction.manager.WrapperNamedXAResource.end(WrapperNamedXAResource.java:51)
> at
> org.apache.geronimo.transaction.manager.TransactionImpl.endResources(TransactionImpl.java:563)
> at
> org.apache.geronimo.transaction.manager.TransactionImpl.endResources(TransactionImpl.java:542)
> at
> org.apache.geronimo.transaction.manager.TransactionImpl.beforePrepare(TransactionImpl.java:401)
> at
> org.apache.geronimo.transaction.manager.TransactionImpl.commit(TransactionImpl.java:257)
> at
> org.apache.geronimo.transaction.manager.TransactionManagerImpl.commit(TransactionManagerImpl.java:238)
> at org.jencks.XAEndpoint.afterDelivery(XAEndpoint.java:105)
> at
> org.apache.activemq.ra.MessageEndpointProxy$MessageEndpointAlive.afterDelivery(MessageEndpointProxy.java:121)
> at
> org.apache.activemq.ra.MessageEndpointProxy.afterDelivery(MessageEndpointProxy.java:63)
> at
> org.apache.activemq.ra.ServerSessionImpl.afterDelivery(ServerSessionImpl.java:217)
> at org.apache.activemq.ActiveMQSession.run(ActiveMQSession.java:785)
> at
> org.apache.activemq.ra.ServerSessionImpl.run(ServerSessionImpl.java:165)
> at
> org.apache.geronimo.connector.work.WorkerContext.run(WorkerContext.java:290)
> at
> org.apache.geronimo.connector.work.pool.NamedRunnable.run(NamedRunnable.java:32)
> at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown
> Source)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
> at java.lang.Thread.run(Unknown Source)
> Caused by: org.apache.activemq.ConnectionClosedException: The connection is
> already closed
> at
> org.apache.activemq.ActiveMQConnection.checkClosed(ActiveMQConnection.java:1271)
> at
> org.apache.activemq.ActiveMQConnection.checkClosedOrFailed(ActiveMQConnection.java:1258)
> at
> org.apache.activemq.TransactionContext.setXid(TransactionContext.java:556)
> ... 19 more
> 2008-06-25 12:07:29,297 [pool-1-thread-7] ERROR Transaction - Unexpected
> exception rolling back [EMAIL PROTECTED]; continuing with rollback
> javax.transaction.xa.XAException: The connection is already closed
> at
> org.apache.activemq.TransactionContext.toXAException(TransactionContext.java:624)
> at
> org.apache.activemq.TransactionContext.rollback(TransactionContext.java:423)
> at
> org.apache.activemq.ra.LocalAndXATransaction.rollback(LocalAndXATransaction.java:128)
> at
> org.apache.geronimo.transaction.manager.WrapperNamedXAResource.rollback(WrapperNamedXAResource.java:78)
> at
> org.apache.geronimo.transaction.manager.TransactionImpl.rollbackResources(TransactionImpl.java:581)
> at
> org.apache.geronimo.transaction.manager.TransactionImpl.commit(TransactionImpl.java:267)
> at
> org.apache.geronimo.transaction.manager.TransactionManagerImpl.commit(TransactionManagerImpl.java:238)
> at org.jencks.XAEndpoint.afterDelivery(XAEndpoint.java:105)
> at
> org.apache.activemq.ra.MessageEndpointProxy$MessageEndpointAlive.afterDelivery(MessageEndpointProxy.java:121)
> at
> org.apache.activemq.ra.MessageEndpointProxy.afterDelivery(MessageEndpointProxy.java:63)
> at
> org.apache.activemq.ra.ServerSessionImpl.afterDelivery(ServerSessionImpl.java:217)
> at org.apache.activemq.ActiveMQSession.run(ActiveMQSession.java:785)
> at
> org.apache.activemq.ra.ServerSessionImpl.run(ServerSessionImpl.java:165)
> at
> org.apache.geronimo.connector.work.WorkerContext.run(WorkerContext.java:290)
> at
> org.apache.geronimo.connector.work.pool.NamedRunnable.run(NamedRunnable.java:32)
> at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown
> Source)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
> at java.lang.Thread.run(Unknown Source)
> Caused by: org.apache.activemq.ConnectionClosedException: The connection is
> already closed
> at
> org.apache.activemq.ActiveMQConnection.checkClosed(ActiveMQConnection.java:1271)
> at
> org.apache.activemq.ActiveMQConnection.checkClosedOrFailed(ActiveMQConnection.java:1258)
> at
> org.apache.activemq.TransactionContext.rollback(TransactionContext.java:407)
> ... 16 more
> 2008-06-25 12:07:29,297 [pool-1-thread-7] INFO
> org.apache.activemq.ra.ServerSessionImpl:0 - Endpoint failed to process
> message. Reason: java.lang.RuntimeException: Endpoint after delivery
> notification failure
> {noformat}
> I've written some code to reproduce this problem. Instructions:
> 1. unpack the attached source
> 2. build with 'mvn compile package'
> 3. start with ./startAll.sh (I used cygwin) - this will start 1 producer and
> 3 consumer processes. These programs are pointing to tcp://localhost:62616
> (you can change this in spring config file)
> Look in jconsole under subscriptions and you will probably see within 1 or 2
> runs, only 2 consumers being created, or possibly 3 consumers but 1 of them
> with an increasing pending queue size.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.