问题描述

上上个周测试的时候突然报系统异常,于是我立即查看日志,发现是一个数据库异常: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. POI 导入、导出Excel

    POI,全称Apache POI,是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能.项目地址:Apache POI - t ...

  2. H3C 单区域OSPF配置示例一

  3. 如何读取redis中的key值中的结果

    redis的值有5种类型,不同的类型有不同的命令来获取: 字符直接 get key 队列 左端弹出一个元素  LPOP key 哈希 HGET key field 集合 SMEMBERS key 返回 ...

  4. H3C 动态路由协议在协议栈中的位置

  5. H3C DHCP系统组成

  6. tensorflow在文本处理中的使用——Word2Vec预测

    代码来源于:tensorflow机器学习实战指南(曾益强 译,2017年9月)——第七章:自然语言处理 代码地址:https://github.com/nfmcclure/tensorflow-coo ...

  7. 2018-8-10-resharper-跳转到源代码

    title author date CreateTime categories resharper 跳转到源代码 lindexi 2018-08-10 19:16:52 +0800 2018-2-13 ...

  8. MindV编入微软云计算中小企业解决方案

    鹰翔MindV思维导图软件基于云计算,曾作为windows azure云计算的一个样例介绍,收入中小企业解决方案中.http://www.microsoft.com/hk/smb/cloud/azur ...

  9. navicat创建存储过程时报错1064

    1.这是创建的存储过程 2.一保存就会出错 3.后来上网查了一下是存储过程的参数没有设定长度导致的,我们在Navicat中创建存储过程时参数的长度需要自己动手去添加的否则就会包这种错误. 添加上参数的 ...

  10. Mysql基本配置以及常见问题

    以下是MYSQL的基本配置以及常见问题的解决方式 1.获取客户端 https://dev.mysql.com/downloads/ 有两种方式获取到MYSQL,一种是通过MySQL Community ...