You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by jason959595 <ja...@corp.aol.com> on 2007/07/30 22:50:25 UTC

Kaha persistence large queue size problem

Hi, I have a cluster of 2 brokers. Broker 1 have over 200k messages in a
single queue.
I could not read the messages using a consumer.
Scenario 1: consumer connect to Broker 2: no message received. Consumer
waits. Broker 1 throws exception. See console log 1.
Scenario 2: consumer connect to Broker 1: Consumer gets exception. Broker 1
also gets exception.

It looks like if a queue has a large number of messages and the
store-forward agent wants to read all with the RandomAccessFile.readFully
....

ActiveMQ 4.1.1
JDK 1.5_12
Windows XP

Any ideas? Thanks.

Broker log - Scenario 1:
----------------------

ERROR MapContainerImpl               - Failed to load container
queue://TEST.FOO
java.io.EOFException
        at java.io.RandomAccessFile.readFully(RandomAccessFile.java:373)
        at java.io.RandomAccessFile.readFully(RandomAccessFile.java:351)
        at
org.apache.activemq.kaha.impl.data.StoreDataReader.readItem(StoreDataReader.java:70)
        at
org.apache.activemq.kaha.impl.data.DataManager.readItem(DataManager.java:125)
        at
org.apache.activemq.kaha.impl.container.MapContainerImpl.load(MapContainerImpl.java:87)
        at
org.apache.activemq.store.kahadaptor.KahaPersistenceAdapter.getMapContainer(KahaPersisten
ceAdapter.java:185)
        at
org.apache.activemq.store.kahadaptor.KahaPersistenceAdapter.createQueueMessageStore(KahaP
ersistenceAdapter.java:92)
        at
org.apache.activemq.broker.region.DestinationFactoryImpl.createDestination(DestinationFac
toryImpl.java:92)
        at
org.apache.activemq.broker.region.AbstractRegion.createDestination(AbstractRegion.java:34
8)
        at
org.apache.activemq.broker.jmx.ManagedQueueRegion.createDestination(ManagedQueueRegion.ja
va:56)
        at
org.apache.activemq.broker.region.AbstractRegion.addDestination(AbstractRegion.java:93)
        at
org.apache.activemq.broker.region.RegionBroker.addDestination(RegionBroker.java:254)
        at
org.apache.activemq.broker.BrokerFilter.addDestination(BrokerFilter.java:142)
        at
org.apache.activemq.advisory.AdvisoryBroker.addDestination(AdvisoryBroker.java:142)
        at
org.apache.activemq.broker.BrokerFilter.addDestination(BrokerFilter.java:142)
        at
org.apache.activemq.broker.MutableBrokerFilter.addDestination(MutableBrokerFilter.java:15
2)
        at
org.apache.activemq.broker.region.AbstractRegion.lookup(AbstractRegion.java:316)
        at
org.apache.activemq.broker.region.AbstractRegion.addConsumer(AbstractRegion.java:183)
        at
org.apache.activemq.broker.region.RegionBroker.addConsumer(RegionBroker.java:337)
        at
org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:86)
        at
org.apache.activemq.advisory.AdvisoryBroker.addConsumer(AdvisoryBroker.java:78)
        at
org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:86)
        at
org.apache.activemq.broker.MutableBrokerFilter.addConsumer(MutableBrokerFilter.java:96)
        at
org.apache.activemq.broker.TransportConnection.processAddConsumer(TransportConnection.jav
a:586)
        at
org.apache.activemq.command.ConsumerInfo.visit(ConsumerInfo.java:313)
        at
org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:294)
        at
org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:185)
        at
org.apache.activemq.transport.ResponseCorrelator.onCommand(ResponseCorrelator.java:95)
        at
org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:65)
        at
org.apache.activemq.transport.vm.VMTransport.syncOneWay(VMTransport.java:96)
        at
org.apache.activemq.transport.vm.VMTransport.oneway(VMTransport.java:83)
        at
org.apache.activemq.transport.MutexTransport.oneway(MutexTransport.java:47)
        at
org.apache.activemq.transport.ResponseCorrelator.oneway(ResponseCorrelator.java:60)
        at
org.apache.activemq.network.DemandForwardingBridgeSupport.addSubscription(DemandForwardin
gBridgeSupport.java:451)
        at
org.apache.activemq.network.DemandForwardingBridgeSupport.serviceRemoteConsumerAdvisory(D
emandForwardingBridgeSupport.java:393)
        at
