Я читаю документацию, и следующее меня смущает, потому что оно указано в верхней части документа с версией 5, мы получаем надежность без использования кода DTC.NServiceBus 5 без участия DTC?
Эти функции были реализованы с использованием шаблона «Исходящие» и шаблона дедупликации. Когда сообщение выгружено, мы проверяем, не обработали ли мы его ранее. Если это так, мы доставляем все сообщения в исходящие сообщения для этого сообщения, но не вызываем логику обработки сообщений еще раз. Если сообщение ранее не обрабатывалось, мы вызываем логику обычного обработчика, сохраняя все исходящие сообщения в надежном хранилище в той же транзакции, что и изменения в собственной базе данных пользователей. Наконец, мы отправляем все исходящие сообщения и обновляем хранилище дедупликации.
Я уверен, что это, вероятно, из-за моего отсутствия понимания, но бы не тот факт, что NServiceBus открывает свою собственную связь и транзакции отдельно от обработчика сообщений (бывший, вызывая хранилище для сохранения) подключение базы данных по транзакция будет увеличена до 2PC с использованием DTC?
Вот документация:
http://docs.particular.net/nservicebus/outbox/
Спасибо!
Так что если я использую EF, это не будет работать. Правильно? – Sarmaad
Странно, ссылка на документацию не упоминает об этом – Marco
@Sarmaad с EF 6, вы можете повторно использовать существующую транзакцию, чтобы вы могли смириться с hibernates ITransaction. Я считаю, что это то, что говорит Яновесск, что нам нужно будет сделать. – Marco