Mac Silicon运行runmqsc遇AMQ8146E: IBM MQ队列管理器不可用错误
解决Mac Silicon上IBM MQ runmqsc报错AMQ8146E的问题
环境与问题描述
- 设备:Mac Silicon
- 已完成配置:
- 安装IBM MQ macOS工具包,配置
PATH和DYLD_LIBRARY_PATH环境变量 - 获取JSON格式CCDT文件,下载队列管理器证书
qmgrcert_yyyymm.pem - 创建.kdb密钥库并导入队列管理器证书
- 未设置
MQSERVER环境变量,已配置并导出MQCCDTURL和MQSSLKEYR
- 安装IBM MQ macOS工具包,配置
- 执行命令:
runmqsc -c -u mid -w 60 QM1 - 报错:
AMQ8146E: IBM MQ queue manager not available
队列管理器日志(中文翻译)
----- amqrmrsa.c : 631 -------------------------------------------------------- 2023年3月7日 下午04:03:32 - 进程(637.10948) 用户(mqm) 程序(amqrmppa) 主机(qm-...............-ibm-mq-0) 安装(Installation1) VRMF(9.3.1.0) 队列管理器(QM1) 时间(2023-03-07T16:03:32.933Z) 远程主机(10.74.8.95) 数值插入项1(420) 注释插入项1(CLOUD.ADMIN.SVRCONN) 注释插入项2(gsk_secure_soc_read) 注释插入项3(10-74-8-95 (10.74.8.95)) AMQ9665E: SSL连接被通道'CLOUD.ADMIN.SVRCONN'的远程端关闭。 解释: 安全套接字握手期间,远程主机'10-74-8-95 (10.74.8.95)'关闭了SSL或TLS连接。通道为'CLOUD.ADMIN.SVRCONN';某些情况下无法确定其名称,会显示为'????'。通道未启动。 操作建议: 检查通道远端的SSL和TLS错误。修复后重启通道。 ----- amqccisa.c : 12150 ------------------------------------------------------ 2023年3月7日 下午04:03:32 - 进程(637.10948) 用户(mqm) 程序(amqrmppa) 主机(qm-...............-ibm-mq-0) 安装(Installation1) VRMF(9.3.1.0) 队列管理器(QM1) 时间(2023-03-07T16:03:32.933Z) 注释插入项1(CLOUD.ADMIN.SVRCONN) 注释插入项2(637) 注释插入项3(10.74.8.95) AMQ9999E: 到主机'10.74.8.95'的通道'CLOUD.ADMIN.SVRCONN'异常终止。 解释: 进程ID为637的通道程序对应通道'CLOUD.ADMIN.SVRCONN'异常终止。主机名为'10.74.8.95';某些情况下无法确定主机名,会显示为'????'。 操作建议: 查看错误日志中该通道程序的先前错误消息以确定故障原因。注意,可通过调整qm.ini中"QMErrorLog"节下的"ExcludeMessage"或"SuppressMessage"属性,完全排除或抑制此消息。更多信息请参阅《系统管理指南》。
排查与解决步骤
1. 验证密钥库配置正确性
- 确认
MQSSLKEYR环境变量指向的是.kdb文件的路径前缀(不要包含.kdb后缀)。例如密钥库路径为/Users/yourname/mq/keystore.kdb,则MQSSLKEYR应设置为:export MQSSLKEYR=/Users/yourname/mq/keystore - 使用
runmqakm工具检查证书是否正确导入并被信任:
确保队列管理器的证书出现在列表中,且状态标记为runmqakm -cert -list -db /path/to/your/keystore.kdb -pw your-keystore-passwordtrusted。
2. 校验CCDT文件配置
- 打开JSON格式的CCDT文件,确认以下内容:
- 通道名称
CLOUD.ADMIN.SVRCONN与队列管理器上配置的完全一致 - 连接的主机地址、端口号正确无误
SSLCipherSpec配置项与队列管理器通道的CipherSpec兼容(Mac Silicon客户端建议使用TLS 1.2+的现代算法,如TLS_AES_256_GCM_SHA384)
- 通道名称
- 确认
MQCCDTURL的路径格式正确,本地文件需使用file:///前缀(三个斜杠),例如:export MQCCDTURL=file:///Users/yourname/mq/ccdt.json
3. 开启客户端SSL调试日志定位问题
- 在Mac客户端设置以下环境变量以开启SSL调试:
export MQSSLTRACE=1 export MQS_TRACE_LEVEL=3 - 重新执行
runmqsc命令,查看生成的trace日志文件,里面会包含SSL握手过程的详细错误信息(如证书不被信任、CipherSpec不匹配、协议版本不兼容等)。
4. 确认Mac Silicon兼容性
- 确保安装的IBM MQ macOS工具包是原生支持Apple Silicon的版本,避免使用x86版本通过Rosetta运行导致的兼容性问题。
- 检查
DYLD_LIBRARY_PATH是否正确指向MQ工具包的lib目录,例如:export DYLD_LIBRARY_PATH=/Applications/IBM/MQClient/lib64:$DYLD_LIBRARY_PATH
内容的提问来源于stack exchange,提问作者chughts
相关产品推荐
相关产品推荐

