==== Разбор механизма работы модуля оффлайн проверки марок от Честного Знака ====
== Проблема ==
На 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"
]
}