Установка компонентов сервера PayControl v5 вручную — различия между версиями
(→В другое мобильное приложение) |
(Добавлена установка для Linux и СУБД PostgreSQL) |
||
Строка 1: | Строка 1: | ||
− | + | =Подготовка БД= | |
* Создать базу данных и пользователя на сервере СУБД, где будет работать база данных PCS (pcs-user, pcs-pass, pcs-db, pcs-db-host). Предоставить права на доступ пользователю к БД. | * Создать базу данных и пользователя на сервере СУБД, где будет работать база данных PCS (pcs-user, pcs-pass, pcs-db, pcs-db-host). Предоставить права на доступ пользователю к БД. | ||
− | * Создать базу данных и пользователя на сервере СУБД, где будет работать база данных | + | * Создать базу данных и пользователя на сервере СУБД, где будет работать база данных PCP (pcp-user, pcp-pass, pcp-db, pcp-db-host). Предоставить права на доступ пользователю к БД. |
− | + | =Установка Java= | |
Установить последнюю версию JRE ветки 1.8 или 11 | Установить последнюю версию JRE ветки 1.8 или 11 | ||
− | + | ==Обновление Security== | |
− | + | ===JRE 1.8=== | |
* Скачать архив по адресу http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html | * Скачать архив по адресу http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html | ||
* Распаковать и скопировать файлы по адресу ''<JRE>\lib\security\'', заменив старые версии. | * Распаковать и скопировать файлы по адресу ''<JRE>\lib\security\'', заменив старые версии. | ||
− | + | ===JRE 11=== | |
Замена файлов библиотек не требуется. | Замена файлов библиотек не требуется. | ||
− | + | =Установка Wildfly= | |
− | + | * Скачать актуальную версию WildFly Server – https://wildfly.org/downloads/ | |
− | * Скачать | ||
− | https://wildfly.org/downloads/ | ||
− | |||
− | |||
Далее по тексту, под <WF_PATH> имеется в виду адрес созданной символьной ссылки. | Далее по тексту, под <WF_PATH> имеется в виду адрес созданной символьной ссылки. | ||
− | ===Добавление JDBC-драйвера СУБД=== | + | ==Linux== |
− | ====MS SQL | + | * Распаковать Wildfly, например, в /opt/. |
+ | * Создать символьную ссылку /opt/wildfly на распакованную директорию:<source lang="bash">ln -s /opt/wildfly-18.0.1.Final/ /opt/wildfly</source> | ||
+ | ==Windows== | ||
+ | * Распаковать Wildfly, например, в C:\. | ||
+ | * Создать символьную ссылку, к примеру ''C:\wildfly'', на распакованную директорию. Пример команды:<syntaxhighlight lang="bat">mklink /D c:\wildfly c:\wildfly-18.0.1.Final\</syntaxhighlight> | ||
+ | ==Удаление настроек WildFly по-умолчанию== | ||
+ | Для удаления настроек по-умолчанию, необходимо выполнить пункты описанные по ссылке [[PCWiki:Wildfly#Удаление настроек по умолчанию|Wildfly - Удаление настроек по умолчанию]] | ||
+ | =Настройка подключения к БД= | ||
+ | ==Добавление JDBC-драйвера СУБД== | ||
+ | ===PostgreSQL=== | ||
+ | * Скачать актуальный JDBC-драйвер по адресу https://jdbc.postgresql.org/ | ||
+ | * Создать директорию <WF_PATH>/modules/org/postgresql/main/<source lang="bash">sudo mkdir -p /opt/wildfly/modules/org/postgresql/main/</source> | ||
+ | * В директорию поместить скачанный jar.<source lang="bash">sudo mv postgresql-42.2.2.jar /opt/wildfly/modules/org/postgresql/main/</source> | ||
+ | * Создать в этой же папке файл module.xml<source lang="bash">sudo vi /opt/wildfly/modules/org/postgresql/main/module.xml</source>следующего содержания, указав имя файла драйвера вместо "JAR_PATH":<source lang="xml"> | ||
+ | <?xml version="1.0" encoding="UTF-8"?> | ||
+ | <module xmlns="urn:jboss:module:1.0" name="org.postgresql"> | ||
+ | <resources> | ||
+ | <resource-root path="JAR_PATH"/> | ||
+ | </resources> | ||
+ | <dependencies> | ||
+ | <module name="javax.api"/> | ||
+ | <module name="javax.transaction.api"/> | ||
+ | <module name="javax.servlet.api" optional="true"/> | ||
+ | </dependencies> | ||
+ | </module> | ||
+ | </source> | ||
+ | ===MS SQL=== | ||
* Скачать JDBC-драйвер с сайта Microsoft https://docs.microsoft.com/ru-ru/sql/connect/jdbc/download-microsoft-jdbc-driver-for-sql-server?view=sql-server-ver15 | * Скачать 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/'' | * Создать директорию ''<WF_PATH>/modules/system/layers/base/com/microsoft/sqlserver/main/'' | ||
* В директорию распаковать файлы и директории драйвера. Файлы драйвера (*.jar) должны располагаться непосредственно в директории ''main/'' | * В директорию распаковать файлы и директории драйвера. Файлы драйвера (*.jar) должны располагаться непосредственно в директории ''main/'' | ||
− | * Создать в этой же папке файл module.xml следующего содержания | + | * Создать в этой же папке файл module.xml следующего содержания, заменив JAR_PATH на имя файла драйвера, например на ''mssql-jdbc-6.2.1.jre8.jar'': |
<syntaxhighlight lang="xml"><?xml version="1.0" encoding="UTF-8"?> | <syntaxhighlight lang="xml"><?xml version="1.0" encoding="UTF-8"?> | ||
<module xmlns="urn:jboss:module:1.3" name="com.microsoft.sqlserver"> | <module xmlns="urn:jboss:module:1.3" name="com.microsoft.sqlserver"> | ||
<resources> | <resources> | ||
− | |||
<resource-root path="JAR_PATH"/> | <resource-root path="JAR_PATH"/> | ||
</resources> | </resources> | ||
Строка 36: | Строка 57: | ||
</module> | </module> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | * Добавить установленный модуль в качестве драйвера для подключения к СУБД в файл <WF_PATH>/standalone/configuration/standalone.xml, в секцию ''<datasources/drivers>'', добавив следующий блок: | |
− | |||
− | |||
<syntaxhighlight lang="xml"> | <syntaxhighlight lang="xml"> | ||
− | < | + | <driver name="mssql" module="com.microsoft.sqlserver"> |
+ | <driver-class>com.microsoft.sqlserver.jdbc.SQLServerDriver</driver-class> | ||
+ | </driver> | ||
+ | </syntaxhighlight> | ||
+ | ==Добавление испочников данных для модулей== | ||
+ | ===PostgreSQL=== | ||
+ | ====PCS==== | ||
+ | В файл ''<WF_PATH>/standalone/configuration/standalone.xml'' внести следующие изменения добавить новый источник данных в секцию ''<datasources>'' заменив pcs-db-host, port, pcs-db, pcs-user, pcs-pass: | ||
+ | <source lang="xml"> | ||
+ | <datasource jta="true" jndi-name="java:jboss/datasources/PCServerDS" pool-name="PCServerDS" enabled="true" use-ccm="true"> | ||
+ | <connection-url>jdbc:postgresql://pcs-db-host:port/pcs-db</connection-url> | ||
+ | <driver-class>org.postgresql.Driver</driver-class> | ||
+ | <connection-property name="url"> | ||
+ | jdbc:postgresql://pcs-db-host:port/pcs-db | ||
+ | </connection-property> | ||
+ | <driver>postgresql</driver> | ||
+ | <security> | ||
+ | <user-name>pcs-user</user-name> | ||
+ | <password>pcs-pass</password> | ||
+ | </security> | ||
+ | <validation> | ||
+ | <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/> | ||
+ | <background-validation>true</background-validation> | ||
+ | <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/> | ||
+ | </validation> | ||
+ | </datasource> | ||
+ | </source> | ||
+ | ====PCP==== | ||
+ | На сервере PCP добавить новый источник данных в секцию ''<datasources>'', заменив pcp-db-host, port, pcp-db, pcp-user, pcp-pass: | ||
+ | <source lang="xml"> | ||
+ | <datasource jta="true" jndi-name="java:jboss/datasources/PCPusherDS" pool-name="PCPusherDS" enabled="true" use-ccm="true"> | ||
+ | <connection-url>jdbc:postgresql://pcp-db-host:port/pcp-db</connection-url> | ||
+ | <driver-class>org.postgresql.Driver</driver-class> | ||
+ | <connection-property name="url"> | ||
+ | jdbc:postgresql://pcp-db-host:port/pcp-db | ||
+ | </connection-property> | ||
+ | <driver>postgresql</driver> | ||
+ | <security> | ||
+ | <user-name>pcp-user</user-name> | ||
+ | <password>pcp-pass</password> | ||
+ | </security> | ||
+ | <validation> | ||
+ | <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/> | ||
+ | <background-validation>true</background-validation> | ||
+ | <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/> | ||
+ | </source> | ||
+ | ===MS SQL=== | ||
+ | ====PCS==== | ||
+ | В файл ''<WF_PATH>/standalone/configuration/standalone.xml'' внести следующие изменения добавить новый источник данных в секцию ''<datasources>'' заменив pcs-db-host, port, pcs-db-host, pcs-db, pcs-user, pcs-pass: | ||
+ | <source lang="xml"> | ||
<datasource jta="true" jndi-name="java:jboss/datasources/PCServerDS" pool-name="PCServerDS" enabled="true" use-ccm="true"> | <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-url>jdbc:sqlserver://pcs-db-host:port;databaseName=pcs-db</connection-url> | ||
Строка 62: | Строка 130: | ||
</validation> | </validation> | ||
</datasource> | </datasource> | ||
− | + | </source> | |
− | < | + | ====PCP==== |
+ | На сервере PCP добавить новый источник данных в секцию ''<datasources>'', заменив pcp-db-host, port, pcp-db-host, pcp-db, pcp-user, pcp-pass: | ||
+ | <source lang="xml"> | ||
<datasource jta="true" jndi-name="java:jboss/datasources/PCPusherDS" pool-name="PCPusherDS" enabled="true" use-ccm="true"> | <datasource jta="true" jndi-name="java:jboss/datasources/PCPusherDS" pool-name="PCPusherDS" enabled="true" use-ccm="true"> | ||
− | <connection-url>jdbc:sqlserver:// | + | <connection-url>jdbc:sqlserver://pcp-db-host:port;databaseName=pcp-db</connection-url> |
<connection-property name="url"> | <connection-property name="url"> | ||
− | jdbc:sqlserver:// | + | jdbc:sqlserver://pcp-db-host:port;databaseName=pcp-db |
</connection-property> | </connection-property> | ||
<driver>mssql</driver> | <driver>mssql</driver> | ||
<security> | <security> | ||
− | <user-name> | + | <user-name>pcp-user</user-name> |
− | <password> | + | <password>pcp-pass</password> |
</security> | </security> | ||
<pool> | <pool> | ||
Строка 85: | Строка 155: | ||
</validation> | </validation> | ||
</datasource> | </datasource> | ||
− | </ | + | </source> |
− | + | =Настройка подключения PCP к PCS= | |
− | + | На сервере PCE необходимо установить адрес сервера PCS (host и port заменить на реальные значения). Для этого: | |
− | + | * на Linux в файл ''<WF_PATH>/bin/standalone.conf'' нужно добавить <syntaxhighlight lang="bash">JAVA_OPTS="$JAVA_OPTS -Dpc_url=http://<host>:<port>/pc-api/ -Dpc_locale=ru"</syntaxhighlight> | |
− | + | * на Windows в файл ''<WF_PATH>/bin/standalone.conf.bat'' нужно добавить <syntaxhighlight lang="bat">set "JAVA_OPTS=%JAVA_OPTS% -Dpc_url=http://<host>:<port>/pc-api/ -Dpc_locale=ru"</syntaxhighlight> выше метки :JAVA_OPTS_SET | |
− | |||
− | |||
− | |||
− | |||
− | <syntaxhighlight lang=" | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | <syntaxhighlight lang=" | ||
− | |||
− | < | ||
− | < | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | </syntaxhighlight> | ||
− | |||
− | |||
− | + | =Настройка выделения памяти серверу= | |
+ | На всех серверах установить максимальный объем доступной для использования памяти: | ||
+ | * на Linux в ''<WF_PATH>/bin/standalone.conf'' указать объём «ОбщийОбъёмОЗУ - 512MB» | ||
+ | * на Windows в ''<WF_PATH>\bin\standalone.conf.bat'' указать объём «ОбщийОбъёмОЗУ - 1536MB» | ||
Для этого в строке | Для этого в строке | ||
− | ''JAVA_OPTS="-Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true"'' поменять | + | ''JAVA_OPTS="-Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true"'' поменять значение параметра ''Xmx'' на выделяемый объём. |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==Запуск проекта== | ==Запуск проекта== | ||
* Скопировать файл приложения сервера ''<WF_PATH>\standalone\deployments\'': | * Скопировать файл приложения сервера ''<WF_PATH>\standalone\deployments\'': | ||
Строка 138: | Строка 173: | ||
** на PC External - файл ''pc-external-<VERSION>.war'' | ** на PC External - файл ''pc-external-<VERSION>.war'' | ||
Один сервер WildFly может запускать одно или несколько приложений сервера | Один сервер WildFly может запускать одно или несколько приложений сервера | ||
− | * Запустить <syntaxhighlight lang="bat"><WF_PATH>\bin\standalone.bat -b 0.0.0.0</syntaxhighlight> где -b 0.0.0.0 - позволяет подключаться к серверу используя любой его интерфейс (опция bind) | + | * Запустить |
+ | ** Linux <syntaxhighlight lang="bash"><WF_PATH>/bin/standalone.sh -b 0.0.0.0</syntaxhighlight> | ||
+ | ** Windows <syntaxhighlight lang="bat"><WF_PATH>\bin\standalone.bat -b 0.0.0.0</syntaxhighlight> | ||
+ | *: где -b 0.0.0.0 - позволяет подключаться к серверу используя любой его интерфейс (опция bind) | ||
* Дождаться старта WF, проверить, что нет ошибок запуска. | * Дождаться старта WF, проверить, что нет ошибок запуска. | ||
==Настройка автозапуска службы сервера== | ==Настройка автозапуска службы сервера== | ||
+ | ===Linux=== | ||
+ | Для настройки автозапуска службы, перейти в каталог <WF_PATH>/docs/contrib/scripts/systemd/ и выполнить шаги, описанные в файле README в этом каталоге, за исключением пунктов распаковки и создания символьной ссылки на каталог. | ||
+ | Пункт <code>chown -R wildfly:wildfly /opt/wildfly</code> необходимо выполнить с параметрами «-RH» (параметр «H» указывает, что если на вход подана символьная ссылка, то нужно пойти вглубь каталога, на который она ссылается). Таким образом команда должна выглядеть следующим образом: | ||
+ | <syntaxhighlight lang="bash">chown -RHv wildfly:wildfly /opt/wildfly</syntaxhighlight> | ||
+ | При запуске в качестве службы, возможно отклонение запросов. В таком случае необходимо установить параметры JAVA_OPTS в файле standalone.conf: | ||
+ | <syntaxhighlight lang="bat">JAVA_OPTS="$JAVA_OPTS -Djboss.bind.address=0.0.0.0"</syntaxhighlight> | ||
+ | ===Windows=== | ||
Скопировать папку<br> | Скопировать папку<br> | ||
''<WF_PATH>\docs\contrib\scripts\service\''<br> | ''<WF_PATH>\docs\contrib\scripts\service\''<br> | ||
Строка 147: | Строка 192: | ||
Выполнить | Выполнить | ||
<syntaxhighlight lang="bat"><WF_PATH>\bin\service\service.bat install /startup</syntaxhighlight> | <syntaxhighlight lang="bat"><WF_PATH>\bin\service\service.bat install /startup</syntaxhighlight> | ||
− | При запуске в качестве службы, возможно отклонение запросов. В таком случае необходимо установить параметры JAVA_OPTS в файле standalone.conf.bat | + | При запуске в качестве службы, возможно отклонение запросов. В таком случае необходимо установить параметры JAVA_OPTS в файле standalone.conf.bat выше метки :JAVA_OPTS_SET. |
<syntaxhighlight lang="bat">JAVA_OPTS=%JAVA_OPTS% -Djboss.bind.address=0.0.0.0</syntaxhighlight> | <syntaxhighlight lang="bat">JAVA_OPTS=%JAVA_OPTS% -Djboss.bind.address=0.0.0.0</syntaxhighlight> | ||
+ | |||
==URL-фильтрация при совмещении PC Pusher и PC External== | ==URL-фильтрация при совмещении PC Pusher и PC External== | ||
При совмещении ролей PC Pusher и PC External на одном сервере необходимо исключить возможность выполнения запросов PC Pusher со стороны сети интернет. <br> | При совмещении ролей PC Pusher и PC External на одном сервере необходимо исключить возможность выполнения запросов PC Pusher со стороны сети интернет. <br> | ||
Строка 157: | Строка 203: | ||
При этом доступ к PC Pusher со стороны PC Server должен сохраниться. <br> | При этом доступ к PC Pusher со стороны PC Server должен сохраниться. <br> | ||
Конечная точка PC Pusher - ''<host>:<port>/pc-pusher-api/*'' | Конечная точка PC Pusher - ''<host>:<port>/pc-pusher-api/*'' | ||
− | ==Создание индексов | + | =Внесение изменений в БД= |
+ | ==Создание индексов БД PCS== | ||
После первого запуска приложения, в базе данных будут созданы необходимые таблицы. | После первого запуска приложения, в базе данных будут созданы необходимые таблицы. | ||
Версия 20:32, 27 апреля 2020
Содержание
- 1 Подготовка БД
- 2 Установка Java
- 3 Установка Wildfly
- 4 Настройка подключения к БД
- 5 Настройка подключения PCP к PCS
- 6 Настройка выделения памяти серверу
- 7 Внесение изменений в БД
- 8 Внесение аутентификационных данных для отправки push-уведомлений
- 9 Корректировка (смена) адресов компонентов серверов PC (при необходимости)
Подготовка БД
- Создать базу данных и пользователя на сервере СУБД, где будет работать база данных PCS (pcs-user, pcs-pass, pcs-db, pcs-db-host). Предоставить права на доступ пользователю к БД.
- Создать базу данных и пользователя на сервере СУБД, где будет работать база данных PCP (pcp-user, pcp-pass, pcp-db, pcp-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/
Далее по тексту, под <WF_PATH> имеется в виду адрес созданной символьной ссылки.
Linux
- Распаковать Wildfly, например, в /opt/.
- Создать символьную ссылку /opt/wildfly на распакованную директорию:
ln -s /opt/wildfly-18.0.1.Final/ /opt/wildfly
Windows
- Распаковать Wildfly, например, в C:\.
- Создать символьную ссылку, к примеру C:\wildfly, на распакованную директорию. Пример команды:
mklink /D c:\wildfly c:\wildfly-18.0.1.Final\
Удаление настроек WildFly по-умолчанию
Для удаления настроек по-умолчанию, необходимо выполнить пункты описанные по ссылке Wildfly - Удаление настроек по умолчанию
Настройка подключения к БД
Добавление JDBC-драйвера СУБД
PostgreSQL
- Скачать актуальный JDBC-драйвер по адресу https://jdbc.postgresql.org/
- Создать директорию <WF_PATH>/modules/org/postgresql/main/
sudo mkdir -p /opt/wildfly/modules/org/postgresql/main/
- В директорию поместить скачанный jar.
sudo mv postgresql-42.2.2.jar /opt/wildfly/modules/org/postgresql/main/
- Создать в этой же папке файл module.xmlследующего содержания, указав имя файла драйвера вместо "JAR_PATH":
sudo vi /opt/wildfly/modules/org/postgresql/main/module.xml
<?xml version="1.0" encoding="UTF-8"?> <module xmlns="urn:jboss:module:1.0" name="org.postgresql"> <resources> <resource-root path="JAR_PATH"/> </resources> <dependencies> <module name="javax.api"/> <module name="javax.transaction.api"/> <module name="javax.servlet.api" optional="true"/> </dependencies> </module>
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 следующего содержания, заменив JAR_PATH на имя файла драйвера, например на mssql-jdbc-6.2.1.jre8.jar:
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.3" name="com.microsoft.sqlserver">
<resources>
<resource-root path="JAR_PATH"/>
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
<module name="javax.xml.bind.api"/>
</dependencies>
</module>
- Добавить установленный модуль в качестве драйвера для подключения к СУБД в файл <WF_PATH>/standalone/configuration/standalone.xml, в секцию <datasources/drivers>, добавив следующий блок:
<driver name="mssql" module="com.microsoft.sqlserver">
<driver-class>com.microsoft.sqlserver.jdbc.SQLServerDriver</driver-class>
</driver>
Добавление испочников данных для модулей
PostgreSQL
PCS
В файл <WF_PATH>/standalone/configuration/standalone.xml внести следующие изменения добавить новый источник данных в секцию <datasources> заменив pcs-db-host, port, 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:postgresql://pcs-db-host:port/pcs-db</connection-url>
<driver-class>org.postgresql.Driver</driver-class>
<connection-property name="url">
jdbc:postgresql://pcs-db-host:port/pcs-db
</connection-property>
<driver>postgresql</driver>
<security>
<user-name>pcs-user</user-name>
<password>pcs-pass</password>
</security>
<validation>
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/>
<background-validation>true</background-validation>
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/>
</validation>
</datasource>
PCP
На сервере PCP добавить новый источник данных в секцию <datasources>, заменив pcp-db-host, port, pcp-db, pcp-user, pcp-pass:
<datasource jta="true" jndi-name="java:jboss/datasources/PCPusherDS" pool-name="PCPusherDS" enabled="true" use-ccm="true">
<connection-url>jdbc:postgresql://pcp-db-host:port/pcp-db</connection-url>
<driver-class>org.postgresql.Driver</driver-class>
<connection-property name="url">
jdbc:postgresql://pcp-db-host:port/pcp-db
</connection-property>
<driver>postgresql</driver>
<security>
<user-name>pcp-user</user-name>
<password>pcp-pass</password>
</security>
<validation>
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/>
<background-validation>true</background-validation>
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/>
MS SQL
PCS
В файл <WF_PATH>/standalone/configuration/standalone.xml внести следующие изменения добавить новый источник данных в секцию <datasources> заменив 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>
PCP
На сервере PCP добавить новый источник данных в секцию <datasources>, заменив pcp-db-host, port, pcp-db-host, pcp-db, pcp-user, pcp-pass:
<datasource jta="true" jndi-name="java:jboss/datasources/PCPusherDS" pool-name="PCPusherDS" enabled="true" use-ccm="true">
<connection-url>jdbc:sqlserver://pcp-db-host:port;databaseName=pcp-db</connection-url>
<connection-property name="url">
jdbc:sqlserver://pcp-db-host:port;databaseName=pcp-db
</connection-property>
<driver>mssql</driver>
<security>
<user-name>pcp-user</user-name>
<password>pcp-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>
Настройка подключения PCP к PCS
На сервере PCE необходимо установить адрес сервера PCS (host и port заменить на реальные значения). Для этого:
- на Linux в файл <WF_PATH>/bin/standalone.conf нужно добавить
JAVA_OPTS="$JAVA_OPTS -Dpc_url=http://<host>:<port>/pc-api/ -Dpc_locale=ru"
- на Windows в файл <WF_PATH>/bin/standalone.conf.bat нужно добавить выше метки :JAVA_OPTS_SET
set "JAVA_OPTS=%JAVA_OPTS% -Dpc_url=http://<host>:<port>/pc-api/ -Dpc_locale=ru"
Настройка выделения памяти серверу
На всех серверах установить максимальный объем доступной для использования памяти:
- на Linux в <WF_PATH>/bin/standalone.conf указать объём «ОбщийОбъёмОЗУ - 512MB»
- на Windows в <WF_PATH>\bin\standalone.conf.bat указать объём «ОбщийОбъёмОЗУ - 1536MB»
Для этого в строке JAVA_OPTS="-Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true" поменять значение параметра Xmx на выделяемый объём.
Запуск проекта
- Скопировать файл приложения сервера <WF_PATH>\standalone\deployments\:
- на PC Server - файл pc-server-<VERSION>.ear
- на PC Pusher - файл pc-pusher-<VERSION>.war
- на PC External - файл pc-external-<VERSION>.war
Один сервер WildFly может запускать одно или несколько приложений сервера
- Запустить
- Linux
<WF_PATH>/bin/standalone.sh -b 0.0.0.0
- Windows
<WF_PATH>\bin\standalone.bat -b 0.0.0.0
- где -b 0.0.0.0 - позволяет подключаться к серверу используя любой его интерфейс (опция bind)
- Linux
- Дождаться старта WF, проверить, что нет ошибок запуска.
Настройка автозапуска службы сервера
Linux
Для настройки автозапуска службы, перейти в каталог <WF_PATH>/docs/contrib/scripts/systemd/ и выполнить шаги, описанные в файле README в этом каталоге, за исключением пунктов распаковки и создания символьной ссылки на каталог.
Пункт chown -R wildfly:wildfly /opt/wildfly
необходимо выполнить с параметрами «-RH» (параметр «H» указывает, что если на вход подана символьная ссылка, то нужно пойти вглубь каталога, на который она ссылается). Таким образом команда должна выглядеть следующим образом:
chown -RHv wildfly:wildfly /opt/wildfly
При запуске в качестве службы, возможно отклонение запросов. В таком случае необходимо установить параметры JAVA_OPTS в файле standalone.conf:
JAVA_OPTS="$JAVA_OPTS -Djboss.bind.address=0.0.0.0"
Windows
Скопировать папку
<WF_PATH>\docs\contrib\scripts\service\
в папку
<WF_PATH>\bin\
Выполнить
<WF_PATH>\bin\service\service.bat install /startup
При запуске в качестве службы, возможно отклонение запросов. В таком случае необходимо установить параметры JAVA_OPTS в файле standalone.conf.bat выше метки :JAVA_OPTS_SET.
JAVA_OPTS=%JAVA_OPTS% -Djboss.bind.address=0.0.0.0
URL-фильтрация при совмещении PC Pusher и PC External
При совмещении ролей PC Pusher и PC External на одном сервере необходимо исключить возможность выполнения запросов PC Pusher со стороны сети интернет.
Для этого необходимо со стороны сети интернет разрешить подключения только на конечную точку PC External.
Конечная точка PC External - <host>:<port>/pc-client-api/*
Доступ к другим конечным точкам должен быть запрещен.
При этом доступ к PC Pusher со стороны PC Server должен сохраниться.
Конечная точка PC Pusher - <host>:<port>/pc-pusher-api/*
Внесение изменений в БД
Создание индексов БД PCS
После первого запуска приложения, в базе данных будут созданы необходимые таблицы.
На продуктивной среде после этого необходимо создать индексы в базе данных PC Server.
Для этого выполните 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);
Корректировка типов данных для MS SQL
Java-приложение при создании таблиц БД неоптимально устанавливает тип для одного из полей для СУБД MS SQL.
Для его корректировки после того, как таблицы созданы, выполните запрос
ALTER TABLE PC_TRANSACTION ALTER COLUMN DATA_BINARY image;
Регистрация системы
После успешного запуска приложения PC Server до начала работы необходимо зарегистрировать прикладную систему.
Это действие выполняется путем отправки на PC Server HTTP POST запроса, сформированного ST/Airome. Содержание запроса предоставляется дополнительно.
Для отправки запроса можно использовать любое средство отправки HTTP-запросов.
Примеры
PowerShell
$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$headers.Add("Content-Type", "application/json")
$body = "{n "request`":"eyJyZXF1ZXN0Ijp7InFyVVJMU2NoZW1lIjEE9NoZ+W1lIjEE9NoZW... ...9NoZW1lIjEE+9NoZW1lIjEE9NoZW1lIjEE9PSJ9"`n}"
$response = Invoke-RestMethod 'https://dev.paycontrol.org/v5.0/pc-api/' -Method 'POST' -Headers $headers -Body $body
$response | ConvertTo-Json
cURL
curl --location --request POST 'http://<host>:<port>/pc-api/' --header 'Content-Type: application/json' --data-raw '{"request":"eyJyZXF1ZXN0Ijp7InFyVVJMU2NoZW1lIjEE9NoZ+W1lIjEE9NoZW1lIjEE9... ...IjEE9NoZW1lIjEE9PSJ9"}'
Доступ к сервисам
Адреса конечных точек по умолчанию:
- 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
Внесение аутентификационных данных для отправки push-уведомлений
Для MSSQL необходимо вместо строк nextval('pc_split_pusher_creds_seq'),
использовать строку NEXT VALUE FOR pc_split_pusher_creds_seq,
.
Для Oracle необходимо вместо строк nextval('pc_split_pusher_creds_seq'),
использовать строку pc_split_pusher_creds_seq.NEXTVAL,
.
В приложение PayControl
Для внесение аутентификационных данных для отправки push-уведомлений в приложение PayControl необходимо выполнить следующие запросы к БД PC Pusher, заменив значения %SYSTEMID% на корректное.
Обратите внимание, что знаки процента нужно удалить. После выполнения запросов необходимо перезапустить Wildfly сервера PC Pusher.
Пример для СУБД PostgreSQL:
INSERT INTO pc_split_pusher_credentials (
id,
appid,
credentials,
os,
systemid)
VALUES (
nextval('pc_split_pusher_creds_seq'),
'org.paycontrol.app',
'{"google_api_key":"AAAAoZ7vyz4:APA91bFqLfNegQCs_GfHGFeOmS68PHWWSzWpeZaYKfnLul9iHufIQJiNIAjgAykeWrTxiDDs9qQzullXww3o5XR0VS9tlBEpuhTMlz4CyHdmN2EhntJBBUlSQa-8--Rw_UzDbKBCGCXk"}',
'Android',
'%SYSTEMID%');
INSERT INTO pc_split_pusher_credentials (
id,
appid,
credentials,
os,
systemid)
VALUES (
nextval('pc_split_pusher_creds_seq'),
'org.paycontrol.app',
'{"apns_key_file":"C:\\wildfly\\safetech-apns-JVBQX52N5Z.p8","apns_key_id":"JVBQX52N5Z","apns_team_id":"48HZH4RWJD"}',
'iOS',
'%SYSTEMID%');
В приложение PayConfirm
Для внесение аутентификационных данных для отправки push-уведомлений в приложение PayConfirm необходимо выполнить следующие запросы к БД PC Pusher, заменив значения %SYSTEMID% на корректное.
Обратите внимание, что знаки процента нужно удалить. После выполнения запросов необходимо перезапустить Wildfly сервера PC Pusher.
Пример для СУБД PostgreSQL:
INSERT INTO pc_split_pusher_credentials (
id,
appid,
credentials,
os,
systemid)
VALUES (
nextval('pc_split_pusher_creds_seq'),
'org.payconfirm.app',
'{"google_api_key":"AAAA4H70m7M:APA91bFsaPiXXiIuRyj4h-xGZpyd0-I3B9F1udIIergxaK8uL9vPPvUQXOvPfau2w8E-xur_6TlTzmhb2JsO13hBCxVDrNybD6Rj8k4hZKXfs7tC5fnJuWmCIB3-O_4dLo0QHlhfSbGn"}',
'Android',
'%SYSTEMID%');
INSERT INTO pc_split_pusher_credentials (
id,
appid,
credentials,
os,
systemid)
VALUES (
nextval('pc_split_pusher_creds_seq'),
'org.payconfirm.app',
'{"apns_key_file":"C:\\wildfly\\safetech-apns-JVBQX52N5Z.p8","apns_key_id":"QCC684AGC4","apns_team_id":"B98K5P3YHV"}',
'iOS',
'%SYSTEMID%');
В другое мобильное приложение
Для внесение аутентификационных данных для отправки push-уведомлений необходимо выполнить запрос к БД PC Pusher, заменив значение %SYSTEMID%, %appid%, %путь к файлу ключа%, %apns_key_id%, %apns_team_id%, %google_api_key% на корректные (эти данные, за исключением %SYSTEMID%, можно получить от разработчика мобильного приложения), и, удалив знаки процента:
INSERT INTO pc_split_pusher_credentials (
id,
appid,
credentials,
is_default,
os,
systemid)
VALUES (
nextval('pc_split_pusher_credentials_id_seq'),
'%appid%',
'{"google_api_key":"%google_api_key%"}',
1,
'Android',
'%SYSTEMID%');
INSERT INTO pc_split_pusher_credentials (
id,
appid,
credentials,
is_default,
os,
systemid)
VALUES (
nextval('pc_split_pusher_credentials_id_seq'),
'%appid%',
'{"apns_key_file":"%путь к файлу ключа%","apns_key_id":"%apns_key_id%","apns_team_id":"%apns_team_id%"}',
1,
'iOS',
'%SYSTEMID%');
commit;
Корректировка (смена) адресов компонентов серверов PC (при необходимости)
Предупреждение! Не рекомендуется дополнительно указывать номер порта, в случаях, если для HTTP используется порт 80, или для HTTPS используется порт 443 |
Учёт изменения адреса сервера PC Server
Для учёта изменения адреса PCS необходимо произвести изменения в настройках PCE. В файле /opt/wildfly/bin/standalone.conf, в следующей строке, указав правильный адрес и при необходимости порт сервера PC Server, а также уточнив протокол подключения (HTTP/HTTPS):
JAVA_OPTS="$JAVA_OPTS -Dpc_url=http[s]://<IP или DNS-имя>[:PORT]/pc-api/ -Duser.language=ru -Dpc_locale=ru"
Учёт изменения адреса сервера PC Pusher
Для учёта изменения адреса сервера PCP, необходимо, предварительно указав корректные данные (протокол (HTTP/HTTPS), имя или IP сервера, порт, идентификатор системы), выполнить запрос к БД PCS:
update pc_system set pc_is_internal_url = 'http[s]://<IP или DNS-имя>[:PORT]/pc-pusher-api/' where systemid='<SYSTEMID>';
Учёт изменения внешнего адреса сервера PC External
Предупреждение! Если система была переведена в промышленную эксплуатацию, при смене адреса для доступа мобильных устройств, не рекомендуется выводить из действия предыдущий адрес на протяжении всего срока действия выпущенных ключей пользователя. Иначе мобильное приложение потеряет доступ к серверу PC и для восстановления будет необходимо перевыпустить ключ и заново добавить его в приложение пользователя. |
Для учёта изменения внешнего адреса сервера PC, по которому связываются мобильное приложение с сервером PC, необходимо, предварительно указав корректные данные (протокол (HTTP/HTTPS), имя или IP сервера, порт, идентификатор системы), выполнить запрос к БД PCS:
update pc_system set pc_is_external_url = 'http[s]://<IP или DNS-имя>[:PORT]/pc-client-api/' where systemid='<SYSTEMID>';