gpt4 book ai didi

java - 使用带有 JTA @Transactional 的自定义拦截器 (quarkus-narayana-jta)

转载 作者:行者123 更新时间:2023-12-02 09:08:53 28 4
gpt4 key购买 nike

我想找到一种方法来应用带有 JTA @Transactional 注释的自定义拦截器。

我有一个带有 @Transactional 的方法,它是业务事务之一。在该方法中我想:

  1. 进行一些数据库操作
  2. 使用云消息服务发布一些主题。

如果两者中的任何一个失败,则不应执行这两个操作(即应回滚它们)。

目前我使用Google Cloud pubsub作为消息传递服务,但该库似乎与 JMS 或 JTA 不兼容。因此,我想知道是否可以为该库实现一个自定义拦截器(例如,在事务期间对消息进行排队,并在事务成功提交时发布排队的消息)。

有什么好主意吗?

框架是 Quarkus,JTA 实现目前是 Narayana。

最佳答案

没有。 JTA @Transactional 要求您的消息平台有一个事务管理器,理想情况下支持 XA API 或至少某种形式的事务语义:begin()、commit() 和 rollback() - begin() 可能不是必需的,但肯定是 rollback () 是。

如果事务中的第二条消息出现问题,您需要确保第一条消息“消失”,就好像它从未发生过一样,并回滚整个事务。

但是,到目前为止,Google pub/sub 还没有事务、事务 ID 或 commit() 和 rollback() 的概念。

关于java - 使用带有 JTA @Transactional 的自定义拦截器 (quarkus-narayana-jta),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59575043/

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