activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From cristisor <cristisor...@yahoo.com>
Subject Another NegativeArraySizeException problem - ActiveMQ 5.5.1.fuse-70-097
Date Thu, 10 Jul 2014 13:13:31 GMT
Hello,

We are facing a really big problem in production. From time to time, the
broker stops delivering the messages to some consumers which are located on
the same machine as the broker. After a restart, the broker delivers some
more messages but new messages can accumulate. The only way to fix the
problem for another 2 - 3 weeks is to clear the kahaDB, but this shouldn't
be happening in production.

Finally we managed to get a copy of the kahaDB before the support team
restarted the broker, and when I deployed it into my broker, I received the
following error at broker initialization:
2014/07/10 15:57:15,033 | INFO  | WrapperSimpleAppMain | MessageDatabase         
| ahadb.MessageDatabase$Metadata  155 | KahaDB is version 4
2014/07/10 15:57:16,502 | ERROR | WrapperSimpleAppMain | BrokerService           
| .activemq.broker.BrokerService  555 | Failed to start ActiveMQ JMS Message
Broker (fpskylla_activemq, null). Reason: java.io.IOException: Invalid
location: 1193:28702079, : java.lang.NegativeArraySizeException
java.io.IOException: Invalid location: 1193:28702079, :
java.lang.NegativeArraySizeException
	at
org.apache.kahadb.journal.DataFileAccessor.readRecord(DataFileAccessor.java:94)
	at org.apache.kahadb.journal.Journal.read(Journal.java:601)
	at
org.apache.activemq.store.kahadb.MessageDatabase.load(MessageDatabase.java:898)
	at
org.apache.activemq.store.kahadb.MessageDatabase.recoverProducerAudit(MessageDatabase.java:577)
	at
org.apache.activemq.store.kahadb.MessageDatabase.recover(MessageDatabase.java:504)
	at
org.apache.activemq.store.kahadb.MessageDatabase.open(MessageDatabase.java:360)
	at
org.apache.activemq.store.kahadb.MessageDatabase.load(MessageDatabase.java:408)
	at
org.apache.activemq.store.kahadb.MessageDatabase.doStart(MessageDatabase.java:237)
	at
org.apache.activemq.store.kahadb.KahaDBStore.doStart(KahaDBStore.java:176)
	at org.apache.activemq.util.ServiceSupport.start(ServiceSupport.java:54)
	at
org.apache.activemq.store.kahadb.KahaDBPersistenceAdapter.start(KahaDBPersistenceAdapter.java:188)
	at org.apache.activemq.broker.BrokerService.start(BrokerService.java:512)
	at
org.apache.activemq.xbean.XBeanBrokerService.afterPropertiesSet(XBeanBrokerService.java:60)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1612)
	at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1553)
	at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1483)
	at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
	at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
	at
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
	at
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
	at
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
	at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
	at
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:285)
	at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
	at
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:285)
	at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
	at
org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:608)
	at
org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
	at
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
	at org.apache.servicemix.Main.main(Main.java:69)
------------------------------------------------------------


The broker initialization fails and everything stops. If I restart the
broker, everything goes ok and I see the following logging:
2014/07/10 16:06:53,330 | INFO  | WrapperSimpleAppMain | BrokerService           
| .activemq.broker.BrokerService  508 | Using Persistence Adapter:
KahaDBPersistenceAdapter[d:\activemq\apache-servicemix-3.6.0-fuse-00-89\activemq-data]
2014/07/10 16:06:53,963 | INFO  | WrapperSimpleAppMain | MessageDatabase         
| ahadb.MessageDatabase$Metadata  155 | KahaDB is version 4
2014/07/10 16:06:55,387 | INFO  | WrapperSimpleAppMain | MessageDatabase         
| q.store.kahadb.MessageDatabase  511 | Recovering from the journal ...
2014/07/10 16:06:55,393 | DEBUG | WrapperSimpleAppMain | MessageDatabase         
| q.store.kahadb.MessageDatabase 1212 | message not found in sequence id
index: ID:FR0502-1079-1398479702307-13:1:1:1:832
2014/07/10 16:06:56,902 | DEBUG | WrapperSimpleAppMain | MessageDatabase         
| q.store.kahadb.MessageDatabase 1212 | message not found in sequence id
index: ID:FR0502-1143-1403750130523-13:1:1:1:696
2014/07/10 16:06:57,552 | DEBUG | WrapperSimpleAppMain | MessageDatabase         
| q.store.kahadb.MessageDatabase 1230 | no message sequence exists for id:
ID:FR050204-1068-1404358678116-2:1:53:1:9 and sub:
PosTransaction_necExportService:PosTransaction_necExportService
2014/07/10 16:06:57,552 | DEBUG | WrapperSimpleAppMain | MessageDatabase         
| q.store.kahadb.MessageDatabase 1230 | no message sequence exists for id:
ID:FR050204-1068-1404358678116-2:1:53:1:9 and sub:
eReSdcBS-receiver_FR0502:eReSdcBS-receiver_FR0502_eres-postransaction-01-0502-@
2014/07/10 16:06:58,088 | DEBUG | WrapperSimpleAppMain | MessageDatabase         
| q.store.kahadb.MessageDatabase 1212 | message not found in sequence id
index: ID:FR0502-1280-1404441548401-13:1:1:1:896
2014/07/10 16:06:58,527 | INFO  | WrapperSimpleAppMain | MessageDatabase         
| q.store.kahadb.MessageDatabase  524 | Recovery replayed 33353 operations
from the journal in 3.152 seconds.
2014/07/10 16:06:58,542 | INFO  | WrapperSimpleAppMain | BrokerService           
| .activemq.broker.BrokerService  785 | ActiveMQ 5.5.1.fuse-70-097 JMS
Message Broker (fpskylla_activemq) is starting


I spent a lot of time investigating this problem and I came across some
known bugs (AMQ-3104, AMQ-3422, AMQ-3775, AMQ-3806, MB-1046), but I have the
fixes in the ActiveMQ version that I am using. I am very confused by the
fact that my ActiveMQ version, 5.5.1.fuse-70-097, contains fixes which
should be found in the ActiveMQ 5.6.0. Also, the prefetchPolicy has been set
to 1 and the auto acknowledge mode is on.

Do you think that a thread dump would help me? Any idea is really
appreciated because we are stuck.

If somebody can analyze the kahaDB, I would be happy to zip it and send it.

Many thanks,
Cristian.



--
View this message in context: http://activemq.2283324.n4.nabble.com/Another-NegativeArraySizeException-problem-ActiveMQ-5-5-1-fuse-70-097-tp4683082.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Mime
View raw message