コード例 #1
0
        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);
        }
コード例 #2
0
        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;
        }