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

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

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

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

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

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

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



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

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

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

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

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

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


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


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

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

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

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

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

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

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

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

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

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

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

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


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