Ejemplo n.º 1
0
        //public static Tuple<int, int> GetGapSizeInfo()
        //{
        //    _gapRWSync.EnterReadLock();
        //    try
        //    {
        //        var gapSize = 0;
        //        for (int i = 0; i < GapSegments; i++)
        //            gapSize += _gaps[i].Count;

        //        _peakGapSize = Math.Max(_peakGapSize, gapSize);
        //        return new Tuple<int, int>(gapSize, _peakGapSize);
        //    }
        //    finally
        //    {
        //        _gapRWSync.ExitReadLock();
        //    }
        //}

        public static void SetGapSizeCounter()
        {
            var result = 0;

            for (int i = 0; i < GapSegments; i++)
            {
                result += _gaps[i].Count;
            }

            // set perf counter
            CounterManager.SetRawValue(COUNTERNAME_GAPSIZE, Convert.ToInt64(result));
        }
Ejemplo n.º 2
0
        internal virtual void OnMessageReceived(Stream messageBody)
        {
            ClusterMessage message = m_formatter.Deserialize(messageBody);

            lock (_messageListSwitchSync)
            {
                _incomingMessages.Add(message);
                CounterManager.SetRawValue("IncomingMessages", Convert.ToInt64(_incomingMessages.Count));
                var totalMessages = _incomingMessages.Count + _messagesCount;
                CounterManager.SetRawValue("TotalMessagesToProcess", Convert.ToInt64(totalMessages));
                //_incomingMessageSignal.Set();
            }
        }
Ejemplo n.º 3
0
        private static bool IsDelayingRequestsNecessary(bool requestsCurrentlyDelayed)
        {
            // by default we keep current working mode
            var delayingRequestsNecessary = requestsCurrentlyDelayed;

            // check if we need to switch off/on delaying
            var incomingMessageCount = DistributedApplication.ClusterChannel.IncomingMessageCount;

            if (!requestsCurrentlyDelayed && incomingMessageCount > Configuration.Messaging.DelayRequestsOnHighMessageCountUpperLimit)
            {
                delayingRequestsNecessary = true;
            }
            if (requestsCurrentlyDelayed && incomingMessageCount < Configuration.Messaging.DelayRequestsOnHighMessageCountLowerLimit)
            {
                delayingRequestsNecessary = false;
            }

            CounterManager.SetRawValue("DelayingRequests", delayingRequestsNecessary ? 1 : 0);
            return(delayingRequestsNecessary);
        }
Ejemplo n.º 4
0
        private static bool IsDelayingRequestsNecessary(bool requestsCurrentlyDelayed)
        {
            // by default we keep current working mode
            var delayingRequestsNecessary = requestsCurrentlyDelayed;

            // check if we need to switch off/on delaying
            var incomingMessageCount = DistributedApplication.ClusterChannel.IncomingMessageCount;

            if (!requestsCurrentlyDelayed && incomingMessageCount > RepositoryConfiguration.DelayRequestsOnHighMessageCountUpperLimit)
            {
                delayingRequestsNecessary = true;
                //Logger.WriteInformation("Requests are now being delayed (IncomingMessageCount reached configured upper limit: " + incomingMessageCount.ToString() + ")");
            }
            if (requestsCurrentlyDelayed && incomingMessageCount < RepositoryConfiguration.DelayRequestsOnHighMessageCountLowerLimit)
            {
                delayingRequestsNecessary = false;
                //Logger.WriteInformation("Request delaying is now switched off (IncomingMessageCount reached configured lower limit: " + incomingMessageCount.ToString() + ")");
            }

            CounterManager.SetRawValue("DelayingRequests", delayingRequestsNecessary ? 1 : 0);
            return(delayingRequestsNecessary);
        }