(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

Завершение сеансов Oracle

Источник: all-oracle

Рекомендовано для:
  • Oracle Database 8i
  • Oracle Database 9i R1
  • Oracle Database 9i R2
  • Oracle Database 10g R1
  • Oracle Database 10g R2
  • Oracle Database 11g R1
 

В некоторых ситуациях требуется принудительно завершить пользовательский сеанс. Например, требуется выполнить какие либо административные работы на сервере.

Статья включает три раздела:

  • Идентификация сеансов, которые требуется завершить
  • Завершение активных сеансов
  • Завершение неактивных сеансов

При завершении сеанса, транзакции этого сеанса откатываются и все ресурсы (такие как, блокировки и области памяти) освобождаются и становятся доступными для других сеансов.

Завершение текущего сеанса с использованием SQL предложения ALTER SYSTEM KILL SESSION. Следующий пример, завершает сеанс с SID равным 7 и серийным номером 15:

ALTER SYSTEM KILL SESSION '7,15';

Идентификация сеанса который требуется завершить

Для идентификации сеанса, который требуется завершить, указывается номер индекса и серийный номер. Для идентификации индекса (SID) и серийного номера выполняется запрос к представлению V$SESSION.

Следующий запрос выбирает все сеансы пользователя TEST:

SELECT SID, SERIAL#
FROM V$SESSION
WHERE USERNAME = 'TEST';
SID    SERIAL#    STATUS
-----  ---------  --------
    7         15  ACTIVE 
   12         63  INACTIVE

Сеанс со статусом ACTIVE - это сеанс, выполняющий SQL инструкции и обращающийся к серверу Oracle. Сеанс со статусом INACTIVE - если не выполняется инструкция SQL или нет обращений к серверу.

Завершение активных сеансов

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

ORA-00028: your session has been killed

Если, после получения сообщения об ошибке пользователь пытается сохранить какие-либо данные или выполняет SQL предложение, то Oracle вернет ошибку:

ORA-01012: not logged on

Если активный сеанс не может быть прерван (например, выполняется откат транзакции или идут операции ввода/вывода в сети), то, сеанс не сможет быть прерван до его завершения. В этом случае, сеанс держит все ресурсы, до своего завершения. Дополнительно, сеанс выполняющий предложение ALTER SYSTEM, перед завершением ожидает 60 секунд, и уже затем завершается. Если сеанс не завершается по истечении 60 секунд, то пользователь инициирующий завершение сеанса получает  сообщение, о том, что сеанс "помечен" на завершение. Сеанс, помеченный на удаление, в представлении V$SESSION имеет статус KILLED и значение в поле SERVER отличное от PSEUDO.

Завершение неактивных сеансов

Если сеанс имеет статус INACTIVE, когда он прерывается, сообщение об ошибке:

ORA-00028: your session has been killed

не возвращается пользователю немедленно. Сообщение возвращается, как только пользователь попытается использовать разорванный сеанс.
Как только неактивный сеанс прекращен, STATUS в представлении V$SESSION выглядит как KILLED. Строка прекращенного сеанса удаляется из представления V$SESSION, сразу же после того, как пользователь предпримет попытку использовать сеанс снова и получит сообщение об ошибке ORA-00028.

В следующем примере, прекращается неактивный сеанс. Первым шагом делается выборка из представления V$SESSION, для определения SID и номера сеанса, затем сеанс прерывается.

SELECT SID, SERIAL#, STATUS, SERVER
FROM V$SESSION
WHERE USERNAME = 'TEST';
SID    SERIAL#   STATUS     SERVER
-----  --------  ---------  ---------
    7        15  INACTIVE   DEDICATED
   12        63  INACTIVE   DEDICATED
2 rows selected.

ALTER SYSTEM KILL SESSION '7,15';
Statement processed.

SELECT SID, SERIAL#, STATUS, SERVER
FROM V$SESSION
WHERE USERNAME = 'TEST';
SID    SERIAL#   STATUS     SERVER
-----  --------  ---------  ---------
    7        15  KILLED     PSEUDO
   12        63  INACTIVE   DEDICATED
2 rows selected.

Ссылки по теме


 Распечатать »
 Правила публикации »
  Написать редактору 
 Рекомендовать » Дата публикации: 01.04.2009 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
Oracle Database Standard Edition 2 Named User Plus License
Oracle Database Personal Edition Named User Plus Software Update License & Support
Oracle Database Personal Edition Named User Plus License
Oracle Database Standard Edition 2 Processor License
EMS Data Comparer for Oracle (Business) + 1 Year Maintenance
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
СУБД Oracle "с нуля"
Мир OLAP и Business Intelligence: новости, статьи, обзоры
Программирование на Visual С++
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100