我不太确定这里发生了什么,所以希望这对某人有意义。我收到了一个 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 数据进行连接的方式。