ActiveMQ - CreateSession failover timeout after a

2019-07-24 16:04发布

I'm using ActiveMQ 5.6.0 and ActiveMQ NMS client.

I connect to the broker using the follow code:

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

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

connection.ConnectionResumedListener += OnConnectionResumed;

Then I stop the broker and start it again. After that in the method OnConnectionResumed

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

    ...
}

I always get the failover timeout exception when try to create a session.

What am I doing wrong?

Thanks

标签: c# activemq
1条回答
2楼-- · 2019-07-24 16:38

This problem appeared because I had created a session in the thread where the resumed call is made in.

The correct code is:

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

            ...
        });
}
查看更多
登录 后发表回答