Рабочий процесс обрабатывает сообщения из очереди Service Bus (QueueA). Для каждого сообщения он должен отправить уведомление в раздел (TopicB) и команду в другую очередь (QueueC), а затем завершить обработку исходного сообщения. Все три операции должны быть выполнены успешно или завершиться сбоем вместе. Что следует сделать?
Выберите ответ
Нажмите на вариант, чтобы проверить свой ответ.
Правильный ответ: Выполнить receive-complete для QueueA и отправку в TopicB и QueueC внутри транзакции Service Bus (TransactionScope или ServiceBusTransaction), используя одно и то же подключение ServiceBusClient., Убедиться, что QueueA, TopicB и QueueC находятся в одном и том же пространстве имен Service Bus..
Почему это правильный ответ
Для обеспечения атомарности операций (все или ничего) в Azure Service Bus необходимо использовать транзакции. Транзакция Service Bus позволяет объединить получение сообщения из одной сущности (QueueA) и отправку сообщений в другие сущности (TopicB и QueueC) таким образом, что все эти операции либо успешно завершатся, либо будут полностью отменены. Это достигается путем выполнения всех операций внутри одного блока TransactionScope или с использованием ServiceBusTransaction и одного и того же экземпляра ServiceBusClient. Важно, чтобы все участвующие сущности (QueueA, TopicB, QueueC) находились в одном пространстве имен Service Bus, так как транзакции не могут охватывать несколько пространств имен. Использование отдельных ServiceBusClient или обнаружение дубликатов не обеспечивают атомарность всех операций. Функции Azure с несколькими выходными привязками не гарантируют атомарные коммиты для произвольных сценариев Service Bus транзакций.
Сдайте экзамен — без бесконечного поиска ответов
Получите все проверенные вопросы и объяснения для этого экзамена в одном месте и сэкономьте часы подготовки. 1000+ сертификаций · 20+ языков · начните бесплатно.
Сдайте экзамен быстрее → Карта не требуется