Объем транзакции между публикацией RabbitMQ и транзакциями MSSQL с использованием клиента .NET - PullRequest
0 голосов
/ 04 декабря 2018

Я представляю RabbitMQ в приложении .NET, хотел бы иметь возможность публиковать сообщения только в случае успешной транзакции базы данных, и наоборот, если публикация сообщения вызывает исключение, данные в базе данных не должны сохраняться.Как я понимаю, в Java Spring есть нечто похожее и называется «RabbitTransactionManager». Интересно, есть ли альтернативы .NET?

Первоначально планировалось использовать методы TxSelect / TxCommit / TxRollback клиента RabbitMQ .NET.В моем понимании наиболее распространенное решение - заключить сообщение опубликовать в область транзакции SQL в коде, но в этом случае сообщение может быть опубликовано, но данные не сохранены.

Я нашел статью, в которой описаны некоторые методы решения проблемы: https://blogmilind.wordpress.com/2017/11/20/send-message-in-transaction/

Но, может быть, есть более элегантный или нестандартный подход?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...