Страница 1 из 1

Shutdown и подключенные пользователи

Добавлено: 21 фев 2008, 11:21
lasouris
Доброго времени суток!
Пользуюсь Firebird 1.5.3 CS
Пользователи подключены не под SYSDBA, но после шатдауна базы спокойно продолжают работать и изменять данные. Новые пользователи подключиться не могут. Подскажите, пожалуйста, так и должно быть или я все-таки что-то не так делаю?

Добавлено: 21 фев 2008, 11:30
WildSery
Так должно быть, и ты действительно всё делаешь не так.
Чти документацию, в коей английским по-белому сказано, что к базе в состоянии шатдауна может коннектиться сисдба и владелец базы (тот, кто её ресторил).
Потому нужно разграничивать доступ.

ЗЫ: Исключение есть - монопольный шатдаун, но тут есть нюансы.

Добавлено: 21 фев 2008, 11:56
lasouris
SYSDBA и есть владелец базы, так что тут все чисто.
Пользователи подключаются под аккаунтом Client. Почему после шатдауна они продолжают спокойно работать? Как мне их отключить?

Добавлено: 21 фев 2008, 12:15
Attid
ну есть добрый вариант и злой
добрый - разослать всем чтобы выходили (можно на уровне приложения типа евенты заюзать)
злой - отсрелить все конекты

Добавлено: 21 фев 2008, 12:44
Merlin
lasouris писал(а):SYSDBA и есть владелец базы, так что тут все чисто.
Пользователи подключаются под аккаунтом Client. Почему после шатдауна они продолжают спокойно работать? Как мне их отключить?
Шатдаун поди - force с ненулевым параметром? Бага это. Только с нулём работает.

Добавлено: 21 фев 2008, 12:44
lasouris
Евенты - это мысль, хотя все равно грустно.
А в двойке то же самое?

Добавлено: 21 фев 2008, 12:49
lasouris
Merlin, спасибо огромное! Все отлично работает!!

Добавлено: 21 фев 2008, 13:45
kdv
Бага это. Только с нулём работает.
согласно доке, если у force задан параметр > 0, то если по истечении указанного времени (секунд) все равно остались коннекты, то база в шатдаун НЕ переводится. собственно, автор вопроса так и не писал, может он использует -shut attach, который именно так и работает - текущие коннекты остаются, а новые запрещены.

Добавлено: 21 фев 2008, 13:53
lasouris
Использовался именно -force с ненулевым параметром.
Вопрос по доке: если после истечения времени остались коннекты и база не перевелась в шатдаун, почему запрещены новые коннекты?

Добавлено: 21 фев 2008, 14:31
Merlin
kdv писал(а):
Бага это. Только с нулём работает.
согласно доке, если у force задан параметр > 0, то если по истечении указанного времени (секунд) все равно остались коннекты, то база в шатдаун НЕ переводится.
Дим, это в которой доке так написано? В 6-й написано, что по истечении таймаута при force активные транзакции роллбачатся, коннекты закрываются (с этим врут, они не закрываются, но могут только закрыться и ничего больше), ставится флаг в хидере. Если до завершения таймаута наступит состояние отсутствия коннектов, шатдаун выполнится в этот момент, не дожидаясь таймаута.

Если в более свежей доке редакция изменилась, значит, в IB вместо того, чтобы багу исправить, её задокументировали :) В FB исправлено, в каком - не помню.