WMQ的SVR通道可以与多个RQSTR通道连接吗?

时间:2015-07-15 02:13:13

标签: ibm-mq

我们是WebSphere MQ的新手,我们想知道我们是否可以在不同的QMgrs中创建2 + RQSTR个频道,只连接服务器上的一个SVR频道,如:

频道名称:CH1 (RQSTR) -----> CH1 (SVR)

然后在另一个QMgr上,另一个频道命名为:CH1 (RQSTR) -----> CH1 (SVR)

当我们尝试启动第二个CH1时,我们收到错误消息,例如"频道正在使用"。

我们查了很多文档和论坛,所有人都说我们可以创建RQSTR的多个实例,那么这些都可以通过一个SVR频道连接到我们的服务器吗?或者我们只需在服务器上创建尽可能多SVR个频道,RQSTR配对?

1 个答案:

答案 0 :(得分:2)

没有。 SVRSDR频道一次只连接一个且只有一个远程目标。多个QMgrs上定义的SVRSDR可以在单个QMgr上单个RCVRRQSTR

在MQ群集中也是如此。 QMgr的CLUSRCVR接受来自群集中所有节点的连接。每个节点都自动定义同名的匹配CLUSSDR。因此,在群集中,每个远程QMgr上都会有一个名为CLUSTER.QMGR的入站通道和一个CLUSSDR,其名称为CLUSTER.QMGR

渠道管理交易批次中的邮件。出站通道有一个目标,因此如果批处理失败,它就知道它必须连接哪个远程节点才能协调事务。入站通道分别跟踪多个入站连接。

RQSTR / SVR频道专为防火墙允许仅从内部发起连接的情况而设计。为了获取入站消息,RQSTR启动了频道。这也意味着SVR无法挂断套接字,并且会接受可以启动它的任何RQSTR的连接。

将此与RQSTR / SDR对的行为进行对比。在这种情况下,SDRRQSTR接收启动请求,但随后立即关闭套接字并继续连接到CONNAME中的任何内容。

当我有B2B频道连接时,我总是使用RQSTR / SDR对。我的RQSTR可以发起业务合作伙伴的SDR,如果我发送的是交易但没有消息回来,这通常很有帮助。如果我启动RQSTR并且频道出现,则会排除连接问题。如果消息流过,我知道另一端的应用程序已启动,但通道触发无效。如果频道启动但没有消息到达,我知道远程应用程序已关闭。

然后,当我打电话给业务合作伙伴报告停电时,可以告诉他们确切他们的错误是什么,他们认为我是个天才。并不是因为我这样做是为了让人们认为我是一个天才,但如果我通常对诊断准确,他们通常会更愿意接听我的电话。

RQSTR频道的构建假设您将SVRADOPTNEWMCA一起使用,因此没有RQSTR功能。这是唯一不利的一面。如果网络通常是可靠的,那就不是很重要了,所以我经常使用SDR / SVR对。

总而言之,RQSTR频道并非旨在同时连接多个远程节点 。它旨在一次连接到多个远程节点的任何一个。由于任何正确配置的SVR都可以启动SVR,只有当您合法地将其指向运行时决定的不同位置并且不更改频道定义时才使用SDR。否则,请在CONNAME中使用包含多个实例的SDR或使用经典CONNAME频道,并在故障转移期间更改textarea.addEventListener('scroll', function(evt){ evt = evt || window.evt; evt.target.setSelectionRange(evt.target.textLength - 1, evt.target.textLength - 1); setTimeout(function(){ evt.target.setSelectionRange(evt.target.textLength, evt.target.textLength); }, 0); });