gpt4 book ai didi

java - JMS队列: Re-inserting a message vs Rolling Back

转载 作者:行者123 更新时间:2023-12-02 11:01:29 25 4
gpt4 key购买 nike

我有一个 JMS 使用者,用于处理针对第三方服务的事务。

当调用此第三方服务时出现异常,例如 java.net.ConnectException。我希望队列重新传送此消息。

重新传递可以通过两种明显的方法来完成。

  1. 回滚事务上下文:队列重新传递消息,但回滚 JPA 事务(但是,我希望数据库有事务记录,以防止重复消息(如果有))。

  2. 重新发送来自消费者的消息并指定重新传递时间:保留事务上下文(记录保存在数据库中)。

将消息从消费者重新发送到队列而不是不确认消息是否存在任何性能问题?

最佳答案

回滚更可靠。

您应该简单地为数据库更新启动一个新事务,而不是将其与 JMS 事务同步,这样即使 JMS 事务回滚,数据库事务也会提交。

关于java - JMS队列: Re-inserting a message vs Rolling Back,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51300625/

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