activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Leonardo Lima <leomrl...@gmail.com>
Subject Errors under high-load (ActiveMQ 5.3 + JBoss 5.1)
Date Mon, 21 Dec 2009 09:35:44 GMT
Hello.

I'm stress-testing this scenario: about 15000 messages are sent in about 10
min (~25 msg/sec) to a standalone broker (using nio transport). Messages are
consumed via MDB in a Jboss 5.1, configured with the activemq-rar
instructions found on the website (
http://activemq.apache.org/integrating-apache-activemq-with-jboss.html). The
MDBs are also inserting data in a database, and everything is under XA (or
so it seems from the errors...). I'm running everything in a Windows 2008 R2
and Sun's 64-bit JVM.

Everything seems to run fine, but after the messages are sent, some (~50
messages) about are "lingering" in the queue (Number Of Pending Messages is
bigger than 0). But no one consumer is getting messages anymore and I can't
browse them.

Checking for errors, I see two issues. Sometimes, I get a
"javax.transaction.xa.XAException: Transaction has not been started.". That
shows at both JBoss and ActiveMQ. I've searched about it and found little
info on how to debug it. I think it must be a configuration mismatch about
quantities of avaiable MDBs/Connections/Transaction/Pool or something like
that, but I don't know. And I believe ActiveMQ would retry to dispatch this
message again, so this wouldn't be a big deal.

And sometimes I get a "POST COMMIT FAILED"
java.util.ConcurrentModificationException at ActiveMQ. I couldn't find this
error anywhere else, and I don't know what else can I do about it. Is it a
bug? Maybe it has something to do with this pending messages. Here goes the
stacktrace:

2009-12-21 07:05:31,522 | WARN  | POST COMMIT FAILED:  |
org.apache.activemq.transaction.XATransaction | NIO Transport Thread
java.util.ConcurrentModificationException
    at
java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372)
    at java.util.AbstractList$Itr.next(AbstractList.java:343)
    at
org.apache.activemq.transaction.Transaction.fireAfterCommit(Transaction.java:86)
    at
org.apache.activemq.transaction.XATransaction.doPostCommit(XATransaction.java:113)
    at
org.apache.activemq.transaction.XATransaction.commit(XATransaction.java:68)
    at
org.apache.activemq.broker.TransactionBroker.commitTransaction(TransactionBroker.java:170)
    at
org.apache.activemq.broker.BrokerFilter.commitTransaction(BrokerFilter.java:94)
    at
org.apache.activemq.broker.MutableBrokerFilter.commitTransaction(MutableBrokerFilter.java:101)
    at
org.apache.activemq.broker.TransportConnection.processCommitTransactionOnePhase(TransportConnection.java:406)
    at
org.apache.activemq.command.TransactionInfo.visit(TransactionInfo.java:100)
    at
org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:297)
    at
org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:175)
    at
org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:68)
    at
org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:113)
    at
org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:210)
    at
org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:84)
    at
org.apache.activemq.transport.nio.NIOTransport.serviceRead(NIOTransport.java:128)
    at
org.apache.activemq.transport.nio.NIOTransport.access$000(NIOTransport.java:44)
    at
org.apache.activemq.transport.nio.NIOTransport$1.onSelect(NIOTransport.java:68)
    at
org.apache.activemq.transport.nio.SelectorSelection.onSelect(SelectorSelection.java:78)
    at
org.apache.activemq.transport.nio.SelectorWorker$1.run(SelectorWorker.java:103)
    at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:619)

My main concern is that I don't know if there really is something pending
and how should I avoid this.

Could you please take a look at this and give me pointers on how to proceed?

Thank you very much.
Leo

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message