|
|
|
Firebird 3 вызванные пакеты не удается перекомпилировать
|
|||
|---|---|---|---|
|
#18+
Всем привет. Может уже где-то обсуждалось, не нашел, но наверняка все замечали, что если ваша софтина под FB 3 сделала вызов пакета хотя бы 1 раз, то перекомпилировать его, конечно, получится, но потом IBExpert выдает ошибку, что процедура такая-то в этом пакете уже используется и автоматом делает роллбак пакета. После закрытия клиента вся компиляция коммитится нормально. Получается, что надо всех юзеров выгонять из программы, чтобы что-то поправить в пакете? Кто-нибудь что-нибудь знает по этому поводу? Для справки с чем работаю: Firebird-3.0.0.31369-Beta1, fibplus 6.9.9, IBExpert 2014.10.11.1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2014, 15:38 |
|
||
|
Firebird 3 вызванные пакеты не удается перекомпилировать
|
|||
|---|---|---|---|
|
#18+
Konstanrtin, Архитектуру сервера забыл указать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2014, 17:24 |
|
||
|
Firebird 3 вызванные пакеты не удается перекомпилировать
|
|||
|---|---|---|---|
|
#18+
DarkMaster, Super with shared access SharedCache = true SharedDatabase = true ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2014, 19:55 |
|
||
|
Firebird 3 вызванные пакеты не удается перекомпилировать
|
|||
|---|---|---|---|
|
#18+
KonstanrtinВсем привет. Может уже где-то обсуждалось, не нашел, но наверняка все замечали, что если ваша софтина под FB 3 сделала вызов пакета хотя бы 1 раз, то перекомпилировать его, конечно, получится, но потом IBExpert выдает ошибку, что процедура такая-то в этом пакете уже используется и автоматом делает роллбак пакета. После закрытия клиента вся компиляция коммитится нормально. Получается, что надо всех юзеров выгонять из программы, чтобы что-то поправить в пакете? Кто-нибудь что-нибудь знает по этому поводу? Для справки с чем работаю: Firebird-3.0.0.31369-Beta1, fibplus 6.9.9, IBExpert 2014.10.11.1 Разве так не должно быть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2014, 21:15 |
|
||
|
Firebird 3 вызванные пакеты не удается перекомпилировать
|
|||
|---|---|---|---|
|
#18+
нет, конечно! ну представь, пользователь выполнил отчет, вызвав при этом процедуру из пакета REPORTS.BuchItogi, и всё, дальше работает с накладными, а ты после этого поправил этот отчет, но откомпилировать не удается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2014, 21:46 |
|
||
|
Firebird 3 вызванные пакеты не удается перекомпилировать
|
|||
|---|---|---|---|
|
#18+
Konstanrtin, Изменения метаданных на лету - плохая практика. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2014, 23:33 |
|
||
|
Firebird 3 вызванные пакеты не удается перекомпилировать
|
|||
|---|---|---|---|
|
#18+
Konstanrtinну представь, пользователь выполнил отчет, вызвав при этом процедуру из пакета REPORTS.BuchItogi, и всё, дальше работает с накладными, а ты после этого поправил этот отчет, но откомпилировать не удается. Во-первых, надо хэндл этого запроса пристрелить. Во-вторых, если это не помогло, как и обновление до последнего снапшота - написать трекеру. Ибо таки да, я тоже заметил у тройки появившуюся привычку не отпускать объект. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2014, 00:56 |
|
||
|
Firebird 3 вызванные пакеты не удается перекомпилировать
|
|||
|---|---|---|---|
|
#18+
miwaonlineИзменения метаданных на лету - плохая практика. Это нормальная практика (в разумных естестна пределах) в реальной жизни (24-7-365(6)). И до тех пор пока она "плохая" - FB некоторые продолжают считать "игрушечным". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2014, 00:57 |
|
||
|
Firebird 3 вызванные пакеты не удается перекомпилировать
|
|||
|---|---|---|---|
|
#18+
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 - и не надо париться по поводу того, что объект скэширован. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2014, 00:59 |
|
||
|
Firebird 3 вызванные пакеты не удается перекомпилировать
|
|||
|---|---|---|---|
|
#18+
KonstanrtinSuper with shared access SharedCache = true SharedDatabase = true Это СуперКлассик, если что. У суперсервера shared database = false. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2014, 01:50 |
|
||
|
Firebird 3 вызванные пакеты не удается перекомпилировать
|
|||
|---|---|---|---|
|
#18+
Только хардкорmiwaonlineИзменения метаданных на лету - плохая практика. Это нормальная практика (в разумных естестна пределах) в реальной жизни (24-7-365(6)). И до тех пор пока она "плохая" - FB некоторые продолжают считать "игрушечным". Для разумных пределов есть execute block. А «считателей» я видел/читал и таких, которым поможет только лоботомия, что уже выходит за пределы компетенции ФБ и разработчиков. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2014, 10:52 |
|
||
|
Firebird 3 вызванные пакеты не удается перекомпилировать
|
|||
|---|---|---|---|
|
#18+
KonstanrtinSuper with shared access SharedCache = true SharedDatabase = true [/quot] Это вообще хрень. Причём неработоспособная. Такой режим не поддерживается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2014, 12:20 |
|
||
|
Firebird 3 вызванные пакеты не удается перекомпилировать
|
|||
|---|---|---|---|
|
#18+
Симонов ДенисKonstanrtinSuper with shared access SharedCache = true SharedDatabase = true Это вообще хрень. Причём неработоспособная. Такой режим не поддерживается.[/quot] да, я не знал, поставил наобум, потом GSEC ругаться на это стал, убрал SharedDatabase ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2014, 12:27 |
|
||
|
Firebird 3 вызванные пакеты не удается перекомпилировать
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovKonstanrtinну представь, пользователь выполнил отчет, вызвав при этом процедуру из пакета REPORTS.BuchItogi, и всё, дальше работает с накладными, а ты после этого поправил этот отчет, но откомпилировать не удается. Во-первых, надо хэндл этого запроса пристрелить. Во-вторых, если это не помогло, как и обновление до последнего снапшота - написать трекеру. Ибо таки да, я тоже заметил у тройки появившуюся привычку не отпускать объект. Дмитрий, подскажите как это "пристрелить хэндл запроса"? Это из клиентской программы делается? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2014, 12:29 |
|
||
|
Firebird 3 вызванные пакеты не удается перекомпилировать
|
|||
|---|---|---|---|
|
#18+
miwaonline, плохо - это когда я компилю пакет (процедуру), который в данный момент используется, а если даже я планирую сделать изменения вечером (ночью) когда уже никто из ~200 пользователей не работает, но при этом уйдя домой многие не выключили Клиент, изменения не пройдут. Тут как быть? Как сказал Дмитрий, нужно как то убивать хэндл запроса, только как? Или верно выставить параметры транзакции? И опять же какие? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2014, 12:58 |
|
||
|
Firebird 3 вызванные пакеты не удается перекомпилировать
|
|||
|---|---|---|---|
|
#18+
Konstanrtin, делаешь шатдаун и накатываешь скрипт, потом возвращает базу в онлайн. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2014, 13:15 |
|
||
|
Firebird 3 вызванные пакеты не удается перекомпилировать
|
|||
|---|---|---|---|
|
#18+
Konstanrtinmiwaonline, плохо - это когда я компилю пакет (процедуру), который в данный момент используется, а если даже я планирую сделать изменения вечером (ночью) когда уже никто из ~200 пользователей не работает, но при этом уйдя домой многие не выключили Клиент, изменения не пройдут. Тут как быть? С ходу могу предложить три варианта на выбор 1. delete from mon$attachments 2. gfix -shut 3. Встроить в клиент возможность реагировать на волшебный пендель «Всем вон из базы [на N секунд|до появления приглашения]». ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2014, 13:17 |
|
||
|
Firebird 3 вызванные пакеты не удается перекомпилировать
|
|||
|---|---|---|---|
|
#18+
KonstanrtinЭто из клиентской программы делается? Это делается вызовом isc_dsql_free_statement() с параметром DSQL_drop. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2014, 13:24 |
|
||
|
Firebird 3 вызванные пакеты не удается перекомпилировать
|
|||
|---|---|---|---|
|
#18+
Konstanrtin, "компилируй" в wait тр-ции ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2014, 13:24 |
|
||
|
Firebird 3 вызванные пакеты не удается перекомпилировать
|
|||
|---|---|---|---|
|
#18+
Konstanrtinнет, конечно! ну представь, пользователь выполнил отчет, вызвав при этом процедуру из пакета REPORTS.BuchItogi, и всё, дальше работает с накладными, а ты после этого поправил этот отчет, но откомпилировать не удается. - Доктор, мне больно, когда я так делаю! - Так не делайте так! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2014, 15:45 |
|
||
|
Firebird 3 вызванные пакеты не удается перекомпилировать
|
|||
|---|---|---|---|
|
#18+
пробовал и так и сяк В 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 ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2014, 20:28 |
|
||
|
Firebird 3 вызванные пакеты не удается перекомпилировать
|
|||
|---|---|---|---|
|
#18+
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% уверен - заноси в трекер, будем разбираться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2014, 23:27 |
|
||
|
Firebird 3 вызванные пакеты не удается перекомпилировать
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2014, 05:17 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=38787716&tid=1563246]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
169ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
66ms |
get tp. blocked users: |
1ms |
| others: | 253ms |
| total: | 526ms |

| 0 / 0 |
