powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Кто блокирует объект или Object ... in use
25 сообщений из 25, страница 1 из 1
Кто блокирует объект или Object ... in use
    #38973980
Фотография imkot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Firebird 2.5 Classic, запущен на linux.

К сожалению иногда возникают ситуации когда надо внести изменения в боевую базу. Например исправить процедуру.
И велика вероятность получить сообщение об ошибке, что изменяемая процедура уже используется и ее нельзя изменить.

Я ведь правильно понимаю, что нет никакой возможности узнать id подключения, которое "держит" изменяемую процедуру?

PS: не пинайте, сегодня и так тяжело :)
...
Рейтинг: 0 / 0
Кто блокирует объект или Object ... in use
    #38973982
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
imkot,

дело в том что держать её может вовсе не один клиент
...
Рейтинг: 0 / 0
Кто блокирует объект или Object ... in use
    #38973998
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
imkotНапример исправить процедуру.
И велика вероятность получить сообщение об ошибке, что изменяемая процедура уже используется и ее нельзя изменить.С Wait транзакцией сообщения об ошибке не будет, но надо понимать, что кэширование метаданных может сыграть очень "веселую" шутку при этом.
imkotнадо внести изменения в боевую базу.Так что с боевой базой рекомендуется таки метаданные менять в монопольном режиме.
...
Рейтинг: 0 / 0
Кто блокирует объект или Object ... in use
    #38974006
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
imkotК сожалению иногда возникают ситуации когда надо внести изменения в боевую базу.
авторК сожалению, иногда возникают ситуации, когда необходимо заменить масло на работающем двигателе.
...
Рейтинг: 0 / 0
Кто блокирует объект или Object ... in use
    #38974045
-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
-
Гость
imkotИ велика вероятность получить сообщение об ошибке, что изменяемая процедура уже используется и ее нельзя изменить.
Процедура может быть и не используется (ни в активных запросах, ни в препарированных), а просто держится кэшем. Если бы кто-нибудь уже научил FB отпускать это ненужное держание... :)
А пока что бытует точка зрения что нефиг править метаданные в онлайне. Вот как разработчики реализуют отпускание, так сразу забытует другая точка зрения, что это можно, нужно, и вообще очень круто, и что без этого "жизнь - уже не жизнь" :)
...
Рейтинг: 0 / 0
Кто блокирует объект или Object ... in use
    #38974061
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-Процедура может быть и не используется (ни в активных запросах, ни в препарированных), а просто держится кэшем. Если бы кто-нибудь уже научил FB отпускать это ненужное держание... :)
на каком заборе это прочитано? Может и доказательства есть?
...
Рейтинг: 0 / 0
Кто блокирует объект или Object ... in use
    #38974109
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitr,

а это практически невозможно ни доказать ни опровергнуть, потому как средств никаких нету. Разве что косвенно

Код: sql
1.
2.
3.
select *
from mon$statements
where MON$SQL_TEXT CONTAINING 'MY_PROC'



Вот была бы табличка мониторинга в которой отражалось кто у нас в кеше метаданных и задействовано ли в данный момент...
...
Рейтинг: 0 / 0
Кто блокирует объект или Object ... in use
    #38974126
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денисэто практически невозможно ни доказать ни опровергнуть
во-первых, если нельзя - то и нефиг высказывать неправду. Во-вторых, доказать как раз несложно, достаточно знать что ХП никогда не выгружаются из кеша до дисконнекта. И никого они при этом не блокируют.[/quot]
...
Рейтинг: 0 / 0
Кто блокирует объект или Object ... in use
    #38974132
-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
-
Гость
dimitr-Процедура может быть и не используется (ни в активных запросах, ни в препарированных), а просто держится кэшем. Если бы кто-нибудь уже научил FB отпускать это ненужное держание... :)
на каком заборе это прочитано? Может и доказательства есть?
Не помню откуда такое мнение.
Но проверил на 2.5.4 classic. Получил вот это.
...
Рейтинг: 0 / 0
Кто блокирует объект или Object ... in use
    #38974134
-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
-
Гость
Пардон. Великовата картинка...
...
Рейтинг: 0 / 0
Кто блокирует объект или Object ... in use
    #38974152
-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
-
Гость
-dimitrпропущено...

на каком заборе это прочитано? Может и доказательства есть?
Не помню откуда такое мнение.
Но проверил на 2.5.4 classic. Получил вот это.
А на SuperServer всё хорошо, даже без коммита в первом окне. Причём изменения в процедуре, сделанные во втором коннекте, сразу видны и в первом, причём в той же транзакции. И вот это очень здорово :)
Хотя конечно тестами нужно обложить всё это чтобы удостовериться. Может мне просто повезло что ничего не поломалось.
...
Рейтинг: 0 / 0
Кто блокирует объект или Object ... in use
    #38974158
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitr,

