mybpm!
Скачать в формате: PDF pdf DOCX word

Настройка PostgreSQL

Компоненты MyBPM API и MyBPM Cons должны иметь доступ к БД PostgreSQL. Параметры доступа настраиваются через переменные окружения:

П.о. Пример значения Описание
MYBPM_AUX1_HOST localhost Хост (домен или IP-адрес) машины, где находиться PostgreSQL
MYBPM_AUX1_PORT 5432 Порт, на котором работает сервер
MYBPM_AUX1_DB_NAME mybpm_aux1 Имя базы данных
MYBPM_AUX1_USER_NAME mybpm Пользователь подключения
MYBPM_AUX1_PASSWORD hj34b2j23b4jh4d Пароль пользователя

1. Дополнительные привилегии

1.2. Создание схем

Пользователь mybpm должен иметь возможность создавать схемы

create schema ...

Это нужно для пользователей плагинов - плагинам запрещено иметь доступ к системным данным, поэтому для каждого плагина готовиться своя схема и пользователь, который имеет доступ только к этой схеме.

1.3. Создание других пользователей

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

2. Настройка пулов-соединений

Платформа для доступа к БД использует пул-соединений и параметрами этого пула можно управляет с помощью конфигурационного файла. В системе конфигурации он находится по адресу:

/mybpm/configs/Aux1DbDataSourceConfig.txt

Пример этого файла:

# Created at 2024-08-12 10:26:16
# Кофиг для настройки DataSource базы aux1

# Значение максимального времени когда коннекшн может быть в состоянии idle
idleTimeout=600000

# Значение максимального Pool size для коннекшна в базу aux
aux1MaxPoolSize=10

Сервер платформы при старте открывает сразу aux1MaxPoolSize соединений к БД и держит их в состоянии IDLE, чтобы можно было быстро использовать.

ПРИМЕЧАНИЕ: нужно быть внимательным, чтобы не превысить максимальное количество соединений. Например, если на сервере PostgreSQL настроено максимальное количество соединений 30, в файле настроено aux1MaxPoolSize=10, а количество запущенных серверов платформы 5 (один api и четыре cons). В результате каждый из пяти серверов пытается открыть 10 соединений, итого серверам нужно 5*10 = 50 соединений, а в PostgreSQL настроено всего 30 соединений, из-за этого сервера не могут запуститься. В данном случает количество соединений нужно увеличить до 50*2 = 100. При этом сервера займут 50 соединений, и 50 останется в резерве. В резерве всегда нужно оставлять, например для rollout-restart. Этот вид перезапуска серверов работает так, что вначале запускаются новые сервера, старые продолжают работать и обслуживать трафик. И только когда новые сервера запустились и получили все необходимые им соединения, старые сервера останавливаются.

Чтобы новые сервера могли запуститься нужно иметь резерв соединений в PostgreSQL.