2012-08-02 128 views
2

我正在使用ActiveMQ 5.6.0和ActiveMQ NMS客户端。ActiveMQ - 恢复连接后的CreateSession故障转移超时

我连接到使用如下代码经纪人:

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(); 

    ... 
} 

我总是在尝试创建会话时收到故障转移超时异常。

我在做什么错?

感谢

回答

1

这个问题出现了,因为我已经在线程在 恢复呼叫由创建一个会话

正确的代码是:

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

      ... 
     }); 
}