Страница 1 из 1
Внесение изменений в хранимые процедуры
Добавлено: 21 мар 2005, 08:29
SAMZ
Уважаемые коллеги!
Мы столкгулись с одной проблемой при переходе от FireBird 1.0 к FireBird 1.5.2 (архитектура CS). Сам по себе переход прошел нормально, все места (интесивность до 80 одновременных соединений) работают и все довольны. Но, если на старом сервере не было проблем с внесением изменений в хранимые процедуры, то теперь любая попытка что-либо изменить в тексте ХП при Commit сопровождается исключением и не исполняется. Подскажите - это теперь штатный режим? Можно ли его обойти. Нам удается вносить необходимые изменения только в локальном режиме. Работаем мы (редактируем ХП) с IBExpert.
Добавлено: 21 мар 2005, 09:45
kdv
исключением-то каким?
Re: Внесение изменений в хранимые процедуры
Добавлено: 21 мар 2005, 10:02
SAMZ
Исключение вполне традиционное для Commit ситуаций-
lock conflict on no wait transaction
unsucceful update object <имя изменяемой ХП> is in use
Re: Внесение изменений в хранимые процедуры
Добавлено: 21 мар 2005, 10:51
hvlad
SAMZ писал(а):Мы столкгулись с одной проблемой при переходе от FireBird 1.0 к FireBird 1.5.2 (архитектура CS)...
теперь любая попытка что-либо изменить в тексте ХП при Commit сопровождается исключением и не исполняется
Потому, что вы перешли с SS на CS
Re: Внесение изменений в хранимые процедуры
Добавлено: 21 мар 2005, 11:11
SAMZ
Правильно ли я Вас понял, что для CS такое поведение нормальное и, если мы хотим работать по старому, то надо перейти на SS. Другого решения просто нет.
Добавлено: 21 мар 2005, 12:22
Merlin
Это Эксперту спасибо скажите. В isql procedure in use не бывает. Говорят что в Эксперте надо извращаться через скриптер, вроде проходит. Только это вообще-то не очень хорошо, ибо, как известно, уже установленные соединения продолжают работать со старой версией.
Re: Внесение изменений в хранимые процедуры
Добавлено: 21 мар 2005, 13:43
hvlad
SAMZ писал(а):Правильно ли я Вас понял, что для CS такое поведение нормальное и, если мы хотим работать по старому, то надо перейти на SS. Другого решения просто нет.
В документации четко указано, что изменения метаданных нужно производить в монопольном режиме. В SS общий кеш метаданных, в CS - раздельный (у каждого процесса свой), поэтому CS ведёт себя несколько по-другому.
Советую перечитать раздел 'altering procedures in use' из документации к IB
Насчёт редактрования в IBE - это действительно могут быть побочные эффекты. Попробуйте воспользоваться кнопкой 'Reconnect' и повторить сохранение процедуры
Re: Внесение изменений в хранимые процедуры
Добавлено: 21 мар 2005, 14:15
Merlin
hvlad писал(а):
Насчёт редактрования в IBE - это действительно могут быть побочные эффекты. Попробуйте воспользоваться кнопкой 'Reconnect' и повторить сохранение процедуры
Не, не помогает. Я обычно поступаю так: если я какую процедуру редактирую в Эксперте, то, получивши procedure in use, тут же, ничего в нём даже не закрывая, copy-paste в свой любимый WISQL (диалект-то первый, так что можно) и готово. Эксперт постоянно сам себе кое на что наступает уверенно.
Добавлено: 21 мар 2005, 14:57
hvlad
Merlin
Ну, тогда не скажу - я в основном с SS работаю и procedure is in use практически не вижу
