问题描述

上上个周测试的时候突然报系统异常,于是我立即查看日志,发现是一个数据库异常:java.sql.SQLException: connection holder is null
我第一想到的就是可能是那种概率很小的突发事件,然后就和测试说没关系只是数据库连接异常以后应该没事,然后项目因为更新重启后也没有什么问题,直到第二天有一次出现这个问题,这时候我才意识到这个不是突发事件。肯定是系统问题。

解决方案

  1. 发现问题后开始去网上找,结果发现是druid连接池的问题,而网上好多对于这种问题的解决方案都是修改配置文件,但是我去看配置文件无需修改,然后去各种查找依然没有找到,然后当天只能靠重启解决问题。第三天继续查找问题,还是无果,但是晚上回去分析问题,以前都没有出现过这个问题怎么突然出现了这个问题,初步判断应该是最近更新代码的问题,于是第二天上午,将新合并的代码挨个重新检查一遍,真的发现一个问题是,其他同事使用编程式事务失败的时候没有回滚,其实这个问题早就应该想到了,出现这个问题的同时还有测试反应更新的数据多次查询一直在变化,其实这个就是事务没有提交的问题,在之前的公司我遇到过这样的问题,不过这个问题修改数据的时候都会报一个锁等待超时错误,结果我并没有找到这个错误,所以当时也没有朝这个方向去想。
  2. 当发现可能是事务未提交造成的问题,我也模拟一下,但是都是产生的锁等待超时问题,但是修改正确以后测试了一个周都没有在出现那个问题,可以确定是由于事务问题造成的。

反思总结

  1. 这个问题也可以发现自己好多的问题,从发现问题开始并没有进行细致的思考,想当然的定义问题
  2. 在该问题过程中对待一些伴随出现的问题视而不见,没有将其联系到一起去考虑分析问题
  3. 目前还没有具备分析源码的能力。导致出现框架问题只能去猜,去看别人如何解决。

java.sql.SQLException: connection holder is null 问题处理的更多相关文章

  1. java.sql.SQLException: connection holder is null;

    一.问题来源分析 出现的错误 : Cause: java.sql.SQLException: connection holder is null; uncategorized SQLException ...

  2. 开发中遇到的Cause: java.sql.SQLException: connection holder is null的异常

    异常的出现是属于获取连接超时,从而找不到持有者. 项目中的配置体现: <property name="removeAbandoned" value="true&qu ...

  3. java.sql.SQLException: Connection is read-only. Queries leading to data modification are not allowed

    org.springframework.dao.TransientDataAccessResourceException: ### Error updating database. Cause: ja ...

  4. [Done]java.sql.SQLException: Connection is read-only. Queries leading to data modification are not allowed

    java.sql.SQLException: Connection is read-only. Queries leading to data modification are not allowed ...

  5. 详细解读 :java.sql.SQLException: Connection is read-only. Queries leading to data modification are not allowed,Java报错之Connection is read-only.

    问题分析: 实际开发项目中,进行insert的时候,产生这个问题是Spring框架的一个安全权限保护方法,对于方法调用的事物保护,一般配置如下: <!-- 事务管理 属性 --> < ...

  6. connection holder is null新增解决方案(2018-06-02)

    最近在做Java后台的项目,用到了druid数据库连接池,阿里出品,肯定是精品的意思咯,这也是我们老大搭建的框架,我就站在前人的肩膀上飞翔了.先前在一个事物里,使用了多条数据库操作,都是正常的,但是前 ...

  7. HiveServer2 的jdbc方式创建udf的修改(add jar 最好不要使用),否则会造成异常: java.sql.SQLException: Error while processing statement: null

    自从Hive0.13.0开始,使用HiveServer2 的jdbc方式创建udf的临时函数的方法由: ADD JAR ${HiveUDFJarPath} create TEMPORARY funct ...

  8. java.sql.SQLException: null, message from server: “Host ‘xxx’ is not allowed to connect

    java.sql.SQLException: null, message from server: “Host ‘xxx’ is not allowed to connect 2014年06月29日  ...

  9. java.sql.SQLException: Io 异常: Connection reset

    当数据库连接池中的连接被创建而长时间不使用的情况下,该连接会自动回收并失效,但客户端并不知道,在进行数据库操作时仍然使用的是无效的数据库连接,这样,就导致客户端程序报“ java.sql.SQLExc ...

随机推荐

  1. H3C 查看RIP的debugging信息

  2. js实现小数点四舍五入

    js实现小数点四舍五入 其实这个问题,在之前的面试中被提问到了,由于笔者平时都是用原生的toFixed()的方法来保留小数点,所以当时并没有回答出来这个问题,呜呜呜~.~

  3. P1002 Hello,World!

    题目描述 输出"Hello Wolrd!". 输入格式 无. 输出格式 输出一行"Hello World!". 样例输入 无. 样例输出 Hello World ...

  4. ActiveMQ--配置端口

    配置端口 端口配置选项 一般最常用的URI是连接到代理的端口URI,通常为TCP或VM端口. 要注意空格:所有的URI都是基于java.net.URI类,它并不允许使用空格.所以,如果你使用failo ...

  5. 2018-2-13-win10-uwp-unix-timestamp-时间戳-转-DateTime

    title author date CreateTime categories win10 uwp unix timestamp 时间戳 转 DateTime lindexi 2018-2-13 17 ...

  6. P1023 活动安排

    题目描述 某个人可以在n个活动中选择一些出来参加.每个活动都有起止时间.而且每个时间段只能参加一个活动.问,这个人最多能加参加几个活动. 可以在活动结束时,立即开始新的活动. 输入格式 第一行是一个整 ...

  7. Common Logging包装设计

    类设计 LogFactory根据当前环境加载具体的Log实现: 1.从缓存中加载LogFactory 2.从系统属性org.apache.commons.logging.LogFactory 中加载L ...

  8. Spring Tool Suite记录

    快速查询:选中项目名按CTRL+H

  9. Mac Tab自动补全键

    最近入手一个Mac(Mac 2019版本),在使用终端时,发现不能使用Tab键自动补全代码,网络搜寻下,发现这里有个方法,记录下,免得自己忘记: 1 / 首先找到这个图标 2 / 输入命令 nano ...

  10. springboot 动态修改定时任务

    1.静态定时 1)启动类加上注解@EnableScheduling @EnableAsync @EnableScheduling @SpringBootApplication @MapperScan( ...