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 }
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); }
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); }
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()); } }
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()); } }
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 }
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; }
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); }