1
votes

We are facing an issue, where sending a JMS message to a particular queue ,from camel java DSL route, taking almost 20 secs which is very bad response for us. Here running with only single thread, no multiple threads.

Could you please give some pointers, what could be reasons for the delay. Is it the scenario where producer got hung, due to producer flow control is enabled in ActiveMq broker configuration. if it is, how to deal with it?

Please find logs here:

015-11-13 12:25:43,733 | DEBUG | r[GET_QUERY_QUEUE] | JmsConfiguration | 162 - org.apache.camel.camel-jms - 2.10.2.1-SNAPSHOT | Sending JMS message to: temp-queue://ID:test-portal-01-53869-1447403844710-5:1:6 with message: ActiveMQObjectMessage {commandId = 0, responseRequired = false, messageId = null, originalDestination = null, originalTransactionId = null, producerId = null, destination = null, transactionId = null, expiration = 1447406874046, timestamp = 0, arrival = 0, brokerInTime = 0, brokerOutTime = 0, correlationId = Camel-ID-msc-01-58624-1447403845629-15-4289

2015-11-13 12:26:03,355 | DEBUG | r[GET_QUERY_QUEUE] | TemporaryQueueReplyManager | 162 - org.apache.camel.camel-jms - 2.10.2.1-SNAPSHOT | Received reply message with correlationID [Camel-ID-msc-pcen-portal-01-58624-1447403845629-15-4289] -> ActiveMQObjectMessage {commandId = 70773, responseRequired = true, messageId = ID:msc-pcen-portal-01-53869-1447403844710-5:1:91:83:1, originalDestination = null, originalTransactionId = null, producerId = ID:msc-pcen-portal-01-53869-1447403844710-5:1:91:83, destination = temp-queue://test-portal-01-53869-1447403844710-5:1:6, transactionId = null, expiration = 0, timestamp = 1447406743733, arrival = 0, brokerInTime = 1447406763354, brokerOutTime = 1447406763354, correlationId = Camel-ID-msc-01-58624-1447403845629-15-4289,

2015-11-13 12:25:39,046 | DEBUG | [RETRIEVAL_QUERY] | JmsConfiguration | 162 - org.apache.camel.camel-jms - 2.10.2.1-SNAPSHOT | Sending JMS message to: queue://GET_QUERY_QUEUE with message: ActiveMQObjectMessage {commandId = 0, responseRequired = false, messageId = null, originalDestination = null, originalTransactionId = null, producerId = null, destination = null, transactionId = null, expiration = 1447406870890, timestamp = 0, arrival = 0, brokerInTime = 0, brokerOutTime = 0, correlationId = Camel-ID-msc-01-58624-1447403845629-15-4289

2015-11-13 12:25:43,624 | DEBUG | r[GET_QUERY_QUEUE] | EndpointMessageListener | 162 - org.apache.camel.camel-jms - 2.10.2.1-SNAPSHOT | Endpoint[jmsvm://queue:GET_QUERY_QUEUE?concurrentConsumers=1&maxConcurrentConsumers=10] consumer received JMS message: ActiveMQObjectMessage {commandId = 70677, responseRequired = true, messageId = ID:msc-pcen-portal-01-53869-1447403844710-5:1:125:101:1, originalDestination = null, originalTransactionId = null, producerId = ID:msc-pcen-portal-01-53869-1447403844710-5:1:125:101, destination = queue://GET_QUERY_QUEUE, transactionId = null, expiration = 1447406874046, timestamp = 1447406739046, arrival = 0, brokerInTime = 1447406743623, brokerOutTime = 1447406743623, correlationId = Camel-ID-msc-01-58624-1447403845629-15-4289,

1

1 Answers

2
votes

Sounds like you are doing request/reploy over JMS by mistake and that bt default uses a 20 sec timeout to wait for a reply message. If you want to just send a message to a queue in fire and forget style, then make sure to set the message exchange pattern to InOnly.

See about these EIPs