request synchronization error

Access Violation, некорректное выполнение запросов или вызовов API, ошибки утилит командной строки, в общем все, что вам мешает работать

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

Dmitry74
Сообщения: 70
Зарегистрирован: 31 июл 2006, 15:55

request synchronization error

Сообщение Dmitry74 » 21 мар 2007, 17:10

При выполнении запроса возникает
Ошибка синхронизации запроса
request synchronization error

Подскажите что это за синхронизация?

База в которой делается запрос дастаточно большая (3.5 гектара)
Львинная доля 98% объёма данных занимает таблица из которой и делается запрос
Сервер 1.5 FB

базу бэкапил восстанавливал но таже хрень

Запрос выполняется через IBQuery (Однонаправленый курсор)

Но когда идёт копирование данных происходит
request synchronization error

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

Сообщение kdv » 21 мар 2007, 17:31

Сервер 1.5 FB
1.5.0, 1.5.1, 1.5.2, 1.5.3, 1.5.4 ?

Dmitry74
Сообщения: 70
Зарегистрирован: 31 июл 2006, 15:55

Сообщение Dmitry74 » 21 мар 2007, 17:33

kdv писал(а):
Сервер 1.5 FB
1.5.0, 1.5.1, 1.5.2, 1.5.3, 1.5.4 ?
Firebird-1.5.1.4481-Win32.exe

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

Сообщение WildSery » 21 мар 2007, 17:51

А на FB 1.5.4 ошибка повторяется?

Dmitry74
Сообщения: 70
Зарегистрирован: 31 июл 2006, 15:55

Сообщение Dmitry74 » 21 мар 2007, 17:57

WildSery писал(а):А на FB 1.5.4 ошибка повторяется?
Попробую!!!

Скажите хоть, что эта ошибка означает!?

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

Сообщение kdv » 21 мар 2007, 19:31

Скажите хоть, что эта ошибка означает!?
может глюк, баг и т.п. нужно еще убедиться, что версия клиентской части соответствует серверу. Если бэкап делается, то значит сами данные читаются, и проблема здесь возникает при передаче данных по сети или какой то другой волшебной причине.

dimitr
Разработчик Firebird
Сообщения: 888
Зарегистрирован: 26 окт 2004, 16:20

Сообщение dimitr » 21 мар 2007, 23:16

ошибка вылазит из ядра, означает обычно несоответствие операции состоянию дескриптора запроса (типа фетч из неактивного курсора и т.п.). По идее, в нормальных обстоятельствах возникать не должна. Так что похоже на баг, хотелось бы увидеть воспроизводимый пример.

Dmitry74
Сообщения: 70
Зарегистрирован: 31 июл 2006, 15:55

Сообщение Dmitry74 » 22 мар 2007, 14:40

dimitr писал(а):ошибка вылазит из ядра, означает обычно несоответствие операции состоянию дескриптора запроса (типа фетч из неактивного курсора и т.п.). По идее, в нормальных обстоятельствах возникать не должна. Так что похоже на баг, хотелось бы увидеть воспроизводимый пример.
Наверно пример будет сделать сложно, но можно попробывать

1. Создайте две базы с таблицей состоящей из 32 полей (тип поля Integer)
2. Наполните её тестовыми данными (IBExpert). Количество строк должно привести к размеру базы в 3.5 гектара
3. Используя встроенный сервер сделайте запрос к базе1
Select Field1,field2,field3,field4,field5 from Table
group by Field1,field2,field3,field4,field5
4. Используя тот же сервер залейте результаты запроса во вторую базу.

Это должно привести к ошибке.

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

Сообщение kdv » 22 мар 2007, 15:20

4. Используя тот же сервер залейте результаты запроса во вторую базу.
залейте чем? :-)

Dmitry74
Сообщения: 70
Зарегистрирован: 31 июл 2006, 15:55

Сообщение Dmitry74 » 22 мар 2007, 15:22

kdv писал(а):
4. Используя тот же сервер залейте результаты запроса во вторую базу.
залейте чем? :-)
IBquery компонент Delphi7 (просто Insert into ...)

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

Сообщение kdv » 22 мар 2007, 16:25

insert понятно. читать-то чем?

Dmitry74
Сообщения: 70
Зарегистрирован: 31 июл 2006, 15:55

Сообщение Dmitry74 » 22 мар 2007, 16:32

kdv писал(а):insert понятно. читать-то чем?
Тем же IBquery

Unidirect:=True;
иначе памяти виртуальной не хватит :)

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

Сообщение WildSery » 22 мар 2007, 16:39

Dmitry74 писал(а):2. Наполните её тестовыми данными (IBExpert).
Одну из двух баз?
Dmitry74 писал(а):3. Используя встроенный сервер сделайте запрос к базе1...
Встроенный во что? Embedded что ли? Оставить запрос открытым, или не надо?
Dmitry74 писал(а):4. Используя тот же сервер залейте результаты запроса во вторую базу.
У тебя ж суперсервер, наверное, разве можно использовать "не тот же"? :wink:
Если я то же самое сделаю одним "гетерогенным запросом" INSERT INTO ... SELECT FROM ... в IBExpert, то ошибка тоже будет?

Dmitry74
Сообщения: 70
Зарегистрирован: 31 июл 2006, 15:55

Сообщение Dmitry74 » 22 мар 2007, 16:48

Dmitry74 писал(а):2. Наполните её тестовыми данными (IBExpert).
Одну из двух баз?
Именно одну! (затем данные перекачаем в другую)

Dmitry74 писал(а):3. Используя встроенный сервер сделайте запрос к базе1...
Встроенный во что? Embedded что ли? Оставить запрос открытым, или не надо?

Именно Embedded!

Dmitry74 писал(а):4. Используя тот же сервер залейте результаты запроса во вторую базу.
У тебя ж суперсервер, наверное, разве можно использовать "не тот же"? :wink:

Похоже Вы правы!


Если я то же самое сделаю одним "гетерогенным запросом" INSERT INTO ... SELECT FROM ... в IBExpert, то ошибка тоже будет?

Не уверен ! У меня именно две разные базы!

(Вынужден собирать данные из разных баз в одну. Жалко что FB пока нельзя делать запрос из нескольких баз одновременно, в oracle это запросто, но зато FB бесплатный и удобный в установке у клиентов :) )

Dmitry74
Сообщения: 70
Зарегистрирован: 31 июл 2006, 15:55

Сообщение Dmitry74 » 22 мар 2007, 16:52

Повашему совету использовал FB 1.5.4.

Пока полёт нормальный!

Проверяйте только на FB 1.5.1

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

Сообщение kdv » 22 мар 2007, 17:06

Проверяйте только на FB 1.5.1
кому это нафиг интересно проверять на 1.5.1, если на 1.5.4 такая проблема не воспроизведется?

Dmitry74
Сообщения: 70
Зарегистрирован: 31 июл 2006, 15:55

Сообщение Dmitry74 » 22 мар 2007, 18:00

kdv писал(а):
Проверяйте только на FB 1.5.1
кому это нафиг интересно проверять на 1.5.1, если на 1.5.4 такая проблема не воспроизведется?
Тоже верно

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

Сообщение WildSery » 22 мар 2007, 18:25

Dmitry74 писал(а):Не уверен ! У меня именно две разные базы!
Такую операцию эксперт позволяет сделать с разными базами.
А если использовать IBEBlock, то там можно такое...

Dmitry74
Сообщения: 70
Зарегистрирован: 31 июл 2006, 15:55

Сообщение Dmitry74 » 23 мар 2007, 11:23

Сегодня с удивлением узнал что ошибка повторяется и
на версии 1.5.4

Обноружил что FB Сожрал всю память
Самое главное забыл сказать

запрос делается из вьюхи а во вьюхе используется функция Рекурсивная
может из-за неё
Вот её код

Код: Выделить всё

CREATE PROCEDURE FIND_CHILDREN (
    KEY_PARENT BIGINT,
    KEY_REF BIGINT,
    KEY_BABY BIGINT)
RETURNS (
    KEY_CH BIGINT)
AS
DECLARE VARIABLE CNT BIGINT;
DECLARE VARIABLE CD_CH BIGINT;
begin
KEY_CH=0;
if (key_parent=key_baby) then
begin
 KEY_CH=1;
 suspend;
  exit;
end
SELECT rf.parent FROM refdata rf  WHERE
rf.reference=:key_ref and
rf.cd_code = :key_baby INTO :CD_CH;
if (CD_CH is null) then
begin
 suspend;
  exit;
end
if (cd_ch=KEY_PARENT) then
begin
KEY_CH=1;
end
else
execute procedure find_children (:key_parent,:key_ref,:cd_ch) returning_values :key_ch;
suspend;
end

Dmitry74
Сообщения: 70
Зарегистрирован: 31 июл 2006, 15:55

Сообщение Dmitry74 » 23 мар 2007, 13:17

WildSery писал(а):
Dmitry74 писал(а):Не уверен ! У меня именно две разные базы!
Такую операцию эксперт позволяет сделать с разными базами.
А если использовать IBEBlock, то там можно такое...
каким образом эксперт позволяет?

Ответить