pymqi ccdt 文件被忽略?

问题描述 投票:0回答:1

我不太确定这里发生了什么,所以希望这对某人有意义。我收到了一个 CCDT 文件,其中部分指定:

      "clientConnection": {
        "queueManager": "QMGR",
        "connection": [
          {
            "port": 1414,
            "host": "[ip address]"
          }
        ]
      },

我正在尝试与 pymqi 连接。我设置了 MQCHLLIB、MQCHLTAB、MQSSLKEYR 和 MQCERTLABL 环境变量。

如果我只是运行这个(它已与纯本地服务器一起使用),我会收到“MQRC_Q_MGR_NAME_ERROR”响应:

qmgr = pymqi.QueueManager(None)
qmgr.connect_with_options("QMGR")

但是,如果我创建一个

pymqi.CD()
结构,然后使用 blank 名称将其传入,它确实会连接:

cd = pymqi.CD()
cd.ChannelType = pymqi.CMQC.MQCHT_CLNTCONN
cd.TransportType = pymqi.CMQC.MQXPT_TCP
cd.ConnectionName = b"[ip address](1414)"
cd.SSLCipherSpec = b"ANY_TLS13_OR_HIGHER"
cd.ChannelName = b'the channel name'
qmgr.connect_with_options("", cd=cd)

效果很好。尝试简单的旧

qmgr.connect_with_options("")
也是行不通的。那么……CCDT 文件似乎被忽略了?也就是说,我必须在 CD 结构中传入 CCDT 文件包含的数据。我在这里遗漏了一些明显的东西吗?当 CCDT 文件存在并且正在读取时,这似乎是不必要的,据我所知,这是使用 CCDT 数据进行连接的方式。

ibm-mq pymqi
1个回答
0
投票

很高兴您能够解决这个问题!澄清一下,星号充当通配符,基本上告诉您的应用程序,它不应该太关心它连接到的队列管理器的“实际”名称,只要可以在该客户端中找到它的连接信息即可CCDT 中的连接。 这篇文章进一步解释了这个概念。希望有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.