sql server 2005 T-SQL BEGIN CONVERSATION TIMER (Transact-SQL)

编程知识 更新时间:2023-05-02 21:11:02

启动计时器。超时过期后,Service Broker 将一条类型为 http://schemas.Microsoft/SQL/ServiceBroker/Messages/DialogTimer 的消息放到会话的本地队列中。

 Transact-SQL 语法约定

 语法
BEGIN CONVERSATION TIMER ( conversation_handle )
TIMEOUT = timeout
[ ; ]
 参数
BEGIN CONVERSATION TIMER ( conversation_handle )

指定要计时的会话。conversation_handle 必须是 uniqueidentifier 类型。

TIMEOUT

指定在将消息放入队列之前要等待的时间,以秒为单位。

 备注

会话计时器为应用程序提供了一种方式,可以在指定时间后接收与某个会话有关的消息。如果在计时器过期前对会话调用 BEGIN CONVERSATION TIMER,可将超时设置为新值。与会话生存期不同,会话双方的会话计时器彼此独立。DialogTimer 消息到达本地队列时,不会影响会话的远程端。因此,应用程序可以将计时器消息用于任何目的。

例如,可以使用会话计时器避免应用程序过久地等待过期响应。如果希望应用程序在 30 秒内完成对话,则可将对话的会话计时器设置为 60 秒(30 秒加 30 秒的宽限期)。如果对话 60 秒后仍处于打开状态,则应用程序将收到一条关于该对话队列的超时消息。

此外,应用程序可以使用会话计时器请求在特定时间进行激活。例如,可以创建一个服务,每隔几分钟报告活动连接数;或者创建一种服务,每天晚上报告未清的采购订单。该服务将会话计时器设置为在所需时间过期;计时器过期时,Service Broker 将发送一条 DialogTimer 消息。DialogTimer 消息导致 Service Broker 启动队列的激活存储过程。该存储过程将向远程服务发送一条消息,并重新启动会话计时器。

BEGIN CONVERSATION TIMER 在用户定义函数中无效。

权限

在默认情况下,对会话服务具有 SEND 权限的用户、sysadmin 固定服务器角色的成员和 db_owner 固定数据库角色的成员具有设置会话计时器的权限。

 示例

以下示例为由 @dialog_handle 标识的对话设置两分钟的超时。

复制代码
-- @dialog_handle is of type uniqueidentifier and
-- contains a valid conversation handle.

BEGIN CONVERSATION TIMER (@dialog_handle)
TIMEOUT = 120 ;
 

更多推荐

sql server 2005 T-SQL BEGIN CONVERSATION TIMER (Transact-SQL)

本文发布于:2023-04-28 16:45:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/215f84ce60c9a0e0eae2e7d6adfe5880.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:server   sql   SQL   Transact   TIMER

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 109151文章数
  • 27711阅读数
  • 0评论数