Синхронизация:Настройка синхронизации — различия между версиями

Материал из wiki.standart-n.ru
Перейти к: навигация, поиск
(Установка и настройка WAMP сервера)
(Установка и настройка WAMP сервера)
Строка 54: Строка 54:
 
7. Устанавливаем пустую глобальную базу \\vnedrenie\Obmen\Lastexe\ ZTRADE_GMempty.7z<br>
 
7. Устанавливаем пустую глобальную базу \\vnedrenie\Obmen\Lastexe\ ZTRADE_GMempty.7z<br>
 
либо берём с какого-либо схожего клиента, делаем бэкап метаданных,
 
либо берём с какого-либо схожего клиента, делаем бэкап метаданных,
после чего размернув рядом - копирование объекта с родительской базы копируем таблицы SP$FRREPORTS, SP$USERS,SP$GROUPS,SP$GROUP_DETAIL<br>
+
после чего размернув рядом - копирование объекта с родительской базы копируем таблицы SP$FRREPORTS, SP$USERS,SP$GROUPS,SP$GROUP_DETAIL,SP$PARAMS<br>
 
создаём 0 g$profile по типу родительской базы
 
создаём 0 g$profile по типу родительской базы
 
8. В каталог установки wamp\www устанавливаем скрипты. Можно взять \\vnedrenie\Obmen\Lastexe\scripts<br>
 
8. В каталог установки wamp\www устанавливаем скрипты. Можно взять \\vnedrenie\Obmen\Lastexe\scripts<br>

Версия 18:07, 27 октября 2016

Установка и настройка WAMP сервера

1. Скачать wamp server для необходимой операц. Системы http://www.wampserver.com/ru/
2. Установить Visual C++
3. Установить WampServer
4. Настройка
а. Открываем Appach – httpd.conf
b. Строки

   Listen 0.0.0.0:80
   Listen [::0]:80

исправляем на

   Listen 0.0.0.0:8080

c. Ищем блок. Последние строки должны быть, как в этом примере.

<Directory "c:/wamp/www/">
    #
    # Possible values for the Options directive are "None", "All",
    # or any combination of:
    #   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
    #
    # Note that "MultiViews" must be named *explicitly* --- "Options All"
    # doesn't give it to you.
    #
    # The Options directive is both complicated and important.  Please see
    # http://httpd.apache.org/docs/2.4/mod/core.html#options
    # for more information.
    #
    Options Indexes FollowSymLinks

    #
    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be "All", "None", or any combination of the keywords:
    #   AllowOverride FileInfo AuthConfig Limit
    #
    AllowOverride All

    #
    # Controls who can get stuff from this server.
    #
    Require all granted
#   onlineoffline tag - don't remove
     Order Deny,Allow
     Allow from all
</Directory>

