Ejemplo n.º 1
0
        public static void LoadFromSMO(Data.ApplicationDataSet.InstancesDataTable instances,
                                       ExpandMask.InstanceExpandSetting instanceExpandSetting,
                                       ExpandMask.JobServerExpandSetting jobServerExpandSetting,
                                       ExpandMask.DatabaseExpandSetting databaseExpandSetting)
        {
#if TRACE
            long startTicks = VNC.AppLog.Info("Enter", LOG_APPNAME, CLASS_BASE_ERRORNUMBER + 0);
#endif

            foreach (Data.ApplicationDataSet.InstancesRow instanceRow in instances)
            {
                if (instanceRow.IsMonitored && instanceExpandSetting.IsMonitored)
                {
                    var updatedInstanceRow = GetInfoFromSMO(instanceRow, instanceExpandSetting, jobServerExpandSetting, databaseExpandSetting);

                    // Some information  is not provided by SMO.  Add it in.

                    updatedInstanceRow.ADDomain     = instanceRow.ADDomain;
                    updatedInstanceRow.Environment  = instanceRow.Environment;
                    updatedInstanceRow.SecurityZone = instanceRow.SecurityZone;

                    Helper.TakeInstanceSnapShot(updatedInstanceRow);
                }
            }

#if TRACE
            VNC.AppLog.Info("Exit", LOG_APPNAME, CLASS_BASE_ERRORNUMBER + 1, startTicks);
#endif
        }
Ejemplo n.º 2
0
        private void OnSnapShot_Weekly(object sender, RoutedEventArgs e)
        {
            ExpandMask.InstanceExpandSetting  instanceExpandSetting  = new ExpandMask.InstanceExpandSetting(SQLInformation.Data.Config.ExpandSetting_Weekly_Instance);
            ExpandMask.JobServerExpandSetting jobServerExpandSetting = new ExpandMask.JobServerExpandSetting(SQLInformation.Data.Config.ExpandSetting_Daily_JobServer);
            ExpandMask.DatabaseExpandSetting  databaseExpandSetting  = new ExpandMask.DatabaseExpandSetting(SQLInformation.Data.Config.ExpandSetting_Weekly_Database);


            SQLInformation.Helper.TakeSnapShot(instanceExpandSetting, jobServerExpandSetting, databaseExpandSetting);
        }
Ejemplo n.º 3
0
        public static void TakeWeeklySnapShot()
        {
            ExpandMask.InstanceExpandSetting  instanceExpandSetting  = new ExpandMask.InstanceExpandSetting(SQLInformation.Data.Config.ExpandSetting_Weekly_Instance);
            ExpandMask.JobServerExpandSetting jobServerExpandSetting = new ExpandMask.JobServerExpandSetting(SQLInformation.Data.Config.ExpandSetting_Daily_JobServer);
            ExpandMask.DatabaseExpandSetting  databaseExpandSetting  = new ExpandMask.DatabaseExpandSetting(SQLInformation.Data.Config.ExpandSetting_Weekly_Database);


            SQLInformation.Helper.TakeSnapShot(instanceExpandSetting, jobServerExpandSetting, databaseExpandSetting);
        }
