powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Firebird 3 вызванные пакеты не удается перекомпилировать
24 сообщений из 24, страница 1 из 1
Firebird 3 вызванные пакеты не удается перекомпилировать
    #38787231
Konstanrtin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет. Может уже где-то обсуждалось, не нашел, но наверняка все замечали, что если ваша софтина под FB 3 сделала вызов пакета хотя бы 1 раз, то перекомпилировать его, конечно, получится, но потом IBExpert выдает ошибку, что процедура такая-то в этом пакете уже используется и автоматом делает роллбак пакета. После закрытия клиента вся компиляция коммитится нормально. Получается, что надо всех юзеров выгонять из программы, чтобы что-то поправить в пакете? Кто-нибудь что-нибудь знает по этому поводу? Для справки с чем работаю: Firebird-3.0.0.31369-Beta1, fibplus 6.9.9, IBExpert 2014.10.11.1
...
Рейтинг: 0 / 0
Firebird 3 вызванные пакеты не удается перекомпилировать
    #38787267
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konstanrtin,

Архитектуру сервера забыл указать.
...
Рейтинг: 0 / 0
Firebird 3 вызванные пакеты не удается перекомпилировать
    #38787310
Konstanrtin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DarkMaster,
Super with shared access
SharedCache = true
SharedDatabase = true
...
Рейтинг: 0 / 0
Firebird 3 вызванные пакеты не удается перекомпилировать
    #38787338
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KonstanrtinВсем привет. Может уже где-то обсуждалось, не нашел, но наверняка все замечали, что если ваша софтина под FB 3 сделала вызов пакета хотя бы 1 раз, то перекомпилировать его, конечно, получится, но потом IBExpert выдает ошибку, что процедура такая-то в этом пакете уже используется и автоматом делает роллбак пакета. После закрытия клиента вся компиляция коммитится нормально. Получается, что надо всех юзеров выгонять из программы, чтобы что-то поправить в пакете? Кто-нибудь что-нибудь знает по этому поводу? Для справки с чем работаю: Firebird-3.0.0.31369-Beta1, fibplus 6.9.9, IBExpert 2014.10.11.1

Разве так не должно быть?
...
Рейтинг: 0 / 0
Firebird 3 вызванные пакеты не удается перекомпилировать
    #38787352
Konstanrtin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
нет, конечно!
ну представь, пользователь выполнил отчет, вызвав при этом процедуру из пакета REPORTS.BuchItogi, и всё, дальше работает с накладными, а ты после этого поправил этот отчет, но откомпилировать не удается.
...
Рейтинг: 0 / 0
Firebird 3 вызванные пакеты не удается перекомпилировать
    #38787399
miwaonline
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konstanrtin,

Изменения метаданных на лету - плохая практика.
...
Рейтинг: 0 / 0
Firebird 3 вызванные пакеты не удается перекомпилировать
    #38787425
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konstanrtinну представь, пользователь выполнил отчет, вызвав при этом процедуру из
пакета REPORTS.BuchItogi, и всё, дальше работает с накладными, а ты после этого поправил
этот отчет, но откомпилировать не удается.
Во-первых, надо хэндл этого запроса пристрелить. Во-вторых, если это не помогло, как и
обновление до последнего снапшота - написать трекеру. Ибо таки да, я тоже заметил у тройки
появившуюся привычку не отпускать объект.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Firebird 3 вызванные пакеты не удается перекомпилировать
    #38787426
miwaonlineИзменения метаданных на лету - плохая практика.
Это нормальная практика (в разумных естестна пределах) в реальной жизни (24-7-365(6)). И до тех пор пока она "плохая" - FB некоторые продолжают считать "игрушечным".
...
Рейтинг: 0 / 0
Firebird 3 вызванные пакеты не удается перекомпилировать
    #38787429
Фотография PEAKTOP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KonstanrtinSuper with shared access
SharedCache = true
SharedDatabase = true

