When setting optimizedDispatch the transport thread will directly do the
dispatch to queue, otherwise a broker task thread does it.

If you want to get a better understanding you can either dig into code or
(simpler) look at some traces, e.g. setting DEBUG level trace for:
 org.apache.activemq.broker, org.apache.activemq.thread,
org.apache.activemq.transport
Then process a message and look at the log output including thread names for
certain actions.

The task threads in the thread dump are named as BrokerService[mqbrokerdev]
Task-1, Task-2.

Regarding thread reduction. You will not see this directly in the thread
overview as the threads are created on demand and might be gone already
doing the thread dump. Setting UseDedicatedTaskRunner=true creates a
dedicated thread for each task. Setting it to false uses a PooledTaskRunner
and a thread from a thread pool.
The difference is only obvious in the thread dump if there is really a lot
of traffic on the broker.

By the way. If org.apache.activemq.UseDedicatedTaskRunner is not explicitly
set to true, then thread pooling will be used.



--
View this message in context: 
http://activemq.2283324.n4.nabble.com/What-is-the-effect-of-dedicatedTaskRunner-Attribute-tp2363191p4677849.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Reply via email to