org.apache.activemq.network.DemandForwardingBridgeSupport.serviceRemoteCommand(DemandForw
ardingBridgeSupport.java:334)
        at
org.apache.activemq.network.DemandForwardingBridgeSupport$2.onCommand(DemandForwardingBri
dgeSupport.java:131)
        at
org.apache.activemq.transport.ResponseCorrelator.onCommand(ResponseCorrelator.java:95)
        at
org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:65)
        at
org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:13
3)
        at
org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:122)
        at
org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:84)
        at
org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:137)
        at java.lang.Thread.run(Thread.java:595)
INFO  DemandForwardingBridge         - Network connection between
vm://localhost1#30 and tcp://local
host/127.0.0.1:62618 shutdown due to a local error:
org.apache.activemq.kaha.RuntimeStoreException:
java.io.EOFException


Broker 2 log - scenario 2:
-----------------------

ERROR MapContainerImpl               - Failed to get value for offset=51,
key=(1, 2747134, 45), valu
e=(1, 2747184, 602), previousItem=102, nextItem=3137877
java.io.EOFException
        at java.io.RandomAccessFile.readFully(RandomAccessFile.java:373)
        at java.io.RandomAccessFile.readFully(RandomAccessFile.java:351)
        at
org.apache.activemq.kaha.impl.data.StoreDataReader.readItem(StoreDataReader.java:70)
        at
org.apache.activemq.kaha.impl.data.DataManager.readItem(DataManager.java:125)
        at
org.apache.activemq.kaha.impl.container.MapContainerImpl.getValue(MapContainerImpl.java:3
66)
        at
org.apache.activemq.kaha.impl.container.ContainerValueCollectionIterator.next(ContainerVa
lueCollectionIterator.java:48)
        at
org.apache.activemq.store.kahadaptor.KahaMessageStore.recover(KahaMessageStore.java:77)
        at
org.apache.activemq.store.ProxyMessageStore.recover(ProxyMessageStore.java:51)
        at
org.apache.activemq.broker.region.Queue.initialize(Queue.java:120)
        at
org.apache.activemq.broker.region.DestinationFactoryImpl.createDestination(DestinationFac
toryImpl.java:95)
        at
org.apache.activemq.broker.region.AbstractRegion.createDestination(AbstractRegion.java:34
8)
        at
org.apache.activemq.broker.jmx.ManagedQueueRegion.createDestination(ManagedQueueRegion.ja
va:56)
        at
org.apache.activemq.broker.region.AbstractRegion.addDestination(AbstractRegion.java:93)
        at
org.apache.activemq.broker.region.RegionBroker.addDestination(RegionBroker.java:254)
        at
org.apache.activemq.broker.BrokerFilter.addDestination(BrokerFilter.java:142)
        at
org.apache.activemq.advisory.AdvisoryBroker.addDestination(AdvisoryBroker.java:142)
        at
org.apache.activemq.broker.BrokerFilter.addDestination(BrokerFilter.java:142)
        at
org.apache.activemq.broker.MutableBrokerFilter.addDestination(MutableBrokerFilter.java:15
2)
        at
org.apache.activemq.broker.region.AbstractRegion.lookup(AbstractRegion.java:316)
        at
org.apache.activemq.broker.region.AbstractRegion.addConsumer(AbstractRegion.java:183)
        at
org.apache.activemq.broker.region.RegionBroker.addConsumer(RegionBroker.java:337)
        at
org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:86)
        at
org.apache.activemq.advisory.AdvisoryBroker.addConsumer(AdvisoryBroker.java:78)
        at
org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:86)
        at
org.apache.activemq.broker.MutableBrokerFilter.addConsumer(MutableBrokerFilter.java:96)
        at
org.apache.activemq.broker.TransportConnection.processAddConsumer(TransportConnection.jav
a:586)
        at
org.apache.activemq.command.ConsumerInfo.visit(ConsumerInfo.java:313)
        at
org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:294)
        at
org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:185)
        at
org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:65)
        at
org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:13
3)
        at
org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:122)
        at
org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:84)
        at
org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:137)
        at java.lang.Thread.run(Thread.java:595)


-- 
View this message in context: http://www.nabble.com/Kaha-persistence-large-queue-size-problem-tf4179125s2354.html#a11883767
Sent from the ActiveMQ - User mailing list archive at Nabble.com.