Budowanie aplikacji w programie usługa Broker
Każdy program, który można uruchomić Transact-SQL instrukcje można użyć usługa Broker. Aplikacja usługa Broker można zaimplementować jako program działający na zewnątrz SQL Server, albo jako procedura przechowywana w Transact-SQL lub w języku systemu .NET.
Program używający usługa Broker zazwyczaj składa się wiele składników, pracujących razem służące do wykonania zadania.Program, który inicjuje konwersację tworzy i wysyła wiadomość do innej usługa.Ten program może oczekiwania na odpowiedź lub natychmiast zakończyć i zależne od innego programu do przetwarzania odpowiedzi.usługa, który jest celem konwersacji będzie on otrzymywać wiadomości przychodzącej z kolejki dla usługa, odczytuje dane wiadomości, wykonuje wszelkie niezbędne przetwarzania i tworzy i wysyła wiadomość odpowiedzi w razie potrzeby.
Rozszerza usługa Broker Transact-SQL. Aplikacja nie jest konieczne, model obiektowy specjalne lub biblioteki do pracy z usługa Broker.Zamiast tego wysłać programów Transact-SQL polecenia do SQL Server i przetworzenia wyniki tych poleceń. Aplikacja może być uaktywniona przez Service Broker, może działać jako usługa tła, można uruchamiać jako zadanie zaplanowane lub może być uruchamiany w odpowiedzi na zdarzenie.Aby uzyskać więcej informacji dotyczących strategii uruchamianie aplikacji korzystającej z usługa Broker, zobacz Wybieranie strategii Autostart.
Aby uzyskać informacje na temat tworzenia aplikacji z usługa Broker zobacz Korzyści wynikające z programowanie z usługa Broker.
Omówienie aplikacji usługa Broker
Na poniższej ilustracji przedstawiono interakcji w aplikacji korzystającej Z Broker:
Jak pokazano na rysunku, SubmitExpense, AcceptDenyExpense, and ReimbursementIssued typy wiadomości są tworzone najpierw.The ProcessExpenses kontrakt is created based on these message types and provides a schema for having a conversation to complete an expense reimbursement task.The ProcessExpenses kontrakt governs all conversations between the ProcessExpense usługa and the SubmitExpense usługa.The ProcessExpenses kontrakt and the message types that it uses must exist in the databases of all services that have conversations based on this kontrakt.
Service Broker przechowywane są wiadomości wysłane do SubmitExpense usługa w kolejce dla tej usługi.The ExpenseSubmission procedura przechowywana receives messages from this queue, processes them, and sends messages to another usługa if a reply is necessary.
Service Broker przechowywane są wiadomości wysłane do ProcessExpense usługa w kolejce dla tej usługi.The ExpenseProcessing procedura przechowywana receives messages from this queue, processes them, and sends messages to another usługa if a reply is necessary.
Czy można w następujący sposób strukturę konwersację między te dwie usługi:
Użytkownik przesyła żądanie zwrotu kosztów za pomocą interfejs użytkownika.Uruchamia aplikację ExpenseSubmission procedura przechowywana, który tworzy SubmitExpense wiadomości.The SubmitExpense usługa starts a conversation with the ProcessExpense usługa, then sends the SubmitExpense message to the ProcessExpense usługa.
Odbiera usługa Broker SubmitExpense wiadomościProcessExpense usługa i wiadomość są umieszczane w ExpenseQueue kolejki.The ExpenseQueue queue activates the ProcessExpense procedura przechowywana, which dequeues and processes the SubmitExpense message.The ProcessExpense procedura przechowywana then creates an AcceptDenyExpense message and sends this message to the SubmitExpense usługa.Jeśli koszt jest zabroniony, ProcessExpense procedura przechowywana kończy się do konwersacji.
Umieszcza usługa Broker AcceptDenyExpense wiadomościSubmitExpense usługa dla kolejki dla usługa.Jeśli ProcessExpense procedura zakończyła się do konwersacji, usługa Broker umieszcza EndDialog na komunikatWydatki kolejki.Uaktywnia kolejki ExpenseSubmission procedura przechowywana, które dequeues i przetwarza AcceptDenyExpense wiadomości.Jeśli ExpenseSubmission przechowywane procedury znajdzie EndDialog wiadomości w kolejce, procedura kończy się do konwersacji.
Jeśli koszt zostało zaakceptowane, ProcessExpense usługa tworzy i wysyła ReimbursementIssued komunikat potwierdzający, że płatności wydatków zostało wydane, a następnie kończy konwersacji.usługa Broker te wiadomości są umieszczane w kolejce dla usługa.Uaktywnia kolejki ExpenseSubmission procedury i procedury przetwarzania ReimbursementIssued wiadomości.Procedura przetwarza następnie EndDialog komunikat i kończy się do konwersacji.
See Also