Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Отключение неактивного клиента  [new]
clark
Member

Откуда:
Сообщений: 22
Как настроить сервер так, чтобы он отключал клиентов, не посылающих ничего в течении
n-го промежутка времени?
18 ноя 03, 16:02    [423038]     Ответить | Цитировать Сообщить модератору
 Re: Отключение неактивного клиента  [new]
MA_D
Member

Откуда: Нижний Новгород=> Dallas,TX
Сообщений: 347
Создать профиль, который ограничивает время неактивности сессии.
CREATE PROFILE app_user LIMIT

IDLE_TIME <время в минутах>;

Потом присвоить юзеру этот профиль.
alter user USER1 profile app_user;
18 ноя 03, 16:44    [423126]     Ответить | Цитировать Сообщить модератору
 Re: Отключение неактивного клиента  [new]
clark
Member

Откуда:
Сообщений: 22
Спасибо!
18 ноя 03, 17:09    [423174]     Ответить | Цитировать Сообщить модератору
 Re: Отключение неактивного клиента  [new]
cdk
Member

Откуда:
Сообщений: 247
не забудь resourse_limit=true выставить
18 ноя 03, 17:14    [423187]     Ответить | Цитировать Сообщить модератору
 Re: Отключение неактивного клиента  [new]
.dba
Member

Откуда: Киев->Мюнхен
Сообщений: 2331
>Создать профиль, который ограничивает время неактивности сессии.

А разве соединение в этом случае ликвидируется? Сессия да, после этого промежутка времени прерывается, а соединение остается до попытки возобновить сессию через это же соединение.
18 ноя 03, 17:55    [423278]     Ответить | Цитировать Сообщить модератору
 Re: Отключение неактивного клиента  [new]
Stepan_mk
Member

Откуда: Україна
Сообщений: 1299
Ничего шорошего оно не даёт. Я у себя такое делал.
Соединение переходит в состояние SNIPED (кажется правильно написал)
а при попитке клиента что-то делать, то или возобновляется или клиент видаёт кучу сообщений об ошибке.
Я от етого отказался. Но если кто-то знает как действительно заставить убивать такую сесию то буду благодарен
18 ноя 03, 18:42    [423364]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Отключение неактивного клиента  [new]
jan2ary
Member

Откуда: Киев
Сообщений: 1780
Хорошего - дает.
Опытным путем установлено: при маркировке сессии как SNIPED также освобождаются блокировки. Так что если человек залочил табличку и ушел домой, то это как раз средство полечить забывчивость. Это как минимум. Дальше надо еще поиграть :)
12 мар 07, 19:09    [3889162]     Ответить | Цитировать Сообщить модератору
 Re: Отключение неактивного клиента  [new]
EugeneS
Member

Откуда:
Сообщений: 1255
Stepan_mk
Ничего шорошего оно не даёт. Я у себя такое делал.
Соединение переходит в состояние SNIPED (кажется правильно написал)


После того как сессия переведена в состояние SNIPED
можно использовать "классический" подход если конечно у вас используется dedicated mode и Unix-подобная система.

#!/bin/bash

#
#  Shell script to kill the shadow process
#
# Is it ORACLE running ?
DBUP=`ps -ax | grep $ORACLE_SID | grep pmon`

#
# Check if instance UP
#

if [ -z "$DBUP" ]; then
 # Do nothing
 #echo "!!!! Oracle Instance: $ORACLE_SID is down !!!!"
 exit
fi


##################################################################
# ##### MAIN:  Killing Sniped Oracle sessions ####### ############
##################################################################
sqlplus -s '/ as sysdba' <<EOFts |
set hea off
set echo off
set feedback off
set pagesize 0
set linesize 80
WHENEVER OSERROR EXIT FAILURE;
WHENEVER SQLERROR EXIT FAILURE;
select p.spid
from v\$process p,v\$session s
where s.paddr=p.addr
  and s.status='SNIPED';

exit
EOFts

while read pid
do
  kill -9 $pid
done

exit
13 мар 07, 11:27    [3890946]     Ответить | Цитировать Сообщить модератору
 Re: Отключение неактивного клиента  [new]
FM32YO aka KID
Member

Откуда: Ukraine
Сообщений: 884
MA_D
Создать профиль, который ограничивает время неактивности сессии.
CREATE PROFILE app_user LIMIT
IDLE_TIME <время в минутах>;
Потом присвоить юзеру этот профиль.
alter user USER1 profile app_user;


это в случае один оператор за клиентской программой - и юзер в БД
А если иначе - 5 юзеров в БД, а операторов 125, и каждый ходит под определенным юзером, пароли на доступ хранятся в какой-нибудь табличке, и ничего общего у операторов нету с
USER 'blabla' IDENTIFIED by 'tratata'
13 мар 07, 12:24    [3891402]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить