|
Ошибка выполнения запроса
|
|||
---|---|---|---|
#18+
В общем обновил на днях версию сервера с 2.5.8 до релизной 2.5.9, после этого началась проблема с одним запросом, он перестал работать через приложение (приложение работает с базой через jaybird), но из ibexpert работает без проблем. Запрос возвращает текстовый блоб(xml), но если размер блоба получается небольшой, то через приложение так же отрабатывает без ошибки. Текст ошибки: Код: sql 1. 2. 3. 4.
FB 2.5.9 Classic Linux ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2020, 09:44 |
|
Ошибка выполнения запроса
|
|||
---|---|---|---|
#18+
demon1992, А что мешает откатиться назад ? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2020, 09:52 |
|
Ошибка выполнения запроса
|
|||
---|---|---|---|
#18+
AltHasp, Да в принципе ничего не мешает, просто хочется разобраться в проблеме. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2020, 09:55 |
|
Ошибка выполнения запроса
|
|||
---|---|---|---|
#18+
demon1992, небольшой воспроизводимый пример был бы очень кстати ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2020, 10:39 |
|
Ошибка выполнения запроса
|
|||
---|---|---|---|
#18+
hvlad, Постараюсь придумать что нибудь. В общем работу запроса я исправил. Было как, записи вставлялись во временную таблицу (delete row), поле в таблице varchar(32765), после была обычная склейка select list(). Запрос падал на коммите. Переделал поле в таблице на blob, ошибка исчезла. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2020, 10:51 |
|
Ошибка выполнения запроса
|
|||
---|---|---|---|
#18+
"wrong page type" достаточно серьёзная ошибка, чтобы её игнорировать. Даже если она не совсем настоящая, как в данном случае. Хотелось бы это исправить. Временая таблица - GTT ON COMMIT DELETE ROWS ? Блоб читается до коммита ? Блоб закрывается после чтения - до коммита ? Вставка записей и LIST из них - отдельными запросами или одним PSQL блоком (процедурой) ? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2020, 10:58 |
|
Ошибка выполнения запроса
|
|||
---|---|---|---|
#18+
И ещё один вопрос - commit обычный или retaining ? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2020, 11:04 |
|
Ошибка выполнения запроса
|
|||
---|---|---|---|
#18+
hvlad Временая таблица - GTT ON COMMIT DELETE ROWS ? да hvlad Блоб читается до коммита ? Блоб закрывается после чтения - до коммита ? метод работает так: Код: java 1. 2. 3. 4. 5. 6. 7. 8.
hvlad Вставка записей и LIST из них - отдельными запросами или одним PSQL блоком (процедурой) ? Вставка и list одним блоком, но этот блок находится в процедуре, которая вызывается из основной процедуры. hvlad И ещё один вопрос - commit обычный или retaining ? Коммит обычный ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2020, 12:00 |
|
Ошибка выполнения запроса
|
|||
---|---|---|---|
#18+
demon1992, если содержимое блоба не вычитывается в резултсет при работе executeStatement, то работать с blobId после commit плохая идея. BLOB уже может не существовать на этот момент ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2020, 12:07 |
|
Ошибка выполнения запроса
|
|||
---|---|---|---|
#18+
Да и сами result set-ы при коммите обычно закрываются. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2020, 12:23 |
|
Ошибка выполнения запроса
|
|||
---|---|---|---|
#18+
demon1992 метод работает так: Денис уже сказал, что работать с блобом после коммита - плохая идея. Но должна возникать ошибка о кривом блобе, не wrong page type. Хотя, до этого мы возможно просто не дошли, если облом на коммите. Уточним ещё пару деталей: результат LIST - что с ним происходит ? Он передаётся клиенту как есть, или этот блоб как-то ещё "меняется" в процедурах ? Вставляется в таблицу ? Если да, то в какую - GTT или постоянную ? Ошибка точно возникает при commit ? Не при попытке работать с блобом ? Триггеров на commit нет ? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2020, 12:24 |
|
Ошибка выполнения запроса
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Да и сами result set-ы при коммите обычно закрываются. А вот насчёт полного фетча и кеширования блобов при этом - сильно сомневаюсь. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2020, 12:25 |
|
Ошибка выполнения запроса
|
|||
---|---|---|---|
#18+
demon1992 если размер блоба получается небольшой ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2020, 12:25 |
|
Ошибка выполнения запроса
|
|||
---|---|---|---|
#18+
hvladНо должна возникать ошибка о кривом блобе, не wrong page type. А как определяется валидность персистентного id-а? Не пытается ли при этом читаться страница, вычисленная из него?.. Меня в сообщении об ошибке ещё смущает, что страница 0 ожидается типа 5, а не 1. Возможно, она пытается прочитаться по цепочке ссылок, одна из которых которая уже обнулилась. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2020, 12:33 |
|
Ошибка выполнения запроса
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovДа и сами result set-ы при коммите обычно закрываются. у него Java. Там это не обязательно так ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2020, 12:35 |
|
Ошибка выполнения запроса
|
|||
---|---|---|---|
#18+
hvlad Уточним ещё пару деталей: результат LIST - что с ним происходит ? Он передаётся клиенту как есть, или этот блоб как-то ещё "меняется" в процедурах ? Вставляется в таблицу ? Если да, то в какую - GTT или постоянную ? Ошибка точно возникает при commit ? Не при попытке работать с блобом ? Триггеров на commit нет ? На клиенте результат засовывается в xml файл и зипуется, т.е. по факту с полученный блоб уже не меняется. В таблицу вставляется: Код: sql 1. 2. 3. 4. 5. 6. 7.
Забыл сразу уточнить, что процедура возвращает две строки (два блоба). Таблица постоянная. Триггеров на коммит нет. hvlad demon1992 если размер блоба получается небольшой на 400кб например, проблемы нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2020, 12:40 |
|
Ошибка выполнения запроса
|
|||
---|---|---|---|
#18+
hvlad Ошибка точно возникает при commit ? Не при попытке работать с блобом ? Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2020, 12:49 |
|
Ошибка выполнения запроса
|
|||
---|---|---|---|
#18+
Симонов Денису него Java. Там это не обязательно так Оно, конечно, так, но объём работы, необходимый для поддержки такого режима, довольно велик, а вероятность глюков на этом пути значительна. Поэтому, например, Арефьев так не делает. Хотя Марк, конечно, может. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2020, 12:49 |
|
Ошибка выполнения запроса
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov А как определяется валидность персистентного id-а? Если вдруг окажется что блоб из LIST'а таки куда-то вставлен, и наружу выдан именно этот блоб - то тогда может быть. Но всё равно - ошибка на коммите, а не при использовании блоба клиентом. Dimitry Sibiryakov Меня в сообщении об ошибке ещё смущает, что страница 0 ожидается типа 5, а не 1 Где-то в структурах в памяти есть (или откуда-то вычисляется) ссылка на DP с номером 0. Во временном файле с данными GTT стр-ца 0 не является header'ом, она не используется Отсюда сообщение об ошибке. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2020, 13:21 |
|
Ошибка выполнения запроса
|
|||
---|---|---|---|
#18+
demon1992 В таблицу вставляется ... Забыл сразу уточнить, что процедура возвращает две строки (два блоба). Таблица постоянная. А что возвращается клиенту ? Вот это вот :data_blob, или что-то другое ? demon1992 на 400кб например, проблемы нет. Боюсь, воспроизводимый пример всё же понадобится. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2020, 13:26 |
|
Ошибка выполнения запроса
|
|||
---|---|---|---|
#18+
demon1992 Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2020, 13:28 |
|
Ошибка выполнения запроса
|
|||
---|---|---|---|
#18+
Симонов Денис Dimitry SibiryakovДа и сами result set-ы при коммите обычно закрываются. у него Java. Там это не обязательно такСерверу всё равно :) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2020, 13:30 |
|
Ошибка выполнения запроса
|
|||
---|---|---|---|
#18+
hvladВо временном файле с данными GTT стр-ца 0 не является header'ом Эва... У меня откуда-то застряло в голове, что файлы временных таблиц имеют точно такую же структуру, как база. Ну, спишем на склероз. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2020, 13:37 |
|
Ошибка выполнения запроса
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov файлы временных таблиц имеют точно такую же структуру, как база. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2020, 13:38 |
|
Ошибка выполнения запроса
|
|||
---|---|---|---|
#18+
hvlad Тут речь о том блобе, который вернул LIST ? Его вставляют в постоянную таблицу ? А что возвращается клиенту ? Вот это вот :data_blob, или что-то другое ? Блоб, который вернул list, вставляется в постоянную таблицу, и он же возвращается клиенту. hvlad ]Что это ? Имя БД ? Нет) это имя коннекта. (mon$remote_process который) С примером пока тяжко, нет особо времени на это, если получится сделать, то обязательно закину. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2020, 14:13 |
|
|
start [/forum/topic.php?fid=40&fpage=14&tid=1560333]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
80ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
2ms |
others: | 258ms |
total: | 449ms |
0 / 0 |