Установка компонентов сервера PayControl v3.9 вручную — различия между версиями
(→Учёт изменения адреса сервера PCS) |
|||
(не показаны 2 промежуточные версии 2 участников) | |||
Строка 69: | Строка 69: | ||
===Oracle=== | ===Oracle=== | ||
* Скачать актуальный JDBC-драйвер по адресу https://www.oracle.com/database/technologies/appdev/jdbc-downloads.html | * Скачать актуальный JDBC-драйвер по адресу https://www.oracle.com/database/technologies/appdev/jdbc-downloads.html | ||
− | * Создать директорию ''WF_PATH/modules/ | + | * Создать директорию ''WF_PATH/modules/system/layers/base/com/oracle/main/'' |
* В директорию ''WF_PATH/modules/system/layers/base/com/oracle/main/'' поместить скачанный ojdbc*.jar. | * В директорию ''WF_PATH/modules/system/layers/base/com/oracle/main/'' поместить скачанный ojdbc*.jar. | ||
* Создать в этой же папке файл ''module.xml'' следующего содержания, указав имя файла драйвера вместо "JAR_PATH":<source lang="xml"> | * Создать в этой же папке файл ''module.xml'' следующего содержания, указав имя файла драйвера вместо "JAR_PATH":<source lang="xml"> | ||
Строка 520: | Строка 520: | ||
PCIS External (при запросе на этот адрес должно возвратиться «Not Found». Также необходимо обратить внимание, на то, какой протокол разрешён – HTTP или HTTPS): | PCIS External (при запросе на этот адрес должно возвратиться «Not Found». Также необходимо обратить внимание, на то, какой протокол разрешён – HTTP или HTTPS): | ||
* http://<IP или имя сервера с WF >:8080/PayControl-interaction-rest/ | * http://<IP или имя сервера с WF >:8080/PayControl-interaction-rest/ | ||
+ | |||
+ | =Включение формирования имитовставки (при необходимости)= | ||
+ | Необходимо выполнить пункты описанные по ссылке [[Включение формирования имитовставки|"Включение формирования имитовставки"]] | ||
+ | |||
=Настройка PC Pusher для отправки пушей в другое приложение (при необходимости)= | =Настройка PC Pusher для отправки пушей в другое приложение (при необходимости)= | ||
Необходимо выполнить пункты описанные по ссылке [[Обновление_с_3.6_до_3.8#Настройка PC Pusher|"Настройка PCS и PC Pusher"]] | Необходимо выполнить пункты описанные по ссылке [[Обновление_с_3.6_до_3.8#Настройка PC Pusher|"Настройка PCS и PC Pusher"]] | ||
Строка 526: | Строка 530: | ||
{{Предупреждение|Не рекомендуется дополнительно указывать номер порта, в случаях, если для HTTP используется порт 80, или для HTTPS используется порт 443}} | {{Предупреждение|Не рекомендуется дополнительно указывать номер порта, в случаях, если для HTTP используется порт 80, или для HTTPS используется порт 443}} | ||
==Учёт изменения адреса сервера PCS== | ==Учёт изменения адреса сервера PCS== | ||
− | Для учёта изменения адреса сервера PCS необходимо произвести изменения в настройках PCIS External. В | + | |
− | * Linux <syntaxhighlight lang="bash"> | + | Для учёта изменения адреса сервера PCS необходимо произвести изменения в настройках PCIS External. В строке, нужно указать правильный адрес и при необходимости порт сервера PCS, а также уточнить протокол подключения (HTTP/HTTPS): |
+ | * на Linux в файле <code>/opt/wildfly/bin/standalone.conf</code>: <syntaxhighlight lang="bash"> | ||
JAVA_OPTS="$JAVA_OPTS -Dpcservice.endpoint=http[s]://<IP или DNS-имя>[:PORT]/ws/PayControlServiceV3?wsdl -Duser.language=ru -Dpaycontrol.locale=ru" | JAVA_OPTS="$JAVA_OPTS -Dpcservice.endpoint=http[s]://<IP или DNS-имя>[:PORT]/ws/PayControlServiceV3?wsdl -Duser.language=ru -Dpaycontrol.locale=ru" | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | * Windows <syntaxhighlight lang="bash"> | + | * Windows, в файле <code>WF_PATH/bin/standalone.conf.bat</code>: <syntaxhighlight lang="bash"> |
set "JAVA_OPTS=%JAVA_OPTS% -Dpcservice.endpoint=http[s]://<IP или DNS-имя>[:PORT]/ws/PayControlServiceV3?wsdl -Duser.language=ru -Dpaycontrol.locale=ru" | set "JAVA_OPTS=%JAVA_OPTS% -Dpcservice.endpoint=http[s]://<IP или DNS-имя>[:PORT]/ws/PayControlServiceV3?wsdl -Duser.language=ru -Dpaycontrol.locale=ru" | ||
</syntaxhighlight> | </syntaxhighlight> |
Текущая версия на 11:43, 18 января 2024
Содержание
- 1 Подготовка БД
- 2 Установка Java
- 3 Установка Wildfly
- 4 Настройка подключения к БД PC Server
- 5 Настройка подключения PCIS External к PC Server
- 6 Настройка выделения памяти серверу
- 7 Внесение изменений в БД
- 8 Включение формирования имитовставки (при необходимости)
- 9 Настройка PC Pusher для отправки пушей в другое приложение (при необходимости)
- 10 Корректировка (смена) адресов серверов PayControl (при необходимости)
Подготовка БД
- Создать базу данных и пользователя на сервере СУБД, где будет работать база данных PC Server (pcs-user, pcs-pass, pcs-db, pcs-db-host). Предоставить права на доступ пользователю к БД.
Установка Java
Установить последнюю версию JDK 11.
Установка Wildfly
- Скачать WildFly Server 26.1.3 (Jakarta EE 8 Full & Web Distribution) – https://wildfly.org/downloads/
Далее по тексту, под WF_PATH имеется в виду адрес созданной символьной ссылки.
Linux
При распаковке рекомендуется исключить кириллические символы в пути, а также пробелы.
- Распаковать Wildfly, например, в /opt/.
- Создать символьную ссылку /opt/wildfly на распакованную директорию. Пример команды:
ln -s /opt/wildfly-26.1.3.Final/ /opt/wildfly
Windows
При распаковке рекомендуется исключить кириллические символы в пути, а также пробелы.
- Распаковать Wildfly, например, в C:\.
- Создать символьную ссылку, к примеру C:\wildfly, на распакованную директорию. Пример команды:
mklink /D C:\wildfly C:\wildfly-26.1.3.Final\
Удаление настроек WildFly по-умолчанию
Для удаления настроек по-умолчанию, необходимо выполнить пункты описанные по ссылке Wildfly - Удаление настроек по умолчанию
Настройка подключения к БД PC Server
Добавление JDBC-драйвера СУБД
PostgreSQL
- Скачать актуальный JDBC-драйвер по адресу https://jdbc.postgresql.org/
- Создать директорию WF_PATH/modules/org/postgresql/main/
- В директорию WF_PATH/modules/org/postgresql/main/ поместить скачанный postgresql-*.*.*.jar
- Создать в этой же папке файл module.xml следующего содержания, указав имя файла драйвера вместо "JAR_PATH":
<?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>
- Добавить установленный модуль в качестве драйвера для подключения к СУБД в файл WF_PATH/standalone/configuration/standalone.xml, в секцию <datasources/drivers>, добавив следующий блок:
<driver name="pgsql" module="org.postgresql"> <driver-class>org.postgresql.Driver</driver-class> </driver>
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-8.2.2.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>
Oracle
- Скачать актуальный JDBC-драйвер по адресу https://www.oracle.com/database/technologies/appdev/jdbc-downloads.html
- Создать директорию WF_PATH/modules/system/layers/base/com/oracle/main/
- В директорию WF_PATH/modules/system/layers/base/com/oracle/main/ поместить скачанный ojdbc*.jar.
- Создать в этой же папке файл module.xml следующего содержания, указав имя файла драйвера вместо "JAR_PATH":
<?xml version="1.0" encoding="UTF-8"?> <module xmlns="urn:jboss:module:1.0" name="com.oracle"> <resources> <resource-root path="JAR_PATH"/> </resources> <dependencies> <module name="javax.api"/> <module name="javax.transaction.api"/> </dependencies> </module>
- Добавить установленный модуль в качестве драйвера для подключения к СУБД в файл WF_PATH/standalone/configuration/standalone.xml, в секцию <datasources/drivers>, добавив следующий блок:
<driver name="oracle" module="com.oracle"> <driver-class>oracle.jdbc.driver.OracleDriver</driver-class> </driver>
Особенности маппинга Oracle
Для корректной установки PC Server с подключением к БД Oracle требуется создать/изменить некоторые таблицы вручную:
Инструкция:
- Заменить по содержимому ниже
<TABLESPACE_NAME> <USER_NAME> <USER_PASS>
- Из-под пользователя с правами на создание пользователей и табличных пространств выполнить:
---Создание табличного пространства и пользователя--- CREATE TABLESPACE <TABLESPACE_NAME> DATAFILE '<TABLESPACE_NAME>.DAT' SIZE 50M AUTOEXTEND ON; CREATE USER "<USER_NAME>" IDENTIFIED BY "<USER_PASS>" DEFAULT TABLESPACE <TABLESPACE_NAME>; GRANT CREATE SESSION TO "<USER_NAME>"; GRANT CREATE TABLE TO "<USER_NAME>"; GRANT CREATE SEQUENCE TO "<USER_NAME>"; GRANT UNLIMITED TABLESPACE TO "<USER_NAME>";
- Из-под созданного пользователя, под которым будет производиться подключение PC к БД выполнить:
---Создание таблиц--- CREATE TABLE "PC_SYS_PROPERTY" ("SETTING_ID" NUMBER(19,0) NOT NULL ENABLE, "SETTING_NAME" VARCHAR2(255), "SETTING_VALUE" VARCHAR2(255), PRIMARY KEY ("SETTING_ID"), CONSTRAINT "UK_BYEQYB1KICGD7SNXKM5L52582" UNIQUE ("SETTING_NAME")); CREATE TABLE "PC_SYSTEM" ( "SYSTEMID" VARCHAR2(36) NOT NULL ENABLE, "CREATED_AT" DATE, "IS_DELETED" NUMBER(5,0), "UPDATED_AT" DATE, "EVENTS_POST_URL" VARCHAR2(1024), "NAME" VARCHAR2(255), "PC_IS_EXTERNAL_URL" VARCHAR2(255), "PC_IS_INTERNAL_URL" VARCHAR2(255), PRIMARY KEY ("SYSTEMID")); CREATE TABLE "PC_SYSTEM_PARAMS" ( "SYSTEMID" VARCHAR2(36) NOT NULL ENABLE, "CREATED_AT" DATE, "IS_DELETED" NUMBER(5,0), "UPDATED_AT" DATE, "BILLED_DATE_REQUEST" CLOB, "BILLING_PERIOD" NUMBER(10,0), "BILLED_DATE" DATE, "BILLING_TYPE" NUMBER(10,0), "DESCRIPTION" VARCHAR2(255), "FRONT_END_URL" VARCHAR2(255), "LICENSE" VARCHAR2(2048), "ONLINE_CONFIRMATION_URL" VARCHAR2(255), "REGISTER_REQUEST" CLOB, "REPORT_TEMPLATE_PATH" VARCHAR2(255), "USER_KEYS_EXPIRATION_PERIOD" NUMBER(10,0), PRIMARY KEY ("SYSTEMID")); CREATE TABLE "PC_USER" ("USERID" VARCHAR2(64) NOT NULL ENABLE, "CREATED_AT" DATE, "IS_DELETED" NUMBER(5,0), "UPDATED_AT" DATE, "BILLED_DATE" DATE, "SYSTEMID" VARCHAR2(36), PRIMARY KEY ("USERID"), CONSTRAINT "FKGLUVAW7N4TKK6V6XALY8IK3S2" FOREIGN KEY ("SYSTEMID") REFERENCES "PC_SYSTEM" ("SYSTEMID") ENABLE ); CREATE TABLE "PC_TRANSACTION" ( "TRANSACTIONID" VARCHAR2(36) NOT NULL ENABLE, "CREATED_AT" DATE, "IS_DELETED" NUMBER(5,0), "UPDATED_AT" DATE, "CALLBACK_URL" VARCHAR2(255), "IS_CLEANED" NUMBER(5,0), "CONFIRM_CODE_LENGTH" NUMBER(10,0), "CONFIRMATION_TYPE" NUMBER(10,0), "DECLINE_REASON" VARCHAR2(64), "DATA_HASH" RAW(255), "NOTIF_ID" VARCHAR2(255), "STATUS" NUMBER(10,0), "TIME_TO_LIVE" NUMBER(10,0), "DATA_BINARY" BLOB, "DATA_TEXT" VARCHAR2(3095), "USERID" VARCHAR2(64), PRIMARY KEY ("TRANSACTIONID"), CONSTRAINT "FKARQ3VEGMNJXEJK8ONU4HRHEN3" FOREIGN KEY ("USERID") REFERENCES "PC_USER" ("USERID") ENABLE ); CREATE TABLE "PC_CONFIRM_ATTEMPT" ( "CONFIRM_ATTEMPT_ID" NUMBER(19,0) NOT NULL ENABLE, "CREATED_AT" DATE, "IS_DELETED" NUMBER(5,0), "UPDATED_AT" DATE, "CONFIRM_CODE" VARCHAR2(255), "CONFIRM_RESULT" NUMBER(10,0), "DATA_HASH" RAW(255), "SIGNATURE" VARCHAR2(512), "TRANSACTIONID" VARCHAR2(36), "USERID" VARCHAR2(64), PRIMARY KEY ("CONFIRM_ATTEMPT_ID"), CONSTRAINT "FK5258W9Y6WQ4FY55U41WB30OWG" FOREIGN KEY ("TRANSACTIONID") REFERENCES "PC_TRANSACTION" ("TRANSACTIONID") ENABLE, CONSTRAINT "FKHEJP6UYKY6U4X8QFDPV4VA63Y" FOREIGN KEY ("USERID") REFERENCES "PC_USER" ("USERID") ENABLE ); CREATE TABLE "PC_DELAYEDKEYINFO" ( "TYPE" NUMBER(10,0) NOT NULL ENABLE, "DELAYEDKEYID" NUMBER(19,0) NOT NULL ENABLE, "CREATED_AT" DATE, "IS_DELETED" NUMBER(5,0), "UPDATED_AT" DATE, "KEY_CONTAINER_ID" VARCHAR2(255), "KEY_CONTENT" RAW(255), "EXPIRATION_DATE" DATE, "USER_KEY_VERSION" NUMBER(10,0), "USERID" VARCHAR2(64), PRIMARY KEY ("DELAYEDKEYID"), CONSTRAINT "FK73X95ORVBL8BA0T3A3WEWADRF" FOREIGN KEY ("USERID") REFERENCES "PC_USER" ("USERID") ENABLE ); CREATE TABLE "PC_DEVICE" ( "TYPE" NUMBER(10,0) NOT NULL ENABLE, "DEVICEID" NUMBER(19,0) NOT NULL ENABLE, "CREATED_AT" DATE, "IS_DELETED" NUMBER(5,0), "UPDATED_AT" DATE, "DEVICE_PUSH_ID" VARCHAR2(255), "USERID" VARCHAR2(64), PRIMARY KEY ("DEVICEID"), CONSTRAINT "FK8CMG562COTMP53MVGRDDF1EYA" FOREIGN KEY ("USERID") REFERENCES "PC_USER" ("USERID") ENABLE ); CREATE TABLE "PC_KEYINFO" ( "TYPE" NUMBER(10,0) NOT NULL ENABLE, "KEYID" NUMBER(19,0) NOT NULL ENABLE, "CREATED_AT" DATE, "IS_DELETED" NUMBER(5,0), "UPDATED_AT" DATE, "KEY_CONTAINER_ID" VARCHAR2(255), "KEY_CONTENT" RAW(255), "EXPIRATION_DATE" DATE, "DEVICE_FINGERPRINT" VARCHAR2(255), "USER_KEY_VERSION" NUMBER(10,0), "USERID" VARCHAR2(64), PRIMARY KEY ("KEYID"), CONSTRAINT "FKN3VEB4OTVNAIE35AWBD0HDS90" FOREIGN KEY ("USERID") REFERENCES "PC_USER" ("USERID") ENABLE ); CREATE TABLE "PC_PUBLICKEY" ( "PUBLICKEYID" NUMBER(19,0) NOT NULL ENABLE, "CREATED_AT" DATE, "IS_DELETED" NUMBER(5,0), "UPDATED_AT" DATE, "PUBLIC_KEY" RAW(512), "KEYID" NUMBER(19,0), PRIMARY KEY ("PUBLICKEYID"), CONSTRAINT "FKEMTGHSA74S1WI903R2TN7T3N" FOREIGN KEY ("KEYID") REFERENCES "PC_KEYINFO" ("KEYID") ENABLE ); CREATE TABLE "PC_EVENT" ( "EVENTID" NUMBER(19,0) NOT NULL ENABLE, "CREATED_AT" DATE, "IS_DELETED" NUMBER(5,0), "UPDATED_AT" DATE, "AUTH_CODE" VARCHAR2(64), "DEVICE_EVENTID" VARCHAR2(36), "DEVICE_INFO" CLOB, "DEVICE_TIME" DATE, "EVENTPOSTURL" VARCHAR2(255), "REQUEST_HMAC" VARCHAR2(64), "REQUEST_HASH" VARCHAR2(64), "REQUEST_RESULT" NUMBER(10,0), "REQUEST_TYPE" VARCHAR2(36), "REQUESTER_IP" VARCHAR2(15), "SESSIONID" VARCHAR2(36), "TRANSACTIONID" VARCHAR2(36), "USERID" VARCHAR2(64), PRIMARY KEY ("EVENTID"));
---Создание индексов 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);
---Создание очередей--- create sequence PC_ATTEMPT_SEQ start with 1 increment by 1; create sequence PC_DELAYEDKEYINFO_SEQ start with 1 increment by 1; create sequence PC_DEVICE_SEQ start with 1 increment by 1; create sequence PC_KEYINFO_SEQ start with 1 increment by 1; create sequence PC_PUBLICKEY_SEQ start with 1 increment by 1; create sequence PC_SETTING_SEQ start with 1 increment by 1; create sequence PC_EVENT_SEQ start with 1 increment by 1; create sequence PC_PUSH_SEQ start with 1 increment by 1;
Добавление источников данных для PC Server
При установке PC Pusher версии 5.2 и выше, подключение к БД PC Pusher не требуется
PostgreSQL
PC Server
В файл WF_PATH/standalone/configuration/standalone.xml внести следующие изменения добавить новый источник данных в секцию <datasources></datasources> заменив pcs-db-host, port, pcs-db, pcs-user, pcs-pass:
<datasource jta="true" jndi-name="java:jboss/datasources/PayControlDS" pool-name="PayControlDS" enabled="true" use-ccm="true">
<connection-url>jdbc:postgresql://pcs-db-host:port/pcs-db</connection-url>
<driver-class>org.postgresql.Driver</driver-class>
<driver>pgsql</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>
MS SQL
PC Server
В файл WF_PATH/standalone/configuration/standalone.xml внести следующие изменения добавить новый источник данных в секцию <datasources></datasources> заменив pcs-db-host, port, pcs-db-host, pcs-db, pcs-user, pcs-pass:
<datasource jta="true" jndi-name="java:jboss/datasources/PayControlDS" pool-name="PayControlDS" enabled="true" use-ccm="true">
<connection-url>jdbc:sqlserver://pcs-db-host:port;databaseName=pcs-db</connection-url>
<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>
Oracle
PC Server
В файл WF_PATH/standalone/configuration/standalone.xml внести следующие изменения добавить новый источник данных в секцию <datasources></datasources> заменив pcs-db-host, port, pcs-db, pcs-user, pcs-pass:
<datasource jta="true" jndi-name="java:jboss/datasources/PayControlDS" pool-name="PayControlDS" enabled="true" use-ccm="true">
<connection-url>jdbc:oracle:thin:@pcs-db-host:port:sid</connection-url>
<driver-class>org.postgresql.Driver</driver-class>
<driver>oracle</driver>
<security>
<user-name>pcs-user</user-name>
<password>pcs-pass</password>
</security>
<pool>
<min-pool-size>1</min-pool-size>
<max-pool-size>5</max-pool-size>
<prefill>true</prefill>
</pool>
<validation>
<check-valid-connection-sql>select 1 from dual</check-valid-connection-sql>
<validate-on-match>false</validate-on-match>
<background-validation>true</background-validation>
<background-validation-millis>10000</background-validation-millis>
</validation>
</datasource>
Настройка подключения PCIS External к PC Server
На сервере PCIS External необходимо установить адрес сервера PC Server (host и port заменить на реальные значения). Для этого:
- на Linux в файл WF_PATH/bin/standalone.conf нужно добавить
JAVA_OPTS="$JAVA_OPTS -Dpcservice.endpoint=http://<host>:<port>/ws/PayControlServiceV3?wsdl -Duser.language=ru -Dpaycontrol.locale=ru"
- на Windows в файл WF_PATH/bin/standalone.conf.bat нужно добавить выше метки :JAVA_OPTS_SET
set "JAVA_OPTS=%JAVA_OPTS% -Dpcservice.endpoint=http://<host>:<port>/ws/PayControlServiceV3?wsdl -Duser.language=ru -Dpaycontrol.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 на выделяемый объём.
Запуск проекта
- Загрузить файлы модулей требуемых компонентов последних версий из репозитория по адресу https://repo.paycontrol.org/server/maven/tech/paycon/server/ (при этом модуль PCPusher необходимо взять из ветки 5.x):
- PC Server — https://repo.paycontrol.org/server/maven/tech/paycon/server/PayControl-services-module/, файл PayControl-services-module-<VERSION>.ear
- PC Pusher — https://repo.paycontrol.org/server/maven/tech/paycon/server/pc-pusher/, файл pc-pusher-<VERSION>.war
- PCIS External — https://repo.paycontrol.org/server/maven/tech/paycon/server/PayControl-interaction-rest/, файл PayControl-interaction-rest-<VERSION>.war
- Скопировать файл приложения сервера WF_PATH\standalone\deployments\. Один сервер 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.
set "JAVA_OPTS=%JAVA_OPTS% -Djboss.bind.address=0.0.0.0"
После создания службы, вы можете создать отдельного пользователя, например "wildfly", с правами группы "Пользователи", сделать его владельцем папки, где находятся файлы Wildfly, с полным доступом и в "Службах" Windows настроить запуск службы Wildfly от этого пользователя.
URL-фильтрация при совмещении PC Pusher и PCIS External
При совмещении ролей PC Pusher и PCIS External на одном сервере необходимо исключить возможность выполнения запросов PC Pusher со стороны сети интернет.
Для этого необходимо со стороны сети интернет разрешить подключения только на конечную точку PCIS External.
Конечная точка PCIS External - <host>:<port>/PayControl-interaction-rest/*
Доступ к другим конечным точкам должен быть запрещен.
При этом доступ к PC Pusher со стороны PC Server должен сохраниться.
Конечная точка PC Pusher - <host>:<port>/pc-pusher-api/*
Внесение изменений в БД
Создание индексов БД PC Server
После первого запуска приложения, в базе данных будут созданы необходимые таблицы.
На продуктивной среде после этого необходимо создать индексы в базе данных(за исключением Oracle) 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-запросов.
Примеры
Curl
cURL (в ОС Linux доступна в репозиториях, для ОС Windows можно скачать с сайта разработчика https://curl.haxx.se/download.html):
- 1. Скопировать файл RegisterSystemRequest.xml (если название файла с запросом на регистрацию отличается, то необходимо либо переименовать его, либо изменить имя этого файла в параметрах команды curl) на сервер в любую директорию на машину, с которой будет производиться запуск команды curl.
- 2. Проверить содержимое файла. Если файл выглядит как
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:pay="http://ws.safetech.ru/PayControlV3/"> <soapenv:Header/> <soapenv:Body> <pay:registerSystemRequest> <request>PD94bWwgdmVyc2lvbj0iMJlIHhtbG5zPSJodHRwOi8vd3Muc2FmZXRlY2gucS4w... ...ZXF1JlIHhtbG5zPSJodHRwOi8vd3Muc2FmZXRlY2gucnUZ==</request> </pay:registerSystemRequest> </soapenv:Body> </soapenv:Envelope>
то, перейти к п.4.
- 3. Если файл выглядит как
PD94bWwgdmVyc2lvbj0iMJlIHhtbG5zPSJodHRwOi8vd3Muc2FmZXRlY2gucS4w... ...ZXF1JlIHhtbG5zPSJodHRwOi8vd3Muc2FmZXRlY2gucnUZ==
то необходимо добавить в его начало
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:pay="http://ws.safetech.ru/PayControlV3/">
<soapenv:Header/>
<soapenv:Body>
<pay:registerSystemRequest>
<request>
и в его конец
</request>
</pay:registerSystemRequest>
</soapenv:Body>
</soapenv:Envelope>
чтобы он принял вид, как представлено в п.2.
- 4. Выполнить команду (в той-же директории, где располагается скопированный/изменённый файл), заменив <PCServer_IP/localhost> на DNS-имя сервера или его IP-адрес:
curl --header "Content-Type: text/xml;charset=UTF-8" --header "SOAPAction: registerSystem" --data @RegisterSystemRequest.xml <PCServer_IP/localhost>:8080/ws/PayControlServiceV3
- Если в составе ответа пришла строка <systemId>SYSTEMID ВАШЕЙ ПРИКЛАДНОЙ СИСТЕМЫ</systemId>, значит прикладная система зарегистрирована.
- Если в составе ответа было <soap:Fault>, значит возникла проблема на этапе регистрации.
- После успешной регистрации прикладной системы на сервере, файл registerSystem.xml больше не нужен.
SOAP UI
- 1. Добавить подключение к серверу PCS, указав адрес WSDL схемы:
- 2. Создать новый запрос из категории registerSystem
- 3. Выполнить запрос
- Если в составе ответа пришла строка <systemId>SYSTEMID ВАШЕЙ ПРИКЛАДНОЙ СИСТЕМЫ</systemId>, значит прикладная система зарегистрирована.
- Если в составе ответа было <soap:Fault>, значит возникла проблема на этапе регистрации.
Доступ к сервисам
Сервис PC Server доступен по ссылкам (при запросе на эти 2 адреса ниже, должна возвратиться WSDL-схема):
- http://<IP или имя сервера с WF >:8080/ws/PayControlServiceV3?wsdl
- http://<IP или имя сервера с WF >:8080/ws/PayControlReportService?wsdl
Адрес конечной точки PC Pusher по умолчанию:
- http://<IP или имя сервера с WF >:8080/pc-pusher-api/
Адрес PC Pusher health check:
- http://<IP или имя сервера с WF >:8080/pc-pusher-api/health_check
PCIS External (при запросе на этот адрес должно возвратиться «Not Found». Также необходимо обратить внимание, на то, какой протокол разрешён – HTTP или HTTPS):
- http://<IP или имя сервера с WF >:8080/PayControl-interaction-rest/
Включение формирования имитовставки (при необходимости)
Необходимо выполнить пункты описанные по ссылке "Включение формирования имитовставки"
Настройка PC Pusher для отправки пушей в другое приложение (при необходимости)
Необходимо выполнить пункты описанные по ссылке "Настройка PCS и PC Pusher"
Корректировка (смена) адресов серверов PayControl (при необходимости)
Предупреждение! Не рекомендуется дополнительно указывать номер порта, в случаях, если для HTTP используется порт 80, или для HTTPS используется порт 443 |
Учёт изменения адреса сервера PCS
Для учёта изменения адреса сервера PCS необходимо произвести изменения в настройках PCIS External. В строке, нужно указать правильный адрес и при необходимости порт сервера PCS, а также уточнить протокол подключения (HTTP/HTTPS):
- на Linux в файле
/opt/wildfly/bin/standalone.conf
:JAVA_OPTS="$JAVA_OPTS -Dpcservice.endpoint=http[s]://<IP или DNS-имя>[:PORT]/ws/PayControlServiceV3?wsdl -Duser.language=ru -Dpaycontrol.locale=ru"
- Windows, в файле
WF_PATH/bin/standalone.conf.bat
:set "JAVA_OPTS=%JAVA_OPTS% -Dpcservice.endpoint=http[s]://<IP или DNS-имя>[:PORT]/ws/PayControlServiceV3?wsdl -Duser.language=ru -Dpaycontrol.locale=ru"
После корректировки адреса необходимо перезапустить службу WildFly для вступления изменений в силу.
Учёт изменения адреса сервера PC Pusher
Для учёта изменения адреса сервера PC Pusher, необходимо, предварительно указав корректные данные (протокол (HTTP/HTTPS), имя или IP сервера, порт, идентификатор системы), выполнить запрос к БД PCS:
update pc_system set pc_is_internal_url = 'http[s]://<IP или DNS-имя>[:PORT]/pc-pusher-api/' where systemid='<SYSTEMID>';
Учёт изменения внешнего адреса сервера PCIS External
Предупреждение! Если система была переведена в промышленную эксплуатацию, при смене адреса для доступа мобильных устройств, не рекомендуется выводить из действия предыдущий адрес на протяжении всего срока действия выпущенных ключей пользователя. Иначе мобильное приложение потеряет доступ к серверу PayControl и для восстановления будет необходимо перевыпустить ключ и заново добавить его в приложение пользователя. |
Для учёта изменения внешнего адреса сервера PayControl, по которому связываются мобильное приложение с сервером PayControl, необходимо, предварительно указав корректные данные (протокол (HTTP/HTTPS), имя или IP сервера, порт, идентификатор системы), выполнить запрос к БД PCS:
update pc_system set pc_is_external_url = 'http[s]://<IP или DNS-имя>[:PORT]/PayControl-interaction-rest/' where systemid='<SYSTEMID>';