Пример #1
0
        /// <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));
 }