【问题标题】:Catch MQ error code from java从 java 中捕获 MQ 错误代码
【发布时间】:2016-04-03 06:53:40
【问题描述】:

我正在使用 IBM MQ 并在 queue 上发送消息时,我需要捕获错误代码,例如:

MQJE001: Completion Code '2' Reason '2035'

我的问题是读取这个错误代码,我的 java 程序通过以下方式读取输出:

BufferReader reader = new BufferReader(new InputStreamReader(processSH.getInputStream())); // processSH - the process that is putting message on queue

如果没有错误代码,我可以通过这种方式读取输出,但无法使用:

String line = null;
while(line.reader.readLine()) != null){
    system.out.println(line) // prints nothing in case of error
}

感谢所有帮助者!

【问题讨论】:

  • 您使用哪个 MQ API 来放置消息?我认为您没有为 Java 使用正确的 MQ 类,因为该 API 会抛出包含 RC 的 MQExceptions。

标签: java ibm-mq mq


【解决方案1】:

我认为问题出在这段代码中:

String line = null;
while(line.reader.readLine()) != null){
    system.out.println(line) // prints nothing in case of error
}

我什至不确定你是如何编译它的。 reader 不是 String 的属性。我认为那行应该是:

while(line = reader.readLine()) != null){

【讨论】:

  • 尝试并发布结果。
  • 不,我无法捕捉到那个异常,我的程序只读取了运行 MQ 的 sh。
  • 让我试试,我会发布结果。
  • @ItsikMauyhas line.reader 没有意义,不应该编译。
  • new InputStreamReader(processSH.getInputStream()) 中的processSH 是什么?如果没有完整的图片和特定的错误,我猜你的问题会是什么。如果你能详细说明问题是什么,那就更容易解决了。
【解决方案2】:

为了捕捉这种exception我使用了:

BufferReader errorReader = new BufferReader(new InputStreamReader(processSH.getErrorStream()));

MQ 错误在某些情况下可能是ErrorStream

希望对您有所帮助,谢谢。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-12
    • 1970-01-01
    • 1970-01-01
    • 2018-09-21
    • 2014-10-27
    • 1970-01-01
    相关资源
    最近更新 更多