2012-08-02 135 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(); 

      ... 
     }); 
}