`
megahh
  • 浏览: 16809 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

一个困扰了很久的问题(付解决方案)

阅读更多

 

配置:tomcat + jpa(eclipselink) + mysql,连接池使用了tomcat7自带的jdbc-pool. mysql是主从复制.

jdbc url形如jdbc:mysql://mysqlmaster,mysqlslave/hhsailor?failOverReadOnly=false 

 

不定期发生异常导致网站挂掉,检查log发现主要异常信息:

com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed.  Connection closed after inability to pick valid new connection during fail-over.

大意是:连接关闭后不允许操作,由于fail-over时无法取得有效连接,连接被关闭.

google后发现有人在mysql forum上提过,可惜没有回复.

没有现成解决办法,只好看源码找了...

 

 

问题原因: 阅读mysql-connector代码后发现,只有在无法由主-从mysql数据库取得连接时,才会报出此错误.

而通过查看mysql日志发现mysql在此期间一切正常,并未发生任何问题.

联想到此问题常在周末休息之后发生在qa环境上,而mysql默认将8小时未活动的连接关闭,

由此推测关键原因是数据库已经关闭socket而连接池尚不知情,

 

 

解决方案1: 增大数据库连接保持时间,默认是8小时

将之增大到超过放假最长时间,比如10天,但感觉上这不是个好的解决方案.

show variables like 'wait_timeout' #单位秒

修改/etc/my.cnf

 

 

解决方案2: 连接池配置中加入验证,例如

 testOnBorrow="true"

 validationQuery="select 1"

 validationInterval="30000"

 连接池最终配置如下:

<Resource name="jdbc/MyDatasource_qa" auth="Container"

              type="javax.sql.DataSource"

              factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"

              driverClassName="com.mysql.jdbc.Driver"

              initialSize="50" minIdle="100"

              maxActive="999" maxIdle="300" maxWait="5000"

              username="xx" password="xx"

              testOnBorrow="true"

              validationQuery="select 1"

              validationInterval="30000" 

              url="jdbc:mysql://mysqlmaster,mysqlslave/hhsailor?failOverReadOnly=false" />

分享到:
评论

相关推荐

    postman6.x 启动闪屏 一直加载解决方案

    然而,如同任何软件一样,Postman在使用过程中可能会遇到各种问题,其中"启动闪屏且一直加载"的问题是用户可能遇到的一个常见困扰。这个问题通常出现在Postman的6.x版本上,特别是在某些特定的计算机配置或操作系统...

    unity游戏发布到安卓平台启动时黑屏时间过长解决方案

    针对"unity游戏发布到安卓平台启动时黑屏时间过长"这一问题,我们可以从以下几个方面探讨解决方案: 1. **优化资源加载**:Unity游戏启动时,会加载大量的资源,如纹理、音频、模型等。如果资源过大或过多,加载...

    解析mysql不重复字段值求和

    其原因是distinct只能返回它的目标字段,而无法返回其它字段,这个问题让我困扰了很久,用distinct不能解决的话,我只有用二重循环查询来解决,而这样对于一个数据量非常大的站来说,无疑是会直接影响到效率的。...

    myeclise10之svn:E210004错误解决

    myeclise10 svn: E210004: Number is larger than maximum 解决方案 专门解决win7 64位操作系统 下svn插件问题。...为此问题,困扰了我两回, 第一次找了很久改了很多,后莫名好了;第二回果断留心记录下来, 分享保存。

    护U使者(可修复安全删除硬件图标丢失问题)

    总之,"护U使者"作为一款专注于解决特定问题的工具,为用户提供了快捷的解决方案,帮助恢复“安全删除硬件”图标的显示,确保USB设备的正确使用。在日常使用中,我们应该养成良好的系统管理和维护习惯,配合这样的...

    久草cms1720190313.zip

    4. **常见问题.txt**:这是一个FAQ文档,列出了用户可能会遇到的问题和解决方案,有助于解决使用过程中遇到的困扰。 5. **给站长的一封信.txt**:这可能是开发者写给网站管理员的一封信,可能包含使用指南、建议...

    唯一解决 Protel 99 SE

    在这个特定的问题中,“Format '%x' invalid or incompatible with argument”是一个错误提示,表明在使用Protel 99 SE时遇到了格式化字符串与参数不匹配的错误。这个问题通常出现在尝试打印或处理数据时,由于程序...

    TrayPwrD3_v2020-11.zip

    标题中的"TrayPwrD3_v2020-11.zip"是...总的来说,"TrayPwrD3_v2020-11.zip"提供了一个针对性的解决方案,旨在帮助Windows 10用户解决困扰已久的鼠标卡顿问题,通过优化系统设置和可能的驱动修复,提升用户的使用体验。

    考研网站(整理了很久,绝对值得一看)

    是一个集考研资讯、复习资料、在线课程于一体的综合平台,特别适合需要一站式解决方案的考生。 以上列举的只是众多考研网站中的冰山一角,每个网站都有其特色和优势。考生在选择时应根据自身需求,如专业方向、...

    Chrome的最小字体12px限制最终解决办法

    之前在开发Hybid App的时候也被它困扰了很久,在百度上查了很久,网上所有的解决方案都惊奇地相似,只有下面两种: 1-针对谷歌浏览器加前缀进行适配 html{  -webkit-text-size-adjust:none;  } 给html标签加上下面...

    小学四年级下学期语文最佳路径PPT课件PPT课件PPT学习教案.pptx

    这个问题困扰了他很久,他为此进行了无数次的修改,但始终找不到满意的答案。这表明格罗培斯是一个对工作严谨、追求完美的设计师,他愿意付出大量的时间和精力去寻找最佳解决方案。 故事的转折点在于,格罗培斯在...

    linux下安装mysql及mysql.sock问题

    最近在linux上装Aphace,mysql,php时,遇到很多问题,在装apache和php遇到的问题要简单点,在百度,google上一搜就解决了,唯独在装mysql的时候遇到了一个问题困扰了我很久。  我用的是ubuntu7.0.我装mysql时,...

    联想E40网卡驱动,绝对能用

    总的来说,这个压缩包提供的联想E40网卡驱动解决了用户在寻找驱动方面的困扰,对于那些遇到网络连接问题的联想E40用户来说,这是一个重要的解决方案。正确安装并使用这个驱动,可以确保笔记本的网络功能正常运作,...

    【课程设计】网络运维方案-共34页word文档

    独立研发的完全适应于高、中端网络管理软件领域需求的一套优秀、可靠、先进的网络设备资源与应用服务资源、全中文、通用管理系统,为广大客户从根本上解决了困扰已久的网络管理难的棘手问题,并且很有效的帮助网络...

    初中语文文摘情感很久没有被这样爱过

    这篇文章并非关于IT行业,而是描述了一个情感故事,主要涉及人物关系、情感发展和个人成长。由于标签为“资料”,我们可以理解为这是一篇个人情感经历的分享或者是小说片段。以下是文章中可以提取的一些知识点: 1....

    IFRAME病毒木马清除工具

    在2007年,它可能是一个广受欢迎的解决方案,因为当时IFRAME攻击正变得越来越普遍。此工具通过扫描和分析系统中的IFRAME相关代码,识别并移除潜在的恶意组件,保护用户的电脑免受此类威胁的侵害。用户只需下载并运行...

    快速解决Android适配底部返回键等虚拟键盘的问题

    这个问题来来回回困扰了我很久,一直没能妥善解决。 场景1:华为手机遮挡了屏幕底部。 场景2:进入应用时,虚拟键自动缩回,留下空白区域。 需求: 需要安卓能自适应底部虚拟按键,用户隐藏虚拟按键时应用要占满整个...

    Linux下VMware workstation的3种使用技巧

    很多人都说虚拟机不易管理,原因是我们对于虚拟化的使用技巧掌握的还不是很好。今天,我们就来看三个Linux下...关于解决方案网上讨论得比较多,不过按网上的方法我一直没能解决,困扰我很久了(所以一直以来我都是用 N

    使用distinct在mysql中查询多条不重复记录值的解决办法

    其原因是distinct只能返回它的目标字段,而无法返回其它字段,这个问题让我困扰了很久,用distinct不能解决的话,我只有用二重循环查询来解决,而这样对于一个数据量非常大的站来说,无疑是会直接影响到效率的。...

Global site tag (gtag.js) - Google Analytics