`
56553655
  • 浏览: 202929 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

颜海东:数据库重启后,为防止应用因为连接池的源不可用的重连配置

阅读更多

    前段时间应用在晚上突然会出现应用不可用的情况,只有经过长时间(大约10分钟)或者应用重启后,访问才能再次正常。查看日志,其中报大量的数据 库连接异常。如下:

        Caused by: com.ibatis.common.jdbc.exception.NestedSQLException:
        --- The error occurred in sqlmaps/price.xml.
        --- The error occurred while applying a parameter map.
        --- Check the dayprice.QUERY-PRICE-BY-THEME-ID-InlineParameterMap.
        --- Check the parameter mapping for the 'themeId' property.
        --- Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after statement closed.
                at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryWithCallback(GeneralStatement.java:185)
                at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryForList(GeneralStatement.java:123)
                at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMapExecutorDelegate.java:615)
                at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMapExecutorDelegate.java:589)
                at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForList(SqlMapSessionImpl.java:118)
                at org.springframework.orm.ibatis.SqlMapClientTemplate$3.doInSqlMapClient(SqlMapClientTemplate.java:298)
                at org.springframework.orm.ibatis.SqlMapClientTemplate.execute(SqlMapClientTemplate.java:209)
                ... 50 more
        Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after statement closed.

    怀疑是数据库连接有问题,因此联系了DBA,DBA查看日志后发现当时数据库进行了一次主库和备份 库之接的切换。为什么要做这个切换呢?这是由于数据库那边有一个HA机制。所 谓HA机制就是数据库的高可用性保障机制,目前价格行情中通过一个心跳机制,每隔一段时间会由备份库去ping主库,如果无法ping通,则会进行一次主 库和备份库之间的切换。
    一开始,认为这是由于数据库重启,导致了不能访问数据库从而导致了应用不可用。但是数据库重启时间只有20秒左右,应该无法导致这么长时间的不可用。然后 在本地机器上安装了mysql数据库进行了测试发现,应用在数据库重启,正常可用之后仍然无法正常 访问。后发现这是由于在数据库重启之后,在连接池中已经在使用的连接均会失效,如果后续的访问不幸取到这些连接的话,则仍然无法正常访问数 据库。
    那么如何使应用在数据库连接失效之后,能够将这些连接马上失效,并取到可用的连接呢?其实很简单,只需要在数据库连接池配置中加一个配置项即可。目前看了 一下各个应用,有三种不同的实现方式:

    1、针对proxool连接池,因此只需要如数据库连接url中加入红圈内的autoReconnect=true即可:


    2、针对DBCP连接池,有两种操作方式:

    2.1)、加一个配置项check-valid-connection-sql,这个配置项的作用是在 sql执行之前执行一条在这个配置项中配置的sql:SELECT @@SQL_PING,根据返回信息来判断这个连接是否可用,如果不可用则将之废弃,然后创建一个新的连接供这个数据库请求使用。


    2.2)、其中的作法也是加了一个配置项,就是exception-sorter-class-name,这个配置项的 作用是捕获数据库请求中所返回的异常,如果是可以判定为该连接失效的异常,则将这个连接废弃。(这个配置项的内容mysql和oracle都有各自的异常 捕获类)



  DBCP中的两种不同的配置方式,各有长处吧,用check-valid-connection-sql可以在连接失效时 重新取得连接来尽量保证此次数据库请求正常,而缺点是每次执行sql都要额外执行一次验证sql;而exception-sorter-class- name虽然不用每次额外执行一条sql,但是在取到失效连接那次访问依然不能使用。

 

    既然DBA那边对数据库配置了HA机制,而且据 DBA说HA机制会偶有“抽风”的现象,因此就会偶 尔的出现这样的切换情况,因此各个应用最好检查下各自的应用中有没有在DBCP中配置相关内容,保证数据库重启后的重连。

 

 

 

 

 

  • 大小: 36.8 KB
  • 大小: 27.3 KB
  • 大小: 26.2 KB
1
0
分享到:
评论

相关推荐

    海东供电公司ORACLE数据库升级方法的研究与实现.pdf

    "海东供电公司ORACLE数据库升级方法的研究与实现" 本文主要研究了海东供电公司ORACLE数据库升级方法...本文对海东供电公司ORACLE数据库升级方法的研究与实现进行了深入的研究和分析,为数据库升级提供了有价值的参考。

    许海东:新能源汽车下乡大有可为.pdf

    许海东:新能源汽车下乡大有可为.pdf

    Oracle9i备课笔记——吕海东

    同时安装后要对客户端进行配置,以连接到某个数据库。 (2) 多层运行模式:针对Internet 1.6 Oracle服务器的标识 从Oracle8i开始,为了在Internet发布Oracle数据库,Oracle的标识采用了全局服务名的概念。 (1) 全局...

    ST海东源:2020年半年度报告.PDF

    【ST海东源2020年半年度报告】是中国海南东源物流股份有限公司发布的一份重要的财务报告,旨在向公众、投资者以及相关行业分析师展示公司在2020年上半年的运营状况、财务数据和重大事件。以下是报告中的关键知识点:...

    海东市乐都区沙果线上线下销售管理平台.zip

    海东市乐都区沙果线上线下销售管理平台是一款专为海东市乐都区的沙果销售设计的综合性管理系统,旨在提升当地沙果产业的运营效率和市场竞争力。该平台结合了现代信息技术与传统农产品销售模式,实现了线上线下的无缝...

    visio信息化设计实例有线网络部署-广铁集团调度大楼内海东环防灾网络连接示意图.zip

    《基于Visio的信息化设计:智慧城市中的网络通信工程——以广铁集团调度大楼内海东环防灾网络连接为例》 Visio是一款由Microsoft开发的专业图表绘制软件,它在信息化设计、网络通信工程以及产品开发等领域中发挥着...

    vertx应用开发实例教程-完整版

    本资源为 Vert.x应用开发实例教程(吕海东,张坤 著)全高清完整版pdf 。 《Vert.x应用开发实例教程》全面采用案例驱动,主要知识的讲解都辅助以实际案例应用编程,便于读者的理解和自主学习和运用。  知识讲解通俗...

    数据库查询知识

    这些查询展示了SQL的基本用法,包括选择、过滤、排序、计算、连接、子查询、聚合函数以及分组等多个概念,它们是数据库操作中不可或缺的部分。熟悉并掌握这些技能对于数据库管理和数据分析至关重要。

    扬州大学于海东微机原理课件及复习资料

    这门课程对于计算机科学和技术、电子信息工程等专业的学生至关重要,因为它构建了理解现代计算机硬件与软件协同工作的基础。扬州大学于海东教授的微机原理课程,以其清晰的教学思路和实用的课件设计,深受学生们喜爱...

    GPS—RTK测量技术在青海海东高铁新区控制测量中的应用.pdf

    【GPS—RTK测量技术】是全球定位系统...总结来说,GPS—RTK测量技术在青海海东高铁新区控制测量中的应用,以其高效、精准的特点,显著提升了测量工作的质量和速度,为大型建设项目的顺利进行提供了强有力的技术支持。

    大型差异数据库中高伪装入侵数据挖掘方法.pdf

    针对传统入侵数据挖掘方法存在的挖掘精准性差和...作者简介显示徐良为青海海东人,是一位讲师,研究方向为网络管理、网络安全和数据库(大数据)。收稿日期为2019-07-10,稿件编号为***,说明了文章的提交和编号时间。

    Android开发从入门到精通源码

    《Android开发从入门到精通源码》是一份全面学习Android应用开发的重要资源,包含了扶松柏老师教学课程的源代码。这份源码分为两大部分,分别对应教程的2-6章和7-12章,旨在帮助初学者逐步掌握Android开发的核心技能...

    2022年海东市建筑轮廓GIS数据

    海东市建筑轮廓GIS数据是2022年度关于该地区建筑地理信息的重要资源,它包含了一系列用于描述建筑物形状、位置以及属性的数据。GIS(Geographic Information System)是一种集地理位置与相关属性信息于一体的系统,...

    滴水逆向3期初级和中级课件(海东老师讲)

    滴水逆向3期初级和中级课件(海东老师讲) 全套包括 EXE 练手文件 配套电子书......

    (1)单模-多模-单模光纤结构在...后康复监测中的传感应用研究_梁海东.caj

    (1)单模-多模-单模光纤结构在...后康复监测中的传感应用研究_梁海东.caj

    青海省海东市DEM数字高程数据30m(含本市级范围shp文件).zip

    标题中的“青海省海东市DEM数字高程数据30m(含本市级范围shp文件).zip”指的是一个地理信息系统(GIS)相关的压缩包文件,包含的是关于海东市的高精度数字高程模型(DEM)数据。这些数据是以30米的分辨率呈现,...

    大理海东开发投资集团有限公司公司债券2019年年度报告.PDF

    大理海东开发投资集团有限公司的2019年年度报告揭示了该公司在债券市场和投资领域面临的关键风险和业务概况。这份报告由公司董事、监事和高级管理人员签署确认,并由中审众环会计师事务所出具了无保留意见的审计报告...

    滴水三期视频及课件(海东版).txt

    滴水三期完整视频和课件,就是海东老师录播的版本,本人全部学完感觉受益颇丰. 视频一共96节,每节课都包含对应的课件和习题

    青海省海东市平安县第一高级2014-2015学年高二英语4月月考试题(扫描版).doc

    很抱歉,但根据您给出的信息,这似乎是一个...如果您需要关于IT行业的详细知识点,例如编程语言、网络技术、数据库管理、软件开发流程、信息技术应用等,请提供相关的IT主题或问题,我将非常乐意为您提供详尽的解答。

    2013年-2022年最新全国城市的PM2.5数据-海东.zip

    标题中的“2013年-2022年最新全国城市的PM2.5数据-海东.zip”表明这是一个关于中国各地城市PM2.5空气质量数据的压缩文件,时间跨度为十年,即从2013年至2022年,主要关注的是海东地区的数据。PM2.5是指空气中直径...

Global site tag (gtag.js) - Google Analytics