powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / MON$ATTACHMENTS не видит новых подключений
25 сообщений из 55, страница 1 из 3
MON$ATTACHMENTS не видит новых подключений
    #39718671
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Запускаю своё приложение и там каждые три секунды переоткрывается запрос:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
SELECT M.MON$ATTACHMENT_ID,
       M.MON$ATTACHMENT_NAME,
       M.MON$USER,
       M.MON$REMOTE_ADDRESS,
       M.MON$REMOTE_HOST,
       M.MON$REMOTE_PID,
       M.MON$TIMESTAMP,
       M.MON$REMOTE_PROCESS,
       M.MON$CLIENT_VERSION,
       M.MON$REMOTE_OS_USER,
       M.MON$STATE
FROM
  MON$ATTACHMENTS M



Вижу 4 подключения: себя, Cache Writer, Garbage Collector и IBExpert.exe.
Запускаю вторую копию приложения, но нового подключения нет, оно не появляется.

Проверил то же самое и в IBExpert. Закрыл оба приложения и запустил на выполнение Database Monitor. Запустил своё приложение, вторую его копию, но Database Monitor не видит новых подключений.

В http://www.ibase.ru/files/firebird/langref25rus/index.html#montables-attachments ничего по теме не нашёл.

Кстати, после закрытия приложения, неактивное подключение тоже должно исчезнуть из MON$ATTACHMENTS, но не исчезает очень продолжительное время. Специально оставил открытым Database Monitor минут на 30. Статью читал http://www.ibase.ru/keepalive/, но не может же быть KEEPALIVE_TIME 30 минут?

Firebird 3, Win 10.

Что я делаю не так? Может, какие-то особые параметры транзакций нужны?
...
Рейтинг: 0 / 0
MON$ATTACHMENTS не видит новых подключений
    #39718678
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если перезапустить полностью моё приложение или IBExpert, то в MON$ATTACHMENTS есть все активные подключения, а неактивных уже нет, т.е. есть все те, которые сделаны до запуска приложения или IBExpert.
...
Рейтинг: 0 / 0
MON$ATTACHMENTS не видит новых подключений
    #39718679
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11,

MON$ всегда работают в snapshot даже если стоит режим изолированности READ COMMITED. Чтобы увидеть новые подключения, надо стартовать новую транзакцию, а не просто перевыполнять запрос в текущей транзакции.
...
Рейтинг: 0 / 0
MON$ATTACHMENTS не видит новых подключений
    #39718713
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11Если перезапустить полностью моё приложение или IBExpert

Перезапустить Эксперта догадался, а нажать в том же Эксперте в том самом окошке кнопочку Commit - не догадался. Странно....
...
Рейтинг: 0 / 0
MON$ATTACHMENTS не видит новых подключений
    #39718716
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Дениснадо стартовать новую транзакцию, а не просто перевыполнять запрос в текущей транзакции.

ясно, спасибо, хорошо бы это в доках прописать
...
Рейтинг: 0 / 0
MON$ATTACHMENTS не видит новых подключений
    #39718720
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11,

там это есть

https://www.ibase.ru/files/firebird/langref25rus/index.html#montables Снимок создаётся при первой выборке из любой таблицы мониторинга и сохраняется до конца текущей транзакции, чтобы запросы к множеству таблиц (например, главная-подчинённая) всегда возвращал непротиворечивые данные.

Другими словами таблицы мониторинга ведут себя подобно snapshot table stability ("consistency") транзакции, даже если родительская транзакция была запущена с меньшим уровнем изоляции.

Для обновления снимка, текущая транзакция должна быть завершена и таблицы мониторинга должны быть запрошены в новом контексте транзакции.

ты немного не там искал. Поскольку эта информация относится сразу ко всем MON$ она не дублируется для каждой таблицы.
...
Рейтинг: 0 / 0
MON$ATTACHMENTS не видит новых подключений
    #39718721
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11,

ну, в принципе оно задокументировано, но запрятано, да

"c:\Program Files\Firebird\Firebird_2_1\doc\README.monitoring_tables.txt" The engine offers a set of so called "virtual" tables that provides the user
with a snapshot of the current activity within the given database. The word
"virtual" means that the table data doesn't exist until explicitly asked for.

The key term of the monitoring feature is an activity snapshot. It represents
the current state of the database, consisting of various information about
the database itself, active attachments and users, transactions, prepared and
running statements, etc. A snapshot is created the first time any of the
monitoring tables is being selected from in the given transaction and it's
preserved until the transaction ends, so multiple queries (e.g. master-detail
ones) will always return the consistent view of the data. In other words, the
monitoring tables always behave like a snapshot (aka consistency) transaction,
even if the host transaction has been started with another isolation level.
...
Рейтинг: 0 / 0
MON$ATTACHMENTS не видит новых подключений
    #39718724
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
https://www.ibase.ru/files/firebird/langref25rus/index.html#montables чтобы запросы к множеству таблиц (например, главная-подчинённая) всегда возвращал непротиворечивые данные.
...
Рейтинг: 0 / 0
MON$ATTACHMENTS не видит новых подключений
    #39718726
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
https://www.ibase.ru/files/firebird/langref25rus/index.html#montables даже если родительская транзакция была запущена с меньшим уровнем изоляции.

Родительская - подразумевает вложенность транзакций. Есть родительская Т, а у неё есть дочерние Т-ции.
И уж во всяком случае САМИ ТАБЛИЦЫ порождением транзакции быть не могут.

Лучше IMHO переформулировать

