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

事务在故障转移时回滚,但是提交可能已经成功

艾浩广
2023-03-14

我有一个使用jms的应用程序,它将数据发送到ActiveMQ Artemis队列。我在这条消息中发现了一个异常

    null

共有1个答案

司雅畅
2023-03-14

我无法比ActiveMQ Artemis文档更好地说明这一点:

当从客户端向服务器或从服务器向另一服务器发送消息时,如果目标服务器或连接在发送消息后的某个时候失败,但在发送方收到发送(或提交)已成功处理的响应之前,则发送方无法确定消息是否已成功发送到该地址。

如果目标服务器或连接在接收并处理发送之后但在返回响应之前失败,则消息将成功发送到该地址;但如果目标服务器或连接在接收并完成处理发送之前失败,则消息将无法成功发送到该地址。从发件人的角度来看,不可能区分这两种情况。

为了解决这些问题,Apache ActiveMQ Artemis为发送到地址的消息提供了自动重复消息检测。

请参阅ActiveMQ Artemis文档中有关如何配置和使用重复检测的更多详细信息。

 类似资料:
  • 我在这里很困惑。JPA中的提交或回滚完成事务吗?我使用的是spring和容器管理的EntityManager。感谢任何回答。

  • 我是WebServices的新手。Im通过标记为“Transacted”的camel路由向cxfendpoint发送webservice请求,并得到响应。在同一事务路由中,next语句抛出一个异常,以便我的异常处理程序回滚该事务。 我可以在我的事务回滚中找到其他东西,除了我的webservice请求响应,因为它已经提交了。

  • 以下是使用事务教程中描述的提交和回滚的代码示例。 此示例代码是基于前面章节中完成的环境和数据库设置编写的。 复制并将以下示例代码保存到:CommitAndRollback.java 中,编译并运行如下 - 编译并运行结果如下 -

  • 下面的代码是否可以正常工作,或者我需要在工作之前开始交易。

  • 我们正在尝试将Redis/Sentinel集群从2.8升级到3.2。升级将在交通繁忙的情况下发生。对我们来说,没有停机时间是可以接受的。 当我们准备升级主服务器时,所有从服务器都将运行在3.2上,并且这些从服务器能够与运行在2.8上的主服务器同步 一旦我们停止主服务器(2.8)或手动请求故障转移,新服务器(3.2)将成为主服务器。 我们希望将旧的master(2.8)保留一段时间,以便在发现新设置

  • 我使用的是Spring Kafka 1.2.2版。我有一个Kafka Listener作为消费者,它监听一个主题并在弹性中索引文档。我的自动提交偏移量属性设置为true//default。