|
RDB$GET_CONTEXT() к другому пользователю ?
|
|||
---|---|---|---|
#18+
Симонов ДенисfraksИ еще один момент для логов коннектов - после рестора CONNECTION_ID или как его там... начинается с нуля, заново, это значение нельзя использовать первичным ключом в логе коннектов. понятное дело. В этой таблице ПК должен быть свой. А CONNECTION_ID использовать только для связи MON$ATTACHMENTS и собственной таблицы. Поскольку CONNECTION_ID не уникален и может присоединить и старые записи, то в условии соединения добавляем уточнение по времени коннекта. См. 19053329 . Вероятность коллизий при этом падает практически до нуля. Всякие экзотические случае с подкручиванием времени на сервере конечно не рассматриваются. Ну у меня примерно так и сделано. Триггер на коннект записывает в лог. Триггером на дисконнект записывает время дисконнекта в ту же самую запись где коннект, определяет ее как последнюю запись с таким же connection_id. При просмотре лога к нему приджойниваются текущие коннекты из мониторинга и таким образом видно где активные ныне коннекты а где вследствие тех или иных причин дисконнект не записался. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2016, 11:44 |
|
RDB$GET_CONTEXT() к другому пользователю ?
|
|||
---|---|---|---|
#18+
Симонов ДенисArioch, Код: sql 1. 2. 3. 4. 5. 6.
и все активные соединения со специфическими атрибутами как на ладони. ну ты практически дословно повторил мой пост Ariochибо сверять табличку с MON$ATTACHENTS. Но последнее - ничуть не хуже чем просто обращение к MON$CONTEXT_VARIABLES. Понимаеш, да? ты только что меня ругал за обращение к мониторинговым таблицам - и тепер сам же предлагаешь к ним обращаться. Ну как бы или трусы - или крестик. Избавиться от обращения к мониторингу вообще можно только отдельной таблице и ON DISCONNECT триггером, как я и псал с самого начала, чем тебя удивил Симонов ДенисПро самоочищающиеся таблицы не понял. Нафига? Чем GTT не устраивают? А если же всё же выбрать обращаться к мониторинговым таблицам, то нафига мне костыли с MON$ATTACHMENTS если я нужные мне данные напрямую возьму из MON$CONTEXT_VARIABLES ? Ну разве что проще в DBGrid запихнтуть без разворота переменных в "шаxматку" ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2016, 13:45 |
|
RDB$GET_CONTEXT() к другому пользователю ?
|
|||
---|---|---|---|
#18+
ТаблоидСообщений типа 'can not transliterate блаблабла' не видно. А uх и не может быть, NONE и в Aфрике NONE Таблоиддля линуха пробовал с -ch utf8 и -ch koi8r -- результат одинаковый в смысле он под KOI8-кодировкой соединения умудрился греческие буквы вставить??? O_O ...а в целом если повторят ьв точности то под линуксом надо тоже аналог chcp делать. Сейчас уже точно не помню как, возможно хватит Код: plaintext
Впрочем, не важно. Ожидаемый результат получен: NONE - это просто байты под видом строки. Для хранения вне-ASCII текстов надо или гарантировать идентичность клиентов/подключения, или MIME Encapsulation наворачивать. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2016, 13:51 |
|
RDB$GET_CONTEXT() к другому пользователю ?
|
|||
---|---|---|---|
#18+
Arioch, во первых я не знал для чего ты это хочешь. Для целей посмотреть кто в базе и грохнуть негодяя мониторинговые таблицы самое то. В моём решении нет бессмысленных контекстных переменных. Таблицу эту чистить совсем не обязательно. Ну отвалился коннект да и фиг с ним. Всё равно в этом запросе мёртвые коннекты выведены не будут. Зато потом можно посмотреть кто и когда подключался. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2016, 13:55 |
|
RDB$GET_CONTEXT() к другому пользователю ?
|
|||
---|---|---|---|
#18+
Таблоидfraksналичие триггера на дисконнект не гарантирует что будет корректно зафиксирован обрыв. Например упал сервер.... или пришёл ДБА и ввёл: delete from mon$attachments - тоже ничего не запишется Да действительно, забыл про это. Тогда тем более, так ещё менее надежно, чем переменными. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2016, 13:59 |
|
RDB$GET_CONTEXT() к другому пользователю ?
|
|||
---|---|---|---|
#18+
Ivan_PisarevskyЕсли нечто требует длительного хранения У меня - не требует, мне может понадобиться информация о ТЕКУЩИХ подключениия, "кто здесь?" и "зачем ты здесь?", потому и смотрю на контeкстные переменные USER_SESSION, исчезающие вместе с самими соединениями Информация о подключениях и действиях, которые были вчера, хранится в отдельном логе "от создания мираБД" ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2016, 14:02 |
|
|
start [/forum/topic.php?fid=40&msg=39215647&tid=1562228]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
32ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
others: | 282ms |
total: | 398ms |
0 / 0 |