[
https://issues.apache.org/jira/browse/AMQ-3214?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Minh Do updated AMQ-3214:
-------------------------
Description:
-Have a multi-thread consumers running to consumer messages
-Have Connection to have these :
ActiveMQConnectionFactory connectionFactory = new
ActiveMQConnectionFactory(brokerUrl);
connectionFactory.setUseAsyncSend(false);
connectionFactory.setDispatchAsync(false);
connectionFactory.setAlwaysSessionAsync(false);
connectionFactory.setAlwaysSyncSend(true);
-Run the consumers for several hours and profile it
-You will see there are threads with the name "InactivityMonitor Async Task"
being spawning continuously
This will cause the entire consumer system to slow down eventually due to
thread context switching.
Suggestion to fix: we should not put a limit on the number of
"InactivityMonitor Async Task" threads to be Max Integer. There is a bug in
Java lib that
it will not stop a thread after a given idle time-to-live. We could fix this in
the file InactivityMonitor.java
was:
-Have a multi-thread consumers running to consumer messages
-Have Connection to have these :
ActiveMQConnectionFactory connectionFactory = new
ActiveMQConnectionFactory(brokerUrl);
connectionFactory.setUseAsyncSend(false);
connectionFactory.setDispatchAsync(false);
connectionFactory.setAlwaysSessionAsync(false);
connectionFactory.setAlwaysSyncSend(true);
-Run the consumers for several hours and profile it
-You will see there are threads with the name "InactivityMonitor Async Task"
being spawning continuously
This will cause the entire consumer system to slow down eventually due to
thread context switching.
Summary: "InactivityMonitor Async Task" threads leaking (was:
Re-evaluate the use of ExecutorService.newCachedThreadPool() in places as there
are threads leaking. For instance, after profiling, I saw there were over 100
threads with the name "InactivityMonitor Async Task".)
> "InactivityMonitor Async Task" threads leaking
> ----------------------------------------------
>
> Key: AMQ-3214
> URL: https://issues.apache.org/jira/browse/AMQ-3214
> Project: ActiveMQ
> Issue Type: Bug
> Components: JMS client, Transport
> Reporter: Minh Do
> Priority: Critical
> Fix For: 5.5.0
>
> Original Estimate: 1h
> Remaining Estimate: 1h
>
> -Have a multi-thread consumers running to consumer messages
> -Have Connection to have these :
> ActiveMQConnectionFactory connectionFactory = new
> ActiveMQConnectionFactory(brokerUrl);
> connectionFactory.setUseAsyncSend(false);
> connectionFactory.setDispatchAsync(false);
> connectionFactory.setAlwaysSessionAsync(false);
> connectionFactory.setAlwaysSyncSend(true);
> -Run the consumers for several hours and profile it
> -You will see there are threads with the name "InactivityMonitor Async Task"
> being spawning continuously
> This will cause the entire consumer system to slow down eventually due to
> thread context switching.
> Suggestion to fix: we should not put a limit on the number of
> "InactivityMonitor Async Task" threads to be Max Integer. There is a bug in
> Java lib that
> it will not stop a thread after a given idle time-to-live. We could fix this
> in the file InactivityMonitor.java
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira