Too many "-"s problem

View: New views
2 Messages — Rating Filter:   Alert me  

Too many "-"s problem

by Tom Samplonius-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


  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


---------------------------------------------------------------------
To unsubscribe from this list please visit:

    http://xircles.codehaus.org/manage_email


Re: Too many "-"s problem

by James.Strachan :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Its probably best to mail this to the user list at ActiveMQ; it sounds
like a bug in ActiveMQ rather than a stomp issue

On 6/4/07, Tom Samplonius <tom@...> 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
>
>
> ---------------------------------------------------------------------
> To unsubscribe from this list please visit:
>
>     http://xircles.codehaus.org/manage_email
>
>


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

---------------------------------------------------------------------
To unsubscribe from this list please visit:

    http://xircles.codehaus.org/manage_email