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
Zet een timer op. Wanneer de time-out afloopt, plaatst Service Broker een bericht van type https://schemas.microsoft.com/SQL/ServiceBroker/DialogTimer in de lokale wachtrij voor het gesprek.
Transact-SQL syntaxis-conventies
Syntax
BEGIN CONVERSATION TIMER ( conversation_handle )
TIMEOUT = timeout
[ ; ]
Arguments
BEGIN CONVERSATION TIMER
(conversation_handle)
Specificeert het gesprek op tijd. De conversation_handle moet van type uniqueidentifier zijn.
TIME-out
Geeft in seconden de wachttijd aan voordat het bericht in de wachtrij wordt geplaatst.
Remarks
Een gesprekstimer biedt een applicatie een manier om een bericht te ontvangen tijdens een gesprek na een bepaalde tijd. Een gesprek aanroepen BEGIN CONVERSATION TIMER voordat de timer is verlopen, zet de time-out op de nieuwe waarde. In tegenstelling tot het gespreksleven heeft elke kant van het gesprek een onafhankelijke gesprekstimer. Het DialogTimer-bericht arriveert in de lokale wachtrij zonder de externe kant van het gesprek te beïnvloeden. Daarom kan een applicatie een timerbericht voor elk doel gebruiken.
Je kunt bijvoorbeeld de gesprekstimer gebruiken om te voorkomen dat een applicatie te lang wacht op een te laat antwoord. Als je verwacht dat de applicatie een dialoog in 30 seconden voltooit, kun je de gesprekstimer voor die dialoog op 60 seconden instellen (30 seconden plus een respijtperiode van 30 seconden). Als de dialoogkaart na 60 seconden nog open is, ontvangt de applicatie een time-out-melding in de wachtrij voor die dialoog.
Alternatief kan een applicatie een gesprekstimer gebruiken om activatie op een bepaald moment aan te vragen. Je kunt bijvoorbeeld een dienst maken die elke paar minuten het aantal actieve verbindingen rapporteert, of een dienst die elke avond het aantal openstaande bestellingen rapporteert. De dienst stelt een gesprekstimer in om op het gewenste tijdstip af te lopen; wanneer de timer afloopt, stuurt Service Broker een DialogTimer-bericht . Het DialogTimer-bericht zorgt ervoor dat Service Broker de activatie-opgeslagen procedure voor de wachtrij start. De opgeslagen procedure stuurt een bericht naar de externe dienst en start de gesprekstimer opnieuw.
BEGIN CONVERSATION TIMER is niet geldig in een door de gebruiker gedefinieerde functie.
Permissions
Toestemming voor het instellen van een gesprekstimer is standaard voor gebruikers die rechten hebben SEND op de service voor het gesprek, leden van de sysadmin-vaste serverrol, en leden van de db_owner vaste databaserol.
Examples
Het volgende voorbeeld stelt een time-out van twee minuten in op de dialoog die wordt geïdentificeerd door @dialog_handle.
-- @dialog_handle is of type uniqueidentifier and
-- contains a valid conversation handle.
BEGIN CONVERSATION TIMER (@dialog_handle)
TIMEOUT = 120 ;
Zie ook
BEGIN DIALOG CONVERSATION (Transact-SQL)
END CONVERSATION (Transact-SQL)
RECEIVE (Transact-SQL)