gpt4 book ai didi

java - DefaultMessageListenerContainer,让 sessionTransacted 属性工作?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:11:33 32 4
gpt4 key购买 nike

如何让 DefaultMessageListenerContainer 控制交易……据我所知,我只需要向 DMLC 提供 sessionTransacted 属性。我的目标是将消息放回队列,如果发生某些错误...

找了好久都没找到...

我的 Spring-config(其中一部分):

<bean id="abstractMessageListenerContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer" abstract="true">
<property name="connectionFactory" ref="connectionFactory" />
<property name="maxConcurrentConsumers" value="5"/>
<property name="receiveTimeout" value="10000" />
</bean>

<bean class="org.springframework.jms.listener.DefaultMessageListenerContainer" parent="abstractMessageListenerContainer">
<property name="destinationName" value="MY.QUEUE" />
<property name="messageListener" ref="myMessageListener" />
<property name="sessionTransacted" value="true" />
</bean>

<bean id="myMessageListener" class="my.package.structure.ListenerClass"></bean>

我的监听类:

public class ListenerClass implements MessageListener {


public void onMessage(Message msg) {


}

}

是否只是通过抛出一个未经检查的异常(如 java.lang.IllegalStateException)?

最佳答案

如果抛出未经检查的异常,消息将回滚!无法抛出已检查的异常,因为它们没有在 MessageListener 接口(interface)的 onMessage 方法的方法签名中提及。

关于java - DefaultMessageListenerContainer,让 sessionTransacted 属性工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13008431/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com