Openedge application server - віддалений виклик процедур

Сервер додатків OpenEdge Application Server дозволяє здійснювати зовнішніх систем віддалений виклик процедур ABL (4GL).

Openedge application server - віддалений виклик процедур

Всі настройки 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.