IBM Web MQ 在不同系统上以不同方式打印异常

IBM Web MQ printing exceptions differently on different systems

同一个软件运行在几台机器上,但是报错的方式不一致。

该软件所做的只是打印出(例如)尝试连接到消息队列时抛出的异常。

部分机器报错,文字描述为

MQRC_DATA_LENGTH_ERROR ---> IBM.WMQ.MQException: MQRC_DATA_LENGTH_ERROR

其他人只是报告错误代码。

2538 ---> IBM.WMQ.MQException: 2538

我不确定这是为什么,但我相信这与从 v8 更新到 v9 的 amqmdnet DLL 有关。它似乎已在所有系统上正确配置,而且我找不到任何正在使用的 v8 DLL。有什么我想念的吗?我应该去别的地方看看?我还能做些什么?

问题似乎是 IBM MQ 安装在报告文本描述错误的机器上,而不是安装在其他机器上。

是的,MQ V8 和 V9 之间的 MQException 'message text' 可能会发生变化。

您没有显示您的代码,但您只是在转储异常吗?

catch (MQException e)
{
   System.Console.Out.WriteLine(e);
}

MQ异常的正确处理方式如下:

catch (MQException e)
{
   System.Console.Out.WriteLine("MQException CC=" + e.CompletionCode + " : RC=" + e.ReasonCode);
}