==== Разбор механизма работы модуля оффлайн проверки марок от Честного Знака ==== == Проблема == На 1 пк можно поставить только 1 модуль, 1 модуль работает только с одним ИНН. На сегодня у нас нет компаний в рознице у кого только 1 инн, в основном 2 и больше, т.е. нужно ставить 2 модуля на 2 разных пк. Есть компании, где 6 юр лиц, это уже создает проблему. == Описание модуля == Конструктивно модуль состоит из 2-х частей * regime - написан честным знаком и служит апи для фронтола и прочего по * yenisei - бд для хранения марок, [[https://yeniseidb.ru/|Енисей СУБД]] Ограничение на количество инн заложено именно в Енисее, точнее в его лицензии. == Внимание! == После инициализации бд ее нельзя использовать еще раз. Подготовленный дистр с чистыми бд лежим на фтп ftp_incoming/regime == Обход проблемы с лицензией == Для запуска 2-х енисеев на 1-м пк нужно использовать коммьюнити лицензию на 3 мес. Взять ее можно по [[https://distr.yeniseidb.ru/download/yenisei_community.lic|ссылке]] == Установка лицензии == - Должны быть запущены все енисеи - Выполняем запрос установки лицензии. В тестах использовался Постер. Тип запроса POST в теле запроса текстом пишем лицензию скопированную по [[https://distr.yeniseidb.ru/download/yenisei_community.lic|ссылке]] с сайта разработчиков. http://127.0.0.1:5984/_license == Результат выполнения запроса == { "ok": true } == настройка запуска 2-х regime и yenisei== * В каталоге Regime\ копируем папки regime и yenisei называем их regime_2 и yenisei_2 * Далее наша задача заменить пути запуска программных модулей и активировать службы * В каталоге Regime\bin создаем файлы запуска служб regime_2.cmd и yenisei_2.cmd * В содержимом CMD файлов regime_2.cmd и yenisei_2.cmd меняем: "%BINDIR%\erl" -boot "%ROOTDIR%\regime\releases\%APP_VSN%\regime" ^ -args_file "%ROOTDIR%\regime\etc\vm.args" ^ -epmd "%BINDIR%\epmd.exe" ^ -config "%ROOTDIR%\regime\releases\%APP_VSN%\sys.config" %* на regime_2 или enisey_2 "%BINDIR%\erl" -boot "%ROOTDIR%\regime_2\releases\%APP_VSN%\regime" ^ -args_file "%ROOTDIR%\regime_2\etc\vm.args" ^ -epmd "%BINDIR%\epmd.exe" ^ -config "%ROOTDIR%\regime_2\releases\%APP_VSN%\sys.config" %* * Regime Корректировка конфиг файлов * Regime\regime_2\etc * local.ini * port = 5996 ставим нужный * yenisei_stop_cmd = PowerShell.exe -noprofile -command "&'C:\Program Files\Regime\bin\nssm' stop yenisei_2" команда остановки службы * yenisei_start_cmd = PowerShell.exe -noprofile -command "&'C:\Program Files\Regime\bin\nssm' start yenisei_2" команда запуска службы * yenisei_move_cmd = PowerShell.exe -noprofile -command "mv -Force 'C:\Program Files\Regime\{{FILE_PATH}}' 'C:\Program Files\Regime\yenisei_2\data\shards\{{SHARD_NAME}}\{{DB_NAME}}.{{DB_SUFFIX}}.couch'" Месторасположения БД * db_url = http://127.0.0.1:5985 порт БД * vm.args * -name regime_2@127.0.0.1 - имя службы режима * Regime\regime_2\releases\1.2.0-326 * sys.config * "var/log/regime_2.log" место положения лог файла * Regime\yenisei_2\etc * local.ini * port = 5985 порт службы должен совпадать с параметром db_url = http://127.0.0.1:5985 в файле Regime\regime_2\etc\local.ini * file = var/log/yenisei_2.log имя лог файла * database_dir = ./yenisei_2/data место положения файлов данных * view_index_dir = ./yenisei_2/data место положения файлов индекса * vm.args * -name yenisei_2@127.0.0.1 - имя службы енисея * Regime\yenisei_2\releases\2.2.1-1890 * sys.config * "yenisei_2/etc/default.ini", * "yenisei_2/etc/default.d", * "yenisei_2/etc/local.ini", * "yenisei_2/etc/local.d" * Корректировка файлов запуска служб * Экспортируем из реестр куст запуска службы Regime и меняем все на regime_2, после обратного экспорта не забываем поменять путь к файлу запуска службы C:\Program Files\Regime\bin\regime_2.cmd HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\regime HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\yenisei Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\regime_2] "Type"=dword:00000010 "Start"=dword:00000002 "ErrorControl"=dword:00000001 "ImagePath"=hex(2):22,00,43,00,3a,00,5c,00,50,00,72,00,6f,00,67,00,72,00,61,00,\ 6d,00,20,00,46,00,69,00,6c,00,65,00,73,00,5c,00,52,00,65,00,67,00,69,00,6d,\ 00,65,00,5c,00,62,00,69,00,6e,00,5c,00,6e,00,73,00,73,00,6d,00,2e,00,65,00,\ 78,00,65,00,22,00,00,00 "DisplayName"="regime_2" "ObjectName"="LocalSystem" "DelayedAutostart"=dword:00000000 "FailureActionsOnNonCrashFailures"=dword:00000001 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\regime_2\Parameters] "Application"=hex(2):43,00,3a,00,5c,00,50,00,72,00,6f,00,67,00,72,00,61,00,6d,\ 00,20,00,46,00,69,00,6c,00,65,00,73,00,5c,00,52,00,65,00,67,00,69,00,6d,00,\ 65,00,5c,00,62,00,69,00,6e,00,5c,00,72,00,65,00,67,00,69,00,6d,00,65,00,2e,\ 00,63,00,6d,00,64,00,00,00 "AppParameters"=hex(2):00,00 "AppDirectory"=hex(2):43,00,3a,00,5c,00,50,00,72,00,6f,00,67,00,72,00,61,00,6d,\ 00,20,00,46,00,69,00,6c,00,65,00,73,00,5c,00,52,00,65,00,67,00,69,00,6d,00,\ 65,00,5c,00,62,00,69,00,6e,00,00,00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\regime_2\Parameters\AppExit] @="Restart" == Запросы к Енисею == * http://127.0.0.1:5984/_license Запрос текущей лицензии { "license": { "licenseId": "eb8e7ae7-df5c-4919-a116-3767e0b4de3b", "participantId": 10001, "organizationName": "test org", "contactPerson": "test user", "address": "г.Москва", "phoneNumber": "+79009999999", "email": "user@domain.com", "name": "YENISEI COMMUNITY LICENSE", "licenseType": 1, "productId": 2, "cluster": true, "quantity": 3, "core": 8, "db_quantity": 50, "db_max_size": 107374182400, "angara_support": true, "mobile_support": true, "expiredDate": 1748725199000, "createDate": 1739912400000 }, "state": "active" } * http://127.0.0.1:5984/_membership Запрос количество нодов { "all_nodes": [ "yenisei@127.0.0.1", "yenisei_2@127.0.0.1" ], "cluster_nodes": [ "yenisei@127.0.0.1", "yenisei_2@127.0.0.1" ] }