BEGIN CONVERSATION TIMER (Transact-SQL)

Şunlar için geçerlidir: SQL Server Azure SQL Yönetilen Örneği

Bir zamanlayıcı başlatıyor. Zaman aşımı dolduğunda, Service Broker konuşma için yerel kuyruğa bir tür https://schemas.microsoft.com/SQL/ServiceBroker/DialogTimer mesaj koyar.

Transact-SQL söz dizimi kuralları

Syntax

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

Arguments

BEGIN CONVERSATION TIMER (conversation_handle)
Konuşmayı zamana göre belirler. conversation_handlebenzersiz tanımlayıcı türünde olmalıdır.

MOLA
Mesajı kuyruğa koymadan önce bekleme süresini saniyeler içinde belirtir.

Remarks

Bir konuşma zamanlayıcısı, bir uygulamanın belirli bir süre sonra bir konuşmada mesaj almasını sağlar. Zamanlayıcı süresi dolmadan bir konuşma çağırmak BEGIN CONVERSATION TIMER , zaman aşımını yeni değere ayar. Konuşma süresinin aksine, her iki tarafın bağımsız bir konuşma zamanlayıcısı vardır. DialogTimer mesajı, konuşmanın uzak tarafını etkilemeden yerel kuyruk üzerine gelir. Bu nedenle, bir uygulama herhangi bir amaçla zamanlayıcı mesajı kullanabilir.

Örneğin, bir uygulamanın gecikmiş bir yanıt için çok uzun süre beklemesini engellemek için konuşma zamanlayıcısını kullanabilirsiniz. Uygulamanın bir diyalogu 30 saniyede tamamlamasını bekliyorsanız, o diyalog için konuşma zamanlayıcısını 60 saniyeye (30 saniye artı 30 saniyelik bir geçiş süresi) ayarlayabilirsiniz. Eğer diyalog 60 saniye sonra hala açıksa, uygulama o diyalog için kuyruk üzerinde bir zaman aşımına mesaj alır.

Alternatif olarak, bir uygulama belirli bir zamanda etkinleştirme talep etmek için bir konuşma zamanlayıcısı kullanabilir. Örneğin, aktif bağlantı sayısını birkaç dakikada bir raporlayan bir hizmet veya her akşam açık satın alma siparişi sayısını bildiren bir hizmet oluşturabilirsiniz. Hizmet, istenen saatte bir konuşma zamanlayıcısı ayar; zamanlayıcı dolduğunda, Service Broker bir DialogTimer mesajı gönderir. DialogTimer mesajı, Service Broker'ın kuyruk için etkinleştirme depolama prosedürünü başlatmasına neden olur. Saklanan prosedür, uzaktan servise bir mesaj gönderir ve konuşma zamanlayıcısını yeniden başlatır.

BEGIN CONVERSATION TIMER kullanıcı tanımlı bir fonksiyonda geçerli değildir.

Permissions

Konuşma zamanlayıcısı SEND ayarlama izni, hizmet üzerinde konuşma için izinleri olan kullanıcılara, sistem yöneticisinin sabit sunucu rolünün üyelerine ve db_owner sabit veritabanı rolünün üyelerine yönelmiştir.

Examples

Aşağıdaki örnek, ile @dialog_handletanımlanan diyalogda iki dakikalık bir zaman aşımını belirler.

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

Ayrıca Bkz.

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