Назад | Перейти на главную страницу

Сценарий подписчика публикации публикации слиянием

У меня есть топология подписчика публикации слиянием SQL 2008 -> SQL 2000 -> MS Access 2003. В одной базе данных на уровне SQL 2008 у меня есть обновляемая публикация (называемая каталогом), которая не фильтруется, на которую подписан сервер SQL 2000, а затем повторно опубликованы для клиента MS Access. Я могу делать вставки / обновления на подписчике MS Access, и они хорошо передаются на сервер SQL 2008. В другом БД по SQL 2008 у меня есть пара публикаций. Первая публикация имеет статический фильтр, основанный на значении региона. Другая публикация - это нефильтрованная публикация заказов и строк. На обе эти публикации машина SQL 2000 подписана на базу данных, отдельную от публикации каталога. На уровне SQL 2000 я создаю отфильтрованные публикации для каждого пользователя, которые извлекаются из отфильтрованных таблиц и затем присоединяются к таблицам заказов. Я могу создавать публикации MSAccess и нормально их синхронизировать. Проблема в том, что я вношу изменения в любую из отфильтрованных таблиц. Я вижу, что обновление попадает на сервер SQL 2000, но не поступает на сервер SQL 2008. Я попробовал фиктивное обновление, а затем изменения перетекли на машину SQL 2008. Есть идеи, почему изменения, загруженные в отфильтрованные таблицы в SQL 2000, не распространяются на машину SQL 2008?

После открытия кейса с MS было определено, что ошибка вызвана топологией публикующего подписчика / переиздателя при установке column_tracking = true. Вдобавок я создал статически отфильтрованную публикацию у издателя верхнего уровня, что, похоже, не помогло. Проблема заключалась в том, что подписчик MS Access загружал изменения в републикатор, но с art_nick / tablenick равным 0. Представитель MS также сказал, что это произошло с SQL CE. В любом случае агент между повторно издателем и издателем проигнорирует запись (записи) в msmerge_contents, поскольку метка таблицы не была установлена. Чтобы обойти это, я удалил публикацию со статической фильтрацией на уровне издателя и изменил все публикации на использование отслеживания на уровне строк. Как только я это сделал, все изменения от подписчика, как и ожидалось, были распространены на издателя.

Брайан