【问题标题】:How can I configure more than one MQ queue Manager and connection factory in weblogic 11 in a clustered environment如何在集群环境中的 weblogic 11 中配置多个 MQ 队列管理器和连接工厂
【发布时间】:2014-03-05 14:37:54
【问题描述】:

所以问题来了。我有一个在 weblogic 8 中运行的应用程序,它严重依赖于 JMS 消息。消息从集群 MQ 服务器流出,并且 ejb 2 中的应用程序使用 weblogic-ejb-jar.xml 中的配置直接在 MQ 中侦听。 MQ 服务器有两个队列管理器和这些管理器的两个不同的连接工厂名称。

    <weblogic-enterprise-bean>
    <ejb-name>MDB_QM1</ejb-name>
    <message-driven-descriptor>
        <destination-jndi-name>QM1</destination-jndi-name>
        <initial-context-factory>weblogic.jndi.WLInitialContextFactory</initial-context-factory>
        <connection-factory-jndi-name>CF1</connection-factory-jndi-name>
    </message-driven-descriptor>
    </weblogic-enterprise-bean>
    <weblogic-enterprise-bean>

    <ejb-name>MDB_QM2</ejb-name>
    <message-driven-descriptor>
        <destination-jndi-name>QM2</destination-jndi-name>
        <initial-context-factory>weblogic.jndi.WLInitialContextFactory</initial-context-factory>
        <connection-factory-jndi-name>CF2</connection-factory-jndi-name>
    </message-driven-descriptor>        
    </weblogic-enterprise-bean>

现在应用程序将迁移到 weblogic 10.3,并且配置已经在测试中完成,.ejb 版本已更改为 3,并且他们已在 mdbs 中使用注释进行队列配置等。但真正的问题是这个,应用程序过去直接监听 MQ,现在他们配置了一个桥,它将消息从 MQ 传输到内部队列,mdb 将监听该队列。 weblogic 桥配置中的源 MQ 队列配置中只有一个连接工厂,我不确定是否可以在单个队列中配置多个队列管理器、连接工厂等。但在生产中会有多个队列管理器等。

我认为如果我为这些队列配置外部服务器,那么集群将是可能的。但这也意味着应用程序和 weblogic 配置的巨大变化。因此,我正在寻找的理想解决方案是一种使用现有网桥配置连接到那些多个 MQ 队列管理器的方法。如果不可能,请建议下一个最好的方法。我对所有想法持开放态度:)

谢谢

【问题讨论】:

  • 这里的桥是什么,什么是内部队列?在当前设置中,两个队列是否从源系统接收到类似的消息?
  • 感谢您的回复,内部队列是指 weblogic 中的本地 jms 队列。本地队列和远程队列 (MQ) 之间存在桥梁。在当前设置中,它们的 MQ 管理器和 MQconnection 工厂不同,但队列名称相同,因此它们发送的消息相似。据我了解,多个管理器提供高可用性。所以如果一个队列管理器宕机了,其他的可以处理消息。
  • 如果我理解正确,网桥将负责从 MQ 队列(多个安装或集群)中获取消息并将其放入 Weblogic JMS 队列中。您只需修改 MDB 即可从此 JMS 队列中获取消息。 MDB 正在做的任何事情现在都由网桥完成。所以我不知道这里有什么问题。能说清楚吗?
  • MDB 正在侦听正确的队列。我唯一关心的是网桥是否能够同时连接到多个队列管理器(MQ 端)以提供故障转移?
  • 好的。你还没有提供关于这座桥的详细信息。所以这里很难评论。一个独立的 mq 应用程序(可能是这种类型的网桥)可以连接到多个队列或配置(使用绑定或 mq CCDT 或仅配置文件)连接到一个 qmgr 并在 DR 期间故障转移到另一个。如果您担心桥梁,那么我建议您与桥梁开发人员讨论它的工作原理,并在此处提出更多问题。希望对你有帮助

标签: ejb jms weblogic ibm-mq weblogic-10.x


【解决方案1】:

WebSphere MQ 集群完全是关于 QMgrs 如何相互通信,并且不会向应用程序隐藏一个队列有多个物理实例的事实。每个队列管理器实例都需要一个单独的连接。该应用需要...

  • 为每个队列实例使用一个网桥实例。
  • 将网桥配置为与不同的 QMgrs 建立多个同时连接。

决定使用单个连接工厂配置网桥的人没有考虑底层传输的架构。无论您多么努力,都无法通过配置来克服这个糟糕的决定。

【讨论】:

  • 谢谢 T.Rob。我们进行了设计更改并创建了两个连接工厂:)
猜你喜欢
  • 1970-01-01
  • 2021-05-14
  • 1970-01-01
  • 1970-01-01
  • 2014-01-27
  • 2023-03-26
  • 2014-09-30
  • 1970-01-01
  • 2018-12-17
相关资源
最近更新 更多