gpt4 book ai didi

java - 消息驱动 Bean - 单总线、多激活规范

转载 作者:行者123 更新时间:2023-12-01 16:41:51 25 4
gpt4 key购买 nike

我有 2 个消息驱动的 Bean。 2 这些 Bean 的激活规范。我有一个消息总线,并且两个激活规范都配置到这一总线。我有 2 个不同的队列和一个为该消息总线配置的队列连接工厂。

现在,我将编写代码,在确定队列后在运行时向其中一个队列发送消息。但是,我的两个 MDB 都收到相同的消息。这个配置一般是如何完成的?我是否始终配置 1 个队列 -> 1 个队列连接工厂 -> 1 个消息总线 -> 1 个 MDB?这都是一对一的关系吗?

哦,我忘了提一下:我正在使用 Websphere Application Server v6.1

最佳答案

总的来说,这个概念是:

  1. 消息被发送(队列)/发布(主题)到目的地(队列/主题)
  2. ActivationSpec 监听特定目的地(队列/主题)的消息
  3. ActivationSpec:目标是 1:1 关系
  4. Bean(MDB,即消费者)配置为监听 ActivationSpec。

这意味着,实际上,bean 通过activationSpec 提供的间接层链接到目的地。

总线从何而来 - SIBus 是使这一切成为可能的消息传递基础设施。目的地托管在巴士上。

回到这个问题 - ActivationSpec 将被配置为监听总线上消息将发送到的目的地。连接工厂决定消息将发送到的总线。只要目标名称是唯一的并且针对特定队列(JMS 队列链接到总线上的目标),一条消息就只能由一个 ActivationSpec 接收。

总线上已创建了多少个目的地(在 WAS 管理控制台的 SIBus 链接下)?您能否检查/验证配置是否正确?

回答您的问题 - “每个激活规范是否有一个总线,每个队列有一个队列连接工厂。” - 答案是否定的。

  1. 总线是可以承载“n”个目的地的底层基础设施。一个 ActivationSpec 监听一个目的地。
  2. 带队列连接工厂是用于创建队列的工厂(J2EE工厂模式)。

关于java - 消息驱动 Bean - 单总线、多激活规范,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1031728/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com