И шо Ви таки хотели? такое же раньше и с хранимыми процедурами было.

А вот если пользователи процедуры дергают исключительно в режиме
isc_tbp_read_committed
isc_tpb_read
isc_tpb_rec_version
а ты перекомпиливаешь процедуру с параметрами
isc_tpb_write
isc_tpb_consistency
то можно и на лету.

хотя мое ИМХО такое же, как и выше у miwaonline : перекомпиливать метаданные на лету плохая практика.
для кого EXECUTE BLOCK изобрели?
все то же самое, что в процедуре, перегоняешь в EB - и не надо париться по поводу того, что объект скэширован.
...
Рейтинг: 0 / 0
Firebird 3 вызванные пакеты не удается перекомпилировать
    #38787442
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KonstanrtinSuper with shared access
SharedCache = true
SharedDatabase = true

Это СуперКлассик, если что. У суперсервера shared database = false.
...
Рейтинг: 0 / 0
Firebird 3 вызванные пакеты не удается перекомпилировать
    #38787487
miwaonline
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Только хардкорmiwaonlineИзменения метаданных на лету - плохая практика.
Это нормальная практика (в разумных естестна пределах) в реальной жизни (24-7-365(6)). И до тех пор пока она "плохая" - FB некоторые продолжают считать "игрушечным".
Для разумных пределов есть execute block. А «считателей» я видел/читал и таких, которым поможет только лоботомия, что уже выходит за пределы компетенции ФБ и разработчиков.
...
Рейтинг: 0 / 0
Firebird 3 вызванные пакеты не удается перекомпилировать
    #38787517
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KonstanrtinSuper with shared access
SharedCache = true
SharedDatabase = true
[/quot]

Это вообще хрень. Причём неработоспособная. Такой режим не поддерживается.
...
Рейтинг: 0 / 0
Firebird 3 вызванные пакеты не удается перекомпилировать
    #38787519
Konstanrtin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов ДенисKonstanrtinSuper with shared access
SharedCache = true
SharedDatabase = true


Это вообще хрень. Причём неработоспособная. Такой режим не поддерживается.[/quot]

да, я не знал, поставил наобум, потом GSEC ругаться на это стал, убрал SharedDatabase
...
Рейтинг: 0 / 0
Firebird 3 вызванные пакеты не удается перекомпилировать
    #38787520
Konstanrtin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovKonstanrtinну представь, пользователь выполнил отчет, вызвав при этом процедуру из
пакета REPORTS.BuchItogi, и всё, дальше работает с накладными, а ты после этого поправил
этот отчет, но откомпилировать не удается.
Во-первых, надо хэндл этого запроса пристрелить. Во-вторых, если это не помогло, как и
обновление до последнего снапшота - написать трекеру. Ибо таки да, я тоже заметил у тройки
появившуюся привычку не отпускать объект.

Дмитрий, подскажите как это "пристрелить хэндл запроса"? Это из клиентской программы делается?
...
Рейтинг: 0 / 0
Firebird 3 вызванные пакеты не удается перекомпилировать
    #38787529
Konstanrtin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miwaonline, плохо - это когда я компилю пакет (процедуру), который в данный момент используется, а если даже я планирую сделать изменения вечером (ночью) когда уже никто из ~200 пользователей не работает, но при этом уйдя домой многие не выключили Клиент, изменения не пройдут. Тут как быть? Как сказал Дмитрий, нужно как то убивать хэндл запроса, только как? Или верно выставить параметры транзакции? И опять же какие?
...
Рейтинг: 0 / 0
Firebird 3 вызванные пакеты не удается перекомпилировать
    #38787531
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konstanrtin,

делаешь шатдаун и накатываешь скрипт, потом возвращает базу в онлайн.
...
Рейтинг: 0 / 0
Firebird 3 вызванные пакеты не удается перекомпилировать
    #38787533
