|
MON$ATTACHMENTS не видит новых подключений
|
|||
---|---|---|---|
#18+
Запускаю своё приложение и там каждые три секунды переоткрывается запрос: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Вижу 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. Что я делаю не так? Может, какие-то особые параметры транзакций нужны? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2018, 12:04 |
|
MON$ATTACHMENTS не видит новых подключений
|
|||
---|---|---|---|
#18+
Если перезапустить полностью моё приложение или IBExpert, то в MON$ATTACHMENTS есть все активные подключения, а неактивных уже нет, т.е. есть все те, которые сделаны до запуска приложения или IBExpert. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2018, 12:07 |
|
MON$ATTACHMENTS не видит новых подключений
|
|||
---|---|---|---|
#18+
X11, MON$ всегда работают в snapshot даже если стоит режим изолированности READ COMMITED. Чтобы увидеть новые подключения, надо стартовать новую транзакцию, а не просто перевыполнять запрос в текущей транзакции. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2018, 12:08 |
|
MON$ATTACHMENTS не видит новых подключений
|
|||
---|---|---|---|
#18+
X11Если перезапустить полностью моё приложение или IBExpert Перезапустить Эксперта догадался, а нажать в том же Эксперте в том самом окошке кнопочку Commit - не догадался. Странно.... ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2018, 12:41 |
|
MON$ATTACHMENTS не видит новых подключений
|
|||
---|---|---|---|
#18+
Симонов Дениснадо стартовать новую транзакцию, а не просто перевыполнять запрос в текущей транзакции. ясно, спасибо, хорошо бы это в доках прописать ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2018, 12:42 |
|
MON$ATTACHMENTS не видит новых подключений
|
|||
---|---|---|---|
#18+
X11, там это есть https://www.ibase.ru/files/firebird/langref25rus/index.html#montables Снимок создаётся при первой выборке из любой таблицы мониторинга и сохраняется до конца текущей транзакции, чтобы запросы к множеству таблиц (например, главная-подчинённая) всегда возвращал непротиворечивые данные. Другими словами таблицы мониторинга ведут себя подобно snapshot table stability ("consistency") транзакции, даже если родительская транзакция была запущена с меньшим уровнем изоляции. Для обновления снимка, текущая транзакция должна быть завершена и таблицы мониторинга должны быть запрошены в новом контексте транзакции. ты немного не там искал. Поскольку эта информация относится сразу ко всем MON$ она не дублируется для каждой таблицы. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2018, 12:47 |
|
MON$ATTACHMENTS не видит новых подключений
|
|||
---|---|---|---|
#18+
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. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2018, 12:47 |
|
MON$ATTACHMENTS не видит новых подключений
|
|||
---|---|---|---|
#18+
https://www.ibase.ru/files/firebird/langref25rus/index.html#montables чтобы запросы к множеству таблиц (например, главная-подчинённая) всегда возвращал непротиворечивые данные. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2018, 12:49 |
|
MON$ATTACHMENTS не видит новых подключений
|
|||
---|---|---|---|
#18+
https://www.ibase.ru/files/firebird/langref25rus/index.html#montables даже если родительская транзакция была запущена с меньшим уровнем изоляции. Родительская - подразумевает вложенность транзакций. Есть родительская Т, а у неё есть дочерние Т-ции. И уж во всяком случае САМИ ТАБЛИЦЫ порождением транзакции быть не могут. Лучше IMHO переформулировать Другими словами таблицы мониторинга ведут себя подобно snapshot table stability ("consistency") транзакции, даже если запросы к ним выполняются в транзакции с меньшим уровнем изоляции. Или более правильно, но и более занудно Другими словами запросы к таблицам мониторинга ведут себя подобно snapshot table stability ("consistency") транзакции, даже когда они выполняются в транзакции с меньшим уровнем изоляции. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2018, 12:52 |
|
MON$ATTACHMENTS не видит новых подключений
|
|||
---|---|---|---|
#18+
Симонов Денистам это есть в то же время, информация в самом деле теряется в стене текста.... Хорошо бы вставить врезку "Предупреждение" с краткой отсылкой к ней. Даже может быть после каждой таблицы отдельно (да, человек может перейти сразу к описанию конкретной таблицы) Что-нибудь вроде Предупреждение. Напоминаем, что данные в таблицах не обновляются до завершения транзакции. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2018, 12:58 |
|
MON$ATTACHMENTS не видит новых подключений
|
|||
---|---|---|---|
#18+
Arioch, ага для каждой MON$ таблицы. Издеваешься? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2018, 13:08 |
|
MON$ATTACHMENTS не видит новых подключений
|
|||
---|---|---|---|
#18+
Теперь проблема с FibPlus. Не знаю, какие правильно прописать параметры. В параметры (TRParams) транзакций пишу: read snapshot wait При попытке открыть получаю: Format 'Константа TPB (%d) неизвестна.' invalid or incompatible with argument. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2018, 13:10 |
|
MON$ATTACHMENTS не видит новых подключений
|
|||
---|---|---|---|
#18+
X11snapshot Нет такого параметра. Есть read_committed, concurrency и consistency. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2018, 13:13 |
|
MON$ATTACHMENTS не видит новых подключений
|
|||
---|---|---|---|
#18+
X11, offtop. Это ты в берлине тёмную тему нашёл? Или она есть в более ранних студиях? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2018, 13:17 |
|
MON$ATTACHMENTS не видит новых подключений
|
|||
---|---|---|---|
#18+
так правильно? read concurrency wait ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2018, 13:19 |
|
MON$ATTACHMENTS не видит новых подключений
|
|||
---|---|---|---|
#18+
Симонов ДенисЭто ты в берлине тёмную тему нашёл? Это в Токио, но в Берлине тоже вроде есть. До это была XE3, но я не помню, была там тёмная или нет. В любой версии Delphi можно же самому всё настраивать, но задолбёшься ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2018, 13:22 |
|
MON$ATTACHMENTS не видит новых подключений
|
|||
---|---|---|---|
#18+
X11Запускаю своё приложение и там каждые три секунды переоткрывается запрос:Road to hell. X11но не может же быть KEEPALIVE_TIME 30 минут?может, если выставить. что мешает в той же статье посмотреть что там у тебя стоит, статься годная и вполне понятная. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2018, 13:27 |
|
MON$ATTACHMENTS не видит новых подключений
|
|||
---|---|---|---|
#18+
Я правильно понимаю, что если транзакция только для чтения read, то без разницы, будет Rollback при переоткрытии датасета или Commit? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2018, 13:29 |
|
MON$ATTACHMENTS не видит новых подключений
|
|||
---|---|---|---|
#18+
Ivan_PisarevskyRoad to hell. Почему? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2018, 13:29 |
|
MON$ATTACHMENTS не видит новых подключений
|
|||
---|---|---|---|
#18+
Ivan_PisarevskyX11но не может же быть KEEPALIVE_TIME 30 минут?может, если выставить. что мешает в той же статье посмотреть что там у тебя стоит, статься годная и вполне понятная. я понимаю, что может, но в данном случае это уже придирки ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2018, 13:30 |
|
MON$ATTACHMENTS не видит новых подключений
|
|||
---|---|---|---|
#18+
X11, если оно так работает весь жизненный цикл приложения, то да Road to hell. Если в отдельном окошке, для админа и на короткое время, то вполне нормально. Просто MON$ создаёт приличную нагрузку на высоко нагруженный сервер, особенно в 2.5. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2018, 13:37 |
|
MON$ATTACHMENTS не видит новых подключений
|
|||
---|---|---|---|
#18+
Нет, сервер абсолютно не нагружен. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2018, 13:45 |
|
MON$ATTACHMENTS не видит новых подключений
|
|||
---|---|---|---|
#18+
X11Нет, сервер абсолютно не нагружен.если каждый 3 секунды дергать мон таблицы, то будет, причем при увеличении нагрузки со стороны юзеров не исключено лавинообразное нарастание нагрузки. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2018, 13:47 |
|
MON$ATTACHMENTS не видит новых подключений
|
|||
---|---|---|---|
#18+
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$ нет никакого смысла. Это типа попытка заменить трассировку, что-ли? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2018, 13:55 |
|
|
start [/forum/topic.php?fid=40&fpage=29&tid=1560952]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
63ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
others: | 10ms |
total: | 174ms |
0 / 0 |