我正在使用ActiveMQ 5.6.0和ActiveMQ NMS客户端。

我使用以下代码连接到代理:


var connectionFactory = new ConnectionFactory(
    "failover:(tcp://localhost:61616)?transport.timeout=5000"
    );

connection = connectionFactory.CreateConnection();
connection.Start();

connection.ConnectionResumedListener += OnConnectionResumed;


然后,我停止经纪人并重新启动。之后,在方法OnConnectionResumed中

private void OnConnectionResumed()
{
    var session = connection.CreateSession();

    ...
}


尝试创建会话时,总是会遇到故障转移超时异常。

我究竟做错了什么?

谢谢

最佳答案

出现此问题是因为我在线程中创建了一个会话,其中
继续通话。

正确的代码是:


private void OnConnectionResumed()
{
    Task.Factory.StartNew(() =>
        {
            var session = connection.CreateSession();

            ...
        });
}

关于c# - ActiveMQ-恢复连接后,CreateSession故障转移超时,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11775741/

10-10 21:46