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

Материал из PayControl Wiki
Перейти к: навигация, поиск
(Новая страница: «==Подготовка БД== * Создать базу данных и пользователя на сервере СУБД, где будет работать…»)
 
м
Строка 90: Строка 90:
 
<driver-class>com.microsoft.sqlserver.jdbc.SQLServerDriver</driver-class>
 
<driver-class>com.microsoft.sqlserver.jdbc.SQLServerDriver</driver-class>
 
</driver>
 
</driver>
 +
</syntaxhighlight>
 +
*Удалить источник данных по умолчанию и welcome-page
 +
При конфигурировании Wildfly можно (при переводе системы в промышленную эксплуатацию - рекомендуется) удалить пример источника данных и страницу-приветствие. Для этого в файле standalone.xml необходимо убрать (либо закомментировать) следующие объекты:
 +
<syntaxhighlight lang="xml">
 +
<datasource jndi-name="java:jboss/datasources/ExampleDS" pool-name="ExampleDS" enabled="true" use-java-context="true">
 +
<connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE</connection-url>
 +
<driver>h2</driver>
 +
<security>
 +
<user-name>sa</user-name>
 +
<password>sa</password>
 +
</security>
 +
</datasource>
 +
</syntaxhighlight>
 +
<syntaxhighlight lang="xml">
 +
<driver name="h2" module="com.h2database.h2">
 +
<xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
 +
</driver>
 +
</syntaxhighlight>
 +
<syntaxhighlight lang="xml">
 +
<default-bindings context-service="java:jboss/ee/concurrency/context/default" datasource="java:jboss/datasources/ExampleDS" managed-executor-service="java:jboss/ee/concurrency/executor/default" managed-scheduled-executor-service="java:jboss/ee/concurrency/scheduler/default" managed-thread-factory="java:jboss/ee/concurrency/factory/default"/>
 +
</syntaxhighlight>
 +
<syntaxhighlight lang="xml">
 +
<location name="/" handler="welcome-content"/>
 +
</syntaxhighlight>
 +
<syntaxhighlight lang="xml">
 +
<handlers>
 +
<file name="welcome-content" path="${jboss.home.dir}/welcome-content"/>
 +
</handlers>
 
</syntaxhighlight>
 
</syntaxhighlight>
 
===Настройка standalone.conf.bat===
 
===Настройка standalone.conf.bat===
 
В файл ''<WF_PATH>/bin/standalone.conf.bat'' внести следующие изменения:
 
В файл ''<WF_PATH>/bin/standalone.conf.bat'' внести следующие изменения:
 +
 +
* На всех серверах установить максимальный объем используемой памяти, равный ''ОбщийОбъёмОЗУ - 1536MB''
 +
Для этого в строке
 +
''JAVA_OPTS="-Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true"'' поменять параметр ''Xmx''
 +
 
* На сервере PayControl External необходимо установить адрес сервера PC Server (host и port заменить на реальные значения)
 
* На сервере PayControl External необходимо установить адрес сервера PC Server (host и port заменить на реальные значения)
 
<syntaxhighlight lang="bat">set "JAVA_OPTS=%JAVA_OPTS% -Dpc_url=http://<host>:<port>/pc-api/ -Dpc_locale=ru"</syntaxhighlight>
 
<syntaxhighlight lang="bat">set "JAVA_OPTS=%JAVA_OPTS% -Dpc_url=http://<host>:<port>/pc-api/ -Dpc_locale=ru"</syntaxhighlight>
Строка 138: Строка 171:
 
create index pc_transaction2_idx on PC_TRANSACTION (userID);  
 
create index pc_transaction2_idx on PC_TRANSACTION (userID);  
 
create index pc_user1_idx on PC_USER (systemID);
 
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>
 
</syntaxhighlight>
 
==Регистрация системы==
 
==Регистрация системы==

Версия 17:42, 13 января 2020

