IBM 不遗余力地记录了不同 MQ 相关函数的可能错误代码,但我找不到现有的库函数来将整数代码转换为人类可读的字符串。
像 libcstrerror(3)或 OpenSSL 之类的东西ERR_error_string(3)......
我想,程序员和操作员应该有一本方便的(如果有狗耳朵的话)参考书......
或者这个功能是否存在——只是不容易找到?
您可以使用MQRC_STR头文件中提供的函数将数字(例如 2035)转换为字符串,例如“MQRC_NOT_AUTHORIZED” cmqstrc.h。
如果您不仅需要常量的字符串表示形式,还可以考虑调用mqrcIBM MQ 的分布式平台版本附带的可执行文件,并抓取输出。在我看来,常量的字符串版本对大多数人来说已经足够了。
#include <cmqc.h> /* Include for MQI Constants */
#include <cmqstrc.h> /* Convert MQRC into string */
:
MQCONN(QMName,
&hConn,
&CompCode,
&Reason);
if (Reason)
{
printf("MQCONN to QMgr %.48s failed with reason %d (%s)\n",
QMName, Reason, MQRC_STR(Reason));
:
}
Run Code Online (Sandbox Code Playgroud)