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

Администирование клиентской и серверной части InterBase, Firebird, Yaffil. Настройка файла конфигурации и т.п.

Модераторы: kdv, Alexey Kovyazin

Ответить
lasouris
Сообщения: 5
Зарегистрирован: 21 фев 2008, 10:57

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

Сообщение lasouris » 21 фев 2008, 11:21

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

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

Сообщение WildSery » 21 фев 2008, 11:30

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

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

lasouris
Сообщения: 5
Зарегистрирован: 21 фев 2008, 10:57

Сообщение lasouris » 21 фев 2008, 11:56

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

Attid
Спец
Сообщения: 377
Зарегистрирован: 14 ноя 2006, 09:58

Сообщение Attid » 21 фев 2008, 12:15

ну есть добрый вариант и злой
добрый - разослать всем чтобы выходили (можно на уровне приложения типа евенты заюзать)
злой - отсрелить все конекты

Merlin
Динозавр IB/FB
Сообщения: 1502
Зарегистрирован: 27 окт 2004, 11:44

Сообщение Merlin » 21 фев 2008, 12:44

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

lasouris
Сообщения: 5
Зарегистрирован: 21 фев 2008, 10:57

Сообщение lasouris » 21 фев 2008, 12:44

Евенты - это мысль, хотя все равно грустно.
А в двойке то же самое?

lasouris
Сообщения: 5
Зарегистрирован: 21 фев 2008, 10:57

Сообщение lasouris » 21 фев 2008, 12:49

Merlin, спасибо огромное! Все отлично работает!!

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 21 фев 2008, 13:45

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

lasouris
Сообщения: 5
Зарегистрирован: 21 фев 2008, 10:57

Сообщение lasouris » 21 фев 2008, 13:53

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

Merlin
Динозавр IB/FB
Сообщения: 1502
Зарегистрирован: 27 окт 2004, 11:44

Сообщение Merlin » 21 фев 2008, 14:31

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

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

Ответить