Могу ли я обеспечить порядок диалогов диалога в сервис-брокере sql? - PullRequest
0 голосов
/ 03 сентября 2010

Итак, у меня есть сервер 'A' и сервер 'B'.Мы используем SQL Service Broker для выполнения репликации.Приложение, которое у нас есть, должно будет записать данные либо на сервер «A», либо на сервер «B».(один может быть недоступен, а другой должен вступить во владение)

Данные записываются в базу данных только в рамках хранимых процедур, которые заключаются в транзакцию для обеспечения согласованности данных в таблицах.

Одна из этих транзакций будет включать все сообщения, которые будут отправлены на равноправный сервер.Поэтому в коде моего приложения, когда я пытаюсь зафиксировать транзакцию, он должен записать все данные в таблицы и отправить сообщения на одноранговый сервер.

Однако, если одноранговый сервер не работает,тогда сообщения будут ждать в sys.transmission_queue.

Порядок сообщений в диалоге диалога гарантирован, но могу ли я гарантировать, что диалоги будут обрабатываться в порядке, в котором я их создал?

Например, я мог бывозникли проблемы, если сервер «B» не работает, пользователь записывает данные на сервер «A».Как только сервер «B» снова будет создан, если эти диалоговые диалоги будут обработаны не по порядку, они могут работать некорректно.(Они могут попытаться вставить данные с неверным внешним ключом или что-то в этом роде.)

Я работаю со следующими предположениями:

  1. У меня должен быть одиндиалоговое диалоговое окно для каждой транзакции.

  2. Форма решения должна быть в виде репликации с помощью SQL Service Broker.(Это делается в других частях базы данных, поэтому любая причина использовать альтернативную стратегию должна быть убедительной).

1 Ответ

0 голосов
/ 12 апреля 2011

Вы должны использовать Приоритет брокера. http://msdn.microsoft.com/en-us/library/bb934170.asp

...