gpt4 book ai didi

ibm-mq - IBM WAS7队列工厂配置到MQ集群

转载 作者:行者123 更新时间:2023-12-01 23:15:57 35 4
gpt4 key购买 nike

我正在尝试配置连接到集群MQ的集群Websphere应用程序服务器。

但是,我所掌握的信息是两个具有不同主机名,服务器通道和队列管理器的MQ实例的详细信息,这些主机名属于同一MQ集群名称。

在Websphere控制台上,我可以看到主机名,队列管理器和服务器通道的输入字段,找不到任何可以指定多个MQ详细信息的内容。

如果我选择其中一个MQ详细信息,那么MQ集群是否仍然有效?如果没有,给定我的详细信息,如何启用MQ集群?

最佳答案

WebSphere MQ集群影响队列管理器之间如何进行对话的行为。它不会改变应用程序连接或与队列管理器进行通信的方式,因此所提出的问题似乎是假设某种群集行为在WMQ中不存在。

要使用两个地址设置应用程序服务器,请参阅WAS v7知识中心中的Configuring multi-instance queue manager connections with WebSphere MQ messaging provider custom properties,以获取有关如何使用多实例CONNAME值配置连接工厂的说明。

如果您在连接工厂中指定了有效的QMgr名称,并且应用程序连接到的QMgr没有该特定名称,则连接将被拒绝。通常,多实例CONNAME用于连接到多实例QMgr。这是一个单一的高可用性队列管理器,可以位于两个不同的IP地址之一,因此在这种情况下使用真实的QMgr名称是可行的。但是,如果您的应用程序连接到的QMgr是两个不同且名称不同的队列管理器(即您所描述的),则应在连接工厂中指定星号(*字符)作为队列管理器名称,如< aa>。这样,应用程序在获得连接时将不会检查QMgr的名称。


如果我选择其中一个MQ详细信息,那么MQ集群是否仍然有效?如果不,
给定我的详细信息,如何启用MQ集群?


取决于您所说的“聚类”。如果您认为该应用程序将看到一个由两个队列管理器托管的逻辑队列,则不会。这不是WMQ群集的工作方式。承载集群队列的每个队列管理器都会获取发送到该队列的消息的子集。因此,从该队列中获取的所有应用程序都只会看到本地子集。

但是,如果您打算通过“集群化”来交替连接到两个队列管理器中的一个或另一个,并且将消息传输到位于同一集群中但未托管在要连接的两个QMgr中的一个上的队列中,那么可以会很好的工作。如果您的连接工厂仅知道两个QMgr之一,则您将仅连接到该QMgr,并且向群集发送消息仍然可以进行。但是,请按照我提供的链接中的说明进行设置,您的应用程序将能够连接到两个QMgr中的一个,并且您可以通过停止其连接到的一个通道上的通道并观察它与另一个连接的通道来轻松地进行测试之一。

祝好运!

更新:


为了清楚起见,提供的详细信息类似于hostname01,qmgr01,
queueA,serverchannel01。另一个是hostname02,qmgr02,queueA,
serverchannel02。


仅在以下情况下,WMQ客户端才会使用多实例CONNAME连接到两个不同的QMgr。


两个QMgr上使用的通道名称完全相同
发出连接请求时(即在Connection Factory中),应用程序使用星号(*字符)或QMgr名称的空格。


通过使用客户端连接定义表(也称为CCDT),可以使WMQ连接到几个不同的队列管理器之一,其中每个通道管理器的通道名不同。 CCDT是您使用MQSC命令创建的编译工件,以定义CLNTCONN通道。它包含客户端有资格连接到的每个QMgr的条目。每个可以具有不同的QMgr名称,主机,端口和通道。但是,在定义CCDT时,管理员会定义所有条目,以便将QMgr名称替换为应用程序“高级限定符”。例如,薪资应用程序想要连接到3个不同的QMgr中的任何一个。 WMQ管理员使用三个条目定义了一个CCDT,但QMgr名称使用PAY01PAY02PAY03。请注意,这不需要匹配实际的QMgr名称。然后,应用程序将QMgr名称指定为PAY*,这将选择CCDT中的所有三个QMgr。

有关CCDT的更多详细信息,请参见here


MQ集群与应用程序服务器集群不同吗?


一点都不。


其中两个子节点连接到群集。然后F5 URL
用于将负载分配给每个节点。 WMQ不附带
我们只是向其发送消息的集群url / f5和
消息是透明的?


不会。WMQ群集提供了一个名称空间,应用程序和QMgr可以在该名称空间中解析非本地对象,例如队列和主题。连接到WebSphere MQ集群的唯一一件事就是队列管理器。应用程序和人工用户始终连接到特定的队列管理器。可能有一组可互换的队列管理器,例如CCDT,但每个都是独立的。

使用WAS,消息传递引擎可以在多个节点上运行,但是它提供了一个逻辑队列,应用程序可以从中获取消息。使用WMQ,承载该队列的每个节点都将获得消息的子集,而使用这些消息的任何应用程序都将仅看到该子集。

HTTP是无状态的,因此F5 URL非常有效。当它确实维护会话时,该会话的存在主要是为了优化离开连接的开销,并且往往寿命很短。 WMQ客户通道是有状态的,可以协调单阶段和两阶段的工作单元。如果应用程序在UOW期间故障转移到另一个QMgr,则它无法协调该UOW。

由于WMQ连接的性质,QMgr之间从未使用F5。它仅在客户端和QMgr之间用于连接平衡,而不用于消息流量平衡。此外,不存在或不存在MQ集群对于应用程序是完全透明的,在任何一种情况下,该应用程序都简单地连接到QMgr以获取和/或放置消息。多实例CONNAME或CCDT文件的使用通过提供客户端可以连接到的多个等效QMgr来使连接更稳定,而QMgr与WMQ群集无关。

有帮助吗?

请参见:


Using a client channel definition table with WebSphere MQ classes for JMS
Clustering
How Clusters Work
Queue manager groups in the CCDT

关于ibm-mq - IBM WAS7队列工厂配置到MQ集群,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24395961/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com