1
votes

I've enabled JMS transactions as described in this document: http://camel.apache.org/transactional-client.html

My queue subscriber is registered as follows: from("jms:queue:xyz).to(MyBean.class)

There are no messages on this queue, but I can see in Camel log, that it starts and ends multiple JMS transactions and this happens multiple times with different thread id. This whole pooling happens in a dead loop running non-stop

Do they really pull for JMS messages in an loop ? Can I switch it to push?

1

1 Answers

3
votes

camel-jms uses Spring JMS MessageListenerContainer for receiving the messages. So you can read about how Spring JMS works to understand it.

But yeah Spring JMS has an event loop where it pull messages from the remote JMS broker, and has a default timeout of 1 sec which allows it to react upon scaling up / down / shutdown etc. This is the option named receiveTimeout.