Hi, as a follow-up, I'm currently seeing a very highly elevated error rate on a deployment with 5.4.2. The very strange issue here is that if I move the message out of the DLQ into the original queue, after some attempts it gets consumed without problems.
Anybody got any ideas? Could this have to do with prefetch limit being set to 1 and XA transactions (I read about issues with prefetch and spring on the homepage, but this indicates that one should be a valid limit). Thanks in advance for any help! Best regards, Martin ---------- Forwarded message ---------- From: Martin C. <[email protected]> Date: Fri, Mar 11, 2011 at 9:27 AM Subject: EOFException when accessing message's properties To: users <[email protected]> Hi, I am experiencing a corrupt message (see stacktrace below) which fails when attempting to access the message's properties. We had this on two occurances until now, both on a 5.3.2 broker. The issue happens persists on 5.4.2, if we start it with the KahaDB datastore of the 5.3.2 instance. The message finally ended in a DLQ, but it also cannot be processed from there. The issue seems to only happen when deserializing the message (either via network or from KahaDB on startup), as the message was viewable in the webinterface of the broker before a restart, but afterwards, the same exception occures when trying to browse the queue containing the message in the web-interface. Unfortunately I do not know a way to reproduce this, as this happens only once every several-million messages. I also unfortunately cannot provide the corrupt datastore due to sensitive data being included. Do you have any idea, if/how I can recover the message somehow? javax.jms.JMSException: java.io.EOFException at org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:62) at org.apache.activemq.filter.PropertyExpression.evaluate(PropertyExpression.java:199) at org.apache.activemq.command.ActiveMQMessage.getObjectProperty(ActiveMQMessage.java:462) at org.apache.activemq.command.ActiveMQMessage.getStringProperty(ActiveMQMessage.java:550) ... snip: some myapp.internal method calls ... at myapp.MessageHandler.onMessage(MessageHandler.java:101) at org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:534) at org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:495) at org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:467) at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:241) at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:977) at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:876) at java.lang.Thread.run(Thread.java:662) Caused by: java.io.EOFException at java.io.DataInputStream.readUnsignedShort(DataInputStream.java:323) at java.io.DataInputStream.readUTF(DataInputStream.java:572) at java.io.DataInputStream.readUTF(DataInputStream.java:547) at org.apache.activemq.util.MarshallingSupport.unmarshalPrimitiveMap(MarshallingSupport.java:92) at org.apache.activemq.util.MarshallingSupport.unmarshalPrimitiveMap(MarshallingSupport.java:73) at org.apache.activemq.command.Message.unmarsallProperties(Message.java:189) at org.apache.activemq.command.Message.getProperty(Message.java:151) at org.apache.activemq.filter.PropertyExpression.evaluate(PropertyExpression.java:197) ... 15 more Thanks in advance, Martin
