пропадание записи в мастер таблице

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

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

Ответить
Гость

пропадание записи в мастер таблице

Сообщение Гость » 22 ноя 2004, 13:14

Коротко суть:
есть офисная БД и 8 удаленных БД, все сервера на FreeBSD (только два на Win - один на Win-2000 проф и один на Win 2000 Advansed Server), ранее стоял FB 1.0.3.972, теперь FB 1.5.4480.
Между БД идут репликации: - из офисной БД заливаются док-ты (приход товара), обновляются цены, справочник артикулов, ГТД и т.п.; - из удаленных БД переносятся в офисную новые док-ты, запасы товара по складам (их на точке может быть несколько).
Характерно:
- клиенты на удаленных точках под Win-2000 проф, транзакции в основном read commited, за исключением коротких пищущих, все по Commit или Rolback;
- а вот репликации идут одной длинной транзакцией, причем коммит (или ролбак) - CommitRetaining (RolbackRetaining) - офисную прогу ведет другой человек и я ну никак его не смог удедить отказаться от Retaining (подсовывание статей про транзакции и ссылки на классиков не поиогли - упертый он, а повлиять на него я не могу)
Теперь суть проблемы: на FB 1.0 (пару раз и на FB 1.5) появлялась такая бяка - задваивание записи в мастер таблице (с одним и тем же примари-кэй) и одновременно с этим исчезновение одной из записей в этой же мастер таблице (причем в деталь таблице запись не исчезает), ну восстановление стандартное - из бэкапа берется исчезнувшая запись мастер таблицы и ручками всталяется в испорченную БД, задвоившаяся запись в мастер таблице удаляется вместе с записями и в деталь таблице (пишется скрипт на вставку в мастер и деталь), делается бэкап-рестор (БД откачиваю в сторону на всякий случай), затем из скрипта вставка док-та.
с переходом на FB 1.5 - такое было всего два раза.
Но возможно это связано с тем, что репликации стали идти только по метке изменения док-та (я ввел такую метку в мастер таблицу и все-таки смог убедить чела - чтобы не смотрел ВСЕ док-ты, а смотрел тололько измененные), собственно после этого данная проблема и исчезла, имхо.
Вопрос риторический: это могло быть из-за Retaining в длинной транзакции репликатора (на тестовых БД тестил в самых разных и идиотских режимах, только без репликаций - и ни разу сия проблема не проявилась)?

Ответить