gpt4 book ai didi

Azure ServiceBus JMS 事务支持尚不清楚

转载 作者:行者123 更新时间:2023-12-03 02:43:14 26 4
gpt4 key购买 nike

我正在开发连接到 Azure ServiceBus 的 Java JMS 应用程序。当我发现 JMS 支持时,我没想到会出现任何问题。但是,当我开始创建连接并添加 Spring JmsTransactionManager 时,我收到一条错误,指出我的 Azure 订阅是“基础”层,因此不支持事务。我所做的就是升级到“标准”层,错误已解决。这已涵盖here .

但是在测试过程中,我不确定它是否按预期工作,我正在测试其行为,同时我对另一个 MS documentation 感到困惑此 JMS over AMQP 协议(protocol)不支持“事务处理 session ”。

问题:

  1. 我可以相信服务总线中的队列将被事务处理,这意味着在我的事务管理器显式调用 COMMIT 之前消息不会从队列中删除吗?

  2. 怎么可能有人声称符合 JMS,但同时又说我不支持事务处理 session 。

感谢您的回复,因为我很困惑。

更新:

用于 Spring Boot 的 Azure 服务总线启动器具有 Qpid 作为依赖项,因此这就是我在幕后使用的 - 我首先不知道这一点:

<!--Qpid-->
<dependency>
<groupId>org.apache.qpid</groupId>
<artifactId>qpid-jms-client</artifactId>
</dependency>

最佳答案

目前没有针对 AMQP 上的分布式 (XA) 事务的规范,因此 Qpid JMS 客户端不提供 XA ConnectionFactory 实现,因此如果您使用它,那么您肯定不会获得对分布式事务的任何支持。

Qpid JMS 客户端本身确实实现了本地事务,因此从这个意义上讲,您可以使用标准的本地事务 JMS session ,但 MS 可能已通过 Spring Boot 位禁用了该 session ,以阻止人们使用它作为本地事务的好处事务非常小,特别是对于使用 Spring 的人们来说,他们可能会认为他们正在参与一个更大的分布式事务,而实际上他们没有参与。

关于Azure ServiceBus JMS 事务支持尚不清楚,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60005207/

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