то что не выгружается никто и не спорит. А вот в использовании ли объект не определить не так легко.
...
Рейтинг: 0 / 0
Кто блокирует объект или Object ... in use
    #38974167
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-А на SuperServer всё хорошо
чтобы и на классике было хорошо, надо DDL выполнять в WAIT-транзакции
...
Рейтинг: 0 / 0
Кто блокирует объект или Object ... in use
    #38974181
-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
-
Гость
dimitr-А на SuperServer всё хорошо
чтобы и на классике было хорошо, надо DDL выполнять в WAIT-транзакции
Читая доку про транзакции, и про то чем отличаются WAIT и NOWAIT, немного не понятно почему нужно DDL выполнять в WAIT-транзакции. Это специальный кейс такой для DDL и classic-сервера? Если да, то имхо этому место в документации.
...
Рейтинг: 0 / 0
Кто блокирует объект или Object ... in use
    #38974184
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в документации должно быть, что DDL под нагрузкой лучше вообще не делать
...
Рейтинг: 0 / 0
Кто блокирует объект или Object ... in use
    #38974194
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а шо это за дерзкий анонимус?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Кто блокирует объект или Object ... in use
    #38974202
Фотография imkot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrв документации должно быть, что DDL под нагрузкой лучше вообще не делать
Да понятно, что под нагрузкой делать не стоит. Но все же жизнь иногда требует невозможного.

Всем спасибо за ответы, значит я ничего не упустил. Можно закрывать тему.
...
Рейтинг: 0 / 0
Кто блокирует объект или Object ... in use
    #38974205
Фотография imkot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanimkotК сожалению иногда возникают ситуации когда надо внести изменения в боевую базу.
авторК сожалению, иногда возникают ситуации, когда необходимо заменить масло на работающем двигателе.

Смешно. Только не в тему вопроса.
...
Рейтинг: 0 / 0
Кто блокирует объект или Object ... in use
    #38974211
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
imkotwadmanпропущено...

пропущено...


Смешно. Только не в тему вопроса.
Очень даже в тему. Такие дела на живую не делаются в принципе, что говорит об организации процессов.
Точнее об их отсутствии.
...
Рейтинг: 0 / 0
Кто блокирует объект или Object ... in use
    #38974489
Фотография imkot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanimkotпропущено...


Смешно. Только не в тему вопроса.
Очень даже в тему. Такие дела на живую не делаются в принципе, что говорит об организации процессов.
Точнее об их отсутствии.

Преклоняюсь перед вами. Честное слово. Всегда хотел работать с идеальной системой, где все разложено по полочкам, строго в соответствии с документацией. Но криворукость и отсутствие образования не позволяют достичь желаемого уровня.

Но вопрос я все же задавал не по организации процесса. Вопрос был намного проще: можно ли узнать "кто" блокирует процедуру. Лично ваш ответ, мне никак не помог, ну разве что я знаю теперь человека у которого никогда не бывает форсмажоров. А вот другие ответы подсказали на что обратить внимание и чем мне может грозить "горячая" правка.

За критику все равно спасибо.
...
Рейтинг: 0 / 0
Кто блокирует объект или Object ... in use
    #38974493
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
imkotВопрос был намного проще: можно ли узнать "кто" блокирует процедуру.

Возможно, fb_lock_print может помочь это узнать. По идее там должны светиться все
блокировки, в том числе и existence.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Кто блокирует объект или Object ... in use
    #38974555
Фотография imkot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

Ну ситуация не штатная, решилась своими средствами. За подсказку про fb_lock_print спасибо. Как-то не приходилось пользоваться.
...
Рейтинг: 0 / 0
Кто блокирует объект или Object ... in use
    #38974602
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-> Читая доку про транзакции, и про то чем отличаются WAIT и NOWAIT,
-> немного не понятно почему нужно DDL выполнять в WAIT-транзакции.

Не слушай его, не надо никаких WAIT-ов для DDL.

-> Если да, то имхо этому место в документации.

В документации описано другое - что DDLить рекомендовано
при монопольном доступе, а не вперемешку, тогда и полегчает.

P.S. Да, и зарегься уже.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Кто блокирует объект или Object ... in use
    #38974604
-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
-
Гость
Гаджимурадов Рустам-> Читая доку про транзакции, и про то чем отличаются WAIT и NOWAIT,
-> немного не понятно почему нужно DDL выполнять в WAIT-транзакции.

Не слушай его, не надо никаких WAIT-ов для DDL.

В конкретно этом случае надо, я проверил.
...
Рейтинг: 0 / 0
Кто блокирует объект или Object ... in use
    #38974620
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, тогда вперед по граблям, айдам.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
25 сообщений из 25, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Кто блокирует объект или Object ... in use
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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