[ https://issues.apache.org/jira/browse/AMQNET-319?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jim Gomes resolved AMQNET-319. ------------------------------ Resolution: Fixed Fix Version/s: 1.6.0 > Change default TaskRunnerFactory to create DedicatedTaskRunner > -------------------------------------------------------------- > > Key: AMQNET-319 > URL: https://issues.apache.org/jira/browse/AMQNET-319 > Project: ActiveMQ .Net > Issue Type: Improvement > Components: ActiveMQ > Affects Versions: 1.5.0 > Environment: .NET 2.0, .NET 3.5, .NET 4.0 > Reporter: Jim Gomes > Assignee: Jim Gomes > Labels: failover, threading > Fix For: 1.5.1, 1.6.0 > > Original Estimate: 6h > Remaining Estimate: 6h > > The TaskRunnerFactory creates a PooledTaskRunner that serializes the > background worker threads. This can create a non-optimal runtime where > asynchronous tasks become synchronous, and can get stuck behind a > long-running task. This is observed when starting an application that makes > many different connections to brokers using the failover protocol. The > actual connection steps are done in a background thread. One broker takes a > long time to initialize the connection, and the others are fast > initialization connections. All of the fast initialization connections get > stuck behind the slow connection. It would be assumed that these connection > initializations should be running simultaneously. If there is a run-time > connection interruption, and the failover protocol has to re-connect, the > same thing will happen again. This severely degrades the performance of an > application. > The solution is to change the TaskRunnerFactory to create a > DedicatedTaskRunner. This gives the expected and desired result where the > connection initializations execute simultaneously without being queued up. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira