Sql Server Service Broker: Jak skonstruować konwersacje dla prostego scenariusza kolejki?

Jestem nowicjuszem Sql Server Service Broker i próbuję uchwycić najlepszy sposób na ustawienie Service Brokera na (pozornie) prosty przypadek użycia: chcę utworzyć prostą kolejkę roboczą, w której jedna aplikacja upuszcza elementy pracy do kolejka, a oddzielna aplikacja pobiera elementy pracy z tej kolejki i przetwarza je. Nie ma potrzeby, aby pierwsza aplikacja pobierała komunikaty o stanie z drugiej. Chcę, aby kolejka działała w pojedynczej instancji serwera Sql.

To, co najbardziej mnie myli, to sposób, w jaki rozmowy / dialogi odnoszą się do tej sytuacji. Wiem, że możesz wysyłać / odbierać wiadomości tylko w kontekście rozmowy / okna dialogowego, ale ponieważ między tymi dwiema aplikacjami nie ma żadnych zwrotnych rozmów, czuję się zagubiony, kiedy nadszedł właściwy czas na utworzenie nowej rozmowy. Dwie skrajne alternatywy wydają się być:

Za każdym razem, gdy kolejkuję element pracy, rozpoczynam nową rozmowę. Tak więc każda rozmowa kończy się tym, że zawiera dokładnie jedną wiadomość.W czasie wdrażania ręcznie tworzę pojedynczą rozmowę o nieskończonej długości życia. Kiedy nadchodzi czas na kolejkowanie elementu roboczego, zawsze wysyłam go jako część tej pojedynczej rozmowy.

Jakie byłyby konsekwencje pójścia jedną z tych tras?

Również w pierwszym przypadku wydaje się, że muszę wykonać kilka KONWERSACJI KOŃCOWYCH, aby serwer Sql mógł wewnętrznie wyczyścić zasoby. Czy są jakieś wskazówki, kiedy będzie właściwe miejsce, aby je umieścić? (A może potencjalnie lepiej będzie polegać na rozmowach, które w końcu się skończyły?)

questionAnswers(2)

yourAnswerToTheQuestion