Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Cессии / 24 сообщений из 24, страница 1 из 1
28.01.2003, 17:42
    #32097637
JohnSmith
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cессии
Есть сервак с базой, есть клиенты Forms. Клиенты работают, блокируют при этом какие-то строки. Все нормально. Пока тупой юзер не снимет клиентское приложение - или ошибка, или ему показалось что оно зависло (хотя на самом деле коммитило или ждало пока какие-то строки осободятся - не важно). Вобщем снимает этот гад приложение. А сессия остается. Естетсвенно когда он в следующий раз его запускат и ломится редактировать те же ресурсы ему говорят что они заблокированы. Сессия то висит. Какие есть решения проблемы?

P.S. описать в лисенере таймаут? а не будут ли тогда работающие клиенты отваливаться? Ну вышел там юзер курнуть на 10 мин - а связь оборвалась по таймауту! Это не решение :(
...
Рейтинг: 0 / 0
28.01.2003, 18:04
    #32097669
non
non
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cессии
1. Когда коммитит(хотя сам по себе сл.долгий коммит сигнал админу) или ждет должно появляться соот. предупреждение
2. Когда юзер выходит их приложения соот.триггер должен "кричать", что есть его приложения блокировки...
3. Ну уж если узер совсем тупой - там можно(нужно Ж)) ) делать грубые...роллбэки и киллед сешны...
...
Рейтинг: 0 / 0
28.01.2003, 18:22
    #32097688
JohnSmith
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cессии
1) вопрос не по организации интерфейса
2) юзер тупой
...
Рейтинг: 0 / 0
28.01.2003, 18:23
    #32097689
Alexandr Plus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cессии
Вроде в v$session, когда аварийно вышли, отмечается INACTIVE (но еще не KILLED)?
Не через это разве решают этот вопрос?
...
Рейтинг: 0 / 0
28.01.2003, 18:23
    #32097690
JohnSmith
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cессии
а чтобы чего-то делать нужно сидеть за сервером... вопрос бы не вставал
...
Рейтинг: 0 / 0
28.01.2003, 18:40
    #32097715
JohnSmith
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cессии
все сессии которые в данные момент не выполняют SQL - INACTIVE... просто законнектившийся SQL+ 'ом юзер - он тоже inactive
...
Рейтинг: 0 / 0
28.01.2003, 18:43
    #32097716
ShgGena
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cессии
>>> Ну вышел там юзер курнуть на 10 мин - а связь оборвалась по таймауту!

Computer i sqlnet konechnogo usera ne proveriaet prisutstvie ego za stolom.
U nego obicho s glazami ochen ploho.

Sqlnet NE proveriaet ACTIVNOST user, on tolko proveriat NALICHIE (tehnicheski) prilogeniya
priconnekchennogo k base (bolee prosto - proveriae na urovne otkritogo soketa). Posemu user moget gulyat gde ugodno vplot do sleduiuschego goda.
expire_time ne vkluchitsia.

On vkluchaetcia tolko NA SERVERE i tolko esly:
-- sqlnet CLIENTA poterial link(soket) s prilogeniem klienta.
-- sqlnet SERVERA poterial link(soket) s SQLNET klienta.
-- TCP level SERVERA dal signal (posle tcp_keep_alive_time) chto poteriana sviaz s MASHINOY
clienta (tehnicheski) na urovne tcp/ip protokola.

A aktivnost i vremya prostoya usera reguliruetsya na urovne ego profile parametrom idel_time.
Posemu parametrom EXPIRE_TIME v sqlnet.ora mogno smelo polzovatsya.
...
Рейтинг: 0 / 0
28.01.2003, 18:57
    #32097727
Alexandr Plus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cессии
все сессии которые в данные момент не выполняют SQL - INACTIVE
это вроде и есть те 10 минут неактивности (лень проверять sorry, excuse если не прав), но вроде и не только (кажется и аборты там же)

- к тому же есть исключение вроде во всех RAD EAbort (не когда питание отключилось, а когда диспетчер ОС закрыл приложение) и в обработчике
можно убить сессии (если это автоматически не делается)

???
...
Рейтинг: 0 / 0
28.01.2003, 19:25
    #32097749
JohnSmith
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cессии
а что за EXPIRE_TIME ?
Oracle 8.0.5
В документации что-то ничего не нахожу...
или можно ограничится одним IDLE?
...
Рейтинг: 0 / 0
28.01.2003, 19:38
    #32097758
ShgGena
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cессии
>>>> все сессии которые в данные момент не выполняют SQL - INACTIVE
это вроде и есть те 10 минут неактивности (лень проверять sorry, excuse если не прав), но вроде и не только (кажется и аборты там же)

V korne ne verno.
Vnimatelno pochitay prididuschiy otvet.
-----------------------------------------------------------------------------------------------
EXPIRE_TIME --> parametr konfiguracionnogo faila SQLNET.ORA
on opisn v dokumentacii po sqlnet, a ne v dokumentacii po serveru.
...
Рейтинг: 0 / 0
28.01.2003, 20:12
    #32097765
JohnSmith
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cессии
Вот эксперимент. Юзер A - практически суперюзер, владелец всех используемых объектов. Юзер B имеет права на них (select/insert/update/delete). Юзеру B в профайле поставлен IDLE - 1 минута.
Далее запускаем SQL Plus под юзером A и делаем SELECT * FROM TableA FOR UPDATE;
Запускаем SQL Plus под юзером B и делаем SELECT * FROM Table B FOR UPDATE; SELECT * FROM TableA FOR UPDATE. Консоль под юзером B "повисает", маздай считает что приложение не отвечает. Отлично - реальная модель. Дальше жестко снимаем консоль ту что под юзером B.
Смотрим на сервере - две сессии - под юзером A INACTIVE, под юзером B - ACTIVE. ждем минуту - результата нет.
УЖЕ ФИГНЯ. IDLE не работает.
Дальше в консолт с юзером A делаем commit, сервак шуршит и сессия юзера B исчезает.

