【问题标题】:Exchange JMS message across managed servers in weblogic在 weblogic 中跨托管服务器交换 JMS 消息
【发布时间】:2014-09-06 21:40:54
【问题描述】:
注意:我有一个没有 weblogic 集群许可证的客户。我们配置了两个托管服务器,每个服务器都有一个 JMSServers。
问题:信息从数据库中缓存。当有人通过后端作业修改数据库条目时,会有更新缓存的通知。该通知应发布到每个托管服务器中的队列或主题中。
我尝试了 SAF 主题,但它无法向本地和远程主题发布消息。
如何在没有集群的情况下在两台托管服务器之间可靠地交换消息。
【问题讨论】:
标签:
jms
weblogic-10.x
java-ee-5
【解决方案1】:
这就是我所做的。
假设有三个 weblogic 托管服务器(MSERVER-01、MSERVER-02、MSERVER-03)并且阅读此消息的人知道创建域、托管服务器、JMS 服务器、JMS 模块、JMS 连接工厂、JMS主题、JMS 消息桥目标和最后一个桥。
解决问题的步骤:
创建三个 JMSServer,一个用于上面列出的每个服务器。
针对每个 JMS 服务器创建 3 个 JMS 模块
在每个 JMS 模块中创建一个具有默认目标的连接工厂
在每个 JMS 模块中创建 2 个 TOPICS,一个命名为 NOTIFICATION_MANAGER_TOPIC,另一个命名为 MSG_PROCESSOR_TOPIC。
创建指向每个 NOTIFICATION_MANAGER_TOPIC 作为 N1、N2、N3 的源消息桥目标
创建指向每个 MSG_PROCESSOR_TOPIC 作为 P1、P2、P3 的目标消息桥目标
将桥创建为 N1 到 P1、N1 到 P2、N1 到 P3
将桥创建为 N2 到 P1、N2 到 P2、N2 到 P3
将桥创建为 N3 到 P1、N3 到 P2、N3 到 P3
消息桥准备就绪后,您可以使用以下示例代码将消息发布到 N1(NOTIFICATION_MANAGER_TOPIC),您将看到消息被传递到所有 MSG_PROCESSOR_TOPIC 即 P1、P2、P3。
注意:网桥不适合域内的通信。对于没有创建分布式主题所需的 weblogic 集群许可证的人来说,这只是一种解决方法。此外,您可以尝试使用 SAF(存储和转发)而不是 Bridge。