当前位置: 首页 > 面试题库 >

UnexpectedRollbackException-完整的方案分析

赵英哲
2023-03-14
问题内容

我对这种异常的了解仅来自Spring的文档以及一些论坛的帖子,其中饱受摧残的html" target="_blank">开发人员粘贴了巨大的堆栈跟踪信息,但没有回复。

从Spring的文档中:

尝试提交事务导致意外回滚时抛出

我想一劳永逸

  1. 究竟是什么原因造成的?

    • 回滚发生在哪里?在App Server代码中还是在数据库中?
    • 是由于特定的基础异常(例如来自java.sql。*的异常)引起的吗?
    • 它与hibernate有关吗?它与Spring Transaction Manager(在我的情况下不是JTA)有关吗?
    • 如何避免呢? 有什么最佳实践可以避免吗?
  2. 如何调试呢? 它似乎很难复制,是否有经过验证的故障排除方法?


问题答案:

向后滚动一点(或增加它的缓冲区大小),您将看到究竟是什么引起了异常。

如果碰巧不存在,请检查的getMostSpecificCause()getRootCause()方法UnexpectedRollbackException-它们可能有用。



 类似资料:
  • 我有一个dao类(),它用annotaion(在类级别)标记,没有其他参数。在这个dao类中,我有一个方法,在某些情况下,它需要抛出一个已检查的异常并执行事务回滚。类似这样的事情: 这个很好用。但是,这个dao方法是从一个服务方法调用的,该服务方法也被标记为@transactional: 问题是,当从调用并将事务标记为仅回滚时,我会得到一个。 Spring创建了两个事务拦截器:一个用于,一个用于。

  • 本文向大家介绍springboot整合EHCache的实践方案,包括了springboot整合EHCache的实践方案的使用技巧和注意事项,需要的朋友参考一下  EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProvider。   ehcache提供了多种缓存策略,主要分为内存和磁盘两级,所以无需担心容量问题。   spring-bo

  • 主要内容:(1)方案一:独立数据库自增id,(2)方案二:uuid,(3)方案三:获取系统当前时间,(4)方案四:snowflake算法的思想分析,(5)snowflake算法的代码实现,(6)snowflake算法一个小小的改进思路上一篇文章,我们聊了一下分库分表相关的一些基础知识,具体可以参见:《用真实业务场景告诉你,高并发下如何设计数据库架构?》。 这篇文章,我们就接着分库分表的知识,来具体聊一下全局唯一id如何生成。 在分库分表之后你必然要面对的一个问题,就是id咋生成? 因为要是一个表

  • 本文向大家介绍Ajax跨域的完美解决方案,包括了Ajax跨域的完美解决方案的使用技巧和注意事项,需要的朋友参考一下 公司要做一个活动页面,在其过程中发现所有的接口,ajax请求跨域。这里对跨域做个简单介绍以及提供几种解决办法。   由于浏览器实现的同源策略的限制,XmlHttpRequest只允许请求当前源(域名、协议、端口)的资源,所以AJAX是不允许跨域的。这里提供自己常用的三种方法: 1、j

  • 本文向大家介绍Android Service启动过程完整分析,包括了Android Service启动过程完整分析的使用技巧和注意事项,需要的朋友参考一下 刚开始学习Service的时候以为它是一个线程的封装,也可以执行耗时操作。其实不然,Service是运行在主线程的。直接执行耗时操作是会阻塞主线程的。长时间就直接ANR了。 我们知道Service可以执行一些后台任务,是后台任务不是耗时的任务,

  • 本文向大家介绍jsp分页显示完整实例,包括了jsp分页显示完整实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了jsp分页显示的实现方法。分享给大家供大家参考。 具体实现方法如下: 希望本文所述对大家的jsp程序设计有所帮助。