...
Если не вызвать эту процедуру в начале работы, то другие процедуры могут выполняться некорректно или выдавать ошибки.
В скриптах по работе с БД вместо 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 - исключение, возникающее при обнаружении нескольких сессий с заданным идентификатором.