You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Jim Gomes (JIRA)" <ji...@apache.org> on 2011/03/16 01:13:29 UTC

[jira] Created: (AMQNET-319) Change default TaskRunnerFactory to create DedicatedTaskRunner

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
             Fix For: 1.5.1


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

[jira] Work started: (AMQNET-319) Change default TaskRunnerFactory to create DedicatedTaskRunner

Posted by "Jim Gomes (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/AMQNET-319?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Work on AMQNET-319 started by Jim Gomes.

> 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
>
>   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

[jira] Work stopped: (AMQNET-319) Change default TaskRunnerFactory to create DedicatedTaskRunner

Posted by "Jim Gomes (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/AMQNET-319?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Work on AMQNET-319 stopped by Jim Gomes.

> 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
>
>   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

[jira] Resolved: (AMQNET-319) Change default TaskRunnerFactory to create DedicatedTaskRunner

Posted by "Jim Gomes (JIRA)" <ji...@apache.org>.
     [ 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