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