Подготовка БД

  • Создать базу данных и пользователя на сервере СУБД, где будет работать база данных PCS (pcs-user, pcs-pass, pcs-db, pcs-db-host). Предоставить права на доступ пользователю к БД.
  • Создать базу данных и пользователя на сервере СУБД, где будет работать база данных PCIS (pcis-user, pcis-pass, pcis-db, pcis-db-host). Предоставить права на доступ пользователю к БД.

Установка Java

Установить последнюю версию JRE ветки 1.8 или 11

Обновление Security

Для версии JRE 1.8:

Для версии JRE 11 - аналогично

Установка Wildfly

  • Скачать и распаковать актуальную версию WildFly Server. (При распаковке рекомендуется исключить кириллические символы в пути, а также пробелы.)

https://wildfly.org/downloads/

  • Создать символьную ссылку, к примеру C:\wildfly, на распакованную директорию. Пример команды:
mklink /D c:\wildfly c:\wildfly-18.0.1.Final\

Далее по тексту, под <WF_PATH> имеется в виду адрес созданной символьной ссылки.

Добавление JDBC-драйвера СУБД

MS SQL

  • Скачать JDBC-драйвер с сайта Microsoft https://docs.microsoft.com/ru-ru/sql/connect/jdbc/download-microsoft-jdbc-driver-for-sql-server?view=sql-server-ver15
  • Создать директорию <WF_PATH>/modules/system/layers/base/com/microsoft/sqlserver/main/
  • В директорию распаковать файлы и директории драйвера. Файлы драйвера (*.jar) должны располагаться непосредственно в директории main/
  • Создать в этой же папке файл module.xml следующего содержания
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.3" name="com.microsoft.sqlserver">
  <resources>
    <!-- JAR_PATH, for example, mssql-jdbc-6.2.1.jre8.jar -->
    <resource-root path="JAR_PATH"/>
  </resources>
  <dependencies>
    <module name="javax.api"/>
    <module name="javax.transaction.api"/>
    <module name="javax.xml.bind.api"/>
  </dependencies>
</module>

Настройка standalone.xml

В файл <WF_PATH>/standalone/configuration/standalone.xml внести следующие изменения

  • Добавить новый источник данных (секция <datasources>):
<!--- На PayControl Server, заменить pcs-db-host, port, pcs-db-host, pcs-db, pcs-user, pcs-pass --->
<datasource jta="true" jndi-name="java:jboss/datasources/PCServerDS" pool-name="PCServerDS" enabled="true" use-ccm="true">
	<connection-url>jdbc:sqlserver://pcs-db-host:port;databaseName=pcs-db</connection-url>
	<connection-property name="url">
		jdbc:sqlserver://pcs-db-host:port;databaseName=pcs-db
	</connection-property>
	<driver>mssql</driver>
	<security>
		<user-name>pcs-user</user-name>
		<password>pcs-pass</password>
	</security>
	<pool>
		<min-pool-size>5</min-pool-size>
		<max-pool-size>50</max-pool-size>
		<prefill>false</prefill>
		<use-strict-min>false</use-strict-min>
		<flush-strategy>FailingConnectionOnly</flush-strategy>
	</pool>
	<validation>
		<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mssql.MSSQLValidConnectionChecker"></valid-connection-checker>
	</validation>
</datasource>

<!--- На PayControl Pusher, заменить pcis-db-host, port, pcis-db-host, pcis-db, pcis-user, pcis-pass --->
<datasource jta="true" jndi-name="java:jboss/datasources/PCPusherDS" pool-name="PCPusherDS" enabled="true" use-ccm="true">
	<connection-url>jdbc:sqlserver://pcis-db-host:port;databaseName=pcis-db</connection-url>
	<connection-property name="url">
		jdbc:sqlserver://pcis-db-host:port;databaseName=pcis-db
	</connection-property>
	<driver>mssql</driver>
	<security>
		<user-name>pcis-user</user-name>
		<password>pcis-pass</password>
	</security>
	<pool>
		<min-pool-size>5</min-pool-size>
		<max-pool-size>50</max-pool-size>
		<prefill>false</prefill>
		<use-strict-min>false</use-strict-min>
		<flush-strategy>FailingConnectionOnly</flush-strategy>
	</pool>
	<validation>
		<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mssql.MSSQLValidConnectionChecker"></valid-connection-checker>
	</validation>
