BEGIN CONVERSATION TIMER (Transact-SQL)

A következőkre vonatkozik:SQL ServerAzure SQL Managed Instance

Időzítőt indít. Amikor az időkérés lejár, a Service Broker egy üzenetet https://schemas.microsoft.com/SQL/ServiceBroker/DialogTimer helyez el a helyi sorba a beszélgetéshez.

Transact-SQL szintaxis konvenciók

Syntax

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

Arguments

BEGIN CONVERSATION TIMER (conversation_handle)
Időhöz igazítja a beszélgetést. A conversation_handle egyedi azonosító típusúnak kell lennie.

IDŐKORLÁT
Másodpercekben megadja, mennyi várakozási idő kell, mielőtt az üzenet a sorba kerül.

Remarks

A beszélgetésidőzítő lehetőséget ad arra, hogy az alkalmazás egy adott idő után üzenetet kapjon egy beszélgetésről. Ha BEGIN CONVERSATION TIMER egy beszélgetést az időzítő lejárta előtt indítunk, az új értékre állítja be az időkérést. A beszélgetés élettartamával ellentétben mindkét oldalnak van egy független beszélgetésidőzítője. A DialogTimer üzenet a helyi sorba érkezik anélkül, hogy befolyásolná a beszélgetés távoli oldalát. Ezért egy alkalmazás bármilyen célra használhat időzítő üzenetet.

Például használhatod a beszélgetésidőzítőt, hogy megakadályozd, hogy egy alkalmazás túl sokáig várjon egy késésszerű válaszra. Ha azt várod, hogy az alkalmazás 30 másodperc alatt befejezze a párbeszédet, akkor a párbeszéd időzítőjét 60 másodpercre állíthatod (30 másodperc plusz 30 másodperces türelmi idő). Ha a párbeszéd 60 másodperc után is nyitva marad, az alkalmazás időtúli üzenetet kap a sorban ehhez a párbeszédhez.

Alternatívaként egy alkalmazás használhat beszélgetésidőzítőt, hogy egy adott időpontban aktiválást kérjen. Például létrehozhatsz egy szolgáltatást, amely néhány percenként jelenti az aktív kapcsolatok számát, vagy egy szolgáltatást, amely minden este a nyílt vásárlási megrendelések számát jelenti. A szolgáltatás egy beszélgetésidőzítőt állít be, hogy a kívánt időpontban lejárjon; amikor lejár az időzítő, a Service Broker DialogTimer üzenetet küld. A DialogTimer üzenet miatt a Service Broker elindítja a sor aktiválási tárolási eljárását. A tárolt eljárás üzenetet küld a távoli szolgáltatásnak, és újraindítja a beszélgetés időzítőjét.

BEGIN CONVERSATION TIMER nem érvényes egy felhasználó által definiált függvényben.

Permissions

A beszélgetésidőzítő beállításának joga alapértelmezettként azoknak a felhasználóknak szól, akiknek SEND a szolgáltatás joga van a beszélgetéshez, a rendszertanhallgató fix szerver tagjai, valamint a db_owner fix adatbázis szerepének tagjai.

Examples

A következő példa két perces időkérést ad a párbeszédre, amelyet az azonosít.@dialog_handle

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

Lásd még

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