Установка компонентов сервера PayControl v5 вручную — различия между версиями

Материал из PayControl Wiki
Перейти к: навигация, поиск
м
(Содержимое страницы заменено на «{{Уведомление|Актуальная документация по версии 5 располагается по адре…»)
(Метка: заменено)
 
(не показано 40 промежуточных версий 3 участников)
Строка 1: Строка 1:
==Подготовка БД==
+
{{Уведомление|Актуальная документация по версии 5 располагается по адресу https://repo.paycontrol.org/index/safe-tech/#paycontrol}}
* Создать базу данных и пользователя на сервере СУБД, где будет работать база данных PCS (pcs-user, pcs-pass, pcs-db, pcs-db-host). Предоставить права на доступ пользователю к БД.
 
* Создать базу данных и пользователя на сервере СУБД, где будет работать база данных PCIS (pcis-user, pcis-pass, pcis-db, pcis-db-host). Предоставить права на доступ пользователю к БД.
 
==Установка Java==
 
Установить последнюю версию JRE ветки 1.8 или 11
 
===Обновление Security===
 
Для версии JRE 1.8:
 
* Скачать архив по адресу http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html
 
* Распаковать и скопировать файлы по адресу ''<JRE>\lib\security\'', заменив старые версии.
 
 
 
Для версии JRE 11 - аналогично
 
==Установка Wildfly==
 
* Скачать и распаковать актуальную версию WildFly Server. (При распаковке рекомендуется исключить кириллические символы в пути, а также пробелы.)
 
https://wildfly.org/downloads/
 
* Создать символьную ссылку, к примеру ''C:\wildfly'', на распакованную директорию. Пример команды:
 
<syntaxhighlight lang="bat">mklink /D c:\wildfly c:\wildfly-18.0.1.Final\</syntaxhighlight>
 
Далее по тексту, под <WF_PATH> имеется в виду адрес созданной символьной ссылки.
 
===Добавление JDBC-драйвера СУБД===
 
====MS SQL====
 
* Скачать JDBC-драйвер с сайта Microsoft https://docs.microsoft.com/ru-ru/sql/connect/jdbc/download-microsoft-jdbc-driver-for-sql-server?view=sql-server-ver15
 
* Создать директорию ''<WF_PATH>/modules/system/layers/base/com/microsoft/sqlserver/main/''
 
* В директорию распаковать файлы и директории драйвера. Файлы драйвера (*.jar) должны располагаться непосредственно в директории ''main/''
 
* Создать в этой же папке файл module.xml следующего содержания
 
<syntaxhighlight lang="xml"><?xml version="1.0" encoding="UTF-8"?>
 
<module xmlns="urn:jboss:module:1.3" name="com.microsoft.sqlserver">
 
  <resources>
 
    <!-- JAR_PATH, for example, mssql-jdbc-6.2.1.jre8.jar -->
 
    <resource-root path="JAR_PATH"/>
 
  </resources>
 
  <dependencies>
 
    <module name="javax.api"/>
 
    <module name="javax.transaction.api"/>
 
    <module name="javax.xml.bind.api"/>
 
  </dependencies>
 
</module>
 
</syntaxhighlight>
 
===Настройка standalone.xml===
 
В файл ''<WF_PATH>/standalone/configuration/standalone.xml'' внести следующие изменения
 
* Добавить новый источник данных (секция ''<datasources>''):
 
<syntaxhighlight lang="xml">
 
<!--- На PayControl Server, заменить pcs-db-host, port, pcs-db-host, pcs-db, pcs-user, pcs-pass --->
 
<datasource jta="true" jndi-name="java:jboss/datasources/PCServerDS" pool-name="PCServerDS" enabled="true" use-ccm="true">
 
<connection-url>jdbc:sqlserver://pcs-db-host:port;databaseName=pcs-db</connection-url>
 
<connection-property name="url">
 
jdbc:sqlserver://pcs-db-host:port;databaseName=pcs-db
 
</connection-property>
 
<driver>mssql</driver>
 
<security>
 
<user-name>pcs-user</user-name>
 
<password>pcs-pass</password>
 
</security>
 
<pool>
 
<min-pool-size>5</min-pool-size>
 
<max-pool-size>50</max-pool-size>
 
<prefill>false</prefill>
 
<use-strict-min>false</use-strict-min>
 
<flush-strategy>FailingConnectionOnly</flush-strategy>
 
</pool>
 
<validation>
 
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mssql.MSSQLValidConnectionChecker"></valid-connection-checker>
 
</validation>
 
</datasource>
 
 
 
<!--- На PayControl Pusher, заменить pcis-db-host, port, pcis-db-host, pcis-db, pcis-user, pcis-pass --->
 
<datasource jta="true" jndi-name="java:jboss/datasources/PCPusherDS" pool-name="PCPusherDS" enabled="true" use-ccm="true">
 
<connection-url>jdbc:sqlserver://pcis-db-host:port;databaseName=pcis-db</connection-url>
 
<connection-property name="url">
 
jdbc:sqlserver://pcis-db-host:port;databaseName=pcis-db
 
</connection-property>
 
<driver>mssql</driver>
 
<security>
 
<user-name>pcis-user</user-name>
 
<password>pcis-pass</password>
 
</security>
 
<pool>
 
<min-pool-size>5</min-pool-size>
 
<max-pool-size>50</max-pool-size>
 
<prefill>false</prefill>
 
<use-strict-min>false</use-strict-min>
 
<flush-strategy>FailingConnectionOnly</flush-strategy>
 
</pool>
 
<validation>
 
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mssql.MSSQLValidConnectionChecker"></valid-connection-checker>
 
</validation>
 
</datasource>
 
</syntaxhighlight>
 
* Добавить новый драйвер (секция ''<datasources/drivers>'')
 
<syntaxhighlight lang="xml">
 
<driver name="mssql" module="com.microsoft.sqlserver">
 
<driver-class>com.microsoft.sqlserver.jdbc.SQLServerDriver</driver-class>
 
</driver>
 
</syntaxhighlight>
 
*Удалить источник данных по умолчанию и welcome-page
 
При конфигурировании Wildfly можно (при переводе системы в промышленную эксплуатацию - рекомендуется) удалить пример источника данных и страницу-приветствие. Для этого в файле standalone.xml необходимо убрать (либо закомментировать) следующие объекты:
 
<syntaxhighlight lang="xml">
 
<datasource jndi-name="java:jboss/datasources/ExampleDS" pool-name="ExampleDS" enabled="true" use-java-context="true">
 
<connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE</connection-url>
 
<driver>h2</driver>
 
<security>
 
<user-name>sa</user-name>
 
<password>sa</password>
 
</security>
 
</datasource>
 
</syntaxhighlight>
 
<syntaxhighlight lang="xml">
 
<driver name="h2" module="com.h2database.h2">
 
<xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
 
</driver>
 
</syntaxhighlight>
 
<syntaxhighlight lang="xml">
 
<default-bindings context-service="java:jboss/ee/concurrency/context/default" datasource="java:jboss/datasources/ExampleDS" managed-executor-service="java:jboss/ee/concurrency/executor/default" managed-scheduled-executor-service="java:jboss/ee/concurrency/scheduler/default" managed-thread-factory="java:jboss/ee/concurrency/factory/default"/>
 
</syntaxhighlight>
 
<syntaxhighlight lang="xml">
 
<location name="/" handler="welcome-content"/>
 
</syntaxhighlight>
 
<syntaxhighlight lang="xml">
 
<handlers>
 
<file name="welcome-content" path="${jboss.home.dir}/welcome-content"/>
 
</handlers>
 
</syntaxhighlight>
 
===Настройка standalone.conf.bat===
 
В файл ''<WF_PATH>/bin/standalone.conf.bat'' внести следующие изменения:
 
 
 
* На всех серверах установить максимальный объем используемой памяти, равный ''ОбщийОбъёмОЗУ - 1536MB''
 
Для этого в строке
 
''JAVA_OPTS="-Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true"'' поменять параметр ''Xmx''
 
 
 
* На сервере PayControl External необходимо установить адрес сервера PC Server (host и port заменить на реальные значения)
 
<syntaxhighlight lang="bat">set "JAVA_OPTS=%JAVA_OPTS% -Dpc_url=http://<host>:<port>/pc-api/ -Dpc_locale=ru"</syntaxhighlight>
 
 
 
* При необходимости отладки сообщений от мобильных устройств на PayControl External, можно включить вывод отладочной информации
 
<syntaxhighlight lang="bat">set "JAVA_OPTS=%JAVA_OPTS% -Dpc_logRequests=true"</syntaxhighlight>
 
==Запуск проекта==
 
* Скопировать файл приложения сервера ''<WF_PATH>\standalone\deployments\'':
 
** на PC Server - файл ''pc-server-<VERSION>.ear''
 
** на PC Pusher - файл ''pc-pusher-<VERSION>.war''
 
** на PC External - файл ''pc-external-<VERSION>.war''
 
Один сервер WildFly может запускать одно или несколько приложений сервера
 
* Запустить <syntaxhighlight lang="bat"><WF_PATH>\bin\standalone.bat -b 0.0.0.0</syntaxhighlight> где -b 0.0.0.0 - позволяет подключаться к серверу используя любой его интерфейс (опция bind)
 
* Дождаться старта WF, проверить, что нет ошибок запуска.
 
==Настройка автозапуска службы сервера==
 
Скопировать папку<br>
 
''<WF_PATH>\docs\contrib\scripts\service\''<br>
 
в папку<br>
 
''<WF_PATH>\bin\''<br>
 
Выполнить
 
<syntaxhighlight lang="bat"><WF_PATH>\bin\service\service.bat install /startup</syntaxhighlight>
 
При запуске в качестве службы, возможно отклонение запросов. В таком случае необходимо установить параметры JAVA_OPTS в файле standalone.conf.bat или standalone.bat, если установленные в предыдущем файле параметры не применяются.
 
<syntaxhighlight lang="bat">JAVA_OPTS=%JAVA_OPTS% -Djboss.bind.address=0.0.0.0</syntaxhighlight>
 
==URL-фильтрация при совмещении PC Pusher и PC External==
 
При совмещении ролей PC Pusher и PC External на одном сервере необходимо исключить возможность выполнения запросов PC Pusher со стороны сети интернет. <br>
 
Для этого необходимо со стороны сети интернет разрешить подключения только на конечную точку PC External. <br>
 
Конечная точка PC External - ''<host>:<port>/pc-client-api/*''<br>
 
Доступ к другим конечным точкам должен быть запрещен.
 
 
 
При этом доступ к PC Pusher со стороны PC Server должен сохраниться. <br>
 
Конечная точка PC Pusher - ''<host>:<port>/pc-pusher-api/*''
 
==Создание индексов в базе данных==
 
После первого запуска приложения, в базе данных будут созданы необходимые таблицы.
 
 
 
На продуктивной среде после этого необходимо создать индексы в базе данных PC Server.
 
 
 
Для этого выполните SQL скрипт:
 
<syntaxhighlight lang="sql">
 
create index pc_keyinfo1_idx on PC_KEYINFO (userID, expiration_date, is_deleted);
 
create index pc_delayedkeyinfo1_idx on PC_DELAYEDKEYINFO (userID, is_deleted);
 
create index pc_device1_idx on PC_DEVICE (userID, is_deleted);
 
create index pc_transaction1_idx on PC_TRANSACTION (userID, status);
 
create index pc_device2_idx on PC_DEVICE (userID);
 
create index pc_keyinfo2_idx on PC_KEYINFO (userID);
 
create index pc_transaction2_idx on PC_TRANSACTION (userID);
 
create index pc_user1_idx on PC_USER (systemID);
 
</syntaxhighlight>
 
==Корректировка типов данных для MS SQL==
 
Java-приложение при создании таблиц БД неоптимально устанавливает тип для одного из полей для СУБД MS SQL.
 
 
 
Для его корректировки после того, как таблицы созданы, выполните запрос
 
<syntaxhighlight lang="sql">
 
ALTER TABLE PC_TRANSACTION ALTER COLUMN DATA_BINARY image;
 
</syntaxhighlight>
 
==Регистрация системы==
 
После успешного запуска приложения PC Server до начала работы необходимо зарегистрировать прикладную систему.
 
 
 
Это действие выполняется путем отправки на PC Server запроса, сформированного ST/Airome. Содержание запроса предоставляется дополнительно.
 
 
 
Для отправки запроса можно использовать любое средство отправки HTTP-запросов, например, cURL
 
 
 
<syntaxhighlight lang="curl">
 
curl --location --request POST 'http://<host>:<port>/pc-api/' \
 
--header 'Content-Type: application/json' \
 
--data-raw '{
 
"request":"eyJyZXF1ZXN0Ijp... [request content]"
 
}'
 
</syntaxhighlight>
 
==Доступ к сервисам==
 
Адреса конечных точек по умолчанию:
 
* PC Server - http://<host>:8080/pc-api/
 
* PC Pusher - http://<host>:8080/pc-pusher-api/
 
* PC External - http://<host>:8080/pc-client-api/
 
 
 
===Health Check===
 
Адреса конечных точек health check:
 
* PC Server - http://<host>:8080/pc-api/health_check
 
* PC Pusher - http://<host>:8080/pc-pusher-api/health_check
 
* PC External - http://<host>:8080/pc-client-api/health_check
 

Текущая версия на 18:01, 20 июля 2022

В работе
Уведомление. Актуальная документация по версии 5 располагается по адресу https://repo.paycontrol.org/index/safe-tech/#paycontrol