BEGIN CONVERSATION TIMER (Transact-SQL)

Platí na:SQL ServerAzureSQL Managed Instance

Spustí časovač. Když vyprší časový limit, Service Broker umístí zprávu typu https://schemas.microsoft.com/SQL/ServiceBroker/DialogTimer do lokální fronty pro konverzaci.

Transact-SQL konvence syntaxe

Syntax

BEGIN CONVERSATION TIMER ( conversation_handle )  
   TIMEOUT = timeout   
[ ; ]  

Arguments

BEGIN CONVERSATION TIMER (conversation_handle)
Specifikuje rozhovor na čas. conversation_handle musí být typu uniqueidentifier.

ČASOVÝ ČAS
Specifikuje během několika sekund dobu, po kterou je třeba počkat, než se zpráva zařadí do fronty.

Remarks

Časovač konverzace umožňuje aplikaci po určité době obdržet zprávu v konverzaci. Zavolání BEGIN CONVERSATION TIMER konverzace před vypršením časovače nastaví timeout na novou hodnotu. Na rozdíl od celoživotního rozhovoru má každá strana rozhovoru samostatný časovač konverzace. Zpráva DialogTimer dorazí do lokální fronty, aniž by ovlivnila vzdálenou část konverzace. Aplikace proto může časovač použít k jakémukoliv účelu.

Například můžete použít časovač konverzace, aby aplikace nečekala příliš dlouho na opožděnou odpověď. Pokud očekáváte, že aplikace dokončí dialog za 30 sekund, můžete nastavit časovač konverzace pro tento dialog na 60 sekund (30 sekund plus 30sekundová lhůta). Pokud je dialog stále otevřený po 60 sekundách, aplikace obdrží ve frontě pro tento dialog zprávu o vypršení času.

Alternativně může aplikace použít časovač konverzace k požadavku na aktivaci v určitý čas. Například můžete vytvořit službu, která každých pár minut hlásí počet aktivních připojení, nebo službu, která každý večer hlásí počet otevřených nákupních objednávek. Služba nastaví časovač konverzace tak, aby vypršel v požadovaný čas; když časovač vyprší, Service Broker odešle zprávu DialogTimer . Zpráva DialogTimer způsobí, že Service Broker spustí aktivační uloženou proceduru fronty. Uložená procedura odešle zprávu vzdálené službě a restartuje časovač konverzace.

BEGIN CONVERSATION TIMER není platná v uživatelsky definované funkci.

Permissions

Oprávnění pro nastavení časovače konverzace je ve výchozím nastavení pro uživatele, kteří mají SEND oprávnění ke službě pro konverzaci, členy role pevného správce systému a členy role db_owner pevné databáze.

Examples

Následující příklad nastavuje dvouminutový časový limit na dialog identifikovaný .@dialog_handle

-- @dialog_handle is of type uniqueidentifier and  
-- contains a valid conversation handle.  
  
BEGIN CONVERSATION TIMER (@dialog_handle)  
TIMEOUT = 120 ;  

Viz také

BEGIN DIALOG CONVERSATION (Transact-SQL)
END CONVERSATION (Transact-SQL)
RECEIVE (Transact-SQL)