(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 Personal Edition Named User Plus Software Update License & Support
Oracle Database Standard Edition 2 Named User Plus License
Oracle Database Standard Edition 2 Processor License
Oracle Database Personal Edition Named User Plus License
ABBYY Lingvo x6 Многоязычная Домашняя версия, электронный ключ
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
СУБД Oracle "с нуля"
Все о PHP и даже больше
3D и виртуальная реальность. Все о Macromedia Flash MX.
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100