【发布时间】:2017-09-29 02:49:18
【问题描述】:
我正在使用默认消息侦听器容器。我已在配置中将会话事务属性设置为 true。
我的onMessage()方法是这样的:
public void onMessage(Message message) {
try {
// Some code here
} catch (JmsException jmse) {
log.error(jmse);
} catch (Throwable t) {
log.error(t);
}
}
如您所见,我正在处理 catch 块中的异常。
我的要求是,如果它是 JMS 异常,则应重新发送,即在事务回滚时将消息重新传递给侦听器/消费者。怎么会这样?
我们可以在这里手动回滚事务吗?我认为这是一个可能的解决方案,但我不知道如何在代码中做到这一点。
另一个通用问题:
由于我通过catch 块处理所有可能的异常,我想不会出现消息重新传递的情况,即事务回滚,因为我正在通过catch 块处理所有可能的异常。我说的对吗?
【问题讨论】:
标签: java spring-boot transactions spring-jms