You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by mbu <ma...@sonyericsson.com> on 2011/07/28 10:49:32 UTC

Messages can not be fetched from queue, java.io.UTFDataFormatException: bad string

Hi all,

we have the problem that our camel router stopped fetching messages from one
of our ActiveMQ queues, despite beeing listed as subscribed, without giving
any error entries in the log.

When i now tried to browse the queue using activemq-admin, i get the
stack-trace shown at the end of this mail.

I understand "java.lang.RuntimeException: java.io.IOException: Failed to
read to journal for: offset = 18487793, file = 3, size = 60, type = 0.
Reason: java.io.UTFDataFormatException: bad string" beeing the key line here
and my interpetation is, that this is about a corrupted entry in a database
file.

Is my understanding correct?
Where is "offset = 18487793, file = 3, size = 60, type = 0" pointing to
exactly? (which file? is offset the byte count from start of that file? is
size the size of the string field starting at that offset?) I ask this as i
would like to have a look what's corrupt there exactly.
Is there a way to repair the database and saving the other entries (or event
the corrupted one)?

Some environment info:
ActiveMQ 5.4.1 on Red Hat 5.3 (kernel  2.6.18-128.el5) embedded in Tomcat 6.

Thanks for any advise you can give.
Marcus

The below was run remotely from my WinXP workstation (url changed from
original).

C:\temp\apache-activemq-5.4.1\bin>activemq-admin browse --amqurl
tcp://someserver.somedomain.tld:12345 -Vheader SPACE.INTERNAL.SENDER.QUEUE
Java Runtime: Sun Microsystems Inc. 1.6.0_14 C:\apps\java\1.6.0_14\jdk\jre
  Heap sizes: current=5056k  free=4729k  max=65088k
    JVM args:
-Dactivemq.classpath=C:\temp\apache-activemq-5.4.1\bin\../conf;
-Dactivemq.home=C:\temp\apache-activemq-5.4.1\bin\..
-Dactivemq.base=C:\temp\apache-activemq-5.4.1\bin\..
ACTIVEMQ_HOME: C:\temp\apache-activemq-5.4.1\bin\..
ACTIVEMQ_BASE: C:\temp\apache-activemq-5.4.1\bin\..
ERROR: java.lang.RuntimeException: Failed to execute browse task. Reason:
javax.jms.JMSException: java.lang.RuntimeException: java.io.IOException:
Failed to read to journal for: offset = 18487793, file = 3, size = 60, type
= 0. Reason: java.io.UTFDataFormatException: bad string
java.lang.RuntimeException: Failed to execute browse task. Reason:
javax.jms.JMSException: java.lang.RuntimeException: java.io.IOException:
Failed to read to journal for: offset = 18487793, file = 3, size = 60, type
= 0. Reason: java.io.UTFDataFormatException: bad string
        at
org.apache.activemq.console.command.AmqBrowseCommand.runTask(AmqBrowseCommand.java:130)
        at
org.apache.activemq.console.command.AbstractCommand.execute(AbstractCommand.java:57)
        at
org.apache.activemq.console.command.ShellCommand.runTask(ShellCommand.java:143)
        at
org.apache.activemq.console.command.AbstractCommand.execute(AbstractCommand.java:57)
        at
org.apache.activemq.console.command.ShellCommand.main(ShellCommand.java:85)
        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.apache.activemq.console.Main.runTaskClass(Main.java:251)
        at org.apache.activemq.console.Main.main(Main.java:107)
ERROR: java.lang.Exception: javax.jms.JMSException:
java.lang.RuntimeException: java.io.IOException: Failed to read to journal
for: offset = 18487793, file = 3, size = 60, type = 0. Reason:
java.io.UTFDataFormatException: bad string
java.lang.Exception: javax.jms.JMSException: java.lang.RuntimeException:
java.io.IOException: Failed to read to journal for: offset = 18487793, file
= 3, size = 60, type = 0. Reason: java.io.UTFDataFormatException: bad string
        at
org.apache.activemq.console.command.AmqBrowseCommand.runTask(AmqBrowseCommand.java:131)
        at
org.apache.activemq.console.command.AbstractCommand.execute(AbstractCommand.java:57)
        at
org.apache.activemq.console.command.ShellCommand.runTask(ShellCommand.java:143)
        at
org.apache.activemq.console.command.AbstractCommand.execute(AbstractCommand.java:57)
        at
org.apache.activemq.console.command.ShellCommand.main(ShellCommand.java:85)
        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.apache.activemq.console.Main.runTaskClass(Main.java:251)
        at org.apache.activemq.console.Main.main(Main.java:107)
Caused by: javax.jms.JMSException: java.lang.RuntimeException:
java.io.IOException: Failed to read to journal for: offset = 18487793, file
= 3, size = 60, type= 0. Reason: java.io.UTFDataFormatException: bad string
        at
org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:49)
        at
org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1287)
        at
org.apache.activemq.ActiveMQSession.syncSendPacket(ActiveMQSession.java:1874)
        at
org.apache.activemq.ActiveMQMessageConsumer.<init>(ActiveMQMessageConsumer.java:254)
        at
org.apache.activemq.ActiveMQQueueBrowser$1.<init>(ActiveMQQueueBrowser.java:100)
        at
org.apache.activemq.ActiveMQQueueBrowser.createConsumer(ActiveMQQueueBrowser.java:98)
        at
org.apache.activemq.ActiveMQQueueBrowser.<init>(ActiveMQQueueBrowser.java:84)
        at
org.apache.activemq.ActiveMQSession.createBrowser(ActiveMQSession.java:1316)
        at
org.apache.activemq.console.filter.AmqMessagesQueryFilter.queryMessages(AmqMessagesQueryFilter.java:90)
        at
