Camel 2.0 jms producer/consumer log indications around replies and persistence

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

Camel 2.0 jms producer/consumer log indications around replies and persistence

by huntc :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi there,

I've just noted something non-intuitive in the Camel 2.0 debug logs that'd be great to have explained.

My scenario is that I wish to send out an exchange to a JMS queue endpoint. I require persistence of the exchange by the broker. I do not require a response.

Similarly the queue is to receive exchanges and not send back a response.

Here is how the producer is defined:

.to(ExchangePattern.InOnly,
                                "jms-sender:com.classactionpl.saveGPSTrackerCollection")

Here is how the consumer is defined:

from("jms-receiver:com.classactionpl.saveGPSTrackerCollection")
                                .inOnly()

jms-sender and jms-receiver are defined as ActiveMQComponents.

From the doco the above should be enough I would have thought. Persistence is provided by default for JMS endpoints. The use of the inOnly exchange pattern should be sufficient to indicate that a reply is not required.

However when sending the message the log shows:

2009-08-30 12:24:01,968 [mousIoService-1] DEBUG Configuration$CamelJmsTemplate - Sending JMS message to: queue://com.classactionpl.saveGPSTrackerCollection with message: ActiveMQObjectMessage {commandId = 0, responseRequired = false, messageId = null, originalDestination = null, originalTransactionId = null, producerId = null, destination = null, transactionId = null, expiration = 0, timestamp = 0, arrival = 0, brokerInTime = 0, brokerOutTime = 0, correlationId = null, replyTo = null, persistent = false, type = null, priority = 0, groupID = null, groupSequence = 0, targetConsumerId = null, compressed = false, userID = null, content = org.apache.activemq.util.ByteSequence@67ce08c7, marshalledProperties = null, dataStructure = null, redeliveryCounter = 0, size = 0, properties = {collectionIdentification=urn:x-com-classactionpl-becatech-sentinel-trackers:/cn=Becatech Demo Trackers,dc=becatech,dc=com,ou=tracker-collections,ou=groups,ou=system}, readOnlyProperties = false, readOnlyBody = false, droppable = false}

responseRequired = false which is what I would expect. However persistent = false obviously suggests that the exchange will not be persisted by the broker. Is this indeed the case?

For the response:

2009-08-30 12:24:02,013 [enerContainer-1] DEBUG EndpointMessageListener        - Endpoint[jms-receiver://com.classactionpl.saveGPSTrackerCollection] consumer receiving JMS message: ActiveMQObjectMessage {commandId = 5, responseRequired = true, messageId = ID:Christopher-Hunts-MacBook-Air.local-58232-1251599040542-2:1:1:1:1, originalDestination = null, originalTransactionId = null, producerId = ID:Christopher-Hunts-MacBook-Air.local-58232-1251599040542-2:1:1:1, destination = queue://com.classactionpl.saveGPSTrackerCollection, transactionId = null, expiration = 0, timestamp = 1251599041968, arrival = 0, brokerInTime = 1251599041969, brokerOutTime = 1251599041992, correlationId = null, replyTo = null, persistent = true, type = null, priority = 4, groupID = null, groupSequence = 0, targetConsumerId = null, compressed = false, userID = null, content = org.apache.activemq.util.ByteSequence@67ce08c7, marshalledProperties = org.apache.activemq.util.ByteSequence@51707653, dataStructure = null, redeliveryCounter = 0, size = 4675, properties = {collectionIdentification=urn:x-com-classactionpl-becatech-sentinel-trackers:/cn=Becatech Demo Trackers,dc=becatech,dc=com,ou=tracker-collections,ou=groups,ou=system}, readOnlyProperties = true, readOnlyBody = true, droppable = false}

This time I see responseRequired = true (which it isn't) and persistent=true. I'm presuming that the persistent=true is with respect to the response, if there was one, which there isn't. Why though is responseRequired=true?

Thank you for helping me understand what Camel is stating.

Kind regards,
Christopher