private void HandleConnectionException(Exception ex)
{
var oldFactory = ConnectionFactory;
var nextFactory = _connectionFactories.GetNext();
if (++_nodeTried < _connectionFactories.All.Count())
{
_watcher.ErrorFormat("Failed to connect to Broker: '{0}:{1}', VHost: '{2}'. Failing over to '{3}:{4}'\nExceptionMessage: {5}",
oldFactory.HostName,
oldFactory.Port,
oldFactory.VirtualHost,
nextFactory.HostName,
nextFactory.Port,
ex.Message);
Connect();
}
else
{
_watcher.ErrorFormat("Failed to connect to Broker: '{0}:{1}', VHost: '{2}'. Failing over to '{3}{4}' after {5}ms\nExceptionMessage: {6}",
oldFactory.HostName,
oldFactory.Port,
oldFactory.VirtualHost,
nextFactory.HostName,
nextFactory.Port,
_retryPolicy.DelayTime,
ex.Message);
_retryPolicy.WaitForNextRetry(Connect);
}
}