...
Для корректной работы в
| ais_name |
|---|
MAIN.INIT SS_AUTHENTICATION_PKG.LOGIN. Пример:| Code Block | ||
|---|---|---|
| ||
BEGIN MAIN.INITSS_AUTHENTICATION_PKG.LOGIN( vch_VC_IP => '127.0.0.1', -- IP-адрес, с которого выполняется вход в систему vch_VC_USERLOGIN => 'Payment_RPC', -- Логин пользователя АСР «Гидра» на приложение vch_VC_PASSPASSWORD => 'secret123', -- Пароль пользователя на приложение vch_VC_APP_CODE => 'NETSERV_HID', -- Код приложения в АСР «Гидра» vch_VC_CLN_APPID => 'my app info'); -- Информационная строка приложения (название, версия и т. д.) ); END; |
Если не вызвать эту процедуру в начале работы, то другие процедуры могут выполняться некорректно или выдавать ошибки.
...
В сторонних приложениях, в которых возможен интенсивный вызов MAIN.INIT SS_AUTHENTICATION_PKG.LOGIN (чаще 1 раза в минуту), для предотвращения сильного роста таблицы с сессиями следует использовать инициализацию сессии в сочетании с MAINSS_AUTHENTICATION_PKG.SWITCH_CONTEXT. Пример:
| Code Block | ||
|---|---|---|
| ||
BEGIN MAINSS_AUTHENTICATION_PKG.SWITCH_CONTEXT( vch_VC_CLN_SESSIONID => 'my external id'); EXCEPTION WHEN ERRORS_PKG_S.SESSION_DOES_NOT_EXIST OR ERRORS_PKG_S.SESSION_CLOSED OR ERRORS_PKG_S.MULTIPLE_SESSIONS THEN MAIN.INITSS_AUTHENTICATION_PKG.LOGIN( vch_VC_IP => '127.0.0.1', vch_VC_USERLOGIN => 'rpc', vch_VC_PASSPASSWORD => 'password', vch_VC_APP_CODE => 'NETSERV_HID', vch_VC_CLN_SESSIONID => 'my external id', vch_VC_CLN_APPID => 'my app info'); END; / |
В версии 5.0 коды и определения ошибок перенесены в специальный пакет ERRORS_PKG_S из MAINиз SS_AUTHENTICATION_PKG.
Описание исключений:
ERRORS_PKG_S.SESSION_ALREADY_EXISTS— исключение, возникающее при вызовеMAIN.INITSS_AUTHENTICATION_PKG.LOGINи передаче аргументаvch_VC_CLN_SESSIONID. Если сессия с идентификатором, переданным вvch_VC_CLN_SESSIONIDсуществует, генерируется данное исключение. ПроцедураSWITCH_CONTEXTданное исключение не выбрасывает и его можно не обрабатывать.ERRORS_PKG_S.SESSION_DOES_NOT_EXIST— исключение, возникающие тогда, когда процедураSWITCH_CONTEXTне смогла подобрать переданную сессию.ERRORS_PKG_S.SESSION_CLOSED— исключение, возникающее, когда сессия с переданным идентификатором уже была закрыта заданием, закрывающим старые сессии.ERRORS_PKG_S.MULTIPLE_SESSIONS— исключение, возникающее при обнаружении нескольких сессий с заданным идентификатором.
...