排队组件体系结构

COM+ 排队组件服务通过提供一个可以同步(实时)或异步(排队)调用组件的环境来增强 COM 编程模型。 组件不需要知道它是在实时上下文中使用还是在排队上下文中使用。

消息传递应用程序类似于程序之间的电子邮件事务。 请求者向服务器发送消息;当服务器到达时,消息将被处理。 与电子邮件一样,消息系统必须处理网络详细信息,并确保消息从客户端移动到服务器。 在排队组件框架中,消息队列对此负责。

COM+ 排队组件服务由以下部分组成:

  • 记录器(用于客户端或发送端)
  • 侦听器(用于服务器或接收端)
  • 播放器(用于服务器或接收端)

Diagram that shows the path from the client to the server: client, recorder, queue, listener, player, server.

记录器

在典型的排队组件场景中,客户端调用排队组件。 调用是对排队的组件记录器进行的,该记录器将其作为消息的一部分打包到服务器,并将其放入队列中。 记录器将客户端的安全上下文封送至消息中,并记录客户端的所有方法调用。 记录器作为服务器组件的代理,从 COM+ 目录中的可查询接口中选择接口。

记录的表示形式作为要发送到服务器的消息发送到消息队列。 当排队组件的事务属性设置为“必需”或“支持”时,只有当客户端事务提交并且消息队列队列是事务性的(这是通常建立的默认值)时,消息队列才接受消息传递。 当事务属性设置为“Requires New”时,即使客户端事务中止,消息队列也可以接受消息。 有关事务的详细信息,请参阅事务性消息队列

侦听器

排队的组件侦听器从队列中检索消息,并将其传递给排队的组件播放器。

播放器

播放器在服务器端拆收客户端的安全上下文,然后调用服务器组件,并进行相同的方法调用。 在客户端组件完成并且记录方法调用的事务提交之前,播放器不会回放方法调用。

消息移动器

排队组件消息移动器是一种实用工具,用于将所有失败的消息队列消息从一个队列移动到另一个队列,以便重试。 消息移动器实用工具是可以使用 VBScript 调用的自动化对象;有关详细信息,请参阅处理错误