|
(Метка: новое перенаправление) |
(не показано 8 промежуточных версий 2 участников) |
Строка 1: |
Строка 1: |
− | =Подготовка БД=
| + | #перенаправление [[Установка компонентов сервера PayControl v3.9 вручную]] |
− | * Создать базу данных и пользователя на сервере СУБД, где будет работать база данных PC Server (pcs-user, pcs-pass, pcs-db, pcs-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 на распакованную директорию:<source lang="bash">ln -s /opt/wildfly-24.0.1.Final/ /opt/wildfly</source>
| |
− | ==Windows==
| |
− | При распаковке рекомендуется исключить кириллические символы в пути, а также пробелы.
| |
− | * Распаковать Wildfly, например, в C:\.
| |
− | * Создать символьную ссылку, к примеру ''C:\wildfly'', на распакованную директорию. Пример команды:<syntaxhighlight lang="bat">mklink /D C:\wildfly C:\wildfly-24.0.1.Final\</syntaxhighlight>
| |
− | ==Удаление настроек WildFly по-умолчанию==
| |
− | Для удаления настроек по-умолчанию, необходимо выполнить пункты описанные по ссылке [[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":<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>
| |
− | * Добавить установленный модуль в качестве драйвера для подключения к СУБД в файл ''WF_PATH/standalone/configuration/standalone.xml'', в секцию ''<datasources/drivers>'', добавив следующий блок:<source lang="xml">
| |
− | <driver name="pgsql" module="org.postgresql">
| |
− | <driver-class>org.postgresql.Driver</driver-class>
| |
− | </driver>
| |
− | </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
| |
− | * Создать директорию ''WF_PATH/modules/system/layers/base/com/microsoft/sqlserver/main/''
| |
− | * В директорию распаковать файлы и директории драйвера. Файлы драйвера (*.jar) должны располагаться непосредственно в директории ''main/''
| |
− | * Создать в этой же папке файл module.xml следующего содержания, заменив JAR_PATH на имя файла драйвера, например на ''mssql-jdbc-8.2.2.jre8.jar'':<syntaxhighlight lang="xml">
| |
− | <?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>
| |
− | </syntaxhighlight>
| |
− | * Добавить установленный модуль в качестве драйвера для подключения к СУБД в файл ''WF_PATH/standalone/configuration/standalone.xml'', в секцию ''<datasources/drivers>'', добавив следующий блок:<syntaxhighlight lang="xml">
| |
− | <driver name="mssql" module="com.microsoft.sqlserver">
| |
− | <driver-class>com.microsoft.sqlserver.jdbc.SQLServerDriver</driver-class>
| |
− | </driver>
| |
− | </syntaxhighlight>
| |
− | | |
− | ===Oracle===
| |
− | * Скачать актуальный JDBC-драйвер по адресу https://www.oracle.com/database/technologies/appdev/jdbc-downloads.html
| |
− | * Создать директорию ''WF_PATH/modules/org/postgresql/main/''
| |
− | * В директорию ''WF_PATH/modules/system/layers/base/com/oracle/main/'' поместить скачанный ojdbc*.jar.
| |
− | * Создать в этой же папке файл ''module.xml'' следующего содержания, указав имя файла драйвера вместо "JAR_PATH":<source lang="xml">
| |
− | <?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>
| |
− | </source>
| |
− | * Добавить установленный модуль в качестве драйвера для подключения к СУБД в файл ''WF_PATH/standalone/configuration/standalone.xml'', в секцию ''<datasources/drivers>'', добавив следующий блок:<source lang="xml">
| |
− | <driver name="oracle" module="com.oracle">
| |
− | <driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
| |
− | </driver>
| |
− | </source>
| |
− | | |
− | ==Особенности маппинга Oracle==
| |
− | Для корректной установки PC Server с подключением к БД Oracle требуется создать/изменить некоторые таблицы вручную:
| |
− | | |
− | Инструкция:
| |
− | * Заменить по содержимому ниже <syntaxhighlight lang="sql">
| |
− | <TABLESPACE_NAME>
| |
− | <USER_NAME>
| |
− | <USER_PASS>
| |
− | </syntaxhighlight>
| |
− | | |
− | * Из-под пользователя с правами на создание пользователей и табличных пространств выполнить:<syntaxhighlight lang="sql">
| |
− | ---Создание табличного пространства и пользователя---
| |
− | 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>";
| |
− | </syntaxhighlight>
| |
− | | |
− | * Из-под созданного пользователя, под которым будет производиться подключение PC к БД выполнить:<syntaxhighlight lang="sql">
| |
− | ---Создание таблиц---
| |
− | 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"));
| |
− | | |
− | </syntaxhighlight><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><syntaxhighlight lang="sql">
| |
− | ---Создание очередей---
| |
− | 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;
| |
− | </syntaxhighlight>
| |
− | | |
− | ==Добавление источников данных для PC Server==
| |
− | [[PC_Pusher_5.2|'''При установке 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:<source lang="xml">
| |
− | <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>
| |
− | </source>
| |
− | | |
− | ===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:<source lang="xml">
| |
− | <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>
| |
− | </source>
| |
− | | |
− | ===Oracle===
| |
− | ====PC Server====
| |
− | В файл ''WF_PATH/standalone/configuration/standalone.xml'' внести следующие изменения добавить новый источник данных в секцию ''<datasources></datasources>'' заменив pcs-db-host, port, pcs-db, pcs-user, pcs-pass:<source lang="xml">
| |
− | <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>
| |
− | </source>
| |
− | | |
− | =Настройка подключения PCIS External к PC Server=
| |
− | На сервере PCIS External необходимо установить адрес сервера PC Server (host и port заменить на реальные значения). Для этого:
| |
− | * на Linux в файл ''WF_PATH/bin/standalone.conf'' нужно добавить <syntaxhighlight lang="bash">JAVA_OPTS="$JAVA_OPTS -Dpcservice.endpoint=http://<host>:<port>/ws/PayControlServiceV3?wsdl -Duser.language=ru -Dpaycontrol.locale=ru"</syntaxhighlight>
| |
− | * на Windows в файл ''WF_PATH/bin/standalone.conf.bat'' нужно добавить <syntaxhighlight lang="bat">set "JAVA_OPTS=%JAVA_OPTS% -Dpcservice.endpoint=http://<host>:<port>/ws/PayControlServiceV3?wsdl -Duser.language=ru -Dpaycontrol.locale=ru"</syntaxhighlight> выше метки :JAVA_OPTS_SET
| |
− | | |
− | =Настройка выделения памяти серверу=
| |
− | На всех серверах установить максимальный объем доступной для использования памяти:
| |
− | * на 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 - файл ''PayControl-services-module-<VERSION>.ear''
| |
− | ** на PC Pusher - файл ''pc-pusher-<VERSION>.war''
| |
− | ** на PCIS External - файл ''PayControl-interaction-rest-<VERSION>.war''
| |
− | Один сервер WildFly может запускать одно или несколько приложений сервера
| |
− | * Запустить
| |
− | ** 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, проверить, что нет ошибок запуска.
| |
− | | |
− | ==Настройка автозапуска службы сервера==
| |
− | ===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>
| |
− | ''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 выше метки :JAVA_OPTS_SET.
| |
− | <syntaxhighlight lang="bat">set "JAVA_OPTS=%JAVA_OPTS% -Djboss.bind.address=0.0.0.0"</syntaxhighlight>
| |
− | | |
− | ==URL-фильтрация при совмещении PC Pusher и PCIS External==
| |
− | При совмещении ролей PC Pusher и PCIS External на одном сервере необходимо исключить возможность выполнения запросов PC Pusher со стороны сети интернет. <br>
| |
− | | |
− | Для этого необходимо со стороны сети интернет разрешить подключения только на конечную точку PCIS External. <br>
| |
− | Конечная точка PCIS External - ''<host>:<port>/PayControl-interaction-rest/*''<br>
| |
− | Доступ к другим конечным точкам должен быть запрещен.
| |
− | | |
− | При этом доступ к PC Pusher со стороны PC Server должен сохраниться. <br>
| |
− | Конечная точка PC Pusher - ''<host>:<port>/pc-pusher-api/*''
| |
− | | |
− | =Внесение изменений в БД=
| |
− | ==Создание индексов БД PC Server==
| |
− | После первого запуска приложения, в базе данных будут созданы необходимые таблицы.
| |
− | | |
− | На продуктивной среде после этого необходимо создать индексы в базе данных('''за исключением Oracle''') 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 HTTP POST запроса, сформированного ST/Airome. Содержание запроса предоставляется дополнительно.
| |
− | | |
− | Для отправки запроса можно использовать любое средство отправки HTTP-запросов.
| |
− | ===Примеры===
| |
− | | |
− | ====Curl====
| |
− | cURL (в ОС Linux доступна в репозиториях, для ОС Windows можно скачать с сайта разработчика https://curl.haxx.se/download.html):
| |
− | * 1. Скопировать файл RegisterSystemRequest.xml (если название файла с запросом на регистрацию отличается, то необходимо либо переименовать его, либо изменить имя этого файла в параметрах команды curl) на сервер в любую директорию на машину, с которой будет производиться запуск команды curl.
| |
− | * 2. Проверить содержимое файла. Если файл выглядит как<syntaxhighlight lang="xml">
| |
− | <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>
| |
− | </syntaxhighlight>
| |
− | то, перейти к п.4.
| |
− | * 3. Если файл выглядит как
| |
− | <code>PD94bWwgdmVyc2lvbj0iMJlIHhtbG5zPSJodHRwOi8vd3Muc2FmZXRlY2gucS4w... ...ZXF1JlIHhtbG5zPSJodHRwOi8vd3Muc2FmZXRlY2gucnUZ==</code>
| |
− | то необходимо добавить в его начало<syntaxhighlight lang="xml">
| |
− | <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:pay="http://ws.safetech.ru/PayControlV3/">
| |
− | <soapenv:Header/>
| |
− | <soapenv:Body>
| |
− | <pay:registerSystemRequest>
| |
− | <request>
| |
− | </syntaxhighlight>
| |
− | и в его конец<syntaxhighlight lang="xml">
| |
− | </request>
| |
− | </pay:registerSystemRequest>
| |
− | </soapenv:Body>
| |
− | </soapenv:Envelope>
| |
− | </syntaxhighlight>
| |
− | чтобы он принял вид, как представлено в п.2.
| |
− | * 4. Выполнить команду (в той-же директории, где располагается скопированный/изменённый файл), заменив <PCServer_IP/localhost> на DNS-имя сервера или его IP-адрес:<syntaxhighlight lang="bash">
| |
− | curl --header "Content-Type: text/xml;charset=UTF-8" --header "SOAPAction: registerSystem" --data @RegisterSystemRequest.xml <PCServer_IP/localhost>:8080/ws/PayControlServiceV3
| |
− | </syntaxhighlight>
| |
− | | |
− | | |
− | * Если в составе ответа пришла строка <systemId>SYSTEMID ВАШЕЙ ПРИКЛАДНОЙ СИСТЕМЫ</systemId>, значит прикладная система зарегистрирована.
| |
− | * Если в составе ответа было <soap:Fault>, значит возникла проблема на этапе регистрации.
| |
− | * После успешной регистрации прикладной системы на сервере, файл registerSystem.xml больше не нужен.
| |
− | | |
− | ====SOAP UI====
| |
− | * 1. Добавить подключение к серверу PCS, указав адрес WSDL схемы:
| |
− | [[Файл:Soap add conn.jpg]]
| |
− | * 2. Создать новый запрос из категории registerSystem
| |
− | [[Файл:Soap register system.jpg]]
| |
− | * 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 (при необходимости)=
| |
− | {{Предупреждение|Не рекомендуется дополнительно указывать номер порта, в случаях, если для HTTP используется порт 80, или для HTTPS используется порт 443}}
| |
− | ==Учёт изменения адреса сервера PC Server==
| |
− | Для учёта изменения адреса PC Server необходимо произвести изменения в настройках PCE. В файле /opt/wildfly/bin/standalone.conf, в следующей строке, указав правильный адрес и при необходимости порт сервера PC Server, а также уточнив протокол подключения (HTTP/HTTPS):
| |
− | <syntaxhighlight lang="bash">
| |
− | JAVA_OPTS="$JAVA_OPTS -Dpc_url=http[s]://<IP или DNS-имя>[:PORT]/pc-api/ -Duser.language=ru -Dpc_locale=ru"
| |
− | </syntaxhighlight>
| |
− | | |
− | ==Учёт изменения адреса сервера PC Pusher==
| |
− | Для учёта изменения адреса сервера PCP, необходимо, предварительно указав корректные данные (протокол (HTTP/HTTPS), имя или IP сервера, порт, идентификатор системы), выполнить запрос к БД PC Server:
| |
− | <syntaxhighlight lang="sql">update pc_system set pc_is_internal_url = 'http[s]://<IP или DNS-имя>[:PORT]/pc-pusher-api/' where systemid='<SYSTEMID>';</syntaxhighlight>
| |
− | ==Учёт изменения внешнего адреса сервера PC External==
| |
− | {{Предупреждение|Если система была переведена в промышленную эксплуатацию, при смене адреса для доступа мобильных устройств, не рекомендуется выводить из действия предыдущий адрес на протяжении всего срока действия выпущенных ключей пользователя. Иначе мобильное приложение потеряет доступ к серверу PC и для восстановления будет необходимо перевыпустить ключ и заново добавить его в приложение пользователя.}}
| |
− | Для учёта изменения внешнего адреса сервера PC, по которому связываются мобильное приложение с сервером PC, необходимо, предварительно указав корректные данные (протокол (HTTP/HTTPS), имя или IP сервера, порт, идентификатор системы), выполнить запрос к БД PC Server:
| |
− | <syntaxhighlight lang="sql">update pc_system set pc_is_external_url = 'http[s]://<IP или DNS-имя>[:PORT]/pc-client-api/' where systemid='<SYSTEMID>';</syntaxhighlight>
| |