Відмінності між версіями «Реплікація»

Матеріал з Wiki Script Solutions
Перейти до: навігація, пошук
(Функції Реплікатора на сервері)
(Функції Реплікатора на сервері)
Рядок 18: Рядок 18:
 
* дисконтні картки;
 
* дисконтні картки;
 
* акції та ін..
 
* акції та ін..
Починаючи кожен крок реплікації з T_REP_SCENARIO_STEPS, Реплікатор робить відповідну помітку в таблиці T_REP_LOGS про початок завершення кроку:
+
Починаючи кожен крок реплікації з T_REP_SCENARIO_STEPS, Реплікатор робить відповідну помітку в таблиці T_REP_LOGS про початок та завершення кроку:
 
* START_TS — початок виконання кроку;
 
* START_TS — початок виконання кроку;
 
* FINISH_TS — кінець виконання кроку;
 
* FINISH_TS — кінець виконання кроку;

Версія за 09:44, 29 травня 2015

Реплікація (англ. replication) — механізм синхронізації вмісту центральної бази даних магазину і БД кас, який полягає в копіюванні даних із одного джерела на інше (або декілька інших) і навпаки. За даний процес відповідає Реплікатор, який являє собою додаток для freeBSD, написаний на GCC. Він складається з двох модулів, один з яких розміщається на сервері, а інший на касах.

Функції Реплікатора на сервері

Модуль реплікатора, що міститься на сервері проводить синхронізацію даних між центральною базою і базами кас. Для цього Реплікатор звертається до таблиці T_REP_KASSES та зчитує дані полів:

  • CONNECTION_STRINGS - рядок підключення до бази;
  • USER_NAME - логін користувача під яким проводиться синхронізація;
  • USER_PASWORD - пароль;
  • IS_ACTIVE - вказує виконувати синхронізацію чи ні;
  • STOP_RUNNING - чи проводилась ручна зупинка реплікації каси.

Отримавши необхідну інформацію про каси, Реплікатор розпочинає коло синхронізації, зв'язуючись по черзі з кожною з кас та проводить копіювання даних. Інструкцію про те, між якими таблицями та в якій послідовності необхідно здійснювати копіювання, Реплікатор бере з таблиці T_REP_SCENARIO_STEPS.

Кроки сценарію реплікації передбачають синхронізацію даних про:

  • документи;
  • користувачів та їх права;
  • товари та їх властивості;
  • клієнтів;
  • дисконтні картки;
  • акції та ін..

Починаючи кожен крок реплікації з T_REP_SCENARIO_STEPS, Реплікатор робить відповідну помітку в таблиці T_REP_LOGS про початок та завершення кроку:

  • START_TS — початок виконання кроку;
  • FINISH_TS — кінець виконання кроку;
  • REP_KASA_ID — ідентифікатор каси;
  • SCENARIO_ID — Номер сценарію;
  • STEP_ID — Номер кроку сценарію;
  • STATUS — статус виконання, де 0 - розпочато, 0 - завершено;
  • ERROR_COUNT — кількість помилок даного об'єкта.

Інформація про помилки записується в таблиці T_REP_ERRORS.

Потім Реплікатор підключається до наступної каси і повторює процес.

Провівши реплікацію з усіма касами, коло реплікації завершується. Після цього Реплікатор робить тайм-аут, тривалість якого задається в налаштуваннях. По завершенню тайм-аута розпочинається нове коло синхронізації.

Функції Реплікатора на касі