miwaonline
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konstanrtinmiwaonline, плохо - это когда я компилю пакет (процедуру), который в данный момент используется, а если даже я планирую сделать изменения вечером (ночью) когда уже никто из ~200 пользователей не работает, но при этом уйдя домой многие не выключили Клиент, изменения не пройдут. Тут как быть?
С ходу могу предложить три варианта на выбор
1. delete from mon$attachments
2. gfix -shut
3. Встроить в клиент возможность реагировать на волшебный пендель «Всем вон из базы [на N секунд|до появления приглашения]».
...
Рейтинг: 0 / 0
Firebird 3 вызванные пакеты не удается перекомпилировать
    #38787537
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KonstanrtinЭто из клиентской программы делается?
Это делается вызовом isc_dsql_free_statement() с параметром DSQL_drop.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Firebird 3 вызванные пакеты не удается перекомпилировать
    #38787539
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konstanrtin,

"компилируй" в wait тр-ции
...
Рейтинг: 0 / 0
Firebird 3 вызванные пакеты не удается перекомпилировать
    #38787611
ZeroMQ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konstanrtinнет, конечно!
ну представь, пользователь выполнил отчет, вызвав при этом процедуру из пакета REPORTS.BuchItogi, и всё, дальше работает с накладными, а ты после этого поправил этот отчет, но откомпилировать не удается.

- Доктор, мне больно, когда я так делаю!
- Так не делайте так!
...
Рейтинг: 0 / 0
Firebird 3 вызванные пакеты не удается перекомпилировать
    #38787716
Konstanrtin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
пробовал и так и сяк
В IBexpert.Options.Environment Options.Transactions во всех трех поставил
isc_tpb_read_committed
isc_tpb_rec_version
isc_tpb_wait

в клиенте транзакция с
isc_tpb_read
isc_tpb_nowait
isc_tpb_rec_version
isc_tpb_read_committed

запускаю IBExpert, запускаю клиент
В клиенте:
1.стартую транзакцию вручную
2.query.open - делаю селект компонентом TpFIBQuery процедуры в пакете (к примеру select * from PKG1.Proc)
3.закрываю транзакцию вручную
4.закрываю query.Close; затем query.FreeHandle, т.к. по исходникам именно во FreeHandle происходит sc_dsql_free_statement() с параметром DSQL_drop
В IBExpert:
открываю пакет PKG1 и пытаюсь откомпилить - компилит, но затем выдает сообщение
lock conflict on no wait transaction
...
object procedure "PKG1.Proc" is in use.
changes will be rolled back...

как только закрою клиент, такого сообщения больше не получаю

когда открыты и эксперт и клиент то
SELECT * FROM MON$TRANSACTIONS
выдает две строки где у первой (относится к эксперту) MON$LOCK_TIMEOUT = 0, у второй (клиент) MON$LOCK_TIMEOUT = -1

на версии FB 2.5 таких проблем с компиляцией не было... ждать нормального релиза FB 3.0 ?
...
Рейтинг: 0 / 0
Firebird 3 вызванные пакеты не удается перекомпилировать
    #38787760
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KonstanrtinВ IBexpert.Options.Environment Options.Transactions во всех трех поставил
isc_tpb_read_committed
isc_tpb_rec_version
isc_tpb_wait Ты уверен ?

Ибо
KonstanrtinВ IBExpert:
открываю пакет PKG1 и пытаюсь откомпилить - компилит, но затем выдает сообщение
lock conflict on no wait transaction
...

Если 100% уверен - заноси в трекер, будем разбираться.
...
Рейтинг: 0 / 0
Firebird 3 вызванные пакеты не удается перекомпилировать
    #38787802
Konstanrtin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hvlad,


еще бы разобраться как на этот трекер писать... лан попробую
...
Рейтинг: 0 / 0
Firebird 3 вызванные пакеты не удается перекомпилировать
    #38787819
Konstanrtin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Firebird 3 вызванные пакеты не удается перекомпилировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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