мета-данные страницы
  •  

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
автотестирование_остановки_репликации [29.11.2019 10:26]
Анисютин
автотестирование_остановки_репликации [26.02.2020 10:35] (текущий)
Строка 1: Строка 1:
 ====== Автотестирование остановки репликации ====== ====== Автотестирование остановки репликации ======
  
 +Для синхронизации данных между базами данных используется процесс [[:​Репликация|репликации]]\\
 +В базе данных менеджера проектов фиксируются события связанные с выполнением репликаций,​ в частности,​ время начала выполнения репликации.\\
 +Репликация выполняется часто, поэтому большой перерыв в выполнении репликации означает возникновение проблем с выполнением репликации.\\  ​
 +Своевременное восстановление репликации предотвращает возникновение коллизий данных.
  
 +===== Реализация тестирования =====
  
-**Таблицы данных: ​**+Пусть задан максимальный интервал паузы между репликациями (по умолчанию 3 часа).\\  
 +Если за это время репликация не выполнилась,​ то создается задача первой очереди с целью восстановления процесса репликации.\\ 
 +Затем задачи будут создаваться раз в сутки до тех пор пока репликация не восстановится.\\  
 + 
 +===== Настройки ===== 
 + 
 +1. В файле настроек AgentSettings.ini для агента обслуживающего "​Менеджер проектов" ​ в секции [AutoTest] настройка MaxPeriodReplMin,​ которая содержит максимальнодопустимый интервал паузы между репликациями в минутах (по умолчанию 180 мин);\\  
 +2. В "​Менеджере проектов"​ на форме ​**"​Сервисы"​** \ **"​Репликация"​** \\ 
 +Открывается форма **"​Отчет по репликации"​** и на вкладке **"​Отчет"​** нужно включить настройку **"​Проверять работу репликации (при обнаружении ошибки будет создаваться задача в Б24)"​** \\  
 +{{:​pasted:​20200226-100317.png}}\\  
 +Поле **№ задачи** заполняется автоматически при тестировании.\\  
 +Если репликация работает,​ поле **№ задачи** пустое.\\  
 +При возникновении ошибки создается задача и ставится цифра 1. Если в течение суток проблема не решена,​ то создается повторная задача и номер увеличивается на единицу.\\  
 + 
 +===== Макет задачи ===== 
 + 
 +Заголовок:​  
 +  Ошибка запуска репликации:​ Наименование клиента / Наименование подразделения (ПОВТОРНО) ​  
 +Текст задачи: 
 +  ReplIn не запускался уже ​более 3 час. ! 
 +  ReplOut не запускался уже более 3 час. ! 
 +   
 +  Наименование клиента  
 +  Наименование подразделения (Центр) 
 +  Дата и время проверки = 25.07.2016 20:05:27  
 +  Дата и время последнего выполнения ReplIn ​ = 25.07.2016 20:05:27  
 +  Дата и время последнего выполнения ReplOut = 25.07.2016 20:05:27  
 +  ID в client_repl_reps = 1294 
 +  № копии задачи = 1 
 +   
 +==== Пример задачи ==== 
 + 
 +Заголовок:​  
 +  1. Ошибка запуска репликации: РИКВЕСТ (Проф-Чистка №1) (Серпухов) / Центр 
 +Текст задачи:​ 
 +  ReplIn не запускался уже более 2442 час. ! 
 +   
 +  РИКВЕСТ (Проф-Чистка №1) (Серпухов) 
 +  Новый сервер (Центр) 
 +  Дата и время проверки = 03.12.2019 15:30:04 
 +  Дата и время последнего выполнения ReplIn = 23.08.2019 21:03:53 
 +  Дата и время последнего выполнения ReplOut = 03.12.2019 15:25:09 
 +  ID в client_repl_reps = 1242 
 +  № копии задачи = 1 
 + 
 + 
 + 
 +<ifauth @programmers>​  
 + 
 +===== Схема выполнения процесса ===== 
 + 
 +1. При выполнении репликации в базе ​данных ​менеджера проектов PC.fdb в таблице client_repl_reps заполняются поля: 
 +  rep_dttm_in,​ rep_dttm_out - дата и время последнего выполнения ReplIn, ReplOut соответственно,​ которые отображаются в графах "​Время отчета о загрузке"​ и "​Время отчета об отправке"​ 
 + 
 +2. Агент обслуживающий "​Менеджер проектов"​  
 +  2.1. при запуске считывает настройку из AgentSettings.ini из секции [AutoTest] MaxPeriodReplMin,​ которая содержит максимальнодопустимый интервал паузы между репликациями в минутах (по умолчанию 180 мин); 
 +  2.2. один раз в час запускается автотест остановки репликации. 
 +    2.2.1. в таблице client_repl_reps выбираются все записи с task_on=1;​ 
 +    2.3.2. проверяется превышение интервала между выполнением репликации и текущим временем превышает максимальный интервал паузы между репликациями {(now-rep_dttm_in)>​MaxPeriodRepl или (now-rep_dttm_out)>​MaxPeriodRepl,​ где MaxPeriodRepl равняется MaxPeriodReplMin конвертированному в формат времени},​ то создается задача первой очереди и ставится цифра 1 в поле task_num. 
 +           ​Если интервал превыше и в текущие сутки задача не создавалась,​ то \\  
 +      создается задача на исправление репликации;​\\  
 +      в карточке репликации увеличивается на единицу "​Номер задачи";​\\ 
 +      в лог в таблице AT_Repl_Log добавляется запись,​ в которой содержится URL задачи в битрексе;​\\ 
 +  2.3. Если для активной задачи репликация восстановилась,​ то "​Номер задачи"​ обнуляется,​ в логе делается запись о завершении задачи.  
 + 
 +===== Таблицы данных ===== 
 + 
 +[[:​sp_db_rep]]\\  
 +[[:​client_repl_reps]]\\  
 +[[:​at_repl_log]]\\  
 + 
 +</​ifauth>​
  
-[[:​client_repl_reps]]