Example #1
0
        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;
                }
            }
        }
Example #2
0
        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);
            }
        }
Example #3
0
        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);
            }
        }
Example #4
0
        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);
        }
Example #6
0
        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);
            }
        }
Example #7
0
        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);
            }
        }