using System; using System.Data; using System.Drawing; using System.Collections; using System.Configuration; using System.ComponentModel; using System.Windows.Forms; using System.IO; using System.Text; using System.Threading; using System.Windows.Forms.DataVisualization.Charting; using System.Diagnostics; using System.Collections.Generic; using Core.Mes.ServerFrameWork; using Infragistics.Win; using Infragistics.Win.UltraWinGrid; namespace Core.Mes.ServerManager { /// /// FrmSeverMain 的摘要说明。 /// public class FrmSeverMain : System.Windows.Forms.Form { #region 变量定义 private IContainer components = null; private string[] _args; private TabControl tabControl1; private TabPage tabPage1; private TabPage tabPage2; private TabPage tabPage3; private SplitContainer splitContainer1; private System.Windows.Forms.DataVisualization.Charting.Chart Chart1; private System.Windows.Forms.DataVisualization.Charting.Chart Chart2; private System.Windows.Forms.PictureBox pictureBox1; private System.Windows.Forms.ListBox listBox1; private ResDaemon resDaemon; private SrvDaemon srvDaemon; private ExtSrvDaemon extSrvDaemon; private ClsServerMain cMain; private TabPage tabPage4; private Infragistics.Win.UltraWinGrid.UltraGrid ugServers; private DataSet dataSet1; private DataTable dataTable1; private ServerConfigure _serverConf; private bool IsLogging = false; #endregion public FrmSeverMain(string[] args) { _args = args; if (_args != null) { foreach (string arg in _args) { if (arg.Trim().ToUpper() == "LOG") { IsLogging = true; } } } // // Windows 窗体设计器支持所必需的 // InitializeComponent(); // // TODO: 在 InitializeComponent 调用后添加任何构造函数代码 // this.tabControl1.Controls.Remove(this.tabPage2); this.tabControl1.Controls.Remove(this.tabPage3); this.tabControl1.Controls.Remove(this.tabPage4); } /// /// 清理所有正在使用的资源。 /// protected override void Dispose(bool disposing) { try { if (disposing) { if (cMain != null) { cMain.Dispose(); } if (components != null) { components.Dispose(); } } System.GC.Collect(); base.Dispose(disposing); } catch { } } #region Windows 窗体设计器生成的代码 /// /// 设计器支持所需的方法 - 不要使用代码编辑器修改 /// 此方法的内容。 /// private void InitializeComponent() { System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmSeverMain)); System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea1 = new System.Windows.Forms.DataVisualization.Charting.ChartArea(); System.Windows.Forms.DataVisualization.Charting.Legend legend1 = new System.Windows.Forms.DataVisualization.Charting.Legend(); System.Windows.Forms.DataVisualization.Charting.Series series1 = new System.Windows.Forms.DataVisualization.Charting.Series(); System.Windows.Forms.DataVisualization.Charting.Series series2 = new System.Windows.Forms.DataVisualization.Charting.Series(); System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea2 = new System.Windows.Forms.DataVisualization.Charting.ChartArea(); System.Windows.Forms.DataVisualization.Charting.Legend legend2 = new System.Windows.Forms.DataVisualization.Charting.Legend(); System.Windows.Forms.DataVisualization.Charting.LegendItem legendItem1 = new System.Windows.Forms.DataVisualization.Charting.LegendItem(); System.Windows.Forms.DataVisualization.Charting.LegendCell legendCell1 = new System.Windows.Forms.DataVisualization.Charting.LegendCell(); System.Windows.Forms.DataVisualization.Charting.LegendCell legendCell2 = new System.Windows.Forms.DataVisualization.Charting.LegendCell(); System.Windows.Forms.DataVisualization.Charting.Series series3 = new System.Windows.Forms.DataVisualization.Charting.Series(); System.Windows.Forms.DataVisualization.Charting.Series series4 = new System.Windows.Forms.DataVisualization.Charting.Series(); Infragistics.Win.Appearance appearance1 = new Infragistics.Win.Appearance("1", 65116440); Infragistics.Win.Appearance appearance2 = new Infragistics.Win.Appearance("2", 65174161); Infragistics.Win.Appearance appearance3 = new Infragistics.Win.Appearance("3", 65316418); Infragistics.Win.Appearance appearance4 = new Infragistics.Win.Appearance("11", 65318540); Infragistics.Win.Appearance appearance5 = new Infragistics.Win.Appearance("12", 65321145); Infragistics.Win.Appearance appearance6 = new Infragistics.Win.Appearance("13", 65325154); Infragistics.Win.Appearance appearance7 = new Infragistics.Win.Appearance("24", 65327806); Infragistics.Win.Appearance appearance8 = new Infragistics.Win.Appearance("25", 65329756); Infragistics.Win.Appearance appearance9 = new Infragistics.Win.Appearance("4", 22929605); Infragistics.Win.Appearance appearance10 = new Infragistics.Win.Appearance("14", 23236973); Infragistics.Win.Appearance appearance11 = new Infragistics.Win.Appearance(); Infragistics.Win.Appearance appearance12 = new Infragistics.Win.Appearance(); Infragistics.Win.Appearance appearance13 = new Infragistics.Win.Appearance(); Infragistics.Win.Appearance appearance14 = new Infragistics.Win.Appearance(); Infragistics.Win.Appearance appearance15 = new Infragistics.Win.Appearance(); Infragistics.Win.Appearance appearance16 = new Infragistics.Win.Appearance(); Infragistics.Win.Appearance appearance17 = new Infragistics.Win.Appearance(); Infragistics.Win.Appearance appearance18 = new Infragistics.Win.Appearance(); Infragistics.Win.Appearance appearance19 = new Infragistics.Win.Appearance(); Infragistics.Win.Appearance appearance20 = new Infragistics.Win.Appearance(); Infragistics.Win.Appearance appearance21 = new Infragistics.Win.Appearance(); this.pictureBox1 = new System.Windows.Forms.PictureBox(); this.listBox1 = new System.Windows.Forms.ListBox(); this.tabControl1 = new System.Windows.Forms.TabControl(); this.tabPage1 = new System.Windows.Forms.TabPage(); this.tabPage2 = new System.Windows.Forms.TabPage(); this.Chart1 = new System.Windows.Forms.DataVisualization.Charting.Chart(); this.tabPage3 = new System.Windows.Forms.TabPage(); this.Chart2 = new System.Windows.Forms.DataVisualization.Charting.Chart(); this.tabPage4 = new System.Windows.Forms.TabPage(); this.ugServers = new Infragistics.Win.UltraWinGrid.UltraGrid(); this.dataSet1 = new System.Data.DataSet(); this.dataTable1 = new System.Data.DataTable(); this.splitContainer1 = new System.Windows.Forms.SplitContainer(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); this.tabControl1.SuspendLayout(); this.tabPage1.SuspendLayout(); this.tabPage2.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.Chart1)).BeginInit(); this.tabPage3.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.Chart2)).BeginInit(); this.tabPage4.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.ugServers)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.dataSet1)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.dataTable1)).BeginInit(); this.splitContainer1.Panel1.SuspendLayout(); this.splitContainer1.Panel2.SuspendLayout(); this.splitContainer1.SuspendLayout(); this.SuspendLayout(); // // pictureBox1 // this.pictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.pictureBox1.Dock = System.Windows.Forms.DockStyle.Fill; this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image"))); this.pictureBox1.Location = new System.Drawing.Point(0, 0); this.pictureBox1.Name = "pictureBox1"; this.pictureBox1.Size = new System.Drawing.Size(862, 116); this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; this.pictureBox1.TabIndex = 0; this.pictureBox1.TabStop = false; // // listBox1 // this.listBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.listBox1.Dock = System.Windows.Forms.DockStyle.Fill; this.listBox1.ItemHeight = 12; this.listBox1.Location = new System.Drawing.Point(3, 3); this.listBox1.Name = "listBox1"; this.listBox1.Size = new System.Drawing.Size(848, 362); this.listBox1.TabIndex = 1; // // tabControl1 // this.tabControl1.Controls.Add(this.tabPage1); this.tabControl1.Controls.Add(this.tabPage2); this.tabControl1.Controls.Add(this.tabPage3); this.tabControl1.Controls.Add(this.tabPage4); this.tabControl1.Dock = System.Windows.Forms.DockStyle.Fill; this.tabControl1.Location = new System.Drawing.Point(0, 0); this.tabControl1.Name = "tabControl1"; this.tabControl1.SelectedIndex = 0; this.tabControl1.Size = new System.Drawing.Size(862, 396); this.tabControl1.TabIndex = 2; // // tabPage1 // this.tabPage1.Controls.Add(this.listBox1); this.tabPage1.Location = new System.Drawing.Point(4, 22); this.tabPage1.Name = "tabPage1"; this.tabPage1.Padding = new System.Windows.Forms.Padding(3); this.tabPage1.Size = new System.Drawing.Size(854, 370); this.tabPage1.TabIndex = 0; this.tabPage1.Text = "消息列表"; this.tabPage1.UseVisualStyleBackColor = true; // // tabPage2 // this.tabPage2.AutoScroll = true; this.tabPage2.Controls.Add(this.Chart1); this.tabPage2.Location = new System.Drawing.Point(4, 22); this.tabPage2.Name = "tabPage2"; this.tabPage2.Padding = new System.Windows.Forms.Padding(3); this.tabPage2.Size = new System.Drawing.Size(854, 370); this.tabPage2.TabIndex = 1; this.tabPage2.Text = "服务使用"; this.tabPage2.UseVisualStyleBackColor = true; // // Chart1 // chartArea1.AxisX.Enabled = System.Windows.Forms.DataVisualization.Charting.AxisEnabled.False; chartArea1.AxisX.MajorGrid.Enabled = false; chartArea1.AxisX.MajorTickMark.Enabled = false; chartArea1.AxisX.ScaleBreakStyle.Spacing = 1; chartArea1.AxisX.ScaleView.MinSizeType = System.Windows.Forms.DataVisualization.Charting.DateTimeIntervalType.Number; chartArea1.AxisX.ScaleView.SizeType = System.Windows.Forms.DataVisualization.Charting.DateTimeIntervalType.Number; chartArea1.AxisX.ScaleView.Zoomable = false; chartArea1.InnerPlotPosition.Auto = false; chartArea1.InnerPlotPosition.Height = 76.16758F; chartArea1.InnerPlotPosition.Width = 91.96336F; chartArea1.InnerPlotPosition.X = 6.68718F; chartArea1.InnerPlotPosition.Y = 5.76923F; chartArea1.Name = "ChartArea1"; this.Chart1.ChartAreas.Add(chartArea1); this.Chart1.Dock = System.Windows.Forms.DockStyle.Fill; legend1.Name = "Legend1"; this.Chart1.Legends.Add(legend1); this.Chart1.Location = new System.Drawing.Point(3, 3); this.Chart1.Margin = new System.Windows.Forms.Padding(0); this.Chart1.Name = "Chart1"; series1.ChartArea = "ChartArea1"; series1.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.StackedColumn; series1.Legend = "Legend1"; series1.LegendText = "服务已使用数"; series1.Name = "Series1"; series2.ChartArea = "ChartArea1"; series2.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.StackedColumn; series2.Legend = "Legend1"; series2.LegendText = "服务实例上限"; series2.Name = "Series2"; this.Chart1.Series.Add(series1); this.Chart1.Series.Add(series2); this.Chart1.Size = new System.Drawing.Size(848, 364); this.Chart1.TabIndex = 0; // // tabPage3 // this.tabPage3.Controls.Add(this.Chart2); this.tabPage3.Location = new System.Drawing.Point(4, 22); this.tabPage3.Name = "tabPage3"; this.tabPage3.Padding = new System.Windows.Forms.Padding(3); this.tabPage3.Size = new System.Drawing.Size(854, 370); this.tabPage3.TabIndex = 2; this.tabPage3.Text = "资源使用"; this.tabPage3.UseVisualStyleBackColor = true; // // Chart2 // chartArea2.AxisX.IsMarginVisible = false; chartArea2.AxisX.IsStartedFromZero = false; chartArea2.AxisX.LineColor = System.Drawing.Color.Empty; chartArea2.AxisX.LineDashStyle = System.Windows.Forms.DataVisualization.Charting.ChartDashStyle.NotSet; chartArea2.AxisX.LineWidth = 0; chartArea2.AxisX.MajorGrid.Enabled = false; chartArea2.AxisX.MajorGrid.Interval = 0; chartArea2.AxisX.MajorGrid.LineDashStyle = System.Windows.Forms.DataVisualization.Charting.ChartDashStyle.Dash; chartArea2.AxisX.ScaleBreakStyle.LineDashStyle = System.Windows.Forms.DataVisualization.Charting.ChartDashStyle.NotSet; chartArea2.AxisY.LineColor = System.Drawing.Color.Red; chartArea2.AxisY.MajorGrid.Enabled = false; chartArea2.AxisY.MajorGrid.LineColor = System.Drawing.Color.DarkOrange; chartArea2.AxisY.MajorGrid.LineDashStyle = System.Windows.Forms.DataVisualization.Charting.ChartDashStyle.Dash; chartArea2.AxisY.MajorTickMark.TickMarkStyle = System.Windows.Forms.DataVisualization.Charting.TickMarkStyle.InsideArea; chartArea2.AxisY2.LineColor = System.Drawing.Color.DodgerBlue; chartArea2.AxisY2.MajorGrid.LineColor = System.Drawing.Color.DodgerBlue; chartArea2.AxisY2.MajorGrid.LineDashStyle = System.Windows.Forms.DataVisualization.Charting.ChartDashStyle.Dash; chartArea2.AxisY2.MajorTickMark.TickMarkStyle = System.Windows.Forms.DataVisualization.Charting.TickMarkStyle.InsideArea; chartArea2.BorderWidth = 2; chartArea2.Name = "ChartArea1"; this.Chart2.ChartAreas.Add(chartArea2); this.Chart2.Dock = System.Windows.Forms.DockStyle.Fill; legend2.BorderWidth = 0; legendCell1.ForeColor = System.Drawing.Color.OrangeRed; legendCell1.Name = "cell_Content"; legendCell1.Text = "0"; legendCell2.Name = "Cell_Label"; legendCell2.Text = "空闲内存(MB)"; legendItem1.Cells.Add(legendCell1); legendItem1.Cells.Add(legendCell2); legend2.CustomItems.Add(legendItem1); legend2.LegendItemOrder = System.Windows.Forms.DataVisualization.Charting.LegendItemOrder.SameAsSeriesOrder; legend2.LegendStyle = System.Windows.Forms.DataVisualization.Charting.LegendStyle.Column; legend2.Name = "Legend1"; legend2.TableStyle = System.Windows.Forms.DataVisualization.Charting.LegendTableStyle.Tall; this.Chart2.Legends.Add(legend2); this.Chart2.Location = new System.Drawing.Point(3, 3); this.Chart2.Margin = new System.Windows.Forms.Padding(0); this.Chart2.Name = "Chart2"; series3.BorderWidth = 2; series3.ChartArea = "ChartArea1"; series3.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line; series3.Color = System.Drawing.Color.OrangeRed; series3.LabelBorderDashStyle = System.Windows.Forms.DataVisualization.Charting.ChartDashStyle.Dash; series3.LabelBorderWidth = 2; series3.LabelForeColor = System.Drawing.Color.Red; series3.Legend = "Legend1"; series3.LegendText = "内存(MB)"; series3.MarkerBorderWidth = 2; series3.Name = "Series1"; series3.XValueType = System.Windows.Forms.DataVisualization.Charting.ChartValueType.Time; series3.YValueType = System.Windows.Forms.DataVisualization.Charting.ChartValueType.Double; series4.BorderDashStyle = System.Windows.Forms.DataVisualization.Charting.ChartDashStyle.Dash; series4.BorderWidth = 2; series4.ChartArea = "ChartArea1"; series4.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line; series4.Color = System.Drawing.Color.DodgerBlue; series4.Legend = "Legend1"; series4.LegendText = "CPU (%)"; series4.MarkerBorderWidth = 2; series4.Name = "Series2"; series4.XValueType = System.Windows.Forms.DataVisualization.Charting.ChartValueType.Time; series4.YAxisType = System.Windows.Forms.DataVisualization.Charting.AxisType.Secondary; series4.YValueType = System.Windows.Forms.DataVisualization.Charting.ChartValueType.Double; this.Chart2.Series.Add(series3); this.Chart2.Series.Add(series4); this.Chart2.Size = new System.Drawing.Size(848, 364); this.Chart2.TabIndex = 0; // // tabPage4 // this.tabPage4.Controls.Add(this.ugServers); this.tabPage4.Location = new System.Drawing.Point(4, 22); this.tabPage4.Name = "tabPage4"; this.tabPage4.Padding = new System.Windows.Forms.Padding(3); this.tabPage4.Size = new System.Drawing.Size(854, 370); this.tabPage4.TabIndex = 3; this.tabPage4.Text = "扩展服务器"; this.tabPage4.UseVisualStyleBackColor = true; // // ugServers // this.ugServers.DataMember = "Table1"; this.ugServers.DataSource = this.dataSet1; appearance1.BackColor = System.Drawing.Color.PaleGreen; appearance1.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(0))))); appearance1.BackGradientStyle = Infragistics.Win.GradientStyle.VerticalBump; appearance1.TextHAlign = Infragistics.Win.HAlign.Center; appearance2.BackColor = System.Drawing.Color.Silver; appearance2.BackColor2 = System.Drawing.Color.Gray; appearance2.BackHatchStyle = Infragistics.Win.BackHatchStyle.BackwardDiagonal; appearance2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(128))))); appearance2.TextHAlign = Infragistics.Win.HAlign.Center; appearance3.BackColor = System.Drawing.Color.Silver; appearance3.BackColor2 = System.Drawing.Color.Gray; appearance3.BackGradientStyle = Infragistics.Win.GradientStyle.Vertical; appearance3.TextHAlign = Infragistics.Win.HAlign.Center; appearance4.BackColor = System.Drawing.Color.PaleGreen; appearance4.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(0))))); appearance4.BackGradientStyle = Infragistics.Win.GradientStyle.VerticalBump; appearance4.TextHAlign = Infragistics.Win.HAlign.Center; appearance5.BackColor = System.Drawing.Color.Silver; appearance5.BackColor2 = System.Drawing.Color.Gray; appearance5.BackHatchStyle = Infragistics.Win.BackHatchStyle.BackwardDiagonal; appearance5.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(128))))); appearance5.TextHAlign = Infragistics.Win.HAlign.Center; appearance6.BackColor = System.Drawing.Color.Silver; appearance6.BackColor2 = System.Drawing.Color.Gray; appearance6.BackGradientStyle = Infragistics.Win.GradientStyle.Vertical; appearance6.TextHAlign = Infragistics.Win.HAlign.Center; appearance7.BackColor = System.Drawing.Color.Brown; appearance7.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(64)))), ((int)(((byte)(0))))); appearance7.BackGradientStyle = Infragistics.Win.GradientStyle.VerticalBump; appearance7.ForeColor = System.Drawing.Color.Lime; appearance7.TextHAlign = Infragistics.Win.HAlign.Center; appearance8.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(108)))), ((int)(((byte)(108)))), ((int)(((byte)(108))))); appearance8.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224))))); appearance8.TextHAlign = Infragistics.Win.HAlign.Center; appearance9.BackColor = System.Drawing.Color.LemonChiffon; appearance9.BackColor2 = System.Drawing.Color.Gold; appearance9.BackGradientStyle = Infragistics.Win.GradientStyle.VerticalBump; appearance9.ForeColor = System.Drawing.Color.Blue; appearance9.TextHAlign = Infragistics.Win.HAlign.Center; appearance10.BackColor = System.Drawing.Color.LemonChiffon; appearance10.BackColor2 = System.Drawing.Color.Gold; appearance10.BackGradientStyle = Infragistics.Win.GradientStyle.VerticalBump; appearance10.ForeColor = System.Drawing.Color.Blue; appearance10.TextHAlign = Infragistics.Win.HAlign.Center; this.ugServers.DisplayLayout.Appearances.Add(appearance1); this.ugServers.DisplayLayout.Appearances.Add(appearance2); this.ugServers.DisplayLayout.Appearances.Add(appearance3); this.ugServers.DisplayLayout.Appearances.Add(appearance4); this.ugServers.DisplayLayout.Appearances.Add(appearance5); this.ugServers.DisplayLayout.Appearances.Add(appearance6); this.ugServers.DisplayLayout.Appearances.Add(appearance7); this.ugServers.DisplayLayout.Appearances.Add(appearance8); this.ugServers.DisplayLayout.Appearances.Add(appearance9); this.ugServers.DisplayLayout.Appearances.Add(appearance10); this.ugServers.DisplayLayout.BorderStyle = Infragistics.Win.UIElementBorderStyle.Solid; this.ugServers.DisplayLayout.BorderStyleCaption = Infragistics.Win.UIElementBorderStyle.None; appearance11.BackColor = System.Drawing.SystemColors.ActiveBorder; appearance11.BackColor2 = System.Drawing.SystemColors.ControlDark; appearance11.BackGradientStyle = Infragistics.Win.GradientStyle.Vertical; appearance11.BorderColor = System.Drawing.SystemColors.Window; this.ugServers.DisplayLayout.GroupByBox.Appearance = appearance11; appearance12.ForeColor = System.Drawing.SystemColors.GrayText; this.ugServers.DisplayLayout.GroupByBox.BandLabelAppearance = appearance12; this.ugServers.DisplayLayout.GroupByBox.BorderStyle = Infragistics.Win.UIElementBorderStyle.Solid; appearance13.BackColor = System.Drawing.SystemColors.ControlLightLight; appearance13.BackColor2 = System.Drawing.SystemColors.Control; appearance13.BackGradientStyle = Infragistics.Win.GradientStyle.Horizontal; appearance13.ForeColor = System.Drawing.SystemColors.GrayText; this.ugServers.DisplayLayout.GroupByBox.PromptAppearance = appearance13; this.ugServers.DisplayLayout.MaxColScrollRegions = 1; this.ugServers.DisplayLayout.MaxRowScrollRegions = 1; appearance14.BackColor = System.Drawing.SystemColors.Window; appearance14.ForeColor = System.Drawing.SystemColors.ControlText; this.ugServers.DisplayLayout.Override.ActiveCellAppearance = appearance14; appearance15.BackColor = System.Drawing.SystemColors.Highlight; appearance15.ForeColor = System.Drawing.SystemColors.HighlightText; this.ugServers.DisplayLayout.Override.ActiveRowAppearance = appearance15; this.ugServers.DisplayLayout.Override.AllowAddNew = Infragistics.Win.UltraWinGrid.AllowAddNew.No; this.ugServers.DisplayLayout.Override.AllowDelete = Infragistics.Win.DefaultableBoolean.False; this.ugServers.DisplayLayout.Override.AllowGroupBy = Infragistics.Win.DefaultableBoolean.False; this.ugServers.DisplayLayout.Override.AllowGroupMoving = Infragistics.Win.UltraWinGrid.AllowGroupMoving.NotAllowed; this.ugServers.DisplayLayout.Override.AllowGroupSwapping = Infragistics.Win.UltraWinGrid.AllowGroupSwapping.NotAllowed; this.ugServers.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.True; this.ugServers.DisplayLayout.Override.AllowRowLayoutCellSpanSizing = Infragistics.Win.Layout.GridBagLayoutAllowSpanSizing.None; this.ugServers.DisplayLayout.Override.AllowRowLayoutLabelSpanSizing = Infragistics.Win.Layout.GridBagLayoutAllowSpanSizing.None; this.ugServers.DisplayLayout.Override.AllowUpdate = Infragistics.Win.DefaultableBoolean.False; appearance16.BackColor = System.Drawing.SystemColors.Window; this.ugServers.DisplayLayout.Override.CardAreaAppearance = appearance16; appearance17.BorderColor = System.Drawing.Color.Silver; appearance17.TextTrimming = Infragistics.Win.TextTrimming.EllipsisCharacter; this.ugServers.DisplayLayout.Override.CellAppearance = appearance17; this.ugServers.DisplayLayout.Override.CellClickAction = Infragistics.Win.UltraWinGrid.CellClickAction.CellSelect; this.ugServers.DisplayLayout.Override.CellMultiLine = Infragistics.Win.DefaultableBoolean.False; this.ugServers.DisplayLayout.Override.CellPadding = 0; this.ugServers.DisplayLayout.Override.ExpansionIndicator = Infragistics.Win.UltraWinGrid.ShowExpansionIndicator.Never; this.ugServers.DisplayLayout.Override.FixedRowIndicator = Infragistics.Win.UltraWinGrid.FixedRowIndicator.None; appearance18.BackColor = System.Drawing.SystemColors.Control; appearance18.BackColor2 = System.Drawing.SystemColors.ControlDark; appearance18.BackGradientAlignment = Infragistics.Win.GradientAlignment.Element; appearance18.BackGradientStyle = Infragistics.Win.GradientStyle.Horizontal; appearance18.BorderColor = System.Drawing.SystemColors.Window; this.ugServers.DisplayLayout.Override.GroupByRowAppearance = appearance18; appearance19.TextHAlign = Infragistics.Win.HAlign.Left; this.ugServers.DisplayLayout.Override.HeaderAppearance = appearance19; this.ugServers.DisplayLayout.Override.HeaderStyle = Infragistics.Win.HeaderStyle.WindowsXPCommand; appearance20.BackColor = System.Drawing.SystemColors.Window; appearance20.BorderColor = System.Drawing.Color.Silver; this.ugServers.DisplayLayout.Override.RowAppearance = appearance20; this.ugServers.DisplayLayout.Override.RowSelectorNumberStyle = Infragistics.Win.UltraWinGrid.RowSelectorNumberStyle.RowIndex; this.ugServers.DisplayLayout.Override.RowSelectors = Infragistics.Win.DefaultableBoolean.True; this.ugServers.DisplayLayout.Override.RowSelectorStyle = Infragistics.Win.HeaderStyle.WindowsXPCommand; this.ugServers.DisplayLayout.Override.ShowInkButton = Infragistics.Win.ShowInkButton.Never; appearance21.BackColor = System.Drawing.SystemColors.ControlLight; this.ugServers.DisplayLayout.Override.TemplateAddRowAppearance = appearance21; this.ugServers.DisplayLayout.PriorityScrolling = true; this.ugServers.DisplayLayout.ScrollBounds = Infragistics.Win.UltraWinGrid.ScrollBounds.ScrollToFill; this.ugServers.DisplayLayout.ScrollStyle = Infragistics.Win.UltraWinGrid.ScrollStyle.Immediate; this.ugServers.DisplayLayout.ViewStyle = Infragistics.Win.UltraWinGrid.ViewStyle.SingleBand; this.ugServers.Dock = System.Windows.Forms.DockStyle.Fill; this.ugServers.FlatMode = true; this.ugServers.Location = new System.Drawing.Point(3, 3); this.ugServers.Margin = new System.Windows.Forms.Padding(0); this.ugServers.Name = "ugServers"; this.ugServers.Size = new System.Drawing.Size(848, 364); this.ugServers.TabIndex = 0; this.ugServers.Text = "独立运行"; this.ugServers.ClickCellButton += new Infragistics.Win.UltraWinGrid.CellEventHandler(this.ugServers_ClickCellButton); this.ugServers.DoubleClickHeader += new Infragistics.Win.UltraWinGrid.DoubleClickHeaderEventHandler(this.ugServers_DoubleClickHeader); this.ugServers.AfterCellUpdate += new Infragistics.Win.UltraWinGrid.CellEventHandler(this.ugServers_AfterCellUpdate); this.ugServers.InitializeRow += new Infragistics.Win.UltraWinGrid.InitializeRowEventHandler(this.ugServers_InitializeRow); // // dataSet1 // this.dataSet1.DataSetName = "NewDataSet"; this.dataSet1.Tables.AddRange(new System.Data.DataTable[] { this.dataTable1}); // // dataTable1 // this.dataTable1.TableName = "Table1"; // // splitContainer1 // this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill; this.splitContainer1.IsSplitterFixed = true; this.splitContainer1.Location = new System.Drawing.Point(0, 0); this.splitContainer1.Margin = new System.Windows.Forms.Padding(0); this.splitContainer1.Name = "splitContainer1"; this.splitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal; // // splitContainer1.Panel1 // this.splitContainer1.Panel1.Controls.Add(this.pictureBox1); this.splitContainer1.Panel1MinSize = 100; // // splitContainer1.Panel2 // this.splitContainer1.Panel2.Controls.Add(this.tabControl1); this.splitContainer1.Size = new System.Drawing.Size(862, 513); this.splitContainer1.SplitterDistance = 116; this.splitContainer1.SplitterWidth = 1; this.splitContainer1.TabIndex = 3; // // FrmSeverMain // this.AutoScaleBaseSize = new System.Drawing.Size(6, 14); this.ClientSize = new System.Drawing.Size(862, 513); this.Controls.Add(this.splitContainer1); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.MaximizeBox = false; this.Name = "FrmSeverMain"; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; this.Text = "应用服务"; this.Load += new System.EventHandler(this.FrmSeverMain_Load); this.Closing += new System.ComponentModel.CancelEventHandler(this.FrmSeverMain_Closing); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); this.tabControl1.ResumeLayout(false); this.tabPage1.ResumeLayout(false); this.tabPage2.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.Chart1)).EndInit(); this.tabPage3.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.Chart2)).EndInit(); this.tabPage4.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.ugServers)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.dataSet1)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.dataTable1)).EndInit(); this.splitContainer1.Panel1.ResumeLayout(false); this.splitContainer1.Panel2.ResumeLayout(false); this.splitContainer1.ResumeLayout(false); this.ResumeLayout(false); } #endregion private void FrmSeverMain_Load(object sender, System.EventArgs e) { ugValueList = GetServerVL(); //==> //if (System.DateTime.Today > new System.DateTime(2007,1,1)) return; ApplicationStart(); this.pictureBox1.Image = System.Drawing.Image.FromFile(@"Image\登录框.jpg"); cMain = new ClsServerMain(); cMain.ShowLogEvent += new Core.Mes.ServerManager.ClsServerMain.ShowLogDelegate(cMain_ShowLog); cMain._isLogging = IsLogging; Application.DoEvents(); this.Show(); InitConfigure(); cMain.InitServerMain(new object[] { _serverConf }); resDaemon = new ResDaemon(); resDaemon.StartDaemon(); srvDaemon = new SrvDaemon(cMain.HtAssemblyService); srvDaemon.StartDaemon(); InitChart(); extSrvDaemon = new ExtSrvDaemon(); ///////////////服务启动后,方可进行资源监控///////////////// this.tabControl1.Controls.Add(this.tabPage2); this.tabControl1.Controls.Add(this.tabPage3); this.tabControl1.Controls.Add(this.tabPage4); this.tabControl1.Selected += new System.Windows.Forms.TabControlEventHandler(this.tabControl1_Selected); cMain_ShowLog("启动完成"); } private void InitConfigure() { _serverConf = new ServerConfigure(); _serverConf.ssc_event = new Core.Mes.ServerFrameWork.ExtSrvDaemon.ShowExtSrvEvent(CallBackShowExtSrv); _serverConf.OnMasterServerChanged = new InvokeCallback(MasterChanged); } private void MasterChanged(string _mName) { if (ugServers.InvokeRequired) { InvokeCallback method = new InvokeCallback(MasterChanged); ugServers.Invoke(method, _mName); return; } if (string.IsNullOrEmpty(_mName)) { ugServers.Text = "独立运行"; } else { UriBuilder ub = new UriBuilder(_mName); ugServers.Text = string.Format("本机受控于服务器[{0}:{1}]", ub.Host, ub.Port); } } Thread t_ShowRes = null; Thread t_ShowSrv = null; Thread t_ShowExt = null; private void InitChart() { Chart1.ChartAreas[0].AxisY.Minimum = 0; Chart1.ChartAreas[0].AxisX.Minimum = 0; Chart2.ChartAreas[0].AxisY.Minimum = 0; Chart2.ChartAreas[0].AxisY2.Minimum = 0; Chart2.ChartAreas[0].AxisY2.Maximum = 100; StopShowResData(); StopShowSrvData(); } private void StartShowResData() { if (t_ShowRes == null || t_ShowRes.ThreadState == System.Threading.ThreadState.Stopped || t_ShowRes.ThreadState == System.Threading.ThreadState.Aborted) { t_ShowRes = new Thread(ShowResData); t_ShowRes.Name = "资源数据读取"; t_ShowRes.Start(); resDaemon.ResumeMe(); } else { resDaemon.ResumeMe(); } } private void StartShowSrvData() { if (t_ShowSrv == null || t_ShowSrv.ThreadState == System.Threading.ThreadState.Stopped || t_ShowSrv.ThreadState == System.Threading.ThreadState.Aborted) { t_ShowSrv = new Thread(ShowSrvData); t_ShowSrv.Name = "服务数据读取"; t_ShowSrv.Start(); srvDaemon.ResumeMe(); } else { srvDaemon.ResumeMe(); } } private void StartShowExtServer() { if (t_ShowExt == null || t_ShowExt.ThreadState == System.Threading.ThreadState.Stopped || t_ShowExt.ThreadState == System.Threading.ThreadState.Aborted) { t_ShowExt = new Thread(ShowExtServer); t_ShowExt.Name = "扩展服务器读取"; t_ShowExt.Start(); extSrvDaemon.ResumeMe(); } else { extSrvDaemon.ResumeMe(); } } private void StopShowResData() { if (t_ShowRes != null) { resDaemon.SuspendMe(); } } private void StopShowSrvData() { if (t_ShowSrv != null) { srvDaemon.SuspendMe(); } } private void StopShowExtServer() { if (t_ShowSrv != null) { extSrvDaemon.SuspendMe(); } } private void ShowResData() { try { resDaemon.ShowResData(this.Chart2, new ResDaemon.ShowResDataEvent(CallBackShowResData)); } catch (Exception ex) { MessageBox.Show(ex.Message, "资源显示线程错误"); } } private void ShowSrvData() { try { srvDaemon.ShowSrvData(new SrvDaemon.ShowSrvDataEvent(CallBackShowSrvData)); } catch (Exception ex) { MessageBox.Show(ex.Message, "服务显示线程错误"); } } private void ShowExtServer() { try { extSrvDaemon.ShowExtServer(new ExtSrvDaemon.ShowExtSrvEvent(CallBackShowExtSrv)); } catch (Exception ex) { MessageBox.Show(ex.Message, "扩展服务器显示线程错误"); } } private void CallBackShowResData(List ps1, List ps2) { if (Chart2.InvokeRequired) { ResDaemon.ShowResDataEvent srde = new ResDaemon.ShowResDataEvent(CallBackShowResData); this.Invoke(srde, new object[] { ps1, ps2 }); return; } Series s1 = Chart2.Series[0]; Series s2 = Chart2.Series[1]; s1.Points.Invalidate(); s2.Points.Invalidate(); s1.Points.Clear(); s2.Points.Clear(); foreach (DataPoint dp in ps1) { s1.Points.Add(dp); } foreach (DataPoint dp in ps2) { s2.Points.Add(dp); } Chart2.ChartAreas[0].AxisX.Minimum = s1.Points[0].XValue; Chart2.ChartAreas[0].AxisX.Maximum = s1.Points[s1.Points.Count - 1].XValue; SystemInfo si = new SystemInfo(); Chart2.Legends[0].CustomItems[0].Cells[0].Text = (si.MemoryAvailable / 1024 / 1024).ToString(); s1.Points.ResumeUpdates(); s2.Points.ResumeUpdates(); } private void CallBackShowSrvData(List ps1, List ps2) { if (Chart1.InvokeRequired) { SrvDaemon.ShowSrvDataEvent ssde = new SrvDaemon.ShowSrvDataEvent(CallBackShowSrvData); this.Invoke(ssde, new object[] { ps1, ps2 }); return; } Series s1 = Chart1.Series[0]; Series s2 = Chart1.Series[1]; s1.Points.Invalidate(); s2.Points.Invalidate(); s1.Points.Clear(); s2.Points.Clear(); foreach (DataPoint dp in ps1) { s1.Points.Add(dp); } foreach (DataPoint dp in ps2) { s2.Points.Add(dp); } s1.Points.ResumeUpdates(); } private void CallBackShowExtSrv() { if (ugServers.InvokeRequired) { ExtSrvDaemon.ShowExtSrvEvent sese = new ExtSrvDaemon.ShowExtSrvEvent(CallBackShowExtSrv); this.Invoke(sese); return; } ugServers.SuspendLayout(); ugServers.SuspendRowSynchronization(); Hashtable extServers = this.cMain.HtExternServer; DataTable dt = this.dataSet1.Tables[0]; if (dt.Columns.Count == 0) { dt.Columns.Add("本地服务", typeof(string)); } if (dt.Rows.Count == 0) { DataRow dr = dt.NewRow(); dr[0] = "1"; dt.Rows.Add(dr); } dt.AcceptChanges(); //去除无效服务器 foreach (DataColumn dc in dt.Columns) { if (dc.ColumnName == "本地服务") continue; bool keep_it = false; foreach (string ServerName in extServers.Keys) { UriBuilder ub = new UriBuilder(ServerName); string sn = string.Format("{0}:{1}", ub.Host, ub.Port); if (sn == dc.ColumnName) { keep_it = true; } } if (!keep_it) { dt.Columns.Remove(dc); } } dt.AcceptChanges(); //新增服务器 foreach (string ServerName in extServers.Keys) { UriBuilder ub = new UriBuilder(ServerName); string sn = string.Format("{0}:{1}", ub.Host, ub.Port); if (!dt.Columns.Contains(sn)) { dt.Columns.Add(sn, typeof(string)); } RemotingServer rs = (RemotingServer)(extServers[ServerName]); string status = (rs.Valid != RemoteServerStatus.Normal) ? ((int)(rs.Valid)).ToString() : (rs.Enable ? "1" : "3"); dt.Rows[0][sn] = status; } //去除无效服务 for (int idx = 1; idx < dt.Rows.Count; idx++) { DataRow dr = dt.Rows[idx]; if (cMain.HTServiceKeys.ContainsKey(dr["本地服务"].ToString())) continue; dr.Delete(); } dt.AcceptChanges(); //新增服务项 foreach (string serviceName in this.cMain.HTServiceKeys.Keys) { DataRow[] drs = dt.Select(string.Format("本地服务='{0}'", serviceName)); DataRow dr = null; if (drs.GetLength(0) == 0) { dr = dt.NewRow(); dr[0] = serviceName; dt.Rows.Add(dr); } else { dr = drs[0]; } foreach (string serverName in extServers.Keys) { UriBuilder ub = new UriBuilder(serverName); string sn = string.Format("{0}:{1}", ub.Host, ub.Port); RemotingServer rs = (RemotingServer)(extServers[serverName]); string server_status = dt.Rows[0][sn].ToString(); if (server_status != "1") { dr[sn] = "1" + server_status; continue; } string status = "1"; if (!rs.HTServices.ContainsKey(serviceName)) { status = "25"; } else { ServiceObject so = (ServiceObject)(rs.HTServices[serviceName]); switch (so.Valid) { case ServiceObjectStatus.Normal: status = (so.Enable ? "11" : "13"); break; case ServiceObjectStatus.Unable: status = "12"; break; case ServiceObjectStatus.UnMatch: status = "24"; break; } } dr[sn] = status; } } dt.AcceptChanges(); for (int idx = 0; idx < ugServers.DisplayLayout.Bands[0].Columns.Count; idx++) { ugServers.DisplayLayout.Bands[0].Columns[idx].ValueList = ugValueList; } ugServers.ResumeRowSynchronization(); ugServers.ResumeLayout(); } private static ValueList ugValueList = null; private ValueList GetServerVL() { ValueList vl = new ValueList(); vl.ValueListItems.Add("1", "[正常运行]"); vl.ValueListItems.Add("2", "[不可用]"); vl.ValueListItems.Add("3", "[暂停服务]"); vl.ValueListItems.Add("4", "[受控于其他主机]"); vl.ValueListItems.Add("11", "功能正常"); vl.ValueListItems.Add("12", "不可用"); vl.ValueListItems.Add("13", "暂停服务"); vl.ValueListItems.Add("14", "受控其他主机"); vl.ValueListItems.Add("24", "版本不一致"); vl.ValueListItems.Add("25", "缺少服务"); return vl; } private void cMain_ShowLog(string log) { lock (this.listBox1) { this.listBox1.Invalidate(); this.listBox1.Items.Add(log); this.listBox1.SelectedIndex = this.listBox1.Items.Count - 1; Application.DoEvents(); this.listBox1.Update(); } } private void FrmSeverMain_Closing(object sender, System.ComponentModel.CancelEventArgs e) { if (MessageBox.Show("是否确认退出服务端程序?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.No) { e.Cancel = true; } else { ApplicationExit(); Application.Exit(); System.Diagnostics.Process.GetCurrentProcess().Kill(); } } private static void ApplicationExit() { string path = string.Format(@"{0}/log/Application/{1}.txt", Application.StartupPath, System.DateTime.Now.ToString("yyyy_MM_dd")); using (StreamWriter sw = new StreamWriter(path, true, Encoding.UTF8)) { StringBuilder sbtxt = new StringBuilder(); sbtxt.AppendLine("=============================================="); sbtxt.AppendLine(string.Format("服务关闭时间:{0}", DateTime.Now.ToString("yyyy-MM-dd HH:mm::ss"))); sbtxt.AppendLine("=============================================="); sw.WriteLine(sbtxt.ToString()); } } private static void ApplicationStart() { string path = string.Format(@"{0}/log/Application/{1}.txt", Application.StartupPath, System.DateTime.Now.ToString("yyyy_MM_dd")); using (StreamWriter sw = new StreamWriter(path, true, Encoding.UTF8)) { StringBuilder sbtxt = new StringBuilder(); sbtxt.AppendLine("=============================================="); sbtxt.AppendLine(string.Format("服务开启时间:{0}", DateTime.Now.ToString("yyyy-MM-dd HH:mm::ss"))); sbtxt.AppendLine("=============================================="); sw.WriteLine(sbtxt.ToString()); } } private void tabControl1_Selected(object sender, TabControlEventArgs e) { if (e.TabPageIndex == 1) { StartShowSrvData(); } else { StopShowSrvData(); } if (e.TabPageIndex == 2) { StartShowResData(); } else { StopShowResData(); } if (e.TabPageIndex == 3) { StartShowExtServer(); } else { StopShowExtServer(); } } private void ugServers_AfterCellUpdate(object sender, CellEventArgs e) { UltraGridColumn uc = e.Cell.Column; try { if (uc.Index > 0 || e.Cell.Row.Index == 0) { e.Cell.Appearance = ugServers.DisplayLayout.Appearances[e.Cell.Row.GetCellValue(uc).ToString()]; } } catch { } } private void ugServers_InitializeRow(object sender, InitializeRowEventArgs e) { for (int idx = 0; idx < e.Row.Band.Columns.Count; idx++) { UltraGridColumn uc = e.Row.Band.Columns[idx]; try { if (uc.Index > 0 || e.Row.Index == 0) { e.Row.Cells[idx].Appearance = ugServers.DisplayLayout.Appearances[e.Row.GetCellValue(uc).ToString()]; string cell_value = e.Row.GetCellValue(uc).ToString(); if (cell_value == "1" || cell_value == "3" || cell_value == "11" || cell_value == "13") { e.Row.Cells[idx].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.Button; } else { e.Row.Cells[idx].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.Default; } } } catch { } } } private void ugServers_ClickCellButton(object sender, CellEventArgs e) { ugServers.SuspendRowSynchronization(); UltraGridColumn uc = e.Cell.Column; string cell_value = e.Cell.Row.GetCellValue(uc).ToString(); string ServerName = uc.Header.Caption; string ServiceName = e.Cell.Row.GetCellValue(e.Cell.Row.Band.Columns[0]).ToString(); if (cell_value == "1") { cMain.SetServerFlag(ServerName, false); } else if (cell_value == "3") { cMain.SetServerFlag(ServerName, true); } else if (cell_value == "11") { cMain.SetServiceFlag(ServerName, ServiceName, false); } else if (cell_value == "13") { cMain.SetServiceFlag(ServerName, ServiceName, true); } ugServers.ResumeRowSynchronization(); ugServers.Update(); } private void ugServers_DoubleClickHeader(object sender, DoubleClickHeaderEventArgs e) { UriBuilder ub = new UriBuilder(e.Header.Caption); if (MessageBox.Show(string.Format("是否同步文件到服务器[{0}:{1}]?", ub.Host, ub.Port), "同步文件", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { try { foreach (string ServerName in cMain.HtExternServer.Keys) { UriBuilder ube = new UriBuilder(ServerName); if (ub.Host == ube.Host && ub.Port == ube.Port) { RemotingServer rs = (RemotingServer)(cMain.HtExternServer[ServerName]); rs.SyncFiles(); } } } catch (Exception ex) { MessageBox.Show(ex.Message); } } } } }