Сервер додатків OpenEdge Application Server дозволяє здійснювати зовнішніх систем віддалений виклик процедур ABL (4GL).
Всі настройки OpenEdge Application Server 'а вказуються у файлі $ DLC / properties / ubroker.proprties. Даний файл має розгалужену вкладеної структурою від секцій із загальними настройками до приватних.
Редагування даного файлу конфігурації можливо за допомогою:
Після внесення змін у файлі конфігурації рекомендується перевірити їх коректність за допомогою утиліт:
- nsconfig - утиліта перевірки коректності налаштувань NameServer'а;
- asconfig - утиліта перевірки коректності налаштувань App-брокерів;
- wsconfig - утиліта перевірки коректності налаштувань WebSpeed брокерів.
Дана команда виведе інформацію з конфігураційного файлу $ DLC / properties / ubroker.proprties по NameServer - NS1
Дана команда виведе інформацію з конфігураційного файлу $ DLC / properties / ubroker.proprties по брокеру - myBroker1
ADMIN SERVER
Запуск AdminServer'а здійснюється командою:
За замовчуванням AdminServer запускається на порту 20931. Змінити порт можна вказавши параметр -port.
Перевірити стан AdminServer'а.
Якщо сервер запущений успішно, результат буде приблизно такий:
Якщо сервер не запущений:
NAME SERVER
Команда запуску NameServer'a:
Команда зупинки NameServer'a:
У разі успішного запуску NameServer'а і зареєстрованих на ньому брокерів:
Якщо NameServer запущений, але не запущений жоден з брокерів зареєстрованих на ньому.
Секція [NameServer] містить загальні налаштування для всіх NameServer'ов. Кожен параметр може бути перевизначений в налаштуваннях кожного окремого сервера.
Після секції [NameServer] створимо секцію сервера NS1:
autoStart - визначає автоматичний запуск NameServer'а при запуску AdminServer. Може приймати наступні значення: 1 - здійснюється автоматичний запуск NameServer'a і 0 - автоматичний запуск не проводиться;
srvrLogFile - лог файл NameServer'а;
portNumber - порт NameServer. Порт для підключення клієнтів до AppServer (по замовчування порт 5162).
NameServer є java процес слухає UDP порт на який надходять клієнтські запити. П росмотреть інформацію по даному процесу можна наприклад за допомогою утиліти lsof:
Брокер управляє агентами виконують клієнтські запити. Секція [UBroker] конфігураційного файлу містить загальні налаштування для всіх видів брокерів. Кожен брокер може бути зареєстрований тільки на одному NameServer'е. Секція [UBroker.AS] - містить загальні налаштування для всіх App-брокерів.
Команда запуску Broker'a:
Команда зупинки Broker 'a:
У разі успішного запуску Broker'а:
Якщо Broker не запущено:
Після секції [UBroker.AS] створимо секцію з настройками myBroker1.
Кожен брокер повинен мати унікальний uuid, для генерації якого необхідно виконати команду:
autoStart - визначає автоматичний запуск брокера при запуску AdminServer. Може приймати наступні значення: 1 - здійснюється автоматичний запуск Broke r'a і 0 - автоматичний запуск не проводиться.
srvrLogFile - лог-файл сервера;
brokerLogFile - лог-файл брокера;
brkrLoggingLevel - рівень логування брокера; 0 - логирование не проводиться; 1 - логіруются тільки помилки; 2 - основний;
brkrLogAppend - може приймати значення 0 і 1: 0 - при кожному запуску брокера створюється окремий лог-фаил; 1 - логирование виробляє в єдиний лог-файл;
brkrLogThreshold - максимальний розмір лог-файлу в байтах. Може приймати значення від 500000 - 2147483647. При досягненні лог-файлу зазначеного розміру створюється новий лог-файл з індексом від 1 до 999 999.
controllingNameServer - ідентифікатор NameServer;
operatingMode - режим роботи брокера.
Існує 4-е режиму роботи брокера: Stateless, State-reset, State-aware, State-free.
State-reset - Кожному підключився клієнту виділяється свій окремий агент брокера з числа доступних. При цьому агент блокується даним клієнтом для запитів інших клієнтських з'єднань до моменту відключення клієнта. Після відключення клієнта, контекст агента скидається. З одного боку клієнта завжди однозначно доступний агент для обробки його запитів, з іншого боку, якщо від клієнта не надходить ніяких запитів, агент залишається заблокованим і можлива така ситуація, коли всі доступні агенти будуть зайняті і нові клієнти не зможуть отримати до них доступ, хоча при цьому заблоковані клієнти за фактом будуть вільними і не будуть обробляти ніяких запитів клієнтів заблокували їх. даний режим є режимом використовується за умовчанням.
State-aware - Даний режим є схожим з режимом state-reset, але на відміну від нього агентський контекст не скидається після відключення клієнта і залишається доступний наступного підключився клієнта.
Stateless - підключився клієнт встановлює зв'язок з брокером, який в свою чергу розподіляє його запити по вільним агентам. За виконання клієнтського запиту агент вивільняється і ставати доступним іншим клієнтам.
State-free - підключився клієнт не встановлює жорсткий зв'язок з конкретним брокером. Клієнтські запити виконуються першим вільним брокером. За виконання запиту стан агента скидається.
appserviceNameList - список підтримуваних брокером серверів;
environment - секція з описом змінних оточення брокера;
portNumber - порт брокера;
maxClientInstance - Максимальна кількість клієнтських з'єднань;
initialSrvrInstance - кількість агентів запускаються при старті брокера;
minSrvrInstance - мінімальне число підключених агентів;
maxSrvrInstance - максимально кількість запускаються агентів;
srvrMinPort - мінімальний порт агентів. допустиме значення 1024 - 65535;
srvrMaxPort - максимальний порт агентів. допустиме значення 1024 - 65535;
autoTrimTimeout - таймаут відключення незайнятого брокера в секундах. При значенні 0 відключення незайнятого агента не проводитися.
При запуску брокера до бази підключається initialSrvrInstance агентів, число яких у міру збільшення паралельних запитів клієнтів може збільшуватися до числа maxSrvrInstance. Агенти запускаються на портах з srvrMinPort по srvrMaxPort з кроком 1. При вказівці maxSrvrInstance необхідно керуватися наступним: maxSrvrInstance. srvrMaxPort - srvrMinPort.
У міру припинень запитів незатребувані агенти будуть відключатися по закінчитися нию таймаута autoTrimTimeout. При повному припиненні запитів до OpenEdge Application Server. число підключених а Гент скоротитися д про minSrvrInstance.
requestTimeout - таймаут виражений в секундах, який буде витриманий в очікуванні вільного агента при клієнтському запиті. Якщо після закінчення зазначеного пір не буден доступний агент клієнтом буде отримано повідомлення "no servers available"
srvrStartupParam - параметри підключення агентів до бази або pf-файл параметрів;
PROPATH - перелік каталогів містять r-файли;
userName - ім'я користувача від імені якого здійснюється запуск брокера. Якщо користувач не вказано, то за замовчуванням запуск брокера буде здійснюватися від імені того ж користувача, від якого здійснюється запуск AdminServer;
password - пароль користувача наданого в секції userName;
description - опис брокера.
При налаштуванні OpenEdge Application Server 'а можливо вказівку ряду процедур, виклик яких буде здійснено після настання певної події.
Такими подіями є:
- Запуск і зупинка агентів;
- Підключення і відключення клієнта;
- Виклик віддаленої процедури клієнтом і завершення виконання віддаленої процедури.
STARTUP ПРОЦЕДУРА
Ім'я STARTUP процедури, що викликається відразу після старту агента вказується в параметрі srvrStartupProc. Виклик процедури здійснюється як PERSISTENT і видаляється до того як агент буде зупинений.
Дана процедура обов'язково повинна містити опис одне вхідного параметр CHARACTER типу.
При виклику процедури значення вхідного параметра процедури передається з параметра srvrStartupProcParam. Якщо значення srvrStartupProcParam не вказано, то воно автоматичні приймає "невідоме значення" -.
Якщо при виклику процедури виникла помилка, то запуск App-сервера припиняється і агенти зупиняються.
Неможливо вказівку STARTUP процедури для state-reset режиму роботи App-сервера.
SHUTDOWN ПРОЦЕДУРА
Ім'я SHUTDOWN процедури, що викликається до зупинки агентів, вказується в параметрі srvrShutdownProc. Дана процедура є процедурою без параметрів. Якщо при виклику даної процедури станеться помилка, то вона просто ігнорується і агент зупиняється. Виклик цієї процедури здійснюється як NON-PERSISTENT.
Неможливо вказівку SHUTDOWN процедури для state-reset режиму роботи OpenEdge Application Server.
CONNECT ПРОЦЕДУРА
Виклик CONNECT процедури здійснюється в момент установки клієнтського з'єднання з OpenEdge Application Server. до моменту прийняття клієнтського запиту. Дана процедура може здійснювати аунтіфікацію клієнта підключається до App Server. в разі не проходження аутентифікації відхилити підключення даного клієнта.
Ім'я CONNECT процедури вказується в параметрі srvrConnectProc файлу конфігурації App-сервера
CONNECT процедура повинна містити три вхідних параметра CHARACTER типу:
Значення даних параметрів передаються клієнтом в методі CONNECT () при підключенні до App Server 'у. Якщо дані значення не вказані клієнтом в методі CONNECT () то процедурі будуть передані "невідомі значення" -.
Неможливо вказівку CONNECT процедури для state-reset режиму роботи App Server'а. так як в даному режимі не виро.
При stateless режимі роботи AppServer'а виклик CONNECT процедури здійснюється як NON-PERSISTENT. Для всіх інших режимів роботи AppServer'а як PERSISTENT.
DISCONNECT ПРОЦЕДУРА
Виклик DISCONNECT процедури здійснюється в момент отримання запиту клієнта на відключення, але до фактичного його відключення.
Ім'я CONNECT процедури вказується в параметрі srvrDisconnProc файлу конфігурації App Server.
Неможливо вказівку DISCONNECT процедури для state-reset режиму роботи App Server'а.
Виклик процедури здійснюється як NON-PERSISTENT для всіх доступних режимів роботи App-сервера
БЕЗПЕКА
Для обмеження доступних для віддаленого виклику процедур через OpenEdge Application Server використовується метод сесії - EXPORT (). Даний метод встановлює список доступних для виклику процедур в якості контенту агентів App Server'а. Як параметр даного методу передається список процедур в форматі CAN-DO доступних для віддаленого виклику. Виклик даного методу без параметра отчищает список доступних процедур.
Специфіка установки списку доступних процедур для різних режимів роботи OpenEdge Application Server.