ошибка 44. IBReplicator от Interbase 7.1

Методы, механизмы и инструментарий для репликации

Модератор: kdv

Ответить
Erhe
Сообщения: 30
Зарегистрирован: 26 сен 2006, 09:48

ошибка 44. IBReplicator от Interbase 7.1

Сообщение Erhe » 01 июл 2009, 12:25

Здравствуйте.

В базу даных добавил таблицу с ПК: ID, RN. Прописал эту таблицу в схему репликации? сохздал системные объекты -- всё как положено. При репликации данных (нужно проапдейтить записи) выдает в лог ошибку, виде:

ошибка 44 -- выбираю несколько строк при единичном select.

Проверка по базам данных показала, запись и в источнике, и в приемнике -- одна. Никаких "множество" быть не может. Проверял скрипты (выводит в лог репликатор) -- по тем значениям, что репликатор пишет в свою repl_log: тоже одна запись находится.

Что за глюк и как поправить?

Самое странное, что в БД есть ещё таблицы с похожим ПК, так они нормально реплицируются.

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Re: ошибка 44. IBReplicator от Interbase 7.1

Сообщение Dimitry Sibiryakov » 01 июл 2009, 13:47

А если подробнее и без отсебятины? Версия репликатора, точное сообщение об ошибке, кусок лога. 44-я ошибка это execute update. Никаким select там пахнуть не может, тем более - на русском.

Erhe
Сообщения: 30
Зарегистрирован: 26 сен 2006, 09:48

Re: ошибка 44. IBReplicator от Interbase 7.1

Сообщение Erhe » 01 июл 2009, 15:06

Dimitry Sibiryakov писал(а):А если подробнее и без отсебятины?
Пожалуйста, кусок лога со всеми подробностями

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

Update  2*1
SELECT M_CREATEDATE,M_CREATEUSER,M_INHABITANTS_NUM,M_LASTUPDATE,M_LASTUSER,M_STATUS,M_ID,M_RAYON_NUM FROM CMN_MAKETS WHERE M_ID = ? AND M_RAYON_NUM = ?
INSERT INTO CMN_MAKETS ( M_CREATEDATE , M_CREATEUSER , M_INHABITANTS_NUM , M_LASTUPDATE , M_LASTUSER , M_STATUS , M_ID , M_RAYON_NUM ) VALUES (? , ? , ? , ? , ? , ? , ? , ?  )
UPDATE CMN_MAKETS SET M_CREATEDATE= ? , M_CREATEUSER= ? , M_INHABITANTS_NUM= ? , M_LASTUPDATE= ? , M_LASTUSER= ? , M_STATUS = ? WHERE M_ID = ? AND M_RAYON_NUM = ?
DELETE FROM CMN_MAKETS WHERE M_ID = ? AND M_RAYON_NUM = ?

PLAN (CMN_MAKETS INDEX (RDB$PRIMARY102))

PLAN (CMN_MAKETS INDEX (RDB$PRIMARY102))

PLAN (CMN_MAKETS INDEX (RDB$PRIMARY102))

Wed Jul 01 11:25:43 2009
ErrorNo: 44 - multiple rows in singleton select
multiple rows in singleton select
Версия репликатора 1.1, шла в составе дистрибутива Borland Interbase v.7.0.
Пара: M_ID = 2 и M_RAYON_NUM = 1 -- уникальна, выборка по таблице дает только 1-у запись.

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Re: ошибка 44. IBReplicator от Interbase 7.1

Сообщение Dimitry Sibiryakov » 01 июл 2009, 18:20

Типы полей M_ID и M_PAYON_NUM скажи... И проверь всю цепочку триггеров на UPDATE таблицы CNM_MAKETS, поскольку на обычный UPDATE эта ошибка ну никак не может вылезти.

Хотя, один фиг - это окаменелое дерьмо мамонта (1.1) уже не поддерживается никем.

Erhe
Сообщения: 30
Зарегистрирован: 26 сен 2006, 09:48

Re: ошибка 44. IBReplicator от Interbase 7.1

Сообщение Erhe » 01 июл 2009, 19:10

Dimitry Sibiryakov писал(а):Типы полей M_ID и M_PAYON_NUM скажи...
INTEGER
Dimitry Sibiryakov писал(а):И проверь всю цепочку триггеров на UPDATE таблицы CNM_MAKETS, поскольку на обычный UPDATE эта ошибка ну никак не может вылезти.

Хотя, один фиг - это окаменелое дерьмо мамонта (1.1) уже не поддерживается никем.
Посмотрю, спасибо. Я бы рад его прикопать, но не я решаю :-)

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Re: ошибка 44. IBReplicator от Interbase 7.1

Сообщение Dimitry Sibiryakov » 01 июл 2009, 21:02

А лицензия на это ископаемое не иначе как с хасталависты...

Ответить