【问题标题】:Queue name from poison message - MQ / JMS来自毒消息的队列名称 - MQ / JMS
【发布时间】:2011-04-25 17:18:25
【问题描述】:

我正在开发一种解决方案,用于从 Websphere 6.1 中的回退队列中检索有害消息。

我的问题是:当此消息(即 TextMessage)从常规队列重新排队到退出队列时,msg.getJMSDestination() 和 msg.getJMSReplyTo() 中的队列名称是什么?

例如: 我有一个指向 myQueue 的消息。但是,由于某种原因,无法处理此消息(有毒消息),并且由于为此配置了 websphere,因此此消息重新排队到名为 myBOQueue 的回退队列。如果我从 myBOQueue 中检索此消息(使用 MDB),并执行 ((Queue) msg​​.getJMSDestination()).getQueueName(),我该怎么办:myQueue 还是 myBOQueue?如果我执行 ((Queue) msg​​.getJMSReplyTo()).getQueueName(),我会得到什么?

消息文档:http://download.oracle.com/javaee/1.4/api/javax/jms/Message.html

谢谢, 安德烈

【问题讨论】:

    标签: queue jms ibm-mq backout


    【解决方案1】:

    您想查看特定于供应商的文档。我认为重试计数和有害消息队列是 JMS 规范中未包含的供应商特定功能。

    【讨论】:

    • 我能够模拟并检查 getJMSDestination() 中 Poison Message JMS Header 中的队列名称是原始队列,而不是回退队列。但是我不知道它是特定于供应商的还是 JMS 默认的。
    • 我的意思是更大的功能(重试、中毒队列)是供应商扩展。因此,如果较大的功能没有标准化,您就无法标准化 getJMSDestination 的小细节。换句话说,当消息被重定向到有害队列时,您将从 getJMSDestination 得到什么的问题是不可标准化的,因为重定向到有害队列的概念不在标准中。
    猜你喜欢
    • 2013-09-23
    • 2018-03-14
    • 1970-01-01
    • 2016-02-18
    • 1970-01-01
    • 1970-01-01
    • 2013-02-26
    • 2015-02-02
    • 1970-01-01
    相关资源
    最近更新 更多