!!! ЕСЛИ ЭТИХ НАСТРОЕК НЕТ САМОМУ ИХ СТАВИТЬ НЕ НУЖНО!!!
d. Ставим галочку php - php extensions - php_interbase (правая кнопка мышки)
5. !!! ОБЯЗАТЕЛЬНО !!! в файлах php.ini и my.ini ищем все вхождения слов MAX и LIMIT и устанавливаем ограничения (по здравому смыслу), т.к. изначально ограничения очень большие.
6. Копируем C:\Program Files\Firebird\Firebird_2_5\bin\fbclient.dll
в отдельную папку делаем еще раз копию файла и обзываем его gds32.dll, потом оба этих файла копируем во все системные папки Windows, System32, C:\wamp\bin\apache\apache2.4.9\bin, C:\wamp\bin.
7. Устанавливаем пустую глобальную базу \\vnedrenie\Obmen\Lastexe\ ZTRADE_GMempty.7z
либо берём с какого-либо схожего клиента, делаем бэкап метаданных, после чего размернув рядом - копирование объекта с родительской базы копируем таблицы SP$FRREPORTS, SP$USERS,SP$GROUPS,SP$GROUP_DETAIL,SP$PARAMS
создаём 0 g$profile по типу родительской базы 8. В каталог установки wamp\www устанавливаем скрипты. Можно взять \\vnedrenie\Obmen\Lastexe\scripts
или копируем с клиента со схожей базой скрипты из папки www/sinhro/engine - все кроме log.txt, папки BACK,USERS,QUEUE, их потом вручную создать надо будет(не копировать, потому что очень много весят) 9. В этом каталоге настраиваем файлы: declare.php. пути должны быть верные
10. Проверяем доступ http://127.0.0.1:8080/scripts/system.php. Ошибка "error no input data" говорит о том, что все хорошо. Если доступа нет, обращаемся к сис.админам для проброски порта 8080 или настройки совместимости wamp и firebird. Модем, антивирус, брандмауэр.
11. В php.ini и my.ini делаем поиск по словам "Limit" и "Max", и выставляем настройки в разумных пределах;
12. В базе ZTRADE_GM.FDB настраиваем таблицу G$PROFILES аналогично строке с id=0
13. DBSECUREKEY заполняем по данным программы \\Vnedrenie\Standart\registr\GenDBSecureKey.exe
14. Перезагрузить комп. Проверить: старт wamp server должен быть автоматически.

Настройка очереди

1. Взять последний релиз \\supa\zclientxp\_releases\QueueService;
2. В QueueService.ini указать актуальные пути/адреса;
3. Установить службу SNDQS.exe /install;
4. В declare.php (обычно тут C:\wamp\www\sinhro\engine\declare.php) указать параметр $GLOBALS["USEQUEUE"]=TRUE;
5. В Службах ОС найти и запустить службу "StandartNDistributeQueueService", тип запуска "Автоматически";
6. В планировщике заданий настраиваем задание на перезапуск службы (пример есть в ЮгМедФарме, Гурмане, АйдакеФарм и др.)
7. Проверить.

Настройка клиента

1. Скопировать и запустить distributeclient
2. Настройки должны выглядеть примерно так:
3. Настройка синхронизации.png
4. Перезапуск клиента.
5. Вводим идентификатор профиля (программа GenDBSecureKey.exe – кнопка Button3), где номер по порядку совпадает с ИД из таблицы G$PROFILES, а сам ключ совпадает со значением в поле DBSECUREKEY (БД Ztrade_GM).
6. Проверяем что в основных таблицах VALS, WARES, PARTS,DOCS у строки с id=0 небольшой пакет, если большой отключаем триггер, обнуляем пакет.
7. Проверяем синхронизацию
8. Ставим ярлык в автозагрузку

Настройка сводной базы

1) Берем копию уже настроенной сводной базы в сети (первый раз настраивает Слава);
2) Разворачиваем на требуемом ПК;
3) В таблице G$DISTRIBUTE оставляем только 1 запись с максимальным SERVERPACKET, остальное чистим;
4) Создаем на сервере профиль по аналогии с сущ. сводной базой, настройки в таблицах G$DISTRIBUTE_X_TABLES и G$DISTRIBUTE_VECTORS аналогичные сущ. сводной базе;
5) Копируем папку со spacepro, dtClient-ом - настраиваем на актуальный профиль и путь к базе. DtClient ставим в автозагрузку.

ВНИМАНИЕ!!!

На серверной базе нельзя настраивать функционал, который будет записывать данные в g$distribute параллельно с очередью задач вне её транзакции. Иначе будут дыры в пакетах, и есть риск, что часть данных с сервера не уйдет. Пример:
1) Нормально: на docs, parts висят триггеры, которые собирают warebase_g, триггеры которой пишут данные в g$distribute, т.к. это все происходит в рамках транзакции очереди задач;
2) Неправильно: пользовательская таблица, которая заполняется вручную, триггеры которой пишут данные в g$distribute, т.к. запись происходит в отдельной транзакции.