</datasource>
  • Добавить новый драйвер (секция <datasources/drivers>)
<driver name="mssql" module="com.microsoft.sqlserver">
	<driver-class>com.microsoft.sqlserver.jdbc.SQLServerDriver</driver-class>
</driver>
  • Удалить источник данных по умолчанию и welcome-page

При конфигурировании Wildfly можно (при переводе системы в промышленную эксплуатацию - рекомендуется) удалить пример источника данных и страницу-приветствие. Для этого в файле standalone.xml необходимо убрать (либо закомментировать) следующие объекты:

<datasource jndi-name="java:jboss/datasources/ExampleDS" pool-name="ExampleDS" enabled="true" use-java-context="true">
	<connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE</connection-url>
	<driver>h2</driver>
	<security>
		<user-name>sa</user-name>
		<password>sa</password>
	</security>
</datasource>
<driver name="h2" module="com.h2database.h2">
	<xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
</driver>
<default-bindings context-service="java:jboss/ee/concurrency/context/default" datasource="java:jboss/datasources/ExampleDS" managed-executor-service="java:jboss/ee/concurrency/executor/default" managed-scheduled-executor-service="java:jboss/ee/concurrency/scheduler/default" managed-thread-factory="java:jboss/ee/concurrency/factory/default"/>
<location name="/" handler="welcome-content"/>
<handlers>
	<file name="welcome-content" path="${jboss.home.dir}/welcome-content"/>
</handlers>

Настройка standalone.conf.bat

В файл <WF_PATH>/bin/standalone.conf.bat внести следующие изменения:

  • На всех серверах установить максимальный объем используемой памяти, равный ОбщийОбъёмОЗУ - 1536MB

Для этого в строке JAVA_OPTS="-Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true" поменять параметр Xmx

  • На сервере PayControl External необходимо установить адрес сервера PC Server (host и port заменить на реальные значения)
set "JAVA_OPTS=%JAVA_OPTS% -Dpc_url=http://<host>:<port>/pc-api/ -Dpc_locale=ru"
  • При необходимости отладки сообщений от мобильных устройств на PayControl External, можно включить вывод отладочной информации
set "JAVA_OPTS=%JAVA_OPTS% -Dpc_logRequests=true"

Запуск проекта

  • Скопировать файл приложения сервера <WF_PATH>\standalone\deployments\:
    • на PC Server - файл pc-server-<VERSION>.ear
    • на PC Pusher - файл pc-pusher-<VERSION>.war
    • на PC External - файл pc-external-<VERSION>.war

Один сервер WildFly может запускать одно или несколько приложений сервера

  • Запустить
    <WF_PATH>\bin\standalone.bat -b 0.0.0.0
    
    где -b 0.0.0.0 - позволяет подключаться к серверу используя любой его интерфейс (опция bind)
  • Дождаться старта WF, проверить, что нет ошибок запуска.

Настройка автозапуска службы сервера

Скопировать папку
<WF_PATH>\docs\contrib\scripts\service\
в папку
<WF_PATH>\bin\
Выполнить

<WF_PATH>\bin\service\service.bat install /startup

При запуске в качестве службы, возможно отклонение запросов. В таком случае необходимо установить параметры JAVA_OPTS в файле standalone.conf.bat или standalone.bat, если установленные в предыдущем файле параметры не применяются.

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/*

Создание индексов в базе данных

После первого запуска приложения, в базе данных будут созданы необходимые таблицы.

На продуктивной среде после этого необходимо создать индексы в базе данных 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 запроса, сформированного ST/Airome. Содержание запроса предоставляется дополнительно.

Для отправки запроса можно использовать любое средство отправки HTTP-запросов, например, cURL

curl --location --request POST 'http://<host>:<port>/pc-api/' \
--header 'Content-Type: application/json' \
--data-raw '{
	"request":"eyJyZXF1ZXN0Ijp... [request content]"
}'

Доступ к сервисам

Адреса конечных точек по умолчанию:

  • 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