Page tree

Versions Compared

Key

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

...

Если не вызвать эту процедуру в начале работы, то другие процедуры могут выполняться некорректно или выдавать ошибки.

 

В скриптах по работе с БД вместо MAIN.INIT нужно использовать MAIN.SWITCH_CONTEXT. Пример:

Code Block
BEGIN  MAIN.SWITCH_CONTEXT(
    vch_VC_CLN_SESSIONID  => 'my external id');
EXCEPTION WHEN MAIN.SESSION_DOES_NOT_EXIST           OR
                             MAIN.SESSION_CLOSED     OR
                             MAIN.MULTIPLE_SESSIONS  THEN
   MAIN.INIT(
    vch_VC_IP            => '127.0.0.1',
    vch_VC_USER          => 'rpc',
    vch_VC_PASS          => 'password',
    vch_VC_APP_CODE      => 'NETSERV_HID',
    vch_VC_CLN_SESSIONID => 'my external id',
    vch_VC_CLN_APPID     => 'my app info');
END;
/

Это необходимо для предотвращения инициализации большого количества сессий и увеличения таблицы SS_SESSION_LOGS.

Описание исключений:

  • MAIN.SESSION_ALREADY_EXISTS - исключение, возникающее при вызове MAIN.INIT и передаче аргумента vch_VC_CLN_SESSIONID. Если сессия с идентификатором, переданным в vch_VC_CLN_SESSIONID существует, генерируется данное исключение. Процедура SWITCH_CONTEXT данное исключение не выбрасывает и его можно не обрабатывать.
  • MAIN.SESSION_DOES_NOT_EXIST - исключение, возникающие тогда, когда процедура SWITCH_CONTEXT не смогла подобрать переданную сессию.
  • MAIN.SESSION_CLOSED - исключение, возникающее, когда сессия с переданным идентификатором уже была закрыта заданием, закрывающим старые сессии.
  • MAIN.MULTIPLE_SESSIONS - исключение, возникающее при обнаружении нескольких сессий с заданным идентификатором.