首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Jboss 7中读取DLQ中的消息

在Jboss 7中读取DLQ中的消息
EN

Stack Overflow用户
提问于 2015-01-07 12:39:41
回答 1查看 902关注 0票数 1

我在JBoss7.1中配置了两个jms队列。

代码语言:javascript
复制
<jms-queue name="APP.QUEUE1">
    <entry name="queue/APP.QUEUE1"/>
    <entry name="java:jboss/exported/jms/queue/APP.QUEUE1"/>
</jms-queue>

<jms-queue name="APP.QUEUE2">
    <entry name="queue/APP.QUEUE2"/>
    <entry name="java:jboss/exported/jms/queue/APP.QUEUE2"/>
</jms-queue>

在使用该消息时,如果某些事情出错,则消息将转到死信队列,该队列配置如下。

代码语言:javascript
复制
<address-setting match="jms.queue.APP#">
        <dead-letter-address>jms.queue.DLQ</dead-letter-address>
        <expiry-address>jms.queue.ExpiryQueue</expiry-address>
        <redelivery-delay>0</redelivery-delay>
        <max-delivery-attempts>5</max-delivery-attempts>
        <max-size-bytes>10485760</max-size-bytes>
        <address-full-policy>BLOCK</address-full-policy>
        <message-counter-history-day-limit>10</message-counter-history-day-limit>
 </address-setting>

因此,我已经成功地将消息传递给DLQ。

现在我已经写好了死信队列的使用者,这样我就可以在修复问题后返回消息了。

使用该消息的代码如下所示。

代码语言:javascript
复制
QueueSession session = connection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
 QueueBrowser browser = session.createBrowser(queue);
 Queue queue1=browser.getQueue();
 Enumeration messageEnum = browser.getEnumeration();
   while (messageEnum.hasMoreElements()) {
        TextMessage message = (TextMessage) messageEnum.nextElement();
       }

从文本消息中,是否有可能获得源队列(APP.QUEUE1或APP.QUEUE2),这样我就可以返回相同的文本消息,而不必担心消息属性。

请让我知道我的方法是否正确,更好的解决办法。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-07 14:10:26

找到了答案。我们的财产如下。message.getStringProperty("_HQ_ORIG_ADDRESS");此属性提供起始地址。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27819736

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档