gpt4 book ai didi

java - Grails 中的 HeuristicCompletionException 是否可以简单地被忽略?

转载 作者:行者123 更新时间:2023-11-30 06:36:06 28 4
gpt4 key购买 nike

在我的 grails 应用程序中,我经常得到org.springframework.transaction.HeuristicCompletionException:启发式完成:结果状态已回滚;嵌套异常是 org.springframework.transaction.UnexpectedRollbackException:事务已回滚,因为它已被标记为仅回滚。我以某种方式发现,当由 @Transactional 注释的方法内部发生任何类型的异常并在具有自己的 @Transactional 的方法内部调用时,就会发生这种情况。我的问题是这个异常可以简单地被捕获并忽略吗?

最佳答案

我对此有一个解决方法,正如 Sudhir 在评论中建议的那样,我可以在其中一种方法中复制启发式完成问题,并发现为了不回滚服务使用的现有事务,我们为每个方法创建新事务,如下所示:

@Transactional
Class MyService {
@Transactional(propagation = PROPAGATION.REQUIRES_NEW)
def myMethod(){
throw new Exception();
}
}

注释 @Transactional(propagation = PROPAGATION.REQUIRES_NEW) 这将为该方法创建一个新事务并挂起现有事务。由于每次执行该方法时都会创建新的事务,这对于大型多线程应用程序来说肯定是一个性能问题,因此我通过处理服务类内每个方法中的所有可能的异常来缓解这一问题。这样就更好了。

关于java - Grails 中的 HeuristicCompletionException 是否可以简单地被忽略?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45186944/

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