应用多个QueueManager

时间:2015-09-02 09:58:44

标签: jms ibm-mq spring-jms

我需要向不同的队列管理器发送消息(不同的QM名称,主机端口对)。

处理此方案的最佳方法是什么?我是否需要为每个队列管理器创建单独的ConnectionFactory?

用例:向分布式代理(FTE代理)发送命令消息的Java服务。但是,这些代理可以在不同的队列管理器上侦听不同的队列。

3 个答案:

答案 0 :(得分:0)

是的,您需要为每个JMS服务器使用不同的ConnectionFactory。您只能对一个Message Broker上的各种队列重用ConnectionFactory

答案 1 :(得分:0)

我认为您最好通过在JMS应用程序连接到的队列管理器上创建的远程队列定义来连接托管队列的不同队列管理器并访问远程队列。

如果您要在FTE代理之间移动文件,我猜这些队列管理器已经连接。

答案 2 :(得分:0)

FTE具有命令队列管理器的概念。该节点被指定为应用程序在与FTE代理通信时应连接的一个QMgr。如果网络已正确定义,则将显示所有FTE代理与Command QMgr之间的连接。

设计是FTE实施安全的方式之一。在代理QMgrs上,来自命令队列管理器的通道可以非常专门地授权给队列的子集和监视的消息。该设计提供了一个政策执行点。由于FTE安全模型一开始就很薄弱,因此尝试正确使用所提供的安全控制非常重要。

此设计还意味着无需在所有代理QMgrs中管理应用程序服务帐户凭据。

所以,是的,使用Command QMgr达到预期目的。拥有一个且只有一个连接工厂,并使用Command QMgr及其通道作为策略执行点,正确设计和保护FTE网络。