【问题标题】:Is it possible to connect more than one IBM MQ queue manager in the same same process?是否可以在同一进程中连接多个 IBM MQ 队列管理器?
【发布时间】:2019-07-04 17:12:28
【问题描述】:

基于 IBM MQ 文档,我需要为 MQ 服务器地址定义一个名为 MQSERVER 的环境变量。那么在一个进程中,我可以只有一个MQ服务器地址,对吗?

有没有其他方法可以定义MQ服务器地址,并有多个MQ连接到不同的MQ服务器?

【问题讨论】:

  • 现在为MQ客户端编码(C/C++),是否可以有多个线程(客户端)在一个进程中连接到不同的mq服务器?
  • 查看 CCDT 客户通道定义表。它们可以保存许多队列管理器的详细信息。您还可以在 c++ 中以编程方式指定连接详细信息。
  • 感谢您的回复,JoshMc。您的意思是在 MQCNO 中指定连接详细信息吗?但是我没有找到如何在 MQCNO 中指定服务器地址。如何在不使用 MQSERVER 环境变量的情况下指定服务器地址?
  • 您在MQCD 中指定通道名称、主机和端口,该MQCNO 引用。在 C 中,MQCONNX 调用允许这样做。如果您在 CCDT 中指定内容,然后使用 MQCHLLIB=/path/to/tableMQCHLTAB=table_filename.TAB 指向 CCDT,那么您可以发出普通的 MQCONN(或 MQCONNX)调用并仅指定队列管理器名称。它将在 CCDT 中找到此 QMNAME,并使用 CCDT 中提供的连接详细信息。
  • 太好了,我将使用 MQCD。非常感谢!

标签: ibm-mq


【解决方案1】:

您可以在MQCD 中指定通道名称、主机和端口,该MQCNO 引用。在 C 语言中,您可以将其传递给 MQCONNX 函数。

您还可以在 CCDT(客户端通道定义表)中指定连接详细信息(通道名称、主机和端口)。您可以使用以下环境变量指向 CCDT(还有其他方法,但这是一种方法):

MQCHLLIB=/path/to/table
MQCHLTAB=table_filename.TAB

然后您可以使用MQCONN(或MQCONNX)并仅指定队列管理器名称。 MQ 将在 CCDT 中找到与队列管理器名称匹配的条目并使用提供的连接详细信息。

【讨论】:

    【解决方案2】:

    您在从 MQCNO 引用的 MQCD 中指定通道名称、主机和端口。在 C 语言中,允许这样做的是 MQCONNX 调用。如果您在 CCDT 中指定内容,然后使用 MQCHLLIB=/path/to/table 和 MQCHLTAB=table_filename.TAB 指向 CCDT,那么您可以发出正常的 MQCONN(或 MQCONNX)调用并仅指定队列管理器名称。它将在 CCDT 中找到此 QMNAME,并使用 CCDT 中提供的连接详细信息。 – JoshMc 21 分钟前

    【讨论】:

    • 如果我的评论对您有帮助,我将不胜感激有机会将其发布为您可以接受的答案,而不仅仅是将其复制并粘贴到答案中。这对你有用吗?
    • 查看我的答案,您可以随时通过点击下方的删除链接删除您的答案,这是我评论的副本。
    • 你看到我上面的cmets了吗?如果您有任何问题,请告诉我。
    • 谢谢!在 MQCD 中设置用户和密码,它现在对我有用。
    猜你喜欢
    • 1970-01-01
    • 2021-01-03
    • 2021-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多