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

Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
автотестирование_остановки_репликации [26.02.2020 10:32]
Анисютин
автотестирование_остановки_репликации [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) (Серпухов) / Центр 
-Текст задачи:​ 
-  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>​