public override void Connect()
{
Monitor.Enter(ManagedConnectionFactory.SyncConnection);
try
{
if (IsConnected || _retryPolicy.IsWaiting)
{
return;
}
_watcher.DebugFormat("Trying to connect to endpoint: '{0}'", ConnectionFactory.Endpoint);
var newConnection = ConnectionFactory.CreateConnection();
newConnection.ConnectionShutdown += SharedConnectionShutdown;
_retryPolicy.Reset();
_nodeTried = 0;
_watcher.InfoFormat("Connected to RabbitMQ. Broker: '{0}', VHost: '{1}'", ConnectionFactory.Endpoint, ConnectionFactory.VirtualHost);
}
catch(ConnectFailureException connectFailureException)
{
HandleConnectionException(connectFailureException);
}
catch (BrokerUnreachableException brokerUnreachableException)
{
HandleConnectionException(brokerUnreachableException);
}
finally
{
Monitor.Exit(ManagedConnectionFactory.SyncConnection);
}
}