activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jim Gomes (JIRA)" <>
Subject [jira] Resolved: (AMQNET-319) Change default TaskRunnerFactory to create DedicatedTaskRunner
Date Wed, 16 Mar 2011 20:44:29 GMT


Jim Gomes resolved AMQNET-319.

       Resolution: Fixed
    Fix Version/s: 1.6.0

> Change default TaskRunnerFactory to create DedicatedTaskRunner
> --------------------------------------------------------------
>                 Key: AMQNET-319
>                 URL:
>             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:

View raw message