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

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

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

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

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

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


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

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

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

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

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

- Доктор, мне больно, когда я так делаю!
- Так не делайте так!
...
Рейтинг: 0 / 0
26.10.2014, 20:28
    #38787716
Konstanrtin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Firebird 3 вызванные пакеты не удается перекомпилировать
пробовал и так и сяк
В 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
26.10.2014, 23:27
    #38787760
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Firebird 3 вызванные пакеты не удается перекомпилировать
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
27.10.2014, 05:17
    #38787802
Konstanrtin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Firebird 3 вызванные пакеты не удается перекомпилировать
hvlad,


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


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