WEB开发网
开发学院数据库MSSQL Server SQL Server 2005 Service Broker 初探 阅读

SQL Server 2005 Service Broker 初探

 2007-05-13 09:26:17 来源:WEB开发网   
核心提示: 因为所有 Service Broker 操作都在数据库事务环境中发生,所以保证了消息传送操作的 事务完整性,SQL Server 2005 Service Broker 初探(6),典型的 Service Broker 消息处理事务包括以下步骤:1.开始事务,2.从会话组中接收一条或多条消

因为所有 Service Broker 操作都在数据库事务环境中发生,所以保证了消息传送操作的 事务完整性。典型的 Service Broker 消息处理事务包括以下步骤:

1.

开始事务。

2.

从会话组中接收一条或多条消息。

3.

从状态表中检索会话的状态。

4.

处理消息并根据消息内容对应用程序数据进行一项或多项更新。

5.

发送一些 Service Broker 消息:即,将响应发送到传入的消息或将消息发送到处理传入消息所需的其他服务。

6.

如果此会话组包含其他消息,则读取和处理此会话组中的其他消息。

7.

使用新的会话状态更新会话状态表。

8.

提交事务

Service Broker 事务性消息传送的一项重要功能是在任何时间如果崩溃或应用程序发生错误,事务将回滚并且一切都返回到事务开始时的状态,即状态不变、应用程序数据不变、消息未发送并且接收的消息返回到队列中。这使此类应用程序中的错误处理非常简单。

队列读取器管理

在 Service Broker 应用程序的消息处理过程中,队列读取器首先从队列接收消息。由于消息始终从队列中拉出,因此在消息到达队列时接收应用程序必须正在运行。许多异步消息应用程序都面临着一个问题,即如何确保队列读取器在需要时处于运行状态?有两种传统的方法:让队列读取器成为连续运行的服务,或者使用触发器,在每条消息到达时,都将触发消息传送系统。Windows NT 服务方法是指即使在不处理消息时也运行应用程序。由于队列读取器频繁开始和停止,触发器方法可能会遇到性能问题。

Service Broker 采用称为激活的中间状态方法来管理队列读取器。为设置激活,DBA 将存储过程与 Service Broker 队列相关联。当第一条消息到达队列时,激活逻辑将启动指定的存储过程。存储过程负责接收和处理消息,直到队列为空。队列为空后,存储过程可以终止以节省资源。

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:SQL Server Service

编辑录入:coldstar [复制链接] [打 印]
赞助商链接