|
Триггер на дисконнект. когда должен сработать?
|
|||
---|---|---|---|
#18+
Пробую триггер на дисконнект, хочу почистить некие хвосты в базе по отключению юзера. 1. прикладная программа завершается штатно - триггер сработал. 2. прикладная программа завершается аварийно(грохнул через таск менеджер) - триггер сработал. 3. вышвырнул юзера delete from mon$attachments - триггер не сработал. пункт 3 это бага? в треккер? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2018, 18:02 |
|
Триггер на дисконнект. когда должен сработать?
|
|||
---|---|---|---|
#18+
Ivan_Pisarevsky, AFAIK, удаление из MON$ATTACHMENTS соединение не убивает. Повторная попытка использовать соединение приведет к ошибке, и тогда по идее триггер сработает. Но это так - пальцем в небо, сразу говорю. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2018, 18:19 |
|
Триггер на дисконнект. когда должен сработать?
|
|||
---|---|---|---|
#18+
Ivan_Pisarevsky, нет. Обсуждалось уже ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2018, 18:37 |
|
Триггер на дисконнект. когда должен сработать?
|
|||
---|---|---|---|
#18+
Ivan_Pisarevsky3. вышвырнул юзера delete from mon$attachments - триггер не сработал.Сработает. Когда будет рельный дисконнект. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2018, 19:49 |
|
Триггер на дисконнект. когда должен сработать?
|
|||
---|---|---|---|
#18+
hvladIvan_Pisarevsky3. вышвырнул юзера delete from mon$attachments - триггер не сработал.Сработает. Когда будет рельный дисконнект.Подождать keepalive интервал? Завтра проверю. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2018, 22:22 |
|
Триггер на дисконнект. когда должен сработать?
|
|||
---|---|---|---|
#18+
Ivan_Pisarevsky, Сетевое соединение не разрывается, чтобы клиент мог получить корректное сообщение об ошибке (isc_att_shutdown). Если клиент спит часами, то и сетевого дисконнекта не будет. Поэтому keepalive тут не при чём. Но. Я ещё раз это всё посмотрел - в 2.5 таки не вызывается триггер при отстреле из мониторинга, и при шатдауне БД. А вот в 3 - вызывается. Вроде :) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2018, 22:54 |
|
Триггер на дисконнект. когда должен сработать?
|
|||
---|---|---|---|
#18+
hvladА вот в 3 - вызывается. Вроде :)Дошли таки руки проверить, на двушке как ты и говорил триггер не срабатывает. С двушке я потихоньку уползаю, так что это для меня не приоритет. Проверил на трешке(сборка 32924), те же яйца, токмо в профиль. то что должен был подчистить триггер висит в таблице. Шатдаун базы не приводит к срабатываю триггера. По идее, если база в шатдауне коннектам все едино ничего уже не светит, надо дать сработать триггеру, как с удалением коннекта через мон табличку тоже. Если клиент неожиданно для сервера умер, триггер же срабатывает, это я проверил. Таки писать треккеру? Я понимаю, что триггер не панацея, неожиданно умереть может и сам сервер (например сбой по питанию), но все таки, если коннект обрубается штатными средствами сервера, триггер должен работать, иначе какой в нем смысл? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2018, 18:42 |
|
Триггер на дисконнект. когда должен сработать?
|
|||
---|---|---|---|
#18+
Ivan_Pisarevsky, насколько помню (но могу и путать), явный отстрел коннектов (в отличие от штатного дисконнекта или отвала сети) хотели сделать максимально быстрым. Выполнять при этом триггеры, которые ХЗ что делают, не хотелось. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2018, 20:36 |
|
Триггер на дисконнект. когда должен сработать?
|
|||
---|---|---|---|
#18+
dimitrВыполнять при этом триггеры, которые ХЗ что делают, не хотелось.Есть же режим no_db_triggers на коннекте, чтоб кривой триггер на коннект обойти. У то го же shutdown-а тоже есть немного настроек... может их употребить? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2018, 20:48 |
|
Триггер на дисконнект. когда должен сработать?
|
|||
---|---|---|---|
#18+
Собственно, нелогично, что на коннект есть отключающий триггеры параметр, а на дисконнект нет :) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2018, 09:39 |
|
Триггер на дисконнект. когда должен сработать?
|
|||
---|---|---|---|
#18+
Ivan_Pisarevsky, пересмотрел ещё раз 3-ку - там, хоть и менялся код отвечающий за шатдаун\дисконнект, но триггеры на дисконнект всё же не вызываются. Давайте обсудим. Есть несколько причин для дисконнекта: - по просьбе приложения (т.е. штатный дисконнект) - обрыв связи с приожением - удаление коннекта через мониторинг - шатдаун БД, вызванный сисадмином - шатдаун сервера в целом В текущей реализации только синхронный дисконнект (первые два пункта) вызывает срабатывание триггера. Все случаи асинхронного дисконнекта (все остальные случаи) - не вызывают. Для этого есть причина - когда нужно максимально быстро погасить БД (например пропало питание и админ\скрипт экстренно гасит всё подряд), триггеры лучше не вызывать. Кроме того, код дисконнекта не знает причину дисконнекта. Мне кажется разумным вызывать триггеры в таких случаях - удаление коннекта через мониторинг - шатдаун БД, вызванный сисадмином - если он не форсирован Есс-но, это может быть сделано в 4-ке. Бекпорт в 3 не обещается Какие будут мнения ? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2018, 10:37 |
|
Триггер на дисконнект. когда должен сработать?
|
|||
---|---|---|---|
#18+
WildSeryСобственно, нелогично, что на коннект есть отключающий триггеры параметр, а на дисконнект нет :)Нет такого параметра. Есть другой - он отключает все database триггеры, не только на коннект ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2018, 10:38 |
|
Триггер на дисконнект. когда должен сработать?
|
|||
---|---|---|---|
#18+
hvladМне кажется разумным вызывать триггеры в таких случаях - удаление коннекта через мониторинг как по мне этот вариант спорный. Удаление коннекта через мониторинг может рассматриваться админом как экстренная мера, требующая как можно более быстрого дисконнекта. Кмк тут нужно давать право выбора. В случае шатдауна всё понятно, как минимум админ может уточнять какой именно шатдаун он хочет ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2018, 10:47 |
|
Триггер на дисконнект. когда должен сработать?
|
|||
---|---|---|---|
#18+
Симонов ДенисУдаление коннекта через мониторинг может рассматриваться админом как экстренная мера, требующая как можно более быстрого дисконнекта. Кмк тут нужно давать право выбора.Каким образом ? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2018, 10:48 |
|
Триггер на дисконнект. когда должен сработать?
|
|||
---|---|---|---|
#18+
hvlad, может быть указывать через контекстные переменные или через изменение окружения оператором типа SET MON_CONN_MODE <mode> И сделать так чтобы этот оператор срабатывал вне транзакции как это сделано например для управления тайм-аутами P.S. Нормальное имя переменной не приходит в голову ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2018, 10:52 |
|
Триггер на дисконнект. когда должен сработать?
|
|||
---|---|---|---|
#18+
hvladWildSeryСобственно, нелогично, что на коннект есть отключающий триггеры параметр, а на дисконнект нет :)Нет такого параметра. Есть другой - он отключает все database триггеры, не только на коннектЯ потому смайлик и поставил. На самом деле, "экстренное выключение" выполняется специально написанным батником, который сперва выполняет короткие "завершающие" SQL-операции (и здесь же можно написать выключение триггера на дисконнект, если бы он был), а уже затем тушит базу. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2018, 11:02 |
|
Триггер на дисконнект. когда должен сработать?
|
|||
---|---|---|---|
#18+
WildSery, я бы хотел что бы как можно больше операций было доступно через SQL. Например, было бы неплохо чтобы через SQL можно было делать и shutdown, только если он не full. Сделал shutdown, накатил изменения, вернул БД в онлайн и всё это в одном SQL скрипте без прыжков между различными инструментами. Я уже предлагал такое http://www.sql.ru/forum/1103091/shutdown-online-iz-skripta ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2018, 11:11 |
|
Триггер на дисконнект. когда должен сработать?
|
|||
---|---|---|---|
#18+
hvladДавайте обсудим. Есть несколько причин для дисконнекта: - по просьбе приложения (т.е. штатный дисконнект) - обрыв связи с приожением - удаление коннекта через мониторинг - шатдаун БД, вызванный сисадмином - шатдаун сервера в целомпервые 2 реализованы, вопросов к ним у меня нет. 3. если бы можно было навесить свои триггеры на системные таблицы и они спокойно(штатно) переживали бы бэкап-рестор, то вопроса бы не возникло. 4. доп параметр шатдауна тоже снимет все вопросы. 5. у меня нет тут явного решения. Как вариант разделить триггеры на бефор и афтер коннект/дисконнект и исполнять какие-нибудь одни. И пусть программист решает, что важнее быстро погаснуть или исполнить весь сценарий дисконнекта. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2018, 12:40 |
|
Триггер на дисконнект. когда должен сработать?
|
|||
---|---|---|---|
#18+
Ivan_Pisarevsky, 3. Нет смысла говорить о несуществующем :) 4. Да, у меня тоже была такая идея. 5. Тут типичный конфликт интересов программиста и администратора: первый хочет меньше кодировать, второй хочет чтобы всё "летало и не падало" ("само", есс-но). Шатдаун сервера в эктренной ситуации за минимально возможное время - это всё же ответственность не программиста, так что я тебя тут не подержу - не должен программист решать что важнее в данном случае. И - да - это означает, что он (программист) должен уметь обрабатывать такие ситуации (есс-но, когда всё снова поднимется в штатном режиме) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2018, 12:47 |
|
Триггер на дисконнект. когда должен сработать?
|
|||
---|---|---|---|
#18+
У шатдауна же был параметр "время" (или только в режиме force - не помню). Недостаточно просто дать триггерам выполниться за это время, а кто не успел - их проблемы? Потому что если вводить доп.параметр, то могут появиться проблемы с "не-шатдауном" из-за выполняющихся триггеров. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2018, 12:52 |
|
Триггер на дисконнект. когда должен сработать?
|
|||
---|---|---|---|
#18+
Гаджимурадов Рустам, это время ожидания добровольного дисконнекта других. Если они не успеют -шатдаун отменяется. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2018, 13:21 |
|
Триггер на дисконнект. когда должен сработать?
|
|||
---|---|---|---|
#18+
hvlad3. Нет смысла говорить о несуществующем :)Как фичреквест для четверки? Тем более это идея возникла не у меня, тут в форуме уже были "пионэры", которые делали нечто подобное, правда жаловались, что оно не "тово". Да по идее логично дать триггеру сработать при удалении через монатачмент. Мне лично это доставило минимум проблем, у меня есть гуевая "отключалка", я туда впендюрил еще один запрос с логикой из триггера на дисконнект и вопрос для себя решил. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2018, 13:35 |
|
Триггер на дисконнект. когда должен сработать?
|
|||
---|---|---|---|
#18+
Ivan_PisarevskyДа по идее логично дать триггеру сработать при удалении через монатачмент. не всегда. Как минимум два варианта: считать что ситуация со срубанием через мониторинг нормальная и триггер должен отработать, или это срубание вызвано какой-то экстренной ситуацией и триггер срабатывать не должен. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2018, 14:05 |
|
Триггер на дисконнект. когда должен сработать?
|
|||
---|---|---|---|
#18+
Ivan_Pisarevsky, что-то я тебя потерял, ты о чём сейчас ? О триггерах на таблицы мониторинга ? Их нет и не будет. Как нет и самых событий insert\update\delete для этих псевдо-таблиц. Или всё же о триггере на дисконнект ? Это как раз обсуждается. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2018, 14:07 |
|
Триггер на дисконнект. когда должен сработать?
|
|||
---|---|---|---|
#18+
Симонов ДенисКак минимум два варианта: считать что ситуация со срубанием через мониторинг нормальная и триггер должен отработать, или это срубание вызвано какой-то экстренной ситуацией и триггер срабатывать не должен. Если к базе ещё удаётся послать запрос на удаление из таблицы, то ситуация совсем не экстренная. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2018, 14:09 |
|
|
start [/forum/topic.php?fid=40&fpage=34&tid=1561153]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
44ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
others: | 11ms |
total: | 150ms |
0 / 0 |