将 COM+ 事件与 COM+ 排队组件配合使用

COM+ 事件服务用于管理从发布服务器到订阅服务器的传递事件。 COM+ 排队组件服务可用于使发布服务器和订阅者处理时间独立于队列发布者的消息,稍后将其重播给订阅服务器。 是否需要使用排队组件服务取决于应用程序的基础业务逻辑。 如果需要具有与时间无关的事件,可以使用 COM+ 事件服务与 COM+ 排队组件服务来创建它们。

注意

有关使用 COM+ 排队组件服务的其他信息,请参阅 COM+ 排队组件

 

排队的组件服务在单个消息中维护方法顺序调用。 录制器将所有方法调用批处理到消息中,然后播放器按处理消息的顺序调用这些方法。

排队的组件记录器和播放器可以定位在以下两个位置之一:

  • 在发布服务器和事件对象之间
  • 在事件对象和订阅服务器之间

如果将记录器和播放器放置在发布者和事件对象之间,则你正在使 事件类 组件可排队。 事件类组件必须标记为队列,并由玩家在独立于发布服务器的进程中激活。

若要异步传递事件,请将事件对象与订阅服务器之间的记录器和播放器组合在一起,并设置订阅对象的 Queued 属性。 这会设置 SubscriberMoniker,如下所示:“queue:/new:/{12345678-1234-1234-1234-123456789012}”。

在事件情况下使用排队组件时,需要考虑传递含义。 由于排队组件服务记录并在一条消息中单个对象的生存期内播放所有调用,因此所有调用都按进行的顺序重播。 但是,如果有多个具有多个对象的会话,则无法保证顺序。 如果顺序很重要,请确保需要按顺序播放的调用驻留在同一对象实例上。

在 COM+ 中筛选事件

在 COM+ 中发布和传送事件

订阅

COM+ 事件类对象