|
Кто блокирует объект или Object ... in use
|
|||
---|---|---|---|
#18+
Firebird 2.5 Classic, запущен на linux. К сожалению иногда возникают ситуации когда надо внести изменения в боевую базу. Например исправить процедуру. И велика вероятность получить сообщение об ошибке, что изменяемая процедура уже используется и ее нельзя изменить. Я ведь правильно понимаю, что нет никакой возможности узнать id подключения, которое "держит" изменяемую процедуру? PS: не пинайте, сегодня и так тяжело :) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2015, 09:40 |
|
Кто блокирует объект или Object ... in use
|
|||
---|---|---|---|
#18+
imkot, дело в том что держать её может вовсе не один клиент ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2015, 09:41 |
|
Кто блокирует объект или Object ... in use
|
|||
---|---|---|---|
#18+
imkotНапример исправить процедуру. И велика вероятность получить сообщение об ошибке, что изменяемая процедура уже используется и ее нельзя изменить.С Wait транзакцией сообщения об ошибке не будет, но надо понимать, что кэширование метаданных может сыграть очень "веселую" шутку при этом. imkotнадо внести изменения в боевую базу.Так что с боевой базой рекомендуется таки метаданные менять в монопольном режиме. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2015, 09:54 |
|
Кто блокирует объект или Object ... in use
|
|||
---|---|---|---|
#18+
imkotК сожалению иногда возникают ситуации когда надо внести изменения в боевую базу. авторК сожалению, иногда возникают ситуации, когда необходимо заменить масло на работающем двигателе. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2015, 10:00 |
|
Кто блокирует объект или Object ... in use
|
|||
---|---|---|---|
#18+
imkotИ велика вероятность получить сообщение об ошибке, что изменяемая процедура уже используется и ее нельзя изменить. Процедура может быть и не используется (ни в активных запросах, ни в препарированных), а просто держится кэшем. Если бы кто-нибудь уже научил FB отпускать это ненужное держание... :) А пока что бытует точка зрения что нефиг править метаданные в онлайне. Вот как разработчики реализуют отпускание, так сразу забытует другая точка зрения, что это можно, нужно, и вообще очень круто, и что без этого "жизнь - уже не жизнь" :) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2015, 10:37 |
|
Кто блокирует объект или Object ... in use
|
|||
---|---|---|---|
#18+
-Процедура может быть и не используется (ни в активных запросах, ни в препарированных), а просто держится кэшем. Если бы кто-нибудь уже научил FB отпускать это ненужное держание... :) на каком заборе это прочитано? Может и доказательства есть? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2015, 10:58 |
|
Кто блокирует объект или Object ... in use
|
|||
---|---|---|---|
#18+
dimitr, а это практически невозможно ни доказать ни опровергнуть, потому как средств никаких нету. Разве что косвенно Код: sql 1. 2. 3.
Вот была бы табличка мониторинга в которой отражалось кто у нас в кеше метаданных и задействовано ли в данный момент... ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2015, 11:35 |
|
Кто блокирует объект или Object ... in use
|
|||
---|---|---|---|
#18+
Симонов Денисэто практически невозможно ни доказать ни опровергнуть во-первых, если нельзя - то и нефиг высказывать неправду. Во-вторых, доказать как раз несложно, достаточно знать что ХП никогда не выгружаются из кеша до дисконнекта. И никого они при этом не блокируют.[/quot] ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2015, 11:48 |
|
Кто блокирует объект или Object ... in use
|
|||
---|---|---|---|
#18+
dimitr-Процедура может быть и не используется (ни в активных запросах, ни в препарированных), а просто держится кэшем. Если бы кто-нибудь уже научил FB отпускать это ненужное держание... :) на каком заборе это прочитано? Может и доказательства есть? Не помню откуда такое мнение. Но проверил на 2.5.4 classic. Получил вот это. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2015, 11:52 |
|
Кто блокирует объект или Object ... in use
|
|||
---|---|---|---|
#18+
Пардон. Великовата картинка... ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2015, 11:54 |
|
Кто блокирует объект или Object ... in use
|
|||
---|---|---|---|
#18+
-dimitrпропущено... на каком заборе это прочитано? Может и доказательства есть? Не помню откуда такое мнение. Но проверил на 2.5.4 classic. Получил вот это. А на SuperServer всё хорошо, даже без коммита в первом окне. Причём изменения в процедуре, сделанные во втором коннекте, сразу видны и в первом, причём в той же транзакции. И вот это очень здорово :) Хотя конечно тестами нужно обложить всё это чтобы удостовериться. Может мне просто повезло что ничего не поломалось. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2015, 12:02 |
|
Кто блокирует объект или Object ... in use
|
|||
---|---|---|---|
#18+
dimitr, то что не выгружается никто и не спорит. А вот в использовании ли объект не определить не так легко. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2015, 12:06 |
|
Кто блокирует объект или Object ... in use
|
|||
---|---|---|---|
#18+
-А на SuperServer всё хорошо чтобы и на классике было хорошо, надо DDL выполнять в WAIT-транзакции ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2015, 12:15 |
|
Кто блокирует объект или Object ... in use
|
|||
---|---|---|---|
#18+
dimitr-А на SuperServer всё хорошо чтобы и на классике было хорошо, надо DDL выполнять в WAIT-транзакции Читая доку про транзакции, и про то чем отличаются WAIT и NOWAIT, немного не понятно почему нужно DDL выполнять в WAIT-транзакции. Это специальный кейс такой для DDL и classic-сервера? Если да, то имхо этому место в документации. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2015, 12:29 |
|
Кто блокирует объект или Object ... in use
|
|||
---|---|---|---|
#18+
в документации должно быть, что DDL под нагрузкой лучше вообще не делать ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2015, 12:32 |
|
Кто блокирует объект или Object ... in use
|
|||
---|---|---|---|
#18+
а шо это за дерзкий анонимус? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2015, 12:39 |
|
Кто блокирует объект или Object ... in use
|
|||
---|---|---|---|
#18+
dimitrв документации должно быть, что DDL под нагрузкой лучше вообще не делать Да понятно, что под нагрузкой делать не стоит. Но все же жизнь иногда требует невозможного. Всем спасибо за ответы, значит я ничего не упустил. Можно закрывать тему. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2015, 12:45 |
|
Кто блокирует объект или Object ... in use
|
|||
---|---|---|---|
#18+
wadmanimkotК сожалению иногда возникают ситуации когда надо внести изменения в боевую базу. авторК сожалению, иногда возникают ситуации, когда необходимо заменить масло на работающем двигателе. Смешно. Только не в тему вопроса. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2015, 12:46 |
|
Кто блокирует объект или Object ... in use
|
|||
---|---|---|---|
#18+
imkotwadmanпропущено... пропущено... Смешно. Только не в тему вопроса. Очень даже в тему. Такие дела на живую не делаются в принципе, что говорит об организации процессов. Точнее об их отсутствии. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2015, 12:49 |
|
Кто блокирует объект или Object ... in use
|
|||
---|---|---|---|
#18+
wadmanimkotпропущено... Смешно. Только не в тему вопроса. Очень даже в тему. Такие дела на живую не делаются в принципе, что говорит об организации процессов. Точнее об их отсутствии. Преклоняюсь перед вами. Честное слово. Всегда хотел работать с идеальной системой, где все разложено по полочкам, строго в соответствии с документацией. Но криворукость и отсутствие образования не позволяют достичь желаемого уровня. Но вопрос я все же задавал не по организации процесса. Вопрос был намного проще: можно ли узнать "кто" блокирует процедуру. Лично ваш ответ, мне никак не помог, ну разве что я знаю теперь человека у которого никогда не бывает форсмажоров. А вот другие ответы подсказали на что обратить внимание и чем мне может грозить "горячая" правка. За критику все равно спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2015, 16:58 |
|
Кто блокирует объект или Object ... in use
|
|||
---|---|---|---|
#18+
imkotВопрос был намного проще: можно ли узнать "кто" блокирует процедуру. Возможно, fb_lock_print может помочь это узнать. По идее там должны светиться все блокировки, в том числе и existence. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2015, 17:02 |
|
Кто блокирует объект или Object ... in use
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Ну ситуация не штатная, решилась своими средствами. За подсказку про fb_lock_print спасибо. Как-то не приходилось пользоваться. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2015, 17:55 |
|
Кто блокирует объект или Object ... in use
|
|||
---|---|---|---|
#18+
-> Читая доку про транзакции, и про то чем отличаются WAIT и NOWAIT, -> немного не понятно почему нужно DDL выполнять в WAIT-транзакции. Не слушай его, не надо никаких WAIT-ов для DDL. -> Если да, то имхо этому место в документации. В документации описано другое - что DDLить рекомендовано при монопольном доступе, а не вперемешку, тогда и полегчает. P.S. Да, и зарегься уже. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2015, 18:36 |
|
Кто блокирует объект или Object ... in use
|
|||
---|---|---|---|
#18+
Гаджимурадов Рустам-> Читая доку про транзакции, и про то чем отличаются WAIT и NOWAIT, -> немного не понятно почему нужно DDL выполнять в WAIT-транзакции. Не слушай его, не надо никаких WAIT-ов для DDL. В конкретно этом случае надо, я проверил. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2015, 18:41 |
|
|
start [/forum/topic.php?fid=40&fpage=76&tid=1562804]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
30ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
others: | 11ms |
total: | 135ms |
0 / 0 |