Відмінності між версіями «Реплікація»
Bohdan (обговорення • внесок) (→Функції Реплікатора на сервері) |
Bohdan (обговорення • внесок) (→Функції Реплікатора на сервері) |
||
| Рядок 11: | Рядок 11: | ||
Отримавши необхідну інформацію про каси, Реплікатор розпочинає коло синхронізації, зв'язуючись по черзі з кожною з кас та проводить копіювання даних. Інструкцію про те, між якими таблицями та в якій послідовності необхідно здійснювати копіювання, Реплікатор бере з таблиці T_REP_SCENARIO_STEPS. | Отримавши необхідну інформацію про каси, Реплікатор розпочинає коло синхронізації, зв'язуючись по черзі з кожною з кас та проводить копіювання даних. Інструкцію про те, між якими таблицями та в якій послідовності необхідно здійснювати копіювання, Реплікатор бере з таблиці T_REP_SCENARIO_STEPS. | ||
| − | Кроки сценарію реплікації передбачають | + | Кроки сценарію реплікації передбачають синхронізацію даних про: |
* документи; | * документи; | ||
* користувачів та їх права; | * користувачів та їх права; | ||
| Рядок 18: | Рядок 18: | ||
* дисконтні картки; | * дисконтні картки; | ||
* акції та ін.. | * акції та ін.. | ||
| − | + | Починаючи кожен крок реплікації з 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. | ||
| − | Провівши реплікацію з усіма касами, коло реплікації завершується. Після цього Реплікатор робить тайм-аут, тривалість якого задається в | + | Потім Реплікатор підключається до наступної каси і повторює процес. |
| + | |||
| + | Провівши реплікацію з усіма касами, коло реплікації завершується. Після цього Реплікатор робить тайм-аут, тривалість якого задається в налаштуваннях. По завершенню тайм-аута розпочинається нове коло синхронізації. | ||
==Функції Реплікатора на касі== | ==Функції Реплікатора на касі== | ||
Версія за 08:43, 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.
Потім Реплікатор підключається до наступної каси і повторює процес.
Провівши реплікацію з усіма касами, коло реплікації завершується. Після цього Реплікатор робить тайм-аут, тривалість якого задається в налаштуваннях. По завершенню тайм-аута розпочинається нове коло синхронізації.