MSMQ транзакционный или восстанавливаемый - PullRequest
0 голосов
/ 24 февраля 2020

У меня вопрос по MSMQ. Если я использую нетранзакционную очередь и отправляю в нее сообщение с восстанавливаемым параметром, сообщение сохраняется на dis c и в случае какой-либо проблемы защищается. Но если я хочу получить сообщение из нетранзакционной очереди, есть ли какой-нибудь механизм защиты сообщений, чтобы они оставались в очереди в случае какой-либо проблемы (ошибка сервера, отключение базы данных ...)?

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

1 Ответ

0 голосов
/ 02 марта 2020

Вы можете реализовать процесс peek-then-receive для имитации транзакции.

  1. Просмотр сообщения для получения контента.
  2. Используйте контент как вы sh.
  3. Если шаг 2 завершен, то получить сообщение для его эффективного удаления.
  4. Если шаг 2 завершится неудачно, выполнить код очистки и перейти к шагу 1.
...