Exemplo n.º 1
0
 public virtual void OnClientConnectivityChange(string cacheId, Runtime.Caching.ClientInfo clientInfo,
                                                ConnectivityStatus status)
 {
     if (_listener != null)
     {
         _listener.OnClientConnectivityChange(cacheId, clientInfo, status);
     }
 }
Exemplo n.º 2
0
 public void Deserialize(Common.Serialization.IO.CompactReader reader)
 {
     LastHeartbeatTimestamp   = reader.ReadDateTime();
     CurrentMembership        = reader.ReadObject() as Membership;
     MissingHeartbeatsCounter = reader.ReadInt32();
     LastOplogOperationId     = reader.ReadObject() as OperationId;
     CSStatus = (ConnectivityStatus)reader.ReadInt32();
 }
 public virtual void OnClientConnectivityChange(string cacheId, Runtime.Caching.ClientInfo clientInfo,
                                                ConnectivityStatus status)
 {
     if (_parent._cacheClientConnectivityChanged != null)
     {
         _parent._cacheClientConnectivityChanged.Invoke(cacheId, clientInfo, status);
     }
 }
 public ClientConnectivityChangeTask(Broker parent, string cacheId, ClientInfo clientInfo,
                                     ConnectivityStatus status)
 {
     cacheId     = _cacheId;
     _clientInfo = clientInfo;
     _status     = status;
     _parent     = parent;
 }
Exemplo n.º 5
0
 private void CallService()
 {
     if (ConnectivityStatus.IsConnected())
     {
         var online = RefreshData();
         PlanetList        = new ObservableCollection <Planet>(online);
         this.IsRefreshing = false;
     }
 }
Exemplo n.º 6
0
 public NetConnectivityArgs(ConnectivityStatus conStatus, NetConnectionType conType, double?wLinkSpeed, double?eLinkSpeed, NetworkInterface currEth, WlanClient.WlanInterface currWlan)
 {
     this.ConnectionStatus = conStatus;
     this.ConnectionType   = conType;
     this.WifiLinkSpeed    = wLinkSpeed;
     this.EthLinkSpeed     = eLinkSpeed;
     this.CurrentEthIf     = currEth;
     this.CurrentWlanIf    = currWlan;
 }
Exemplo n.º 7
0
        public void Deserialize(CompactReader reader)
        {
            AppName     = reader.ReadString();
            ClientID    = reader.ReadString();
            MachineName = reader.ReadString();
            ProcessID   = reader.ReadInt32();
            string address = reader.ReadObject() as string;

            if (address != null)
            {
                IPAddress = IPAddress.Parse(address);
            }
            Status = (ConnectivityStatus)reader.ReadInt32();
        }
Exemplo n.º 8
0
        private void UIUpdateConnectivity(ConnectivityStatus connectionStatus)
        {
            try
            {
                switch (connectionStatus)
                {
                case ConnectivityStatus.Internet:
                    LabelConnectivityValue.Content    = "Internet (Layer 4 / TCP)";
                    LabelConnectivityValue.Foreground = new SolidColorBrush(Color.FromArgb(100, 39, 216, 0));
                    break;

                case ConnectivityStatus.Layer4:
                    LabelConnectivityValue.Content    = "Internet (Layer 4 / TCP)";
                    LabelConnectivityValue.Foreground = new SolidColorBrush(Color.FromArgb(100, 39, 216, 0));
                    break;

                case ConnectivityStatus.Layer3:
                    LabelConnectivityValue.Content    = "Internet (Layer 3 / ICMP)";
                    LabelConnectivityValue.Foreground = new SolidColorBrush(Toolbox.ColorFromHex("#FFC9DC05"));
                    break;

                case ConnectivityStatus.Local:
                    LabelConnectivityValue.Content    = "Local (Gateway Only)";
                    LabelConnectivityValue.Foreground = new SolidColorBrush(Color.FromArgb(100, 207, 228, 0));
                    break;

                case ConnectivityStatus.None:
                    LabelConnectivityValue.Content    = "None (Can't Reach Gateway)";
                    LabelConnectivityValue.Foreground = new SolidColorBrush(Color.FromArgb(100, 255, 0, 0));
                    break;

                case ConnectivityStatus.DNSError:
                    LabelConnectivityValue.Content    = "DNS Error Occured";
                    LabelConnectivityValue.Foreground = new SolidColorBrush(Color.FromArgb(100, 223, 0, 224));
                    break;

                case ConnectivityStatus.DHCPError:
                    LabelConnectivityValue.Content    = "DHCP Error Occured";
                    LabelConnectivityValue.Foreground = new SolidColorBrush(Color.FromArgb(100, 223, 0, 224));
                    break;
                }
            }
            catch (Exception ex)
            {
                uDebugLogAdd($"ConnectivityUI update failure: {ex.Message}", DebugType.FAILURE);
            }
        }
Exemplo n.º 9
0
        public IEnumerable <Planet> RefreshData()
        {
            var planets = new List <Planet>();

            if (ConnectivityStatus.IsConnected())
            {
                this.IsRefreshing = true;

                Task.Run(async() => await App.Service.GetPlanetsAsync().ContinueWith(taskResult =>
                {
                    if (taskResult.IsCompleted && !taskResult.IsFaulted)
                    {
                        taskResult.Result.ForEach(e => planets.Add(new Planet {
                            Name = e.Name, Picture = e.Picture
                        }));
                    }
                })).Wait();
            }

            return(planets);
        }
Exemplo n.º 10
0
        private string GetMessage(ConnectivityStatus connectivityStatus)
        {
            switch (connectivityStatus)
            {
            case ConnectivityStatus.LogginIn:
                return("Logging in...");

            case ConnectivityStatus.RetrievingList:
                return("Retrieving the list...");

            case ConnectivityStatus.Online:
                return("Ready");

            case ConnectivityStatus.Uploading:
                return("Uploading...");

            case ConnectivityStatus.Downloading:
                return("Downloading...");

            case ConnectivityStatus.Failed:
                return(string.Format("Exception Found ({0})", LastApiError));
            }
            return(string.Empty);
        }
Exemplo n.º 11
0
        public void Run()
        {
            LoggerManager.Instance.SetThreadContext(new LoggerContext()
            {
                ShardName = _context.LocalShardName != null ? _context.LocalShardName : "", DatabaseName = ""
            });
            _context.StatusLatch.WaitForAny(NodeStatus.Running);
            _startSignal.WaitOne();

            if (_context.ConfigurationSession != null)
            {
                ((OutProcConfigurationSession)_context.ConfigurationSession).RegisterListener(this);
            }

            while (_running)
            {
                try
                {
                    if (_node == null)
                    {
                        _clusterConfigMgr.UpdateClusterConfiguration();
                    }

                    if (_clusterConfigMgr != null)
                    {
                        ShardConfiguration sConfig = _clusterConfigMgr.GetShardConfiguration(_context.LocalShardName);
                        if (sConfig != null && sConfig.Servers != null)
                        {
                            _node = sConfig.Servers.GetServerNode(_context.LocalAddress.IpAddress.ToString());
                        }
                    }
                    if (_node == null && LoggerManager.Instance.ShardLogger != null &&
                        LoggerManager.Instance.ShardLogger.IsWarnEnabled)
                    {
                        LoggerManager.Instance.ShardLogger.Warn("NodeToCSHeartbeatTask.Run() ", "Node " + _context.LocalAddress.ToString() +
                                                                " is not part of the configuration.");
                        return;
                    }
                    OperationId lastOpId = null;
                    if (_membershipManager != null && _membershipManager.LatestMembership != null && _membershipManager.LatestMembership.Primary != null && _membershipManager.LatestMembership.Primary.Name.Equals(_context.LocalAddress.IpAddress.ToString()))
                    {
                        lastOpId = _membershipManager.GetLastOperationId;
                    }
                    Stopwatch watch = new Stopwatch();
                    watch.Start();
                    _heartbeatInterval =
                        _context.ConfigurationSession.ReportHeartbeat(_context.ClusterName, _context.LocalShardName,
                                                                      _node, _membershipManager.LatestMembership, lastOpId) * 1000;
                    watch.Stop();
                    _csStatus = ConnectivityStatus.Connected;
                    if (LoggerManager.Instance.ShardLogger != null && LoggerManager.Instance.ShardLogger.IsDebugEnabled)
                    {
                        LoggerManager.Instance.ShardLogger.Debug("NodeToCSHeartbeatTask.Run() ", "Heartbeat sent to the CS at " +
                                                                 DateTime.Now.ToString() + " time taken to report heartbeat :" + watch.Elapsed.TotalSeconds);
                    }
                    if (_heartbeatInterval > 0 && (watch.Elapsed.TotalSeconds > _heartbeatInterval / 2))
                    {
                        if (LoggerManager.Instance.ShardLogger != null && LoggerManager.Instance.ShardLogger.IsErrorEnabled)
                        {
                            LoggerManager.Instance.ShardLogger.Error("NodeToCSHeartbeatTask.Run() ", "Heartbeat sent to the CS at " +
                                                                     DateTime.Now.ToString() + " time taken to report heartbeat :" + watch.Elapsed.TotalSeconds + " which is greater than half of the hb interval.");
                        }
                    }
                }
                catch (ThreadAbortException e)
                {
                    if (LoggerManager.Instance.ShardLogger != null && LoggerManager.Instance.ShardLogger.IsErrorEnabled && _nodeToCSThread != null)
                    {
                        LoggerManager.Instance.ShardLogger.Error(_nodeToCSThread.Name, "Task aborted.");
                    }
                    break;
                }
                //the following should only be done when a connection exception occurs.
                catch (ChannelException e)
                {
                    if (LoggerManager.Instance.ShardLogger != null)
                    {
                        if (LoggerManager.Instance.ShardLogger.IsErrorEnabled)
                        {
                            LoggerManager.Instance.ShardLogger.Error("NodeToCSHeartbeatTask.Run()  ", e.ToString());
                        }
                        if (LoggerManager.Instance.ShardLogger.IsDebugEnabled)
                        {
                            LoggerManager.Instance.ShardLogger.Debug("NodeToCSHeartbeatTask.Run() ",
                                                                     "On CS disconnected process of the membership manager begins execution at " +
                                                                     DateTime.Now.ToString());
                        }
                    }

                    _csStatus = ConnectivityStatus.NotConnected;
                    _membershipManager.OnCSDisconnected();
                    if (LoggerManager.Instance.ShardLogger != null && LoggerManager.Instance.ShardLogger.IsDebugEnabled)
                    {
                        LoggerManager.Instance.ShardLogger.Debug("NodeToCSHeartbeatTask.Run() ", "The NodeToCS task paused at " +
                                                                 DateTime.Now.ToString());
                    }

                    //foreach (var cluster in ManagementServer.s_DbmNodeConfiguration.DbmClusters.ClustersConfigurations)
                    //{
                    //    string csIp = cluster.ConfigServers.Nodes[0].Name;
                    //    int csPort = cluster.ConfigServers.Nodes[0].Port;

                    //    BrokenConnectionInfo info = new BrokenConnectionInfo();
                    //    info.BrokenAddress = new Address(csIp, csPort);
                    //    info.SessionType = Common.Communication.SessionTypes.Management;

                    //    _connectionRestoration.RegisterListener(info, this,_context.LocalShardName);
                    //}


                    this.Pause();
                }
                catch (Exception e)
                {
                    if (LoggerManager.Instance.ShardLogger != null && LoggerManager.Instance.ShardLogger.IsErrorEnabled)
                    {
                        LoggerManager.Instance.ShardLogger.Error("NodeToCSHbTask.Run() General Exception: ",
                                                                 e.ToString());
                    }

                    if (e.Message.Contains("No configuration server is available to process the request"))
                    {
                        _csStatus = ConnectivityStatus.NotConnected;
                        _membershipManager.OnCSDisconnected();
                        if (LoggerManager.Instance.ShardLogger != null && LoggerManager.Instance.ShardLogger.IsDebugEnabled)
                        {
                            LoggerManager.Instance.ShardLogger.Debug("NodeToCSHeartbeatTask.Run() ", "The NodeToCS task paused at " +
                                                                     DateTime.Now.ToString());
                        }
                        this.Pause();
                    }
                }
                Stopwatch sleepWatch = new Stopwatch();
                sleepWatch.Start();
                Thread.Sleep(_heartbeatInterval);
                _startSignal.WaitOne();
                sleepWatch.Stop();

                if (sleepWatch.Elapsed.TotalMilliseconds > (_heartbeatInterval + 2000))
                {
                    if (LoggerManager.Instance.ShardLogger != null && LoggerManager.Instance.ShardLogger.IsDebugEnabled)
                    {
                        LoggerManager.Instance.ShardLogger.Debug("NodeToCSHeartbeatTask.Run() ", "CS task waited for  " + sleepWatch.Elapsed.TotalSeconds);
                    }
                }
            }
        }
