一般来说,这个概念是:
- 消息被发送(队列)/发布(主题)到目的地(队列/主题)
- ActivationSpec 侦听特定目的地(队列/主题)的消息
- ActivationSpec : 目标是 1:1 的关系
- 一个bean(作为消费者的MDB)被配置为监听一个ActivationSpec。
这意味着实际上 bean 使用由activationSpec 提供的间接层链接到目的地。
总线从何而来——SIBus 是使这一切成为可能的消息传递基础设施。目的地位于巴士上。
来到这个问题 - ActivationSpec 将被配置为监听总线上的目的地,消息将发送到该目的地。连接工厂决定将消息发送到的总线。只要目标名称是唯一的并且针对特定队列(JMS 队列链接到总线上的目标),一条消息就只能由一个 ActivationSpec 接收。
总线上创建了多少个目的地(在 WAS 管理控制台中的 SIBus 链接下)?您能否检查/验证配置是否正确?
回答您的问题 - “每个激活规范是否有一个总线,每个队列有一个队列连接工厂。” - 答案是不。
- Bus is the underlying infrastructure that can host "n" destinations. One ActivationSpec listens to one destination.
- With queue connection factory is a factory (J2EE factory pattern) for creating queues.