Что теперь скажете?
...
Рейтинг: 0 / 0
28.01.2003, 20:35
    #32097770
.dba
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cессии
>Что теперь скажете?

странно, у меня нормально отрабатывает - если убил (закрыл окно сессии B), то несколько секунд сессия пропадает из v$session. Никаких IDLE не устанавливал.

Клиент: SQL*Plus 8.1.7.0.0 /Windows NT
Сервер: 8.1.7.4 /Linux
...
Рейтинг: 0 / 0
28.01.2003, 20:37
    #32097773
.dba
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cессии
сорри, я пробовал с одним и тем же юзером, но в разных сессиях.
...
Рейтинг: 0 / 0
28.01.2003, 20:43
    #32097775
JohnSmith
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cессии
да наверное без разницы.... тем более вопрос - в чем фишка? :(
...
Рейтинг: 0 / 0
28.01.2003, 20:44
    #32097776
ShgGena
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cессии
Mi govorim o dvuh principialno raznih poniatiyah:

1 -- IDLE_TIME v profile --> vremia neaktivnosti servernogo processa usera (INACTIVE SESSION)
2 -- EXPIRE_TIME v sqlnet.ora --> timeout tehnicheskoy neaktivnosti soketa prilogeniya v setke

V osnovnom poste --> Вобщем снимает этот гад приложение (t.e ubivaetsya soket sessii na urovne protokola)
sprashivalos kak imenno borotsia s etim ( no ne vremenem INACTIVE SESSION) eto kogda
polzovatel poshel perekurit no ostavil activnoy Forms na mashine clienta.

Tak vot podobnie problkemy reshautsya pri pomoschy EXPIRE_TIME no nikak ne IDLE_TIME v profile.
...
Рейтинг: 0 / 0
28.01.2003, 20:52
    #32097778
JohnSmith
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cессии
Короче.... Ставлю на сервере и клинтах в sqlnet.ora EXPIRE_TIME = 10

Дальше, если юзер запустил приложение и ушел курить (сессия INACTIVE) то все нормально, хоть он до завтра будет курить, связь не порвется - правильно понял?
Дальше если юзер загрузил тачку, т.е. сделал долгий save (с постингом, ожиданием разблокировки строк и т.д.) и в этот момент снял приложение - то что? что будет? сессия при этом пока что остается на сервере как ACTIVE и блокирует ресурсы...


Туплю я наверное... объясните мне еще раз, плз :)
...
Рейтинг: 0 / 0
28.01.2003, 21:17
    #32097786
ShgGena
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cессии
>>> Дальше, если юзер запустил приложение и ушел курить (сессия INACTIVE) то все нормально, хоть он до завтра будет курить, связь не порвется - правильно понял?

Pravilno.

>>> Дальше если юзер загрузил тачку, т.е. сделал долгий save (с постингом, ожиданием разблокировки строк и т.д.) и в этот момент снял приложение - то что? что будет? сессия при этом пока что остается на сервере как ACTIVE и блокирует ресурсы...

2 varianta
1 -- Esli user "снял приложение" no sqlnet na cliente ostalsya givoy to EXPIRE_TIME vkluchaetsya nemedlenno

2 -- esli poterian technicheski link na mashinu kliena (on masinu prosto iz seti vydernul)
to obschy timeout NA SERVERE do aktivizacii "kill session" sostavlyaet :

tcp: keep_alive_time (protokola tcp) + expire_time(sqlnet.ora)
...
Рейтинг: 0 / 0
28.01.2003, 21:25
    #32097788
JohnSmith
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cессии
ага... значит я понял ВСЕ ПРАВИЛЬНО..
тогда какого черта получается тот результат что опубликован выше? где я эксперимент с двумя юзерами проводил....

может базу надо было перезагрузить?
...
Рейтинг: 0 / 0
28.01.2003, 21:35
    #32097791
ShgGena
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cессии
A vot rezultat togo, chto IDLE_TIME ne rabotaet eto TRETIE ponyatie, k timeout nikakogo otnosheniya ne imeet.

OBYAZAN (v init.ora) bit ustanovlen parameter RESOURCE_LIMIT=TRUE (by default = FALSE)
inache ni odin resursniy parameter v profilah ne rabotaet.
...
Рейтинг: 0 / 0
28.01.2003, 21:40
    #32097793
JohnSmith
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cессии
да IDLE_TIME как я понял не шибко в тему... EXPIRE_TIME не работает! вот что главное
...
Рейтинг: 0 / 0
28.01.2003, 21:44
    #32097794
ShgGena
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cессии
expire_time ???
rabotaet, rabotaet ... godamy ustanovleno.
...
Рейтинг: 0 / 0
28.01.2003, 21:53
    #32097795
ShgGena
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cессии
A mogno durnoy vopros : EXPIRE_TIME ustanavlivalsia v sqlnet.ora na kliente ili na servere?
dolgen bit na SERVERE tolko.
...
Рейтинг: 0 / 0
28.01.2003, 21:55
    #32097796
JohnSmith
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cессии
я чтобы дурных вопросов не задавать и там и там поставил :) хотя в документаци про клиент написано
...
Рейтинг: 0 / 0
29.01.2003, 08:26
    #32097862
Allexx
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cессии
Чуть выше рассматривалась такая же ситуация, только в качестве клиента Delphi было.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Cессии / 24 сообщений из 24, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]