private void GetServiceStatusForExchange() { string strServiceNames = string.Empty; int interval = Convert.ToInt32("0" + ConfigManager.Read("Exchange_ServicesStatusInterval")); interval = interval == 0 ? 30 : interval; while (isServiceRunning) { try { BMCMonitoring objMonitoring = new BMCMonitoring(); if (strServiceNames == string.Empty) { strServiceNames = DBBuilder.DBCalls.GetServiceNames(); } string strSiteStatus = string.Empty; if (!string.IsNullOrEmpty(strServiceNames)) { strSiteStatus = objMonitoring.GetSiteStatusForExchange(strServiceNames); } if (!string.IsNullOrEmpty(strSiteStatus)) { UpdateSiteServiceDetails(strSiteStatus); LogManager.WriteLog("Site status updated in exchange.", LogManager.enumLogLevel.Info); } _onstopexc.WaitOne(interval * 1000);//waits current thread in finite time(i.e 30 sec default) } catch (Exception ex) { ExceptionManager.Publish(ex); strServiceNames = string.Empty; } } }
private void UpdateStatusInEnterprise() { try { int SystemEventsToGet = Convert.ToInt16(ConfigManager.Read("NoofSystemLogsToGet")); string SiteCode = DBBuilder.DBCalls.GetSiteName(); Proxy objService = new Proxy(SiteCode); BMCMonitoring objMonitoring = new BMCMonitoring(); string strServiceNames = DBBuilder.DBCalls.GetServiceNames(); string strSiteStatus = string.Empty; if (!string.IsNullOrEmpty(strServiceNames)) { strSiteStatus = objMonitoring.GetSiteStatus(strServiceNames, SystemEventsToGet); } if (!string.IsNullOrEmpty(strSiteStatus)) { //UpdateSiteServiceDetails(SiteCode, strSiteStatus); //LogManager.WriteLog("Site status updated in exchange.", LogManager.enumLogLevel.Info); objService.UpdateSiteStatsInEnterprise(SiteCode, strSiteStatus); LogManager.WriteLog("Site status updated in enterrprise.", LogManager.enumLogLevel.Info); } } catch (Exception ex) { ExceptionManager.Publish(ex); } }
private void CheckSiteStatus() { try { LogManager.WriteLog("Inside CheckSiteStatus", LogManager.enumLogLevel.Info); SqlConnection sqlConnection = new SqlConnection(DBCalls.GetConnRegSettings()); SqlCommand sqlCommand = new SqlCommand(); sqlCommand.Connection = sqlConnection; sqlCommand.CommandType = CommandType.StoredProcedure; sqlCommand.CommandText = ProcGetSiteStatus; //Execute the command. sqlConnection.Open(); int siteStatus = Convert.ToInt32(sqlCommand.ExecuteScalar()); sqlConnection.Close(); if (SiteEnabledStatus != siteStatus) { BMCMonitoring objMonitoring = new BMCMonitoring(); string strServiceNames = DBBuilder.DBCalls.GetServiceNames(); List <string> serviceNames = new List <string>(strServiceNames.Split(',')); foreach (string service in serviceNames) { if (service.Trim().ToUpper() == BMCGuardianService) { continue; } if (siteStatus == 1) { objMonitoring.EnableService(service.Trim()); } else { objMonitoring.DisableService(service.Trim()); } } } else { LogManager.WriteLog("Site Status not changed, hence skipping the Site Enable/Disable process.", LogManager.enumLogLevel.Info); } SiteEnabledStatus = siteStatus; } catch (Exception ex) { ExceptionManager.Publish(ex); } }
private void RestartServices() { string strServiceName = string.Empty; try { BMCMonitoring objMonitoring = new BMCMonitoring(); string strServiceNames = DBBuilder.DBCalls.GetServiceNames(); LogManager.WriteLog("RestartServices: Service to restart " + strServiceNames, LogManager.enumLogLevel.Info); string strSiteStatus = string.Empty; int SystemEventsToGet = Convert.ToInt16(ConfigManager.Read("NoofSystemLogsToGet")); if (!string.IsNullOrEmpty(strServiceNames)) { strSiteStatus = objMonitoring.GetSiteStatus(strServiceNames, SystemEventsToGet); DataTable dtServiceStatus = GetServiceStatus(strSiteStatus); foreach (DataRow dr in dtServiceStatus.Rows) { if (dr["ServiceStatus"].ToString().ToUpper() != "RUNNING") { strServiceName = dr["ServiceName"].ToString(); if (strServiceName.ToUpper() != "BMCGUARDIANSERVICE") { try { if (objMonitoring.RestartService(strServiceName)) { LogManager.WriteLog(strServiceName + " Restarted", LogManager.enumLogLevel.Info); } else { LogManager.WriteLog("Error while restarting " + strServiceName, LogManager.enumLogLevel.Info); } } catch (Exception ex1) { LogManager.WriteLog("Error while restarting " + strServiceName, LogManager.enumLogLevel.Error); ExceptionManager.Publish(ex1); } } } } } } catch (Exception ex) { ExceptionManager.Publish(ex); } }
/// <summary> /// Check Message Queue for Exchange if not there and check the MSMQ service is running /// if not running start it and create queue.else if service is already running create the queue simply. /// <Author>Vineetha Mathew</Author> /// <DateCreated>Date Created 11-Dec-2008</DateCreated> /// <param name=strMSMQExchangepath>string</param> /// <returns>true</returns> /// </summary> /// Method Revision History /// /// Author Date Description /// --------------------------------------------------- ///Vineetha Mathew 11-12-2008 Created public static bool CreateMSMQ(string strMSMQExchangepath) { bool bMSMQServiceStatus = false; DataTable dtMSMQServicesStatus = new DataTable(); BMCMonitoring objBMCMonitoring = new BMCMonitoring(); bool bReturn = false; try { dtMSMQServicesStatus = objBMCMonitoring.GetServiceStatus("MSMQ", BMCMonitoring.ServiceTypes.All); if (dtMSMQServicesStatus.Rows.Count > 0) { for (int i = 0; i < dtMSMQServicesStatus.Rows.Count; i++) { if (dtMSMQServicesStatus.Rows[i][0].ToString() == "MSMQ" && dtMSMQServicesStatus.Rows[i][1].ToString() == "Stopped") { bMSMQServiceStatus = objBMCMonitoring.StartService("MSMQ"); if (bMSMQServiceStatus == true) { System.Threading.Thread.Sleep(5000); MessageQueue.Create(strMSMQExchangepath, true); MessageQueue objMessagqQueue = new MessageQueue(strMSMQExchangepath); objMessagqQueue.SetPermissions("Everyone", MessageQueueAccessRights.FullControl); bReturn = true; break; } } else if (dtMSMQServicesStatus.Rows[i][0].ToString() == "MSMQ" && dtMSMQServicesStatus.Rows[i][1].ToString() == "Running") { MessageQueue.Create(strMSMQExchangepath, true); MessageQueue objMessagqQueue = new MessageQueue(strMSMQExchangepath); objMessagqQueue.SetPermissions("Everyone", MessageQueueAccessRights.FullControl); bReturn = true; break; } } } } catch (Exception ex) { LogManager.WriteLog("CreateMSMQ" + ex.Message.ToString() + ex.Source.ToString(), LogManager.enumLogLevel.Error); ExceptionManager.Publish(ex); bReturn = false; } return(bReturn); }
private void GetServiceStatus() { BMCMonitoring objBMCMonitoring = new BMCMonitoring(); DataTable dtServicesStatus = new DataTable(); StringBuilder strServicelist = new StringBuilder(); //Rectangle itemBoundRectangle = new Rectangle(0, 0, 0, 0); ListViewItem itemListview = new ListViewItem(); string[] strListarray = null; try { strListarray = ConfigManager.Read("ServicesList").ToString().Split(','); if (strListarray != null) { for (int i = 0; i < strListarray.Length; i++) { strServicelist.Append(strListarray[i].ToString() + ","); } } dtServicesStatus = objBMCMonitoring.GetServiceStatus(strServicelist.ToString(), BMCMonitoring.ServiceTypes.All); string strServiceStatus = string.Empty; string strServiceStatus1 = string.Empty; bool blnFoundNotRunning = false; int ServiceCount = dtServicesStatus.Rows.Count / 2; int RowCount = 0; if (dtServicesStatus.Rows.Count > 0) { SetListviewItemStyle("Services", 0); foreach (DataRow dr in dtServicesStatus.Rows) { if (!blnFoundNotRunning && dr["Status"].ToString().ToUpper().Trim() != "RUNNING") { SetListviewItemStyle("Services", 1); SetListviewItemStyle("Services1", -1); blnFoundNotRunning = true; } if (RowCount > ServiceCount) { strServiceStatus1 += dr["ServiceName"].ToString() + ":" + dr["Status"].ToString() + "; "; } else { strServiceStatus += dr["ServiceName"].ToString() + ":" + dr["Status"].ToString() + "; "; } RowCount++; } if (lvGoLive.Items["Services"].SubItems.Count > 2) { lvGoLive.Items["Services"].SubItems[2].Text = strServiceStatus; } else { lvGoLive.Items["Services"].SubItems.Add(strServiceStatus); } if (!string.IsNullOrEmpty(strServiceStatus1)) { if (lvGoLive.Items["Services1"].SubItems.Count > 2) { lvGoLive.Items["Services1"].SubItems[2].Text = strServiceStatus1; } else { lvGoLive.Items["Services1"].SubItems.Add(strServiceStatus1); } } else { lvGoLive.Items["Services1"].Remove(); } } #region unused code //if (dtServicesStatus.Rows.Count > 0) //{ // for (int j = 0; j < dtServicesStatus.Columns.Count; j++) // { // for (int i = 0; i < dtServicesStatus.Rows.Count; i++) // { // if (j != dtServicesStatus.Columns.Count - 1) // { // if (dtServicesStatus.Rows[i][j + 1].ToString() == "Stopped") // { // lvGoLive.Items["Services"].ImageIndex = 1; // if (lvGoLive.Items["Services"].SubItems.Count > 2) // { // lvGoLive.Items["Services"].SubItems[2].Text = lvGoLive.Items["Services"].SubItems[2].Text + ";" + dtServicesStatus.Rows[i][j].ToString() +" Service is in Stopped State"; // } // else // { // lvGoLive.Items["Services"].SubItems.Add(dtServicesStatus.Rows[i][j].ToString() + " Service is in Stopped State"); // } // } // else if (dtServicesStatus.Rows[i][j + 1].ToString() == "Pending") // { // lvGoLive.Items["Services"].ImageIndex = 1; // if (lvGoLive.Items["Services"].SubItems.Count > 2) // { // lvGoLive.Items["Services"].SubItems[2].Text = lvGoLive.Items["Services"].SubItems[2].Text + ";" + dtServicesStatus.Rows[i][j].ToString() + " Service is in Pending State"; // } // else // { // lvGoLive.Items["Services"].SubItems.Add(dtServicesStatus.Rows[i][j].ToString() + " Service is in Pending State"); // } // } // else if (dtServicesStatus.Rows[i][j + 1].ToString().ToUpper() == "Service not found".ToUpper()) // { // lvGoLive.Items["Services"].ImageIndex = 1; // if (lvGoLive.Items["Services"].SubItems.Count > 2) // { // lvGoLive.Items["Services"].SubItems[2].Text = lvGoLive.Items["Services"].SubItems[2].Text + ";" + dtServicesStatus.Rows[i][j].ToString() + " Service not found."; // } // else // { // lvGoLive.Items["Services"].SubItems.Add(dtServicesStatus.Rows[i][j].ToString() + " Service not found"); // } // } // } // else // { // break; // } // } // } //} //lvGoLive.AutoResizeColumn(2, ColumnHeaderAutoResizeStyle.ColumnContent); //if (lvGoLive.Items["Services"].ImageIndex != 1) //{ // lvGoLive.Items["Services"].ImageIndex = 0; // lvGoLive.Items["Services"].BackColor = Color.White; // lvGoLive.Items["Services"].ForeColor = Color.Black; //} //else //{ // lvGoLive.Items["Services"].BackColor = Color.Red; // lvGoLive.Items["Services"].ForeColor = Color.White; //} #endregion } catch (Exception ex) { ExceptionManager.Publish(ex); SetListviewItemStyle("Services", 1); } }
void serviceStatusTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e) { string strServiceName = "BMCNetworkService"; try { DataSet dsData = DBBuilder.DBCalls.GetServiceStatusDetails(); bool bRequired = false; LogManager.WriteLog("Service Status Details - Timer Triggered.", LogManager.enumLogLevel.Error); if (dsData.Tables.Count > 0) { if (dsData.Tables[0].Rows.Count > 0) { DateTime dtNextRun; try { dtNextRun = Convert.ToDateTime(dsData.Tables[0].Rows[0]["SS_NextRunTime"]); } catch (Exception ex) { dtNextRun = DateTime.Now; ExceptionManager.Publish(ex); } int iStatus = DateTime.Compare(DateTime.Now, dtNextRun); LogManager.WriteLog("Service Status Details - Current Date " + DateTime.Now.ToString() + " NextRunDate " + dtNextRun.ToString() + " Status " + iStatus.ToString(), LogManager.enumLogLevel.Error); if (iStatus > 0) { bRequired = true; } } else { bRequired = true; } } else { bRequired = true; } if (bRequired) { BMCMonitoring objMonitoring = new BMCMonitoring(); LogManager.WriteLog("Service Status Details - Starting Process.", LogManager.enumLogLevel.Error); if (objMonitoring.RestartService(strServiceName)) { DBBuilder.DBCalls.UpdateServiceStatusDetails(); LogManager.WriteLog(strServiceName + " Restarted", LogManager.enumLogLevel.Info); } else { LogManager.WriteLog("Error while restarting " + strServiceName, LogManager.enumLogLevel.Info); } } } catch (Exception exserviceStatusTimer_Elapsed) { LogManager.WriteLog("Error while restarting " + strServiceName, LogManager.enumLogLevel.Error); ExceptionManager.Publish(exserviceStatusTimer_Elapsed); } }