Другими словами таблицы мониторинга ведут себя подобно snapshot table stability ("consistency") транзакции, даже если запросы к ним выполняются в транзакции с меньшим уровнем изоляции.

Или более правильно, но и более занудно

Другими словами запросы к таблицам мониторинга ведут себя подобно snapshot table stability ("consistency") транзакции, даже когда они выполняются в транзакции с меньшим уровнем изоляции.
...
Рейтинг: 0 / 0
MON$ATTACHMENTS не видит новых подключений
    #39718733
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денистам это есть

в то же время, информация в самом деле теряется в стене текста....

Хорошо бы вставить врезку "Предупреждение" с краткой отсылкой к ней.

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

Что-нибудь вроде

Предупреждение.
Напоминаем, что данные в таблицах не обновляются до завершения транзакции.
...
Рейтинг: 0 / 0
MON$ATTACHMENTS не видит новых подключений
    #39718738
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arioch,

ага для каждой MON$ таблицы. Издеваешься?
...
Рейтинг: 0 / 0
MON$ATTACHMENTS не видит новых подключений
    #39718739
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Теперь проблема с FibPlus.
Не знаю, какие правильно прописать параметры.

В параметры (TRParams) транзакций пишу:
read
snapshot
wait

При попытке открыть получаю:
Format 'Константа TPB (%d) неизвестна.' invalid or incompatible with argument.

...
Рейтинг: 0 / 0
MON$ATTACHMENTS не видит новых подключений
    #39718741
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11snapshot

Нет такого параметра. Есть read_committed, concurrency и consistency.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
MON$ATTACHMENTS не видит новых подключений
    #39718742
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11,

offtop. Это ты в берлине тёмную тему нашёл? Или она есть в более ранних студиях?
...
Рейтинг: 0 / 0
MON$ATTACHMENTS не видит новых подключений
    #39718744
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так правильно?
read
concurrency
wait
...
Рейтинг: 0 / 0
MON$ATTACHMENTS не видит новых подключений
    #39718750
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисЭто ты в берлине тёмную тему нашёл?
Это в Токио, но в Берлине тоже вроде есть.
До это была XE3, но я не помню, была там тёмная или нет.
В любой версии Delphi можно же самому всё настраивать, но задолбёшься
...
Рейтинг: 0 / 0
MON$ATTACHMENTS не видит новых подключений
    #39718758
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11Запускаю своё приложение и там каждые три секунды переоткрывается запрос:Road to hell.
X11но не может же быть KEEPALIVE_TIME 30 минут?может, если выставить. что мешает в той же статье посмотреть что там у тебя стоит, статься годная и вполне понятная.
...
Рейтинг: 0 / 0
MON$ATTACHMENTS не видит новых подключений
    #39718759
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я правильно понимаю, что если транзакция только для чтения read, то без разницы, будет Rollback при переоткрытии датасета или Commit?
...
Рейтинг: 0 / 0
MON$ATTACHMENTS не видит новых подключений
    #39718760
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan_PisarevskyRoad to hell.

Почему?
...
Рейтинг: 0 / 0
MON$ATTACHMENTS не видит новых подключений
    #39718761
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan_PisarevskyX11но не может же быть KEEPALIVE_TIME 30 минут?может, если выставить. что мешает в той же статье посмотреть что там у тебя стоит, статься годная и вполне понятная.

я понимаю, что может, но в данном случае это уже придирки
...
Рейтинг: 0 / 0
MON$ATTACHMENTS не видит новых подключений
    #39718767
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11,

если оно так работает весь жизненный цикл приложения, то да Road to hell. Если в отдельном окошке, для админа и на короткое время, то вполне нормально. Просто MON$ создаёт приличную нагрузку на высоко нагруженный сервер, особенно в 2.5.
...
Рейтинг: 0 / 0
MON$ATTACHMENTS не видит новых подключений
    #39718772
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет, сервер абсолютно не нагружен.
...
Рейтинг: 0 / 0
MON$ATTACHMENTS не видит новых подключений
    #39718773
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11Нет, сервер абсолютно не нагружен.если каждый 3 секунды дергать мон таблицы, то будет, причем при увеличении нагрузки со стороны юзеров не исключено лавинообразное нарастание нагрузки.
...
Рейтинг: 0 / 0
MON$ATTACHMENTS не видит новых подключений
    #39718779
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11так правильно?
read
concurrency
wait
НЕТ!

Для вычитки mon$ правильно
read
read_committed
rec_version
nowait

Объяснили ведь уже, что содержимое mon$ при первом обращении в транзакции вычитывается для всех mon$ и дальше в транзакции не меняется. Поэтому изолированность транзакции пофиг. А раз пофиг, то она должна быть read read_committed rec_version.
Как не влияющая на версионность. Read concurrency будет версии удерживать, если застрянет. И wait тут вообще нафиг не нужен.

X11Ivan_PisarevskyRoad to hell.
Почему?
потому что нельзя так часто тыркать mon$. Это снимок со всех коннектов, транзакций, запросов и областей памяти.
В системах со 100 и более пользователями, в зависимости от загрузки, снимок mon может делаться более нескольких минут!
Кроме того, так часто смотреть mon$ нет никакого смысла. Это типа попытка заменить трассировку, что-ли?
...
Рейтинг: 0 / 0
MON$ATTACHMENTS не видит новых подключений
    #39718782
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan_Pisarevsky,

ну в трёшке MON$ гораздо легче, но всё равно оставлять приложение дёргающее MON$ каждые три секунды на сутки не стоит.
...
Рейтинг: 0 / 0
25 сообщений из 55, страница 1 из 3
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / MON$ATTACHMENTS не видит новых подключений
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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