powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Триггер на дисконнект. когда должен сработать?
17 сообщений из 42, страница 2 из 2
Триггер на дисконнект. когда должен сработать?
    #39624195
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

а если некий ССЗБ напишет в on disconnect бесконечный цикл? Не намеренно, просто случайно вышло.
Сейчас если там зависон можно сделать delete from mon$attachments и вуаля коннект срублен.
...
Рейтинг: 0 / 0
Триггер на дисконнект. когда должен сработать?
    #39624197
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladИли всё же о триггере на дисконнект ?О дисконнекте, хочется чтобы он вел себя логично и задокументировано. Мониторинговые таблицы тут "сбоку", нет у них событий, ну и ладно.

Симонов Денисэто срубание вызвано какой-то экстренной ситуацией и триггер срабатывать не должен.Присоединюсь в ДСу, сделал запрос, получил идентификаторы коннектов, какая тут эктренность? Было бы логично иметь логику дисконнекта в одном месте, а не размазывать ее по всей БД.
...
Рейтинг: 0 / 0
Триггер на дисконнект. когда должен сработать?
    #39624199
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Дениса если некий ССЗБ напишет в on disconnect бесконечный цикл?Если SYSDBA стреляет себе с ногу, то сервер должен принудительно отнять у него логин? Если разработчик напишет бесконечный цикл на инсерте в базу и наинсертит пока место на диске не кончится? Что толку в пустом флуде?
...
Рейтинг: 0 / 0
Триггер на дисконнект. когда должен сработать?
    #39624202
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvlad> Если они не успеют -шатдаун отменяется.

А, сорри, я уже подзабыл... Умолкаю.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Триггер на дисконнект. когда должен сработать?
    #39624212
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan_Pisarevsky,

это смотря как рассматривать возможность delete from mon$attachments. Лично я рассматриваю это как вырубание коннектов для нештатных ситуаций, в том числе и вырубание SYSDBA.

Ivan_PisarevskyЕсли разработчик напишет бесконечный цикл на инсерте в базу и наинсертит пока место на диске не кончится?

в данном случае delete from mon$attachments способен просто вырубить коннект делающий эту гадость.
...
Рейтинг: 0 / 0
Триггер на дисконнект. когда должен сработать?
    #39624304
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

... и запустить ту, что в триггере на дисконнект
...
Рейтинг: 0 / 0
Триггер на дисконнект. когда должен сработать?
    #39624306
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WildSery,

сейчас триггер на дисконнект не запускается. Вы за то чтобы он срабатывал после delete from mon$attachments Причём всегда.
А я считаю что нужно право выбора запускать или нет.
...
Рейтинг: 0 / 0
Триггер на дисконнект. когда должен сработать?
    #39624311
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисА я считаю что нужно право выбора запускать или нет.Триггер на мон табличку не навесить, см. выше. Где должен поселиться мифический выбор?

Если разработчик настолько туп, что запустил бесконечный цикл на рабочей БД, то чем тут поможет сервер? Пусть тестирует тщательнее на "кошках". А аварийно остановить тестовый сервер дело плевое. Рестартанул сервер целиком и правь свои кривульки в новом коннекте. Я не пойму такой трепетной заботы о криворуком разрабе именно в этом контексте? Почему бы не запретить джойны? можно же заставить сервер набирать "бесконечный" резалтсет, "уронив" при этом сервер.
...
Рейтинг: 0 / 0
Триггер на дисконнект. когда должен сработать?
    #39624527
Фотография CyberMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladМне кажется разумным вызывать триггеры в таких случаях
- удаление коннекта через мониторинг
- шатдаун БД, вызванный сисадмином - если он не форсирован

