WMQ的SVR Channel是否可以连接多个RQSTR Channel?

Can WMQ's SVR Channel be connected with multiple RQSTR channels?

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

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

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

当我们尝试启动第二个 CH1 时,我们收到类似 "channel is in use" 的错误消息。

我们查了很多文档和论坛都说我们可以创建一个 RQSTR 的多个实例,那么这些都可以通过一个 SVR 通道连接到我们的服务器吗?还是我们只需要在服务器上创建多达 SVR 个频道,以便 RQSTR 配对?

没有。 SVRSDR 通道一次连接到一个且仅一个远程目标。可以在多个 QMgr 上定义一个 SVRSDR,在一个 QMgr 上定义一个 RCVRRQSTR

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

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

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

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

中的任何内容

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

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

RQSTR 频道建立在假设您将与 SVR 一起使用的前提下,因此没有 ADOPTNEWMCA 功能。这是唯一的缺点。如果网络总体上是可靠的,那么缺点就不是很大,所以我经常使用 RQSTR/SDR 对。

所以综上所述,SVR 通道并不打算同时 连接到多个远程节点。它旨在一次连接到多个远程节点中的任何 one。由于任何正确配置的 RQSTR 都可以启动 SVR 仅当您合法地需要将其指向在 运行 时间决定的不同位置并且不对 SVR 进行更改时才使用 SVR通道定义。否则在 CONNAME 中使用具有多个实例的 SDR 或使用经典 SDR 通道并在故障转移期间更改 CONNAME