/// <summary> /// /// </summary> /// <returns></returns> public override IConnection Open() { IConnection conn = null; while (HasNext) { try { conn = CreateConnection(); conn.Open(); break; } catch (SocketException exc) { using (TimedLock.Lock(ActiveServers)) { Close(conn); ActiveServers.Remove(conn.Server); conn = null; } } } if (conn == null) { throw new ElasticSearchException("No connection could be made because all servers have failed."); } return(conn); }
/** Delete a selected server */ public bool DeleteServer(string id) { return(ActiveServers.TryRemove(id, out _)); }
/** Adds a new server */ public bool AddServer(Server server) { return(ActiveServers.TryAdd(server.ServerId, server)); }