状态管理

需要维护状态的应用程序通常在数据库表中存储相应状态。由于每个会话组都具有唯一标识符,因而此标识符通常用作状态表的键。Service Broker 还为必须保留发送和接收的确切消息的应用程序提供消息保持。

许多应用程序不需要维护状态。一般而言,如果任务涉及多个消息,且任务的有关信息无法存储在数据库的现有表中,则相应应用程序需要维护状态。

例如,查找和返回客户信息的应用程序不需要维护状态,并且不使用状态表。不同的是,管理订单履行的应用程序会生成针对其他若干服务的请求。协调针对其他服务的请求的程序通常使用状态表跟踪这些请求。此应用程序将更新相应的数据表并在所有请求已成功完成时清除状态表。如果某请求返回错误,则此应用程序将重新发送此请求,或使用状态表发送补救请求。

应用程序还可将状态表用于审核或日志记录目的。应用程序会将有关每个请求的重要信息保存到状态表。在这种情况下,应用程序不在会话完成时删除状态表中的信息。

某些应用程序可能需要在会话处于活动状态期间发送和接收的消息的确切记录。对于这种情况,Service Broker 可提供消息保持。