Teddy Bo
Teddy Bo

Reputation: 679

ActiveMQ - CreateSession failover timeout after a connection is resumed

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

Upvotes: 2

Views: 3117

Answers (1)

Teddy Bo
Teddy Bo

Reputation: 679

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

            ...
        });
}

Upvotes: 1

Related Questions