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