在weblogic中跨受管服务器交换JMS消息

时间:2014-07-16 11:20:05

标签: jms weblogic-10.x java-ee-5

注意:我的客户没有weblogic群集许可证。我们配置了两个托管服务器,每个托管服务器都有一个JMSServers。

问题:信息是从数据库缓存的。当有人通过后端作业修改数据库条目时,将会有通知来更新缓存。该通知应发布到每个受管服务器中的队列或主题。

我尝试过SAF主题,但无法将消息发布到本地和远程主题。

如何在没有群集的两台受管服务器之间可靠地交换消息。

1 个答案:

答案 0 :(得分:0)

这就是我所做的。

假设有三个weblogic托管服务器(MSERVER-01,MSERVER-02,MSERVER-03),并且读取此消息的人知道要创建域,托管服务器,JMS服务器,JMS模块,JMS连接工厂,JMS主题,JMS消息桥目的地和最后一个桥。

解决问题的步骤:

  1. 创建三个JMSServers,每个JMSServers对应于上面列出的每个服务器。

  2. 创建3个JMS模块,目标是每个JMS服务器

  3. 在每个JMS模块中创建一个具有默认目标的连接工厂

  4. 在每个JMS模块中创建2个TOPICS,一个名为NOTIFICATION_MANAGER_TOPIC的另一个MSG_PROCESSOR_TOPIC。

  5. 创建指向每个NOTIFICATION_MANAGER_TOPIC的源消息桥目标,如N1,N2,N3

  6. 创建指向每个MSG_PROCESSOR_TOPIC的目标消息桥目标,如P1,P2,P3

  7. 创建桥梁为N1到P1,N1到P2,N1到P3

  8. 创建桥梁为N2到P1,N2到P2,N2到P3

  9. 创建桥梁为N3到P1,N3到P2,N3到P3

  10. 消息桥准备就绪后,您可以使用以下示例代码将消息发布到N1(NOTIFICATION_MANAGER_TOPIC),您将看到消息被传递到所有MSG_PROCESSOR_TOPIC,即P1,P2,P3。

    注意:网桥不适合域内的通信。对于没有创建分布式主题所需的weblogic集群许可证的人来说,这只是一种解决方法。此外,您可以尝试SAF(存储转发)而不是Bridge。