[
https://issues.apache.org/jira/browse/AMQ-5083?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Timothy Bish closed AMQ-5083.
-----------------------------
Resolution: Incomplete
The issue here appears to be related to fixes that have gone in since the
v5.7.0 release. Recommend moving to a v5.9.1 release which has a much more
hardened KahaDB store.
> Cannot consume messages. Failed to fill batch . cased by
> NegativeArraySizeException
> -----------------------------------------------------------------------------------
>
> Key: AMQ-5083
> URL: https://issues.apache.org/jira/browse/AMQ-5083
> Project: ActiveMQ
> Issue Type: Bug
> Affects Versions: 5.7.0
> Environment: CentOS release 5.5 (Final)
> Reporter: liurui
> Priority: Critical
> Attachments: activemq.xml
>
>
> Consumers cannot consume any message .
> I had to delete the queue in order to get ActiveMQ to start consuming
> messages.
> With the error messages below:
> 2014-03-05 11:27:41,230 | ERROR |
> org.apache.activemq.broker.region.cursors.QueueStorePrefetch@19f0b0a6:queue.psu.product.update,batchResetNeeded=false,storeHasMessages=true,size=935106,cacheEnabled=false,maxBatchSize:200
> - Failed to fill batch |
> org.apache.activemq.broker.region.cursors.AbstractStoreCursor | ActiveMQ
> BrokerService[slave] Task-176
> java.io.IOException: Invalid location: 965:1286, :
> java.lang.NegativeArraySizeException
> at
> org.apache.kahadb.journal.DataFileAccessor.readRecord(DataFileAccessor.java:92)
> at org.apache.kahadb.journal.Journal.read(Journal.java:604)
> at
> org.apache.activemq.store.kahadb.MessageDatabase.load(MessageDatabase.java:879)
> at
> org.apache.activemq.store.kahadb.KahaDBStore.loadMessage(KahaDBStore.java:1030)
> at
> org.apache.activemq.store.kahadb.KahaDBStore$KahaDBMessageStore$4.execute(KahaDBStore.java:558)
> at org.apache.kahadb.page.Transaction.execute(Transaction.java:769)
> at
> org.apache.activemq.store.kahadb.KahaDBStore$KahaDBMessageStore.recoverNextMessages(KahaDBStore.java:547)
> at
> org.apache.activemq.store.ProxyMessageStore.recoverNextMessages(ProxyMessageStore.java:106)
> at
> org.apache.activemq.broker.region.cursors.QueueStorePrefetch.doFillBatch(QueueStorePrefetch.java:97)
> at
> org.apache.activemq.broker.region.cursors.AbstractStoreCursor.fillBatch(AbstractStoreCursor.java:274)
> at
> org.apache.activemq.broker.region.cursors.AbstractStoreCursor.reset(AbstractStoreCursor.java:110)
> at
> org.apache.activemq.broker.region.cursors.StoreQueueCursor.reset(StoreQueueCursor.java:157)
> at
> org.apache.activemq.broker.region.Queue.doPageInForDispatch(Queue.java:1765)
> at org.apache.activemq.broker.region.Queue.pageInMessages(Queue.java:1993)
> at org.apache.activemq.broker.region.Queue.iterate(Queue.java:1486)
> at
> org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:129)
> at org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:47)
> 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:662)
> 2014-03-05 11:27:41,230 | ERROR |
> org.apache.activemq.broker.region.cursors.QueueStorePrefetch@19f0b0a6:queue.psu.product.update,batchResetNeeded=false,storeHasMessages=true,size=935106,cacheEnabled=false,maxBatchSize:200
> - Failed to fill batch |
> org.apache.activemq.broker.region.cursors.AbstractStoreCursor | ActiveMQ
> BrokerService[slave] Task-176
> java.lang.RuntimeException: java.io.IOException: Invalid location: 965:1286,
> : java.lang.NegativeArraySizeException
> at
> org.apache.activemq.broker.region.cursors.AbstractStoreCursor.fillBatch(AbstractStoreCursor.java:277)
> at
> org.apache.activemq.broker.region.cursors.AbstractStoreCursor.reset(AbstractStoreCursor.java:110)
> at
> org.apache.activemq.broker.region.cursors.StoreQueueCursor.reset(StoreQueueCursor.java:157)
> at
> org.apache.activemq.broker.region.Queue.doPageInForDispatch(Queue.java:1765)
> at org.apache.activemq.broker.region.Queue.pageInMessages(Queue.java:1993)
> at org.apache.activemq.broker.region.Queue.iterate(Queue.java:1486)
> at
> org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:129)
> this is my activemq.xml
> <beans
> xmlns="http://www.springframework.org/schema/beans"
> xmlns:amq="http://activemq.apache.org/schema/core"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:schemaLocation="http://www.springframework.org/schema/beans
> http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
> http://activemq.apache.org/schema/core
> http://activemq.apache.org/schema/core/activemq-core.xsd">
> <bean
> class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
> <property name="locations">
> <value>file:${activemq.base}/conf/credentials.properties</value>
> </property>
> </bean>
> <bean id="ioExceptionHandler"
> class="org.apache.activemq.util.DefaultIOExceptionHandler" >
> <property name="stopStartConnectors"><value>true</value></property>
> <property
> name="resumeCheckSleepPeriod"><value>30000</value></property>
> </bean>
> <broker persistent="true" xmlns="http://activemq.apache.org/schema/core"
> brokerName="master" useJmx="true" dataDirectory="${activemq.base}/data"
> advisorySupport="false" ioExceptionHandler="#ioExceptionHandler">
>
>
> <destinationPolicy>
> <policyMap>
> <policyEntries>
> <policyEntry topic=">" producerFlowControl="true"
> memoryLimit="64mb">
> <pendingSubscriberPolicy>
> <vmCursor />
> </pendingSubscriberPolicy>
> </policyEntry>
> <policyEntry queue=">" producerFlowControl="true"
> memoryLimit="64mb">
> <deadLetterStrategy>
> <individualDeadLetterStrategy queuePrefix="DLQ."
> useQueueForQueueMessages="true" processExpired="false"/>
> </deadLetterStrategy>
> </policyEntry>
> </policyEntries>
> </policyMap>
> </destinationPolicy>
>
> <managementContext>
> <managementContext createConnector="false"/>
> </managementContext>
> <persistenceAdapter>
> <kahaDB directory="/opt/mnt2/ActiveMQ/data"
> enableJournalDiskSyncs="true" indexWriteBatchSize="1000"
> indexCacheSize="10000" journalMaxFileLength="32MB"
> ignoreMissingJournalfiles="true" cleanupInterval="10000"/>
> </persistenceAdapter>
>
> <systemUsage>
> <systemUsage>
> <memoryUsage>
> <memoryUsage limit="2048 mb"/>
> </memoryUsage>
> <storeUsage>
> <storeUsage limit="200 gb"/>
> </storeUsage>
> <tempUsage>
> <tempUsage limit="1024 mb"/>
> </tempUsage>
> </systemUsage>
> </systemUsage>
>
> <transportConnectors>
> <transportConnector name="openwire"
> uri="tcp://0.0.0.0:61616?transport.closeAsync=false"/>
> <transportConnector name="stomp"
> uri="stomp://0.0.0.0:61613?transport.closeAsync=false"/>
> </transportConnectors>
> </broker>
> <import resource="jetty.xml"/>
>
> </beans>
--
This message was sent by Atlassian JIRA
(v6.2#6252)