BTW if things like this happen; the work around is to stop the broker
& zap the index files, then restart. Though we should make the broker
automatically re-create the index files if things get corrupted :)


On 6/6/07, Hiram Chirino <[EMAIL PROTECTED]> wrote:
Hum.. looks like there is some corruption going on.  Will have to dig
into this and get back with you.  The new message store in ActiveMQ
4.2 is brand new and as you can tell we are still working out the
kinks.  If you want, you can switch to using the old mechanism used in
4.1.

On 6/4/07, Tom Samplonius <[EMAIL PROTECTED]> wrote:
>
>   There is a problem when using the default persistence settings, and
> ActiveMQ is shutdown uncleanly with messages in a queue.  After a
> restart (and log recovery), and attempt to read a message out of the
> queue, generates the following error (and ActiveMQ hangs).
>
>    It appears that there are too many "-" in a concatenation somewhere,
> as the logfiles are "data-1", "data-2", etc, not "data--1", which is
> probably is what is generating the exception.
>
>   This is with 4.2-SNAPSHOT-20070602.
>
>
> > ERROR AsyncDataManager               - Looking for key 1 but not found
> > in fileMap: {3=data-3 number = 3 , length = 9051046 refCount = 3}
> > ERROR QueueStorePrefetch             - Failed to fill batch
> > java.io.IOException: Failed to read to journal for: offset = 20785811,
> > file = 1, size = -1, type = 0. Reason: java.io.IOException: Could not
> > locate data file data--1
> >         at
> > 
org.apache.activemq.util.IOExceptionSupport.create(IOExceptionSupport.java:31)
> >         at
> > 
org.apache.activemq.store.amq.AMQPersistenceAdapter.createReadException(AMQPersistenceAdapter.java:529)
> >         at
> > 
org.apache.activemq.store.amq.AMQPersistenceAdapter.readCommand(AMQPersistenceAdapter.java:409)
> >         at
> > 
org.apache.activemq.store.amq.AMQMessageStore.getMessage(AMQMessageStore.java:382)
> >         at
> > 
org.apache.activemq.store.amq.RecoveryListenerAdapter.recoverMessageReference(RecoveryListenerAdapter.java:52)
> >         at
> > 
org.apache.activemq.store.kahadaptor.KahaReferenceStore.recover(KahaReferenceStore.java:63)
> >         at
> > 
org.apache.activemq.store.kahadaptor.KahaReferenceStore.recoverNextMessages(KahaReferenceStore.java:89)
> >         at
> > 
org.apache.activemq.store.amq.AMQMessageStore.recoverNextMessages(AMQMessageStore.java:477)
> >         at
> > 
org.apache.activemq.broker.region.cursors.QueueStorePrefetch.fillBatch(QueueStorePrefetch.java:159)
> >         at
> > 
org.apache.activemq.broker.region.cursors.QueueStorePrefetch.hasNext(QueueStorePrefetch.java:110)
> >         at
> > 
org.apache.activemq.broker.region.cursors.StoreQueueCursor.hasNext(StoreQueueCursor.java:122)
> >         at
> > org.apache.activemq.broker.region.Queue.doPageIn(Queue.java:1007)
> >         at
> > org.apache.activemq.broker.region.Queue.doPageIn(Queue.java:992)
> >         at
> > org.apache.activemq.broker.region.Queue.addSubscription(Queue.java:215)
> >         at
> > 
org.apache.activemq.broker.region.AbstractRegion.addConsumer(AbstractRegion.java:241)
> >         at
> > 
org.apache.activemq.broker.region.RegionBroker.addConsumer(RegionBroker.java:341)
> >         at
> > org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:87)
> >         at
> > 
org.apache.activemq.advisory.AdvisoryBroker.addConsumer(AdvisoryBroker.java:79)
> >         at
> > org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:87)
> >         at
> > 
org.apache.activemq.broker.MutableBrokerFilter.addConsumer(MutableBrokerFilter.java:97)
> >         at
> > 
org.apache.activemq.broker.TransportConnection.processAddConsumer(TransportConnection.java:566)
> >         at
> > org.apache.activemq.command.ConsumerInfo.visit(ConsumerInfo.java:313)
> >         at
> > 
org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:282)
> >         at
> > 
org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:188)
> >         at
> > 
org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:65)
> >         at
> > 
org.apache.activemq.transport.stomp.StompTransportFilter.sendToActiveMQ(StompTransportFilter.java:81)
> >         at
> > 
org.apache.activemq.transport.stomp.ProtocolConverter.sendToActiveMQ(ProtocolConverter.java:119)
> >         at
> > 
org.apache.activemq.transport.stomp.ProtocolConverter.onStompSubscribe(ProtocolConverter.java:351)
> >         at
> > 
org.apache.activemq.transport.stomp.ProtocolConverter.onStompCommad(ProtocolConverter.java:149)
> >         at
> > 
org.apache.activemq.transport.stomp.StompTransportFilter.onCommand(StompTransportFilter.java:71)
> >         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)
> > Caused by: java.io.IOException: Could not locate data file data--1
> >         at
> > 
org.apache.activemq.kaha.impl.async.AsyncDataManager.getDataFile(AsyncDataManager.java:259)
> >         at
> > 
org.apache.activemq.kaha.impl.async.AsyncDataManager.read(AsyncDataManager.java:477)
> >         at
> > 
org.apache.activemq.store.amq.AMQPersistenceAdapter.readCommand(AMQPersistenceAdapter.java:406)
> >         ... 30 more
>
>


--
Regards,
Hiram

Blog: http://hiramchirino.com



--
James
-------
http://macstrac.blogspot.com/

Reply via email to