コード例 #1
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
        }
コード例 #2
0
ファイル: Instance.cs プロジェクト: chrhodes/EyeOnLife
        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);
        }