Activemq loses Stomp text message body on topic
-----------------------------------------------

                 Key: AMQ-2871
                 URL: https://issues.apache.org/activemq/browse/AMQ-2871
             Project: ActiveMQ
          Issue Type: Bug
    Affects Versions: 5.3.2
         Environment: Debian linux 64bit, with:
 java version "1.6.0_18"
OpenJDK Runtime Environment (IcedTea6 1.8) (6b18-1.8-1)
OpenJDK 64-Bit Server VM (build 14.0-b16, mixed mode)

ActiveMQ 5.3.2
            Reporter: Arjen van der Meijden


I have a fairly simple set-up with a single Activemq.

On that AMQ we have a few queue's and topics, where the topics are filled using 
PHP producers with Stomp and four Java subscribers with the normal openwire 
protocol (via a Spring jms listener container). The PHP producers are created 
on demand and send a single, tiny text message when some data needs to be 
adjusted in the Java subscribers.

The problem is that all four consumers sometimes receive a message without such 
a text body. Using tcpdump I deciphered that the incoming Stomp-message 
actually did have a body, so the senders work correctly. Again using tcpdump I 
noticed the messages on the openwire channel are sometimes empty, so the 
problem seems to be with the ActiveMQ server part.

Not all messages fail, but its way too common (a rough estimate would be one in 
ten or so). I also didn't see any message empty when using a OpenWire-producer.

My configuration is rather trivial, its the default config without systemusage 
and destinationpolicy. With the stomp and openwire transporters like so:
<transportConnector name="stomp" 
uri="stomp://0.0.0.0:61613?transport.closeAsync=false"/>


When logging the messages in the subscribers, it looks like this for a correct 
one:
ActiveMQTextMessage {commandId = 3, responseRequired = false, messageId = 
ID:argus-38958-1279890714168-2:66257231:-1:1:1, originalDestination = null, 
originalTransactionId = null, producerId = 
ID:argus-38958-1279890714168-2:66257231:-1:1, destination = 
topic://pw_cache_products, transactionId = null, expiration = 0, timestamp = 
1281801902987, arrival = 0, brokerInTime = 1281801902987, brokerOutTime = 
1281801902988, correlationId = null, replyTo = null, persistent = false, type = 
null, priority = 0, groupID = null, groupSequence = 0, targetConsumerId = null, 
compressed = false, userID = null, content = null, marshalledProperties = null, 
dataStructure = null, redeliveryCounter = 0, size = 0, properties = null, 
readOnlyProperties = true, readOnlyBody = true, droppable = false, text = views 
0}

And like this for an incorrect one:
ActiveMQTextMessage {commandId = 3, responseRequired = false, messageId = 
ID:argus-38958-1279890714168-2:66384399:-1:1:1, originalDestination = null, 
originalTransactionId = null, producerId = 
ID:argus-38958-1279890714168-2:66384399:-1:1, destination = 
topic://pw_cache_products, transactionId = null, expiration = 0, timestamp = 
1281805503252, arrival = 0, brokerInTime = 1281805503252, brokerOutTime = 
1281805503252, correlationId = null, replyTo = null, persistent = false, type = 
null, priority = 0, groupID = null, groupSequence = 0, targetConsumerId = null, 
compressed = false, userID = null, content = null, marshalledProperties = null, 
dataStructure = null, redeliveryCounter = 0, size = 0, properties = null, 
readOnlyProperties = true, readOnlyBody = true, droppable = false, text = null}

I.e. text = null vs text = views 0

I couldn't reproduce this on another system so far. And my production ActiveMQ 
that displays this behaviour gets way to much traffic to put in in 
debug-logging-mode (and I doubt that will offer much insight anyway?). I can 
reproduce it on a newly created topic on the same activemq with only one 
consumer and producer, but not on a separate activemq. Whether that is because 
it has less load or whatever I don't know, the original activemq that does 
exhibit this behaviour has been upgraded and restarted several times since we 
first started noticing the problems that led to this discovery.

My consumers and producers are about the most trivial variants you can think 
off, but the other producers and consumers obviously aren't.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to