Exemplo n.º 12
0
        internal static ClientConnectivityChangeEventResponse GetClientConnectivityChangeEventResponse(string cacheId,
                                                                                                       Runtime.Caching.ClientInfo client, ConnectivityStatus status)
        {
            ClientConnectivityChangeEventResponse response = new ClientConnectivityChangeEventResponse();

            response.cacheId    = cacheId;
            response.status     = (int)status;
            response.clientInfo = new Common.Protobuf.ClientInfo();

            response.clientInfo.appName     = client.AppName;
            response.clientInfo.machineName = client.MachineName;
            response.clientInfo.ipAddress   = client.IPAddress.ToString();
            response.clientInfo.clientId    = client.ClientID;
            response.clientInfo.processId   = client.ProcessID;

            return(response);
        }
Exemplo n.º 13
0
 /// <summary>
 /// Converts the <see cref="sourceValue" /> parameter to the <see cref="destinationType" /> parameter using <see cref="formatProvider"
 /// /> and <see cref="ignoreCase" />
 /// </summary>
 /// <param name="sourceValue">the <see cref="System.Object"/> to convert from</param>
 /// <param name="destinationType">the <see cref="System.Type" /> to convert to</param>
 /// <param name="formatProvider">not used by this TypeConverter.</param>
 /// <param name="ignoreCase">when set to <c>true</c>, will ignore the case when converting.</param>
 /// <returns>
 /// an instance of <see cref="ConnectivityStatus" />, or <c>null</c> if there is no suitable conversion.
 /// </returns>
 public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConnectivityStatus.CreateFrom(sourceValue);
Exemplo n.º 14
0
        public static void TriggerNetConnectivityUpdate(ConnectivityStatus conStatus, NetConnectionType conType, double?wLinkSpeed, double?eLinkSpeed, NetworkInterface currEth, WlanClient.WlanInterface currWlan)
        {
            NetConnectivityArgs args = new NetConnectivityArgs(conStatus, conType, wLinkSpeed, eLinkSpeed, currEth, currWlan);

            NetConnectivityChanged(args);
        }
Exemplo n.º 15
0
        //tworzy obiekt z informacjami o stanie połaćzenia z blipem
        private TitleMessageViewModel SetConnectivityStatus(ConnectivityStatus connectivityStatus)
        {
            switch (connectivityStatus)
            {
                case ConnectivityStatus.Online:
                    return new TitleMessageViewModel()
                    {
                        Title = AppMessages.OnlineTitle,
                        Message = AppMessages.OnlineMessage
                    };
                case ConnectivityStatus.Offline:

                    return new TitleMessageViewModel()
                    {
                        Title = AppMessages.OfflineTitle,
                        Message = AppMessages.OfflineMessage
                    };

                default:
                    return null;

            }
        }