示例#1
0
        static void Main(string[] args)
        {
            var path = args[0];

            OperationsAPI.initAPI();
            OperationsAPI.StageListPath = @"\Configs\ConnectStageList.xml";
            OperationsAPI.ConfigPath    = @"\Configs\ConnectConfig.xml";
            var globalConf = AsyncReplicaOperations.StageConnectSettings.getInstance();
            var localConf  = new GroupSettings(path);

            if (!localConf.isValid)
            {
                return;
            }

            foreach (RuntimeRegionSettings regionSetting in localConf.EntitiesList)
            {
                SqlConnection sqlConnection = new SqlConnection();
                try
                {
                    var sqlConnectionBuilder = new SqlConnectionStringBuilder();
                    sqlConnectionBuilder.DataSource         = globalConf.FindId(regionSetting.RegionId).ServerName;
                    sqlConnectionBuilder.InitialCatalog     = globalConf.FindId(regionSetting.RegionId).StageDBName;
                    sqlConnectionBuilder.IntegratedSecurity = true;
                    sqlConnection = new SqlConnection(sqlConnectionBuilder.ToString());
                    if (!SqlConnectionChecker.checkConnection(sqlConnection))
                    {
                        throw new Exception("Невозможно подключиться к региону " + regionSetting.RegionId);
                    }
                    var command = new SqlCommand("select FILEPATHSAVE,FILEPATHLOAD from REPLICAS", sqlConnection);
                    sqlConnection.Open();
                    using (var reader = command.ExecuteReader(System.Data.CommandBehavior.CloseConnection))
                    {
                        while (reader.Read())
                        {
                            var flushPath = reader.GetString(0);
                            FlushFolder(flushPath);
                            Console.WriteLine(string.Format("[MESSAGE] {0:HH:mm:ss} Папка {1} успешно очищена", DateTime.Now, flushPath));
                            flushPath = reader.GetString(1);
                            FlushFolder(flushPath);
                            Console.WriteLine(string.Format("[MESSAGE] {0:HH:mm:ss} Папка {1} успешно очищена", DateTime.Now, flushPath));
                        }
                    }
                }
                catch (Exception e)
                {
                    Console.WriteLine(string.Format("[ERROR] {0:HH:mm:ss} {1}", DateTime.Now, e.Message));
                }
                finally
                {
                    if (sqlConnection.State == System.Data.ConnectionState.Open)
                    {
                        sqlConnection.Close();
                    }
                }
            }
        }
示例#2
0
        static void Main(string[] args)
        {
            List <string> errorList = new List <string>();

            try
            {
                OperationsAPI.initAPI();
                OperationsAPI.StageListPath = @"\Configs\ConnectStageList.xml";
                Console.WriteLine("Начинается проверка...");
                var globalConf = StageConnectSettings.getInstance();

                if (globalConf.isValid)
                {
                    foreach (RegionSetting globalSetting in globalConf.EntitiesList)
                    {
                        var connectionBuilder = new SqlConnectionStringBuilder();
                        connectionBuilder.DataSource         = globalSetting.ServerName;
                        connectionBuilder.InitialCatalog     = globalSetting.StageDBName;
                        connectionBuilder.IntegratedSecurity = true;
                        connectionBuilder.ConnectTimeout     = 5;
                        connectionBuilder.ConnectRetryCount  = 1;
                        if (!SqlConnectionChecker.checkConnection(new SqlConnection(connectionBuilder.ToString())))
                        {
                            errorList.Add(globalSetting.RegionId);
                        }
                    }
                    if (errorList.Count > 0)
                    {
                        Console.WriteLine("Обнаружены ошибки при валидации:");
                        foreach (string item in errorList)
                        {
                            Console.WriteLine(string.Format("Регион {0} не валиден. Проверьте настройки соединения", item));
                        }
                    }
                    else
                    {
                        Console.WriteLine("Не обнаружены ошибки при валидации.");
                    }
                }
                else
                {
                    throw new Exception("Файл конфигурации не валиден");
                }
            }
            catch (Exception e)
            {
                Console.WriteLine("Произошла следующая ошибка: " + e.Message);
            }
            finally
            {
                Console.ReadKey();
            }
        }