Exemplo n.º 1
0
        internal AgentMultiFormatInfoMsg GetLastXDetails()
        {
            AgentMultiFormatInfoMsg  collectorMessage   = new AgentMultiFormatInfoMsg();
            StringBuilder            sbText             = new StringBuilder();
            StringBuilder            sbHtml             = new StringBuilder();
            List <SuspendedInstance> suspendedInstances = new List <SuspendedInstance>();

            if (ShowLastXDetails > 0)
            {
                foreach (string connString in GetMsgBoxConnStrs())
                {
                    foreach (string suspendedQueue in GetHostInstanceSuspendedQs(connString))
                    {
                        string hostName = suspendedQueue.Substring(0, suspendedQueue.Length - 11);
                        if (Hosts.Count == 0 || Hosts.Contains(hostName))
                        {
                            suspendedInstances.AddRange(GetHostSuspendedInstancesLastX(connString, suspendedQueue));
                        }
                    }
                }
            }
            foreach (SuspendedInstance suspendedItem in (from s in suspendedInstances
                                                         orderby s.SuspendTime descending
                                                         select s).Take(ShowLastXDetails))
            {
                sbText.AppendLine(suspendedItem.ToString());
                sbHtml.AppendLine(suspendedItem.ToString(true));
            }
            collectorMessage.RawText  = sbText.ToString();
            collectorMessage.HTMLText = sbHtml.ToString();
            return(collectorMessage);
        }
Exemplo n.º 2
0
        public override MonitorState GetState()
        {
            MonitorState  returnState         = new MonitorState();
            StringBuilder plainTextDetails    = new StringBuilder();
            StringBuilder htmlTextTextDetails = new StringBuilder();
            string        lastAction          = "Getting Suspended counts";
            int           instancesSuspended  = 0;

            try
            {
                BizTalkSuspendedCountCollectorConfigEntry currentConfig = (BizTalkSuspendedCountCollectorConfigEntry)((ICollectorConfig)AgentConfig).Entries[0];
                lastAction         = string.Format("Getting BizTalk Ports and Orchestration Details for {0}.{1}", currentConfig.SqlServer, currentConfig.MgmtDBName);
                instancesSuspended = currentConfig.GetSuspendedMsgsCount();

                if (instancesSuspended < currentConfig.InstancesWarning)
                {
                    returnState.State = CollectorState.Good;
                }
                else if (instancesSuspended >= currentConfig.InstancesError)
                {
                    returnState.State = CollectorState.Error;
                }
                else
                {
                    returnState.State = CollectorState.Warning;
                }

                if (instancesSuspended > 0)
                {
                    plainTextDetails.AppendLine(string.Format("Total suspended count: {0}\r\n", instancesSuspended));
                    htmlTextTextDetails.AppendLine(string.Format("<b>Total suspended count:</b> {0}<hr />\r\n", instancesSuspended));

                    if (returnState.State != CollectorState.Good && currentConfig.ShowLastXDetails > 0)
                    {
                        AgentMultiFormatInfoMsg info = currentConfig.GetLastXDetails();
                        plainTextDetails.AppendLine(info.RawText);
                        htmlTextTextDetails.AppendLine(info.HTMLText);
                    }
                }
                else
                {
                    plainTextDetails.AppendLine("No suspended instances");
                    htmlTextTextDetails.AppendLine("No suspended instances");
                }
                returnState.RawDetails   = plainTextDetails.ToString().TrimEnd('\r', '\n');
                returnState.HtmlDetails  = htmlTextTextDetails.ToString();
                returnState.CurrentValue = instancesSuspended;
            }
            catch (Exception ex)
            {
                returnState.RawDetails  = string.Format("Last step: '{0}\r\n{1}", lastAction, ex.Message);
                returnState.HtmlDetails = string.Format("<blockquote>Last step: '{0}<br />{1}</blockquote>", lastAction, ex.Message);
                returnState.State       = CollectorState.Error;
            }
            return(returnState);
        }