【发布时间】:2018-09-14 22:45:29
【问题描述】:
在 JMS 中,有一个 Temporary Queue 的概念。它是一个队列,仅存在于特定的 JMS 连接中。它由客户端在事务期间创建,并在连接关闭时销毁。临时队列本身可以用作 JMS 回复地址 JMS API。使用 JMS 实现请求-回复模式是一种便捷的方式。
但是是否可以在不同的 WebLogic 域中打开与 两个不同的 JMS 服务器的 JMS 连接,在其他 JMS 服务器中创建临时队列并将其用作回复地址消息发送到另一个 JMS 服务器?此外,如果这很重要,两个 WebLogic 域中的 JMS 服务器都是集群的(分布式目标)。
- 对于事务,服务 1 在其 JMS 提供程序中创建临时队列
- 服务 1 向不同域中的另一个 JMS 提供者发送消息。消息包含临时队列作为回复地址。服务 1 阻塞,直到回复消息到达临时队列。
- 服务 2 MDB 处理传入的请求消息
- 服务 2 向服务 1 的临时队列发送回复消息。
- 服务 1 处理传入的回复消息。
这两个服务将有多个实例。此外,在返回到服务 1 之前,消息可能会从服务 2 进一步路由到另一个域。临时队列的回复地址必须承受路由中的所有“跃点”。纯 Java EE 可以做到这一点吗?
【问题讨论】:
标签: jakarta-ee jms weblogic message-queue messaging