We've been using ActiveMQ in an infrastructure refresh project, and have run into a nasty looking bug, it looks like we are dropping messages. We have a few fast producers that will produce approximately 4-5 million persistent messages over the course of about 2.5 hours, while many slower consumers will consume these messages over the course of a day or so.
We are using Jencks/Spring for the producers and consumers, using the openwire protocol. For this test, we were using the AMQ 4.1.1 client jars, if that matters. (We will try updating to the new AMQ5 client jars today) About halfway through the production run, we started getting IndexOutOfBounds exceptions in the log pretty frequently. Later on the consumer tries to get these messages but appears to fail. The exception: INFO | jvm 1 | 2007/10/31 22:45:41 | WARN AMQMessageStore - Message could not be added to long term store: Index: 139, Size: 90 INFO | jvm 1 | 2007/10/31 22:45:41 | java.lang.IndexOutOfBoundsException: Index: 139, Size: 90 INFO | jvm 1 | 2007/10/31 22:45:41 | at java.util.ArrayList.add(ArrayList.java:368) INFO | jvm 1 | 2007/10/31 22:45:41 | at org.apache.activemq.kaha.impl.index.hash.HashPage.addHashEntry(HashPage.java:195) INFO | jvm 1 | 2007/10/31 22:45:41 | at org.apache.activemq.kaha.impl.index.hash.HashPageInfo.addHashEntry(HashPageInfo.j ava:67) INFO | jvm 1 | 2007/10/31 22:45:41 | at org.apache.activemq.kaha.impl.index.hash.HashBin.addHashEntry(HashBin.java:186) INFO | jvm 1 | 2007/10/31 22:45:41 | at org.apache.activemq.kaha.impl.index.hash.HashBin.put(HashBin.java:149) INFO | jvm 1 | 2007/10/31 22:45:41 | at org.apache.activemq.kaha.impl.index.hash.HashIndex.store(HashIndex.java:234) INFO | jvm 1 | 2007/10/31 22:45:41 | at org.apache.activemq.kaha.impl.container.MapContainerImpl.put(MapContainerImpl.jav a:296) INFO | jvm 1 | 2007/10/31 22:45:41 | at org.apache.activemq.store.kahadaptor.KahaReferenceStore.addMessageReference(KahaR eferenceStore.java:113) INFO | jvm 1 | 2007/10/31 22:45:41 | at org.apache.activemq.store.amq.AMQMessageStore$4.execute(AMQMessageStore.java:341) INFO | jvm 1 | 2007/10/31 22:45:41 | at org.apache.activemq.util.TransactionTemplate.run(TransactionTemplate.java:44) INFO | jvm 1 | 2007/10/31 22:45:41 | at org.apache.activemq.store.amq.AMQMessageStore.doAsyncWrite(AMQMessageStore.java:3 30) INFO | jvm 1 | 2007/10/31 22:45:41 | at org.apache.activemq.store.amq.AMQMessageStore.asyncWrite(AMQMessageStore.java:300 ) INFO | jvm 1 | 2007/10/31 22:45:41 | at org.apache.activemq.store.amq.AMQMessageStore$1.iterate(AMQMessageStore.java:92) INFO | jvm 1 | 2007/10/31 22:45:41 | at org.apache.activemq.thread.DedicatedTaskRunner.runTask(DedicatedTaskRunner.java:9 8) INFO | jvm 1 | 2007/10/31 22:45:41 | at org.apache.activemq.thread.DedicatedTaskRunner$1.run(DedicatedTaskRunner.java:36) The client error: 2007-11-01 14:32:31,478 [Queue IG ] ERROR RecoveryListenerAdapter - Message id ID:rlab-0015.riya.com-38211-1193877195876-0:4:81:1:694 could not be recovered from the data store Any ideas, does this ring a bell for anyone? We did not see this error in our earlier test runs, which was using a snapshot from 20071002. We plan on updating to the latest snapshot today, as well as using the 5.0 client jars, and rerunning the test, I will let you know if that fixes the error for us. Thanks! -Andy -- View this message in context: http://www.nabble.com/IndexOutOfBoundsException-in-AMQMessageStore-using-20071028.173739-tf4734264s2354.html#a13538049 Sent from the ActiveMQ - Dev mailing list archive at Nabble.com.
