Proces roboczy przetwarza wiadomości z kolejki Service Bus (QueueA). Dla każdej wiadomości musi wysłać powiadomienie do tematu (TopicB) i polecenie do innej kolejki (QueueC), a następnie zakończyć przetwarzanie oryginalnej wiadomości. Wszystkie trzy operacje muszą zakończyć się powodzeniem lub niepowodzeniem razem. Co należy zrobić?
Wybierz odpowiedź
Dotknij opcji, aby sprawdzić swoją odpowiedź.
Poprawna odpowiedź: Wykonaj operację receive-complete na QueueA oraz wysyłanie do TopicB i QueueC w ramach transakcji Service Bus (TransactionScope lub ServiceBusTransaction) używając tego samego połączenia ServiceBusClient., Upewnij się, że QueueA, TopicB i QueueC znajdują się w tej samej przestrzeni nazw Service Bus..
Dlaczego to jest odpowiedź
Aby zapewnić atomowość operacji (wszystkie muszą zakończyć się sukcesem lub porażką razem), należy użyć transakcji Service Bus. Transakcje Service Bus (realizowane za pomocą TransactionScope lub ServiceBusTransaction) pozwalają na grupowanie wielu operacji (odbieranie, wysyłanie, kompletowanie) w jedną jednostkę pracy. Kluczowe jest, aby wszystkie zaangażowane encje (QueueA, TopicB, QueueC) znajdowały się w tej samej przestrzeni nazw Service Bus, ponieważ transakcje Service Bus są ograniczone do jednej przestrzeni nazw. Użycie tej samej instancji ServiceBusClient dla wszystkich operacji w ramach transakcji jest również niezbędne, aby zapewnić, że transakcja obejmuje wszystkie te operacje. Oddzielne instancje ServiceBusClient lub włączanie wykrywania duplikatów nie zapewnią atomowości transakcji. Funkcje Azure z wieloma powiązaniami wyjściowymi nie gwarantują atomowych zatwierdzeń w sposób, który obejmuje operacje na wielu encjach Service Bus w ramach jednej transakcji.
Zdaj egzamin — bez niekończącego się szukania odpowiedzi
Uzyskaj wszystkie zweryfikowane pytania i wyjaśnienia do tego egzaminu w jednym miejscu i zaoszczędź godziny przygotowań. Ponad 1000 certyfikacji · Ponad 20 języków · Zacznij za darmo.
Zdaj egzamin szybciej → Karta nie jest wymagana