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); }
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); }