Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Для корректной работы в 

ais_name
после установления соединения с Oracle приложение должно вызвать процедуру MAIN.INIT SS_AUTHENTICATION_PKG.LOGIN. Пример:

Code Block
languagesql
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
languagesql
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.INIT SS_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 — исключение, возникающее при обнаружении нескольких сессий с заданным идентификатором.

...