[
https://issues.apache.org/jira/browse/AMQNET-561?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Oleg Kozakevych updated AMQNET-561:
-----------------------------------
Description:
Looks like the issue reappeared again.
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.
The stack points to the TcpTransport.ReadLoop() method.
I tried to add Thread.Sleep(10); into this loop and CPU isn't consumed, but I
suppose this is not a good fix for that problem.
was:
Looks like the issue reappeared again.
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.
> CLONE - NMS Failover causes CPU utilization to spike if ActiveMQ is stopped.
> ----------------------------------------------------------------------------
>
> Key: AMQNET-561
> URL: https://issues.apache.org/jira/browse/AMQNET-561
> Project: ActiveMQ .Net
> Issue Type: Bug
> Components: ActiveMQ
> Affects Versions: 1.7.2
> Environment: .NET 3.5
> Reporter: Oleg Kozakevych
> Assignee: Timothy Bish
>
> Looks like the issue reappeared again.
> 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.
> The stack points to the TcpTransport.ReadLoop() method.
> I tried to add Thread.Sleep(10); into this loop and CPU isn't consumed, but I
> suppose this is not a good fix for that problem.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)