private IEnumerable <SuspendedInstance> GetHostSuspendedInstances(string connString, string hostInstanceSuspendedQ) { List <SuspendedInstance> suspendedInstances = new List <SuspendedInstance>(); DataSet results = new DataSet(); string hostName = hostInstanceSuspendedQ.Substring(0, hostInstanceSuspendedQ.Length - 11); string appFilter = ""; if (Apps.Count > 0) { foreach (string app in Apps) { appFilter += "'" + app + "',"; } appFilter = appFilter.TrimEnd(','); appFilter = " and m.nvcName in (" + appFilter + ") "; } string sql = "SET DEADLOCK_PRIORITY LOW\r\n" + "select '" + hostName + "' as [Host], m.nvcName as [App], s.nvcMessageType, " + "s.PublishingServer, i.dtSuspendTimeStamp, i.nvcURI, i.nvcAdapter, " + "b.nvcAdditionalInfo, b.uidInstanceID, b.uidServiceID, s.imgContext, i.dtCreated, i.nvcErrorDescription " + "from " + hostInstanceSuspendedQ + " b with (readpast) inner Join Spool s with (readpast) on b.uidMessageID = s.[uidMessageID ] " + "inner join InstancesSuspended i with (readpast) on b.uidInstanceID = i.uidInstanceID inner join Services se with (readpast) on se.uidServiceID = b.uidServiceID inner join Modules m with (readpast) on m.nModuleID = se.nModuleID " + "where (i.nState = 4 or i.nState = 32) " + appFilter + "order by i.dtSuspendTimeStamp desc"; using (SqlConnection conn = new SqlConnection(connString)) { conn.Open(); using (SqlCommand cmnd = new SqlCommand(sql, conn)) { cmnd.CommandTimeout = 60; using (SqlDataAdapter da = new SqlDataAdapter(cmnd)) { da.Fill(results); } } conn.Close(); } foreach (DataRow row in results.Tables[0].Rows) { SuspendedInstance suspendedInstance = new SuspendedInstance(); suspendedInstance.Host = row[0].ToString(); suspendedInstance.Application = row[1].ToString(); suspendedInstance.MessageType = row[2].ToString(); suspendedInstance.PublishingServer = row[3].ToString(); DateTime tmpdt = DateTime.Now; int gmtDiffMin = (int)tmpdt.Subtract(tmpdt.ToUniversalTime()).TotalMinutes; if (DateTime.TryParse(row[4].ToString(), out tmpdt)) { suspendedInstance.SuspendTime = tmpdt.AddMinutes(gmtDiffMin); } else if (DateTime.TryParse(row[11].ToString(), out tmpdt)) { suspendedInstance.SuspendTime = tmpdt.AddMinutes(gmtDiffMin); } suspendedInstance.Uri = row[5].ToString(); suspendedInstance.Adapter = row[6].ToString(); if (row[7].ToString().Length > 0) { suspendedInstance.AdditionalInfo = row[7].ToString(); } else { suspendedInstance.AdditionalInfo = row[12].ToString(); } suspendedInstance.InstanceID = row[8].ToString(); suspendedInstance.ServiceID = row[9].ToString(); suspendedInstance.Context = (Byte[])row[10]; suspendedInstances.Add(suspendedInstance); } return(suspendedInstances); }
private void DisplaySelectedItemDetails() { int itemCount = 0; rtxDetails.Text = ""; Cursor.Current = Cursors.WaitCursor; try { foreach (ListViewItem lvi in lvwEntries.SelectedItems) { SuspendedInstance suspendedInstance = (SuspendedInstance)lvi.Tag; rtxDetails.AppendText("Host : ", FontStyle.Bold); rtxDetails.AppendText(suspendedInstance.Host, FontStyle.Regular); rtxDetails.AppendText("\r\n"); rtxDetails.AppendText("Application : ", FontStyle.Bold); rtxDetails.AppendText(suspendedInstance.Application, FontStyle.Regular); rtxDetails.AppendText("\r\n"); rtxDetails.AppendText("Message type : ", FontStyle.Bold); rtxDetails.AppendText(suspendedInstance.MessageType, FontStyle.Regular); rtxDetails.AppendText("\r\n"); rtxDetails.AppendText("Server : ", FontStyle.Bold); rtxDetails.AppendText(suspendedInstance.PublishingServer, FontStyle.Regular); rtxDetails.AppendText("\r\n"); rtxDetails.AppendText("Time : ", FontStyle.Bold); rtxDetails.AppendText(suspendedInstance.SuspendTime.ToString(), FontStyle.Regular); rtxDetails.AppendText("\r\n"); rtxDetails.AppendText("URI : ", FontStyle.Bold); rtxDetails.AppendText(suspendedInstance.Uri, FontStyle.Regular); rtxDetails.AppendText("\r\n"); rtxDetails.AppendText("Adapter : ", FontStyle.Bold); rtxDetails.AppendText(suspendedInstance.Adapter, FontStyle.Regular); if (suspendedInstance.Adapter == "FILE") { rtxDetails.AppendText("\r\n"); rtxDetails.AppendText("File name : ", FontStyle.Bold); rtxDetails.AppendText(suspendedInstance.MsgPath, FontStyle.Regular); } rtxDetails.AppendText("\r\n"); rtxDetails.AppendText("Additional Info : ", FontStyle.Bold); rtxDetails.AppendText("\r\n"); rtxDetails.AppendText(suspendedInstance.AdditionalInfo, FontStyle.Regular); rtxDetails.AppendText("\r\n"); rtxDetails.AppendText("------------------------------------------------------------------------------\r\n"); rtxDetails.AppendText("\r\n"); itemCount++; if (itemCount > MAXDETAILITEMS) { rtxDetails.AppendText(string.Format("{0} or more items found. Only displaying first {0}", MAXDETAILITEMS)); break; } } if (itemCount <= MAXDETAILITEMS) { rtxDetails.AppendText(string.Format("{0} item(s)", itemCount)); } } catch (Exception ex) { MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } Cursor.Current = Cursors.Default; }