org.apache.activemq.console.filter.AmqMessagesQueryFilter.query(AmqMessagesQueryFilter.java:72)
        at
org.apache.activemq.console.filter.WildcardTransformFilter.query(WildcardTransformFilter.java:60)
        at
org.apache.activemq.console.util.AmqMessagesUtil.getMessages(AmqMessagesUtil.java:51)
        at
org.apache.activemq.console.command.AmqBrowseCommand.runTask(AmqBrowseCommand.java:117)
        ... 10 more
Caused by: java.lang.RuntimeException: java.lang.RuntimeException:
java.io.IOException: Failed to read to journal for: offset = 18487793, file
= 3, size = 60, type = 0. Reason: java.io.UTFDataFormatException: bad string
        at
org.apache.activemq.broker.region.cursors.AbstractStoreCursor.reset(AbstractStoreCursor.java:102)
        at
org.apache.activemq.broker.region.cursors.StoreQueueCursor.reset(StoreQueueCursor.java:157)
        at org.apache.activemq.broker.region.Queue.doPageIn(Queue.java:1363)
        at
org.apache.activemq.broker.region.Queue.pageInMessages(Queue.java:1503)
        at
org.apache.activemq.broker.region.Queue.addSubscription(Queue.java:313)
        at
org.apache.activemq.broker.region.AbstractRegion.addConsumer(AbstractRegion.java:279)
        at
org.apache.activemq.broker.region.RegionBroker.addConsumer(RegionBroker.java:380)
        at
org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:86)
        at
org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:86)
        at
org.apache.activemq.advisory.AdvisoryBroker.addConsumer(AdvisoryBroker.java:89)
        at
org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:86)
        at
org.apache.activemq.broker.MutableBrokerFilter.addConsumer(MutableBrokerFilter.java:93)
        at
org.apache.activemq.broker.TransportConnection.processAddConsumer(TransportConnection.java:530)
        at
org.apache.activemq.command.ConsumerInfo.visit(ConsumerInfo.java:349)
        at
org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:297)
        at
org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:175)
        at
org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:68)
        at
org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:113)
        at
org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:210)
        at
org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:84)
        at
org.apache.activemq.transport.nio.NIOTransport.serviceRead(NIOTransport.java:128)
        at
org.apache.activemq.transport.nio.NIOTransport.access$000(NIOTransport.java:44)
        at
org.apache.activemq.transport.nio.NIOTransport$1.onSelect(NIOTransport.java:68)
        at
org.apache.activemq.transport.nio.SelectorSelection.onSelect(SelectorSelection.java:78)
        at
org.apache.activemq.transport.nio.SelectorWorker$1.run(SelectorWorker.java:103)
        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:619)
Caused by: java.lang.RuntimeException: java.io.IOException: Failed to read
to journal for: offset = 18487793, file = 3, size = 60, type = 0. Reason:
java.io.UTFDataFormatException: bad string
        at
org.apache.activemq.broker.region.cursors.AbstractStoreCursor.fillBatch(AbstractStoreCursor.java:230)
        at
org.apache.activemq.broker.region.cursors.AbstractStoreCursor.reset(AbstractStoreCursor.java:99)
        ... 27 more
Caused by: java.io.IOException: Failed to read to journal for: offset =
18487793, file = 3, size = 60, type = 0. Reason:
java.io.UTFDataFormatException: bad string
        at
org.apache.activemq.util.IOExceptionSupport.create(IOExceptionSupport.java:33)
        at
org.apache.activemq.store.amq.AMQPersistenceAdapter.createReadException(AMQPersistenceAdapter.java:672)
        at
org.apache.activemq.store.amq.AMQPersistenceAdapter.readCommand(AMQPersistenceAdapter.java:555)
        at
org.apache.activemq.store.amq.AMQMessageStore.getMessage(AMQMessageStore.java:440)
        at
org.apache.activemq.store.amq.RecoveryListenerAdapter.recoverMessageReference(RecoveryListenerAdapter.java:58)
        at
org.apache.activemq.store.kahadaptor.KahaReferenceStore.recoverReference(KahaReferenceStore.java:88)
        at
org.apache.activemq.store.kahadaptor.KahaReferenceStore.recoverNextMessages(KahaReferenceStore.java:126)
        at
org.apache.activemq.store.amq.AMQMessageStore.recoverNextMessages(AMQMessageStore.java:533)
        at
org.apache.activemq.broker.region.cursors.QueueStorePrefetch.doFillBatch(QueueStorePrefetch.java:81)
        at
org.apache.activemq.broker.region.cursors.AbstractStoreCursor.fillBatch(AbstractStoreCursor.java:227)
        ... 28 more
Caused by: java.io.UTFDataFormatException: bad string
        at
org.apache.activemq.util.DataByteArrayInputStream.readUTF(DataByteArrayInputStream.java:307)
        at
org.apache.activemq.openwire.v5.BaseDataStreamMarshaller.looseUnmarshalString(BaseDataStreamMarshaller.java:572)
        at
org.apache.activemq.openwire.v5.ConnectionInfoMarshaller.looseUnmarshal(ConnectionInfoMarshaller.java:146)
        at
org.apache.activemq.openwire.OpenWireFormat.doUnmarshal(OpenWireFormat.java:368)
        at
org.apache.activemq.openwire.OpenWireFormat.unmarshal(OpenWireFormat.java:207)
        at
org.apache.activemq.store.amq.AMQPersistenceAdapter.readCommand(AMQPersistenceAdapter.java:553)
        ... 35 more

--
View this message in context: http://activemq.2283324.n4.nabble.com/Messages-can-not-be-fetched-from-queue-java-io-UTFDataFormatException-bad-string-tp3700807p3700807.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.