在安装了MQ客户端的Linux服务器上,我们尝试建立与安全通道的连接。我是ETL人,我们的MQ管理员正在努力。无论如何我会解释我的尝试(显然还没有工作),任何人请告诉我还需要做些什么才能建立连接..谢谢:)
tmp/mqmutility/keyrepmodmq> ls
AMQCLCHL.TAB key.kdb key.rdb key.sth MODE_MODELTAP_DEV_keyStLst.txt
export MQSSLKEYR=/tmp/mqmutility/keyrepmodmq/key
export MQCHLLIB=/tmp/mqmutility/keyrepmodmq
export MQCHLTAB=AMQCLCHL.TAB
/opt/mqm/samp/bin> amqsputc <queue_name> <queue_manager_name>
Sample AMQSPUT0 start
MQCONN ended with reason code 2058
注意:我可以连接到同一个队列管理器以获取非SSL通道。 任何帮助都会很棒,您从客户端计算机连接SSL通道的其他方法也会有所帮助。
答案 0 :(得分:2)
使用客户端通道定义表(CCDT)文件 - 您的AMQCLCHL.TAB文件时,返回代码2058通常表示应用程序尝试使用的队列管理器名称 - 您的'queue_manager_name' - 未在任何CCDT文件中的通道条目。
如果您正在使用。使用以下命令,MQ V8可以非常轻松地显示CCDT文件中的条目及其配置的队列管理器名称:
runmqsc -n
DISPLAY CHANNEL(*) QMNAME
如果文件中没有任何通道具有您在运行amqsputc
示例时使用的队列管理器名称,那么这就是您的2058原因代码的原因。
希望当你看到文件中的条目列出你应该使用哪个队列管理器名称时会很清楚,但如果没有,请用更多细节更新你的问题(比如所述文件的内容和队列管理器的详细信息) )我们可以进一步提供帮助。
您必须确保定义了一个CLNTCONN通道,该通道具有您要在QMNAME字段中使用的队列管理器名称,并且您在队列管理器上定义了匹配的命名SVRCONN通道。由于您使用的是SSL,因此还必须确保这两个通道使用相同的SSLCIPH。
请阅读Creating server-connection and client-connection definitions on the server及其子主题。