Старт в многопользовательском режиме в Proenv
Для старта базы данных в многопользовательском режиме необходимо стартовать брокера. После старта брокера клиенты cмогут выполнять подключения к базе данных.
Вы можете выполнить одну или несколько задач для старта базы данных в многопользовательской среде:
- Стартовать одного или нескольких брокеров базы данных.
- Создать и вызвать файл параметров для автоматизации задач старта брокеров.
- Стартовать фоновые процессы.
Далее рассмотрим, как стартовать брокеров, как создавать файлы параметров и как стартовать фоновые процессы. Но перед тем как вы подробнее узнаете о перечисленных задачах, изучим типы брокеров и для чего используются несколько брокеров в базе данных.
Типы брокеров
Существует два типа брокеров:
- Первичный брокер (Primary broker), который создаёт и управляет разделяемой памятью базы данных, а также выполняет функции watchdog*. Устанавливает связь с базой данных для всех типов клиентов. Если используется несколько типов серверов, то необходимо настроить первичного брокера так, чтобы он обслуживал только OpenEdge ABL серверы. По умолчанию первичный брокер может создавать и обслуживать ABL и SQL серверы.
* Брокер выполняет функции процесса watchdog только тогда, когда этот процесс не стартован.
- Вторичный брокер (Secondary broker) – устанавливает связь с базой данных для всех типов клиентов. Если используется несколько типов серверов, то необходимо настроить каждого вторичного брокера так, чтобы он обслуживал только один тип серверов, обычно это серверы OpenEdge SQL.
Вы можете стартовать несколько брокеров для одной базы данных, что позволяет:
- масштабировать количество пользователей;
- поддерживать различные типы пользователей (ABL/SQL);
- поддерживать различные варианты использования данных, например, обработка транзакций в онлайн и отчётность;
- управлять потоками данных в сети, используя различные параметры старта клиентов, серверов и брокеров.
По умолчанию брокеры могут создавать как SQL, так и ABL серверы, но для улучшения производительности рекомендуется разделять их функции, т.е. стартовать раздельно брокеров, обсуживающих только ABL клиентов (старт только ABL-серверов), и брокеров, обслуживающих только SQL-клиентов (старт только SQL-серверов).
Разделение брокеров на ABL и SQL позволяет:
- избежать исчерпывания пула соединений в случае лавинообразного увеличения количества одновременных подключений ABL/SQL-клиентов;
- обеспечить раздельную поддержку дистанционных ABL-клиентов на ABL-серверах и дистанционных SQL-клиентов на SQL-серверах;
- контролировать количество серверов на каждом брокере.;
- контролировать количество клиентских подключений к каждому серверу.
Старт брокера базы данных
Для того, чтобы сделать базу данных доступной в многопользовательском режиме, необходимо стартовать первичного брокера с определёнными параметрами.
Команда для старта брокера называется PROSERVE. Синтаксис команды:
proserve <db-name> [parameters]
Существует масса различных параметров старта базы данных, которые вы можете изучить обратившись к документации, к книге OpenEdge® Data Management: Database Administration, глава Database Startup Parameters. Мы рассмотрим только основные из них.
Параметр |
Описание |
-H <host-name> | Определяет имя хоста, на котором размещена БД. |
-S <service-name> | · Определяет имя сервиса или номер порта, используемого брокером. Допустимые значения от 2000 до 32767.
· Необходим только для дистанционных клиентов. |
-N <network-type> | Определяет тип сетевого протокола (TCP или SNA). По умолчанию используется TCP. |
-Ma n | Определяет максимальное количество дистанционных клиентов на каждом сервере. По умолчанию 5. Рекомендовано 10. |
-Mi n | Определяет минимальное количество дистанционных клиентов на сервер. По умолчанию 1. |
-n | Определяет общее количество возможных пользователей в БД (по умолчанию 21). Указывается только для первичного брокера. При расчёте значения это параметра необходимо учитывать такие процессы, как APW, BIW, AIW, PROWDOG и PROMON. |
-Mn n | Определяет максимальное количество серверов и логин-брокеров. |
При использовании параметров необходимо помнить:
- Все параметры чувствительны к регистру.
- Если при старте брокера не указан какой-то параметр, то для этого параметра будет применено значения по умолчанию.
- Если не указывать тип брокера, то по умолчанию брокер будет обслуживать оба типа клиентов (ABL/SQL).
- Если клиент находится на той же машине, что и база данных, но для подключения используется сетевые параметры (-H / -S), то подключение считается дистанционным.
- SQL-клиенты всегда рассматриваются как дистанционные, даже если они подключается с той же машины, где размещена база данных.
Пример команды старта брокера с параметрами:
proserve sports2000 -H localhost -S 50500 -Ma 5 -Mi 3
Старт дополнительных брокеров
Для старта дополнительных брокеров необходимо использовать отдельную команду proserve для каждого брокера. Кроме того, необходимо использовать некоторые дополнительные параметры старта.
Параметр |
Описание |
-S <service-name> | Определяет имя сервиса или номер порта, используемого брокером для подключения к нему дистанционных клиентов. Должен быть отличным от номеров портов других брокеров. Допустимые значения от 2000 до 32767 |
-ServerType type | Определяет тип серверов. Допустимые варианты: 4GL, SQL и Both. |
-Mpb n | Определяет максимальное количество серверов для брокера. По умолчанию 4. |
-m3 | Идентификатор вторичного брокера. |
Приведём пример старта первичного брокера для ABL-клиентов и одного дополнительного брокера для SQL-клиентов с максимальным количеством одновременных подключений к базе данных равным 100 пользователей.
Старт первичного брокера:
proserve sports -S 3001 -n 101 -Mn 15 -Mi 2 -Ma 4 -Mpb 10 -ServerType 4GL
Старт вторичного брокера:
proserve sports -S 3101 -Mi 2 -m3 -Ma 5 -Mpb 4 -ServerType SQL
Эти два брокера обеспечивают:
- 40 ABL и 20 SQL подключений и 40 прочих процессов.
- Используют 10 серверов для ABL-брокера (-Mpb 10) и 4 сервера для SQL-брокера (-Mpb 4).
- Каждый сервер создаётся минимум для 2 дистанционных клиентов (-Mi 2).
- Для ABL-подключений используется порт 3001, а для SQL-подключений порт 3101.
В этом примере расчёт максимального количества одновременных подключений к базе данных (-n) выполняется по следующей формуле:
-n 101 = ABL(-Ma 4 * -Mpb10 ) + SQL(-Ma 5 * -Mpb 4) + 1 (для дополнительного брокера) + 40 (прочие процессы)
Расчёт максимального количество серверов базы данных для обслуживания дистанционных клиентов:
-Mn 15 = ABL (-Mpb 10) + SQL (-Mpb 4) + 1 (для дополнительного брокера)