Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
Azure SQL Managed Instance
Een contract definieert welke berichttypen een toepassing gebruikt om een bepaalde taak uit te voeren. Een contract is een overeenkomst tussen twee services over welke berichten elke service verzendt om een bepaalde taak uit te voeren. Contractdefinities blijven behouden in de database waarin het type wordt gemaakt.
U maakt een identiek contract in elke database die deelneemt aan een gesprek. Als een human resources-toepassing bijvoorbeeld een werknemer-id wil verifiëren, moet de service die de verificatie aanvraagt, weten welke typen berichten de andere service verwacht. De aanvragende service moet ook weten welke typen berichten het kan verwachten te ontvangen, zodat deze zijn voorbereid om ze te verwerken.
Het contract geeft aan welke berichttypen kunnen worden gebruikt om het gewenste werk uit te voeren. Het contract geeft ook aan welke deelnemer in het gesprek elk berichttype kan gebruiken. Sommige berichttypen kunnen door beide deelnemers worden verzonden; andere berichttypen kunnen alleen worden verzonden door de initiator of alleen door het doel. Een contract moet een berichttype bevatten dat is verzonden door de initiator of een berichttype dat door een deelnemer is verzonden; anders is er geen manier voor de initiator om een gesprek te starten dat gebruikmaakt van het contract.
Service Broker bevat ook een ingebouwd contract met de naam DEFAULT. Het DEFAULT contract bevat alleen het berichttype SENT BY ANY. Als er geen contract is opgegeven in de BEGIN DIALOG instructie, gebruikt Service Broker het DEFAULT contract.
Een contract kan bijvoorbeeld berichttypen SubmitRequest, ProcessRequest en RequestStatus hebben. Alleen het initiërende eindpunt kan SubmitRequest gebruiken en alleen het doeleindpunt kan ProcessRequest verzenden. Beide deelnemers aan het gesprek kunnen het berichttype RequestStatus verzenden. Met het berichttype RequestStatus kan de deelnemer zien waar het doel zich in de verwerking bevindt, of met de initiator controleren op de status van een parallelle verwerking met betrekking tot deze aanvraag.