Синхронизация данных SQL Azure с API-интерфейсами REST для запуска синхронизации с локальными базами данных участников
После долгих исследований и проб и ошибок; Мне удалось настроить нижеприведенную среду (немного контекста перед вопросом)
- База данных Azure SQL HUB, расположенная в Северной Европе (cheershub)
- Виртуальная машина Azure, размещенная в Юго-Восточной Азии с базой данных SQL (cheersasia)
- Виртуальная машина Azure, размещенная в Западной Европе с базой данных SQL (cheerseurope)
- Клиентское настольное приложение установлено как на виртуальных машинах, так и в локальной сети
- Синхронизация данных SQL была настроена между концентратором и членами базы данных
- Двунаправленная синхронизация
- Концентратор выигрывает для разрешения конфликтов, а автоматическая синхронизация отключена
- Я активировал Azure AD и назначил разрешения для регистрации моего приложения
- Сгенерирован идентификатор клиента AD и секрет для использования с REST Api
Клиентское приложение подключается к локальному экземпляру БД (т. Е. Приложение, работающее на виртуальной машине Западной Европы, подключается к базе данных cheerseurope, которая является локальной для виртуальной машины). Приложение просто создает некоторые заказы в базе данных и запускает синхронизацию через API синхронизации данных в SyncGroup. Синхронная группа сообщает об отсутствии предупреждений для каждого агента синхронизации, и все агенты находятся в сети.
Кажется, все на данный момент работает без ошибок. Журналы синхронизации в группе синхронизации не сообщают об ошибках, и я могу запросить базу данных HUB (cheershub), Юго-Восточной Азии (cheersasia) и локальную (cheerslocalhost) и посмотреть обновления.
ПРОБЛЕМА: База данных в Западной Европе VM (cheerseurope) не отражает изменений. Я ждал день, чтобы быть уверенным, что, согласно официальному документу Microsoft, они гарантируют, что все изменения будут внесены в конечном итоге, и что синхронизация данных не приведет к потере данных. Стоит отметить, что я попробовал это с пустыми базами данных во всех местах и что он настроен на синхронизацию всех столбцов в моей 1 таблице.
ПОПРОБОВАНО: Прождав день, я снова запустил синхронизацию из своего клиентского приложения и снова подождал. Все еще ничего в Западной Европе (cheerseurope). Затем я вошел в Azure и вручную отключил синхронизацию в синхронизирующей группе. Несмотря на то, что в отчетах журнала обновлено 0 записей, при проверке базы данных в Западной Европе эти изменения появились.
ВОПРОС: Кто-нибудь еще сталкивался с подобными проблемами при запуске синхронизации с API-интерфейсами REST, и не все обновленные базы данных участников обновлены, или у вас есть практические знания по работе с настройкой, подобной приведенной выше, которая может предложить некоторые указатели? Возможно, поскольку синхронизация данных все еще находится в режиме предварительного просмотра, эти проблемы вполне могут быть решены в будущем.
ПРИМЕЧАНИЕ. Я не хотел включать автоматическую синхронизацию, поскольку мне нужно было контролировать момент запуска синхронизации, поскольку у меня есть другие процессы в приложении, которые запускаются после синхронизации.
ОБНОВЛЕНИЕ: я не смог найти, если возможно запросить результат вызова API, чтобы определить, были ли обновлены все БД-члены. Это не представляется возможным в текущей версии API.
ОБНОВЛЕНИЕ: Я попытался переустановить и перенастроить агенты синхронизации данных на виртуальной машине Западной Европы, а также проверил, чтобы убедиться, что правильные порты открыты, чтобы позволить средству синхронизации данных обмениваться данными с синхронизирующей группой.
ОБНОВЛЕНИЕ: Кажется, что запуск синхронизации через REST Api снова привел к распространению обновления в Западную Европу. Так что я думаю, что запуск синхронизации дважды решил проблему. Существует ли ограничение на число синхронизаций элементов, разрешенных для каждой синхронизации?