Внесение изменений в хранимые процедуры

Запросы, планы, оптимизация запросов, ...

Модераторы: kdv, CyberMax

Ответить
SAMZ
Сообщения: 128
Зарегистрирован: 21 мар 2005, 08:17

Внесение изменений в хранимые процедуры

Сообщение SAMZ » 21 мар 2005, 08:29

Уважаемые коллеги!
Мы столкгулись с одной проблемой при переходе от FireBird 1.0 к FireBird 1.5.2 (архитектура CS). Сам по себе переход прошел нормально, все места (интесивность до 80 одновременных соединений) работают и все довольны. Но, если на старом сервере не было проблем с внесением изменений в хранимые процедуры, то теперь любая попытка что-либо изменить в тексте ХП при Commit сопровождается исключением и не исполняется. Подскажите - это теперь штатный режим? Можно ли его обойти. Нам удается вносить необходимые изменения только в локальном режиме. Работаем мы (редактируем ХП) с IBExpert.

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 21 мар 2005, 09:45

исключением-то каким?

SAMZ
Сообщения: 128
Зарегистрирован: 21 мар 2005, 08:17

Re: Внесение изменений в хранимые процедуры

Сообщение SAMZ » 21 мар 2005, 10:02

Исключение вполне традиционное для Commit ситуаций-
lock conflict on no wait transaction
unsucceful update object <имя изменяемой ХП> is in use

hvlad
Разработчик Firebird
Сообщения: 1244
Зарегистрирован: 21 мар 2005, 10:48

Re: Внесение изменений в хранимые процедуры

Сообщение hvlad » 21 мар 2005, 10:51

SAMZ писал(а):Мы столкгулись с одной проблемой при переходе от FireBird 1.0 к FireBird 1.5.2 (архитектура CS)...
теперь любая попытка что-либо изменить в тексте ХП при Commit сопровождается исключением и не исполняется
Потому, что вы перешли с SS на CS

SAMZ
Сообщения: 128
Зарегистрирован: 21 мар 2005, 08:17

Re: Внесение изменений в хранимые процедуры

Сообщение SAMZ » 21 мар 2005, 11:11

Правильно ли я Вас понял, что для CS такое поведение нормальное и, если мы хотим работать по старому, то надо перейти на SS. Другого решения просто нет.

Merlin
Динозавр IB/FB
Сообщения: 1502
Зарегистрирован: 27 окт 2004, 11:44

Сообщение Merlin » 21 мар 2005, 12:22

Это Эксперту спасибо скажите. В isql procedure in use не бывает. Говорят что в Эксперте надо извращаться через скриптер, вроде проходит. Только это вообще-то не очень хорошо, ибо, как известно, уже установленные соединения продолжают работать со старой версией.

hvlad
Разработчик Firebird
Сообщения: 1244
Зарегистрирован: 21 мар 2005, 10:48

Re: Внесение изменений в хранимые процедуры

Сообщение hvlad » 21 мар 2005, 13:43

SAMZ писал(а):Правильно ли я Вас понял, что для CS такое поведение нормальное и, если мы хотим работать по старому, то надо перейти на SS. Другого решения просто нет.
В документации четко указано, что изменения метаданных нужно производить в монопольном режиме. В SS общий кеш метаданных, в CS - раздельный (у каждого процесса свой), поэтому CS ведёт себя несколько по-другому.
Советую перечитать раздел 'altering procedures in use' из документации к IB

Насчёт редактрования в IBE - это действительно могут быть побочные эффекты. Попробуйте воспользоваться кнопкой 'Reconnect' и повторить сохранение процедуры

Merlin
Динозавр IB/FB
Сообщения: 1502
Зарегистрирован: 27 окт 2004, 11:44

Re: Внесение изменений в хранимые процедуры

Сообщение Merlin » 21 мар 2005, 14:15

hvlad писал(а): Насчёт редактрования в IBE - это действительно могут быть побочные эффекты. Попробуйте воспользоваться кнопкой 'Reconnect' и повторить сохранение процедуры
Не, не помогает. Я обычно поступаю так: если я какую процедуру редактирую в Эксперте, то, получивши procedure in use, тут же, ничего в нём даже не закрывая, copy-paste в свой любимый WISQL (диалект-то первый, так что можно) и готово. Эксперт постоянно сам себе кое на что наступает уверенно.

hvlad
Разработчик Firebird
Сообщения: 1244
Зарегистрирован: 21 мар 2005, 10:48

Сообщение hvlad » 21 мар 2005, 14:57

Merlin
Ну, тогда не скажу - я в основном с SS работаю и procedure is in use практически не вижу :)

Ответить