Какие будут мнения ?
Согласен с этим.
Но хотелось бы оставить возможность удаления коннекта без вызова триггера на отключение. Например, так: ALTER USER 'PETROV' DELETE ATTATCHMENTS;
Либо через другую таблицу, которая содержит минимум информации - ID и имя пользователя, например.
...
Рейтинг: 0 / 0
Триггер на дисконнект. когда должен сработать?
    #39624625
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CyberMaxЛибо через другую таблицу, которая содержит минимум информации - ID и имя пользователя, например.Эта логика совершенно штатно делается прямо сейчас, делай триггер в нем ссылка на таблицу, если там сидит юзер то выйти из триггера без действий, инсертить в таблицу до маневров нет никакой проблемы.
...
Рейтинг: 0 / 0
Триггер на дисконнект. когда должен сработать?
    #39625148
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan_PisarevskyПрисоединюсь в ДСу, сделал запрос, получил идентификаторы коннектов, какая тут эктренность?

а если не получал ?

Код: sql
1.
delete from mon$attachment


или
Код: sql
1.
delete from mon$attachment where mon$attachment_id <> current_connection



с точки хрения движка во время процедуры delete над конкретной строкой-коннектом нет разницы, была ли где-то раньше сложная медленная логика или нет?

PS. Кстати, если предположить, что я примерно представляю как долго "подчищает хвосты" какой коннект, то может появиться смысл срубать их отсортировать и сначала убивать самые долгие, а под конец - самые быстрые. Это так, к тезису, что в экстренной ситуации не будет предварительных запросов.
Если "ток кончится" через долю секунды - то надо просто убивать сервер вместе с незаписанными на диск кэшами. А если у нас есть несколько секунд на сброс кэшей, то уж на предварительный "сделал запрос, получил идентификаторы коннектов" тем более доля секунды найдется.
...
Рейтинг: 0 / 0
Триггер на дисконнект. когда должен сработать?
    #39625153
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денисможет быть указывать через контекстные переменные или через изменение окружения оператором типа SET MON_CONN_MODE <mode>

тогда уж добавить в mon$attachment изменяемый столбец mon$db_triggers_enabled:boolean и update его в любую сторону перед delete
...
Рейтинг: 0 / 0
Триггер на дисконнект. когда должен сработать?
    #39631405
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ariochизменяемый столбец mon$db_triggers_enabledКак-то криво.

Меня тут посетила мысль, если нет триггеров на mon$attachment, то updatable view на нее навесить по идее можно, надо проверить только как она переживет b/r, и в триггер on delete прописать еще и свою логику, помимо удаления собственно записи из самой мон таблички. Далее все манипуляции производить над вьюхой.
...
Рейтинг: 0 / 0
Триггер на дисконнект. когда должен сработать?
    #39631407
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan_Pisarevsky,

должна пережить. ХП которые используют mon$ ведь переживают
...
Рейтинг: 0 / 0
Триггер на дисконнект. когда должен сработать?
    #39631419
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan_Pisarevsky, ты забыл пункт 4 - уборщица случайно зацепила шваброй Ethernet патч-корд и произвела хардовый дисконнект. :)
По правде сказать, мне тоже не понятна такая избирательность FirebirdSQL сервера в отношении разных вариантов дисконнекта... Это, как минимум, неунифицировано!
...
Рейтинг: 0 / 0
Триггер на дисконнект. когда должен сработать?
    #39631425
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devты забыл пункт 4 - уборщица случайно зацепила шваброй Ethernet патч-корд и произвела хардовый дисконнект. :)Выше это уже обсудили, перетерли, все там нормально. И убиение клиента таск менеджером тоже. Давай по теме, хватит партизанить.
...
Рейтинг: 0 / 0
Триггер на дисконнект. когда должен сработать?
    #39631586
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan_PisarevskyAriochизменяемый столбец mon$db_triggers_enabledКак-то криво.

криво потому, что нет реализации изменяемых mon-таблиц.

пока из них - принципиально, не в каждой таблице, а на уровне заложенного механизма - можно читать и удалять отдельные строки.

реализации же изменения конкретного столбца в конкретной строке нет вообще.
и городить её из-за одного единственного случая, разумеется, не хочется.

но как раз концептуально это IMHO наиболее чистый вариант

остальное же сведется к хаотичному набору одноразовых (ad hoc) решений
...
Рейтинг: 0 / 0
17 сообщений из 42, страница 2 из 2
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Триггер на дисконнект. когда должен сработать?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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