Ejemplo n.º 4
0
        private void OnSnapShot_Weekly(object sender, RoutedEventArgs e)
        {
            try
            {
                ExpandMask.InstanceExpandSetting  instanceExpandSetting  = new ExpandMask.InstanceExpandSetting(SQLInformation.Data.Config.ExpandSetting_Weekly_Instance);
                ExpandMask.JobServerExpandSetting jobServerExpandSetting = new ExpandMask.JobServerExpandSetting(SQLInformation.Data.Config.ExpandSetting_Weekly_JobServer);
                ExpandMask.DatabaseExpandSetting  databaseExpandSetting  = new ExpandMask.DatabaseExpandSetting(SQLInformation.Data.Config.ExpandSetting_Weekly_Database);


                SQLInformation.Helper.TakeSnapShot(instanceExpandSetting, jobServerExpandSetting, databaseExpandSetting);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }
Ejemplo n.º 5
0
        public static void TakeWeekly()
        {
            try
            {
                ExpandMask.InstanceExpandSetting  instanceExpandSetting  = new ExpandMask.InstanceExpandSetting(SQLInformation.Data.Config.ExpandSetting_Weekly_Instance);
                ExpandMask.JobServerExpandSetting jobServerExpandSetting = new ExpandMask.JobServerExpandSetting(SQLInformation.Data.Config.ExpandSetting_Weekly_JobServer);
                ExpandMask.DatabaseExpandSetting  databaseExpandSetting  = new ExpandMask.DatabaseExpandSetting(SQLInformation.Data.Config.ExpandSetting_Weekly_Database);


                SQLInformation.Helper.TakeSnapShot(instanceExpandSetting, jobServerExpandSetting, databaseExpandSetting);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }
Ejemplo n.º 6
0
        public static void LoadFromSMO(MSMOA.JobServer jobServer, Guid instanceID, string instanceName, ExpandMask.JobServerExpandSetting jobServerExpandSetting)
        {
#if TRACE
            long startTicks = VNC.AppLog.Trace2("Enter", LOG_APPNAME, CLASS_BASE_ERRORNUMBER + 0);
#endif

            SQLInformation.Data.ApplicationDataSet.JobServersRow jobServerRow = JobServer.GetInfoFromSMO(instanceID, instanceName, jobServer);

            try
            {
                if (jobServerRow.IsMonitored && jobServerExpandSetting.IsMonitored)
                {
                    if (jobServerRow.ExpandAlertCategories && jobServerExpandSetting.ExpandAlertCategories)
                    {
                        AlertCategory.LoadFromSMO(jobServer, jobServerRow);
                    }

                    if (jobServerRow.ExpandAlerts && jobServerExpandSetting.ExpandAlerts)
                    {
                        Alert.LoadFromSMO(jobServer, jobServerRow);
                    }

                    if (jobServerRow.ExpandJobCategories && jobServerExpandSetting.ExpandJobCategories)
                    {
                        JobCategory.LoadFromSMO(jobServer, jobServerRow);
                    }

                    if (jobServerRow.ExpandJobs && jobServerExpandSetting.ExpandJobs)
                    {
                        Job.LoadFromSMO(jobServer, jobServerRow);
                    }

                    //if (jobServerRow.ExpandJobSteps && jobServerExpandSetting.ExpandJobSteps)
                    //{
                    //    Load_JSJobSteps_FromSMO(jobServer, jobServerRow);
                    //}

                    if (jobServerRow.ExpandOperatorCategories && jobServerExpandSetting.ExpandOperatorCategories)
                    {
                        OperatorCategory.LoadFromSMO(jobServer, jobServerRow);
                    }

                    if (jobServerRow.ExpandOperators && jobServerExpandSetting.ExpandOperators)
                    {
                        Operator.LoadFromSMO(jobServer, jobServerRow);
                    }

                    if (jobServerRow.ExpandProxyAccounts && jobServerExpandSetting.ExpandProxyAccounts)
                    {
                        ProxyAccount.LoadFromSMO(jobServer, jobServerRow);
                    }

                    if (jobServerRow.ExpandSharedSchedules && jobServerExpandSetting.ExpandSharedSchedules)
                    {
                        JobSchedule.LoadFromSMO(jobServer, jobServerRow);
                    }

                    if (jobServerRow.ExpandTargetServerGroups && jobServerExpandSetting.ExpandTargetServerGroups)
                    {
                        TargetServerGroup.LoadFromSMO(jobServer, jobServerRow);
                    }

                    if (jobServerRow.ExpandTargetServers && jobServerExpandSetting.ExpandTargetServers)
                    {
                        TargetServer.LoadFromSMO(jobServer, jobServerRow);
                    }

                }
            }
            catch (Exception ex)
            {
                VNC.AppLog.Error(ex, LOG_APPNAME, CLASS_BASE_ERRORNUMBER + 1);
            }

#if TRACE
            VNC.AppLog.Trace2("Exit", LOG_APPNAME, CLASS_BASE_ERRORNUMBER + 2, startTicks);
#endif
        }
Ejemplo n.º 7
0
        private static SQLInformation.Data.ApplicationDataSet.JobServersRow Add(Guid instanceID, string instanceName, MSMOA.JobServer jobServer)
        {
            SQLInformation.Data.ApplicationDataSet.JobServersRow dataRow = null;

            try
            {
                dataRow = Common.ApplicationDataSet.JobServers.NewJobServersRow();
                dataRow.ID = Guid.NewGuid();

                dataRow.Name_JobServer = jobServer.Name;
                dataRow.Instance_ID = instanceID;
                dataRow.Name_Instance = instanceName;

                dataRow.ErrorLogFile = jobServer.ErrorLogFile;
                dataRow.HostLoginName = jobServer.HostLoginName;

                // TODO(crhodes): Change datatype in table to int.
                dataRow.MaximumHistoryRows = jobServer.MaximumHistoryRows.ToString(); ;
                dataRow.MaximumJobHistoryRows = jobServer.MaximumJobHistoryRows.ToString();

                try
                {
                    dataRow.MsxAccountCredentialName = jobServer.MsxAccountCredentialName;
                }
                catch (Exception ex)
                {
#if TRACE
                    VNC.AppLog.Debug(ex.ToString(), LOG_APPNAME, CLASS_BASE_ERRORNUMBER + 6);
#endif                    
                }

                dataRow.MsxAccountName = jobServer.MsxAccountName;
                dataRow.MsxServerName = jobServer.MsxServerName;

                // TODO(crhodes): Think through how to set this.

                ExpandMask.JobServerExpandSetting expandSetting = new ExpandMask.JobServerExpandSetting(instanceID);

                dataRow.IsMonitored = expandSetting.IsMonitored;

                dataRow.ExpandAlertCategories = expandSetting.ExpandAlertCategories;
                dataRow.ExpandAlerts = expandSetting.ExpandAlerts;
                dataRow.ExpandJobCategories = expandSetting.ExpandJobCategories;
                dataRow.ExpandJobs = expandSetting.ExpandJobs;
                dataRow.ExpandOperatorCategories = expandSetting.ExpandOperatorCategories;
                dataRow.ExpandOperators = expandSetting.ExpandOperators;
                dataRow.ExpandProxyAccounts = expandSetting.ExpandProxyAccounts;
                dataRow.ExpandSharedSchedules = expandSetting.ExpandSharedSchedules;
                dataRow.ExpandTargetServerGroups = expandSetting.ExpandTargetServerGroups;
                dataRow.ExpandTargetServers = expandSetting.ExpandTargetServers;

                dataRow.SnapShotDate = DateTime.Now;
                dataRow.SnapShotError = "";

                Common.ApplicationDataSet.JobServers.AddJobServersRow(dataRow);
                Common.ApplicationDataSet.JobServersTA.Update(Common.ApplicationDataSet.JobServers);
            }
            catch (Exception ex)
            {
                VNC.AppLog.Error(ex, LOG_APPNAME, CLASS_BASE_ERRORNUMBER + 7);
                // TODO(crhodes):  
                // Wrap anything above that throws an exception that we want to ignore, 
                // e.g. property not available because of SQL Edition.

                UpdateDatabaseWithSnapShot(dataRow, ex.ToString().Substring(0, 256));
            }

            return dataRow;
        }
Ejemplo n.º 8
0
        public static SQLInformation.Data.ApplicationDataSet.InstancesRow GetInfoFromSMO(Data.ApplicationDataSet.InstancesRow dataRow,
                                                                                         ExpandMask.InstanceExpandSetting instanceExpandSetting,
                                                                                         ExpandMask.JobServerExpandSetting jobServerExpandSetting,
                                                                                         ExpandMask.DatabaseExpandSetting databaseExpandSetting)
        {
#if TRACE
            long startTicks = VNC.AppLog.Info(
                string.Format("Enter ({0}) IES:{1}  JES:{2}  DES:{3}",
                              dataRow.Name_Instance,
                              instanceExpandSetting.ExpandMask, jobServerExpandSetting.ExpandMask, databaseExpandSetting.ExpandMask),
                LOG_APPNAME, CLASS_BASE_ERRORNUMBER + 2);
#endif
            long stopwatchFrequency = Stopwatch.Frequency;

            MSMO.Server serverInstance = null;

            // First try to connect to the instance and retrieve a simple property.
            // If cannot, don't bother doing more.
            try
            {
                serverInstance = Server.GetFromSMO(dataRow.Name_Instance);

                string s = serverInstance.NetName;

                // If we got to the server make everything upper case.

                dataRow.NetName       = s.ToUpper();
                dataRow.Name_Instance = dataRow.Name_Instance.ToUpper();
            }
            catch (Microsoft.SqlServer.Management.Common.ConnectionFailureException)
            {
                dataRow.SnapShotDuration = (Stopwatch.GetTimestamp() - startTicks) / stopwatchFrequency;

                // Make names lower case to indicate error.

                dataRow.NetName       = dataRow.NetName.ToLower();
                dataRow.Name_Instance = dataRow.Name_Instance.ToLower();
                dataRow.SnapShotError = "Connection Failure Exception";

                Common.ApplicationDataSet.Instances_Update();

                //UpdateDatabaseWithSnapShot(dataRow, "Connection Failure Exception");

                VNC.AppLog.Warning(string.Format("Connection Failure Exception: {0}", dataRow.Name_Instance), LOG_APPNAME, CLASS_BASE_ERRORNUMBER + 3);
                return(dataRow);
            }
            catch (Exception ex)
            {
                //VNC.AppLog.Error(ex, LOG_APPNAME, CLASS_BASE_ERRORNUMBER + 4);

                dataRow.SnapShotDuration = (Stopwatch.GetTimestamp() - startTicks) / stopwatchFrequency;
                dataRow.NetName          = dataRow.NetName.ToLower();
                dataRow.Name_Instance    = dataRow.Name_Instance.ToLower();

                ReportException(ex, dataRow, CLASS_BASE_ERRORNUMBER + 4);

                //UpdateDatabaseWithSnapShot(dataRow, ex.ToString().Substring(0, 256));
                return(dataRow);
            }

            try
            {
                Update(serverInstance, dataRow);

                //UpdateDatabaseWithSnapShot(dataRow, "");

                if (dataRow.ExpandJobServer && instanceExpandSetting.ExpandJobServer)
                {
                    JobServer.LoadFromSMO(serverInstance.JobServer, dataRow.ID, dataRow.Name_Instance, jobServerExpandSetting);
                }

                if (dataRow.ExpandLinkedServers && instanceExpandSetting.ExpandLinkedServers)
                {
                    LinkedServer.LoadFromSMO(serverInstance, dataRow.ID, dataRow.Name_Instance);
                }

                if (dataRow.ExpandLogins && instanceExpandSetting.ExpandLogins)
                {
                    Login.LoadFromSMO(serverInstance, dataRow.ID, dataRow.Name_Instance);
                }

                if (dataRow.ExpandServerRoles && instanceExpandSetting.ExpandServerRoles)
                {
                    ServerRole.LoadFromSMO(serverInstance, dataRow.ID, dataRow.Name_Instance);
                }

                if (dataRow.ExpandTriggers && instanceExpandSetting.ExpandTriggers)
                {
                    ServerDdlTrigger.LoadFromSMO(serverInstance, dataRow.ID, dataRow.Name_Instance);
                }

                if ((dataRow.ExpandContent && instanceExpandSetting.ExpandContent) ||
                    (dataRow.ExpandStorage && instanceExpandSetting.ExpandStorage))
                {
                    Database.LoadFromSMO(serverInstance, dataRow.ID, databaseExpandSetting);
                }

                // We now have all the information for the instance.
                // This will get pushed to the snapshot by our caller.

                UpdateTotalStorageUsed(dataRow);

                dataRow.SnapShotDuration = (Stopwatch.GetTimestamp() - startTicks) / stopwatchFrequency;

                Common.ApplicationDataSet.Instances_Update();
                //Common.ApplicationDataSet.InstancesTA.Update(Common.ApplicationDataSet.Instances);
            }
            catch (Exception ex)
            {
                //VNC.AppLog.Error(ex, LOG_APPNAME, CLASS_BASE_ERRORNUMBER + 5);

                dataRow.SnapShotDuration = (Stopwatch.GetTimestamp() - startTicks) / stopwatchFrequency;
                dataRow.NetName          = dataRow.NetName.ToLower();
                dataRow.Name_Instance    = dataRow.Name_Instance.ToLower();

                dataRow.SnapShotDate = DateTime.Now;
                //dataRow.SnapShotError = "";

                ReportException(ex, dataRow, CLASS_BASE_ERRORNUMBER + 5);
                //Common.ApplicationDataSet.Instances_Update();

                //UpdateDatabaseWithSnapShot(dataRow, ex.ToString().Substring(0, 256));
            }
#if TRACE
            VNC.AppLog.Info(string.Format("Exit ({0})", dataRow.Name_Instance), LOG_APPNAME, CLASS_BASE_ERRORNUMBER + 6, startTicks);
#endif
            return(dataRow);
        }