【问题标题】:When does MQ throw the JMS Exception 'MQJMS1022: failed to redirect message'?MQ 什么时候抛出 JMS 异常 'MQJMS1022: failed to redirect message'?
【发布时间】:2016-02-05 07:13:45
【问题描述】:

MQ 什么时候抛出 JMS 异常 'MQJMS1022: failed to redirect message' ?

我们的应用程序(在 JDK 1.5 上运行)连接到 MQ 7.5。 从 MQ 读取消息时,会引发以下异常。

 javax.jms.JMSException: MQJMS1022: failed to redirect message
    at com.ibm.mq.jms.services.ConfigEnvironment.newException(ConfigEnvironment.java:530)
    at com.ibm.mq.jms.MQQueueReceiver.receiveAsync(MQQueueReceiver.java:734)
    at com.ibm.mq.jms.SessionAsyncHelper.run(SessionAsyncHelper.java:269)
    at java.lang.Thread.run(Thread.java:682)

我们的应用程序代码没有堆栈跟踪。 有谁知道可能是什么原因。 MQ 文档很差,我找不到太多关于错误的信息。

【问题讨论】:

    标签: java jms ibm-mq mq


    【解决方案1】:

    同时转储 LinkedException 是一个非常好的主意。 即

    catch (JMSException e)
    {
       System.err.println("getLinkedException()=" + e.getLinkedException());
       System.err.println(e.getLocalizedMessage());
       e.printStackTrace();
    }
    

    LinkedException 将包含 MQ 原因代码。

    【讨论】:

    • 我没有源代码。反编译类并提取底层异常。我解决了这个问题,它奏效了。谢谢。
    【解决方案2】:

    异常:MQJMS1022:重定向消息失败: 如果有毒消息,可能会导致应用程序 试图将其撤消。如果没有在 a 上定义回退队列 队列管理器,MQ 无处放置消息,因此出现异常。 请确认您是否已定义回退队列。 knowledge center page about handling poison messages 可能会有所帮助

    【讨论】:

    • 我们已经配置了一个回退队列。问题是由于一些未在日志中打印的异常。我如何设法找到根本原因并修复了这个问题。感谢您提供有关此错误代码的详细信息。我在其他任何地方都找不到这样的细节。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-01
    • 1970-01-01
    相关资源
    最近更新 更多