NMS Failover causes CPU utilization to spike if ActiveMQ is stopped.
--------------------------------------------------------------------

                 Key: AMQNET-241
                 URL: https://issues.apache.org/activemq/browse/AMQNET-241
             Project: ActiveMQ .Net
          Issue Type: Bug
          Components: ActiveMQ
    Affects Versions: 1.2.0
         Environment: .NET 3.5
            Reporter: Ted Carroll
            Assignee: Jim Gomes
         Attachments: NMS_Failover_CPU_Spike1.patch

1)  Configure a simple program that attempts to connect to ActiveMQ with the 
url "activemq:failover:(tcp://localhost:61616)"
2)  Make sure activemq is not running on the local host
3)  Try to connect.
4)  Notice that the CPU utilization in the sample program is high.
5)  Start ActiveMQ.
6)  Notice that the connection is successful but the CPU utilization remains 
high.

Expected:
I expect, potentially, an initial spike in CPU utilization but not sustained 
high CPU.

Diagnosis:

In FailoverTransport.DoConnect() there is the following if statement:

                if(ConnectedTransport != null || disposed || connectionFailure 
!= null) 
                { 
                    return false; 
                } 
                else 

it apears that connectionFailure is set and never reset.  Then the 
FailoverTask.Iterate() calls into DoConnect only to return false immediately 
every time.

I have attached a patch, but I would be uncomfortable calling it a long term 
solution as I've not had the time to fully understand the code in question.  
However, it seems to improve the behavior.



-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to