Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:SQL Server
Azure SQL Managed Instance
Ett kontrakt definierar vilka meddelandetyper ett program använder för att utföra en viss uppgift. Ett kontrakt är ett avtal mellan två tjänster om vilka meddelanden varje tjänst skickar för att utföra en viss uppgift. Kontraktsdefinitioner finns kvar i databasen där typen skapas.
Du skapar ett identiskt kontrakt i varje databas som deltar i en konversation. Om ett personalprogram till exempel vill verifiera ett medarbetar-ID måste tjänsten som begär verifieringen veta vilka typer av meddelanden som den andra tjänsten förväntar sig. Den begärande tjänsten måste också veta vilka typer av meddelanden den kan förvänta sig att ta emot så att den är beredd att bearbeta dem.
Kontraktet anger vilka meddelandetyper som kan användas för att utföra önskat arbete. Kontraktet anger också vilken deltagare i konversationen som kan använda varje meddelandetyp. Vissa meddelandetyper kan skickas av någon av deltagarna. andra meddelandetyper är begränsade till att endast skickas av initieraren eller endast av målet. Ett kontrakt måste innehålla en meddelandetyp som skickats av initieraren eller en meddelandetyp som skickats av någon av deltagarna. Annars finns det inget sätt för initieraren att starta en konversation som använder kontraktet.
Service Broker innehåller också ett inbyggt kontrakt med namnet DEFAULT. Kontraktet DEFAULT innehåller endast meddelandetypen SENT BY ANY. Om inget kontrakt anges i -instruktionen BEGIN DIALOG använder DEFAULT Service Broker kontraktet.
Ett kontrakt kan till exempel ha meddelandetyperna SubmitRequest, ProcessRequest och RequestStatus. Endast den initierande slutpunkten kan använda SubmitRequest och endast målslutpunkten kan skicka ProcessRequest. Någon av deltagarna i konversationen kan skicka meddelandetypen RequestStatus . Meddelandetypen RequestStatus låter deltagaren antingen se var målet är i bearbetningen eller kontrollera med initieraren om statusen för eventuell parallell bearbetning som är relaterad till den här begäran.