Я в курсе проекта POS. Пользователь требует, чтобы это приложение могло работать как онлайн, так и офлайн, что означает, что им нужна локальная база данных Я решил использовать репликацию SQL Server между каждым магазином и головным офисом. В каждом магазине необходимо установить SQL Server Express, а в головном офисе уже имеется SQL Server Enterprise Edition. Репликация будет запускаться каждые 30 минут по расписанию, и я выбираю репликацию слиянием, поскольку данные могут изменяться как в магазине, так и в головном офисе.
Когда я выполняю POC, я обнаружил, что это решение не работает должным образом, иногда задание является ошибкой, и мне нужно повторно инициализировать его. Это решение также занимает очень много времени, что явно неприемлемо для пользователя.
Я хочу знать, есть ли какие-нибудь решения лучше, чем то, что я делаю сейчас?
Обновление 1:
Ограничения системы:
- Почти все транзакции могут происходить в
как магазин, так и головной офис.
- Некоторые транзакции должны работать в режиме реального времени.
после того, как пользователь сохранит данные в своем местном магазине, эти данные должны также обновляться в головном офисе. (Если они в настоящее время онлайн)
- Пользователь может работать, даже если его магазин отключен от базы данных головного офиса.
- Наша оценка количества данных - не более 2000 строк в день.
- Windows 2003 - это ОС Сервера в головном офисе, а Windows XP - это ОС всех клиентов.
Обновление 2:
- В настоящее время у них около 15 клиентов, но это число будет расти довольно медленными темпами.
- Размер данных составляет около 100-200 строк на репликацию, я думаю, что это может быть не более 5 МБ.
- Клиент подключается к серверу по линии аренды; 128 кбит / с.
Я нахожусь в ситуации, когда репликация занимает очень много времени (около 55 минут, в то время как у нас всего 5 минут или около того), и почти раз мне нужно повторно инициализировать задание, чтобы начать репликацию снова, если я не повторно инициализировать задание, оно вообще не может быть воспроизведено. В моем POC я обнаружил, что репликация после повторной инициализации всегда занимает очень много времени, количество времени не зависит от объема данных. Кстати, повторная инициализация - это единственное решение, которое мне подходит для моей проблемы.
Как и выше, я заключаю, что репликация может не подходить для моей проблемы, и я думаю, что у нее может быть другое лучшее решение, которое может служить тому, что мне нужно в Обновление 1: