What is the relation of numberOfConcurrentTransactedReceivers with the number of threads mule spawns

838 views Asked by At

I understand that mule has 3 thread pools and how they work, however I am amazed at the lack of documentation around numberOfConcurrentTransactedReceivers, there is virtually nothing that talks about it directly not even Dossots book.

There is one blog post which indirectly mentions it, but nothing concrete.

This answer here calls a hidden feature :), can someone please shed some light on it ?, and how is it related to the threading profile, maxActiveThreads and so on...

1

There are 1 answers

0
Sudarshan On BEST ANSWER

After a fair bit of looking around this is what I have found...

numberOfConcurrentTransactedReceivers is important and undocumented !!

The behavior depends on the connector it is being used with, so this may not be a complete answer, however it is my attempt at starting something. I am happy to mark a new answer as correct if it is more complete


Only transactional message sources use numberOfConcurrentTransactedReceivers.It defines the number of threads that will be triggering messages from the message source at the same time.

Threading profiles maxThreads is not taken into account by this transports. So configuring it is useless. Nevertheless if you set the receiver threading profile doThreading attribute to false explicitly it will disable the use of numberOfConcurrentTransactedReceivers.

For example take the JMS Transport

  1. For queues which are not using XA transactions, use numberOfConsumers.
  2. For queues using XA transactions, use numberOfConcurrentTransactedReceivers
  3. For topics, do not use any of them as Mule will always create a single consumer.