当前位置: 首页 > 知识库问答 >
问题:

Spring`jms:listener-container`和IBM MQ回退队列

仇承志
2023-03-14

Spring JMS能够使用该功能吗?是否需要在侦听器容器中设置任何内容,以便它能够处理移动到IBM MQ回退队列?

我的配置如下:

<tx:jta-transaction-manager/>
<jee:jndi-lookup id="connectionFactory" 
        jndi-name="java:comp/env/jms/myapp_queuefactory"/>
<jms:listener-container 
        connection-factory="connectionFactory"
        transaction-manager="transactionManager">
    <jms:listener destination="ONEQUEUE" ref="oneQueueListener" />
    <jms:listener destination="ANOTHERQUEUE" ref="anotherQueueListener" />
    <!-- many more -->
<jms:listener-container/>

IBM MQ队列设置为“回退Requeue queue”设置为onequeue.boq,“回退阈值”设置为5

@Transactional
public class MyQueueMDBean implements javax.jms.MessageListener {
    public void onMessage(javax.jms.Message msg) {
        try {
            // some code that throws some exception ...
        } catch (Exception e) {
            TransactionInterceptor.currentTransactionStatus().setRollbackOnly();    
        }
    }
}

共有1个答案

楚嘉
2023-03-14

当回滚次数超过BackoutThreshold(BOTHRESH)中定义的次数后,JMS客户机将把毒药消息放到队列的BackoutQueueQueequeue(BOQNAME)上定义的回退队列中。这意味着运行JMS应用程序的用户不仅需要访问应用程序队列,还需要访问命名的退出队列。

如果无法访问或未定义回退队列,将尝试使用队列管理器的死信队列(DEADQ属性)。

如果未能授予用户ID+put对回退队列和/或DLQ的访问权限,则当毒药消息满足要向回退队列请求的条件时,将产生MQRC_NOT_AUTHERATION(2035)原因代码。

    null
 类似资料:
  • 这是我的问题。 我正在使用试用版的。我已经创建了一个队列管理器,一个带有的通道。我已经提供了用户来访问。我正在尝试将消息放入队列。但是在获取队列连接时,我遇到了异常。 com.ibm.msg.client.jms.DetailedJMSSecurityException: JMSWMQ2013:为具有连接模式“客户端”和主机名“(1500)”的QueueManager“MYQM”提供的安全身份验证

  • Application Context是Spring的高级容器。 与BeanFactory类似,它可以加载bean定义,将bean连接在一起,并根据请求分配bean。 此外,它还增加了更多特定于企业的功能,例如从属性文件中解析文本消息的能力以及将应用程序事件发布到感兴趣的事件侦听器的功能。 此容器由org.springframework.context.ApplicationContext接口定义

  • 这是最简单的容器,为DI提供基本支持,并由org.springframework.beans.factory.BeanFactory接口定义。 BeanFactory和相关的接口,例如BeanFactoryAware,InitializingBean,DisposableBean,仍然存在于Spring中,目的是向后兼容与Spring集成的大量第三方框架。 BeanFactory接口有很多实现,它

  • 我正在尝试从Spring Boot服务向IBM MQ队列发送消息。我可以从安装在笔记本电脑上的IBM MQ发送/接收消息。 但是,当我替换配置以连接到IBM MQ云时,这不起作用 配置如下: 得到以下错误 注: > 我可以远程进入主机 我尝试了以下用户名 使用APIKey 我的IBM用户名

  • 下面是我们试图构建的AMQP客户机的摘要,以使用IBM MQ评估请求/响应消息模式。 当前IBM队列管理器版本=9.1.0.6 具有以下属性的AMQP通道设置,可在 要通过通道访问现有队列,需要设置订阅-/comet/mediate/claim。订阅已映射到队列endpointCOMET。临时索赔。以下客户端配置为 发送消息并使用jms关联id从同一队列endpoint拾取消息 将JMS消息类型设

  • 我在Weblogic服务器上有MQ作为外部JMS服务器。问题是,我需要回滚消息并重试,直到达到回退阈值。然后我需要将消息移动到回退队列。