转眼间离这次问题的实践过程已经过去了一两个月了,现在想来自己的问题并不是不知道那么简单了,所以很有必要记录下来,算是一次警戒吧

废话不多说,直入主题。

我的直接上级准备将公司的后台管理系统由PHP转为JAVA。于是在他将基本架构搭建好后,我就开始干活了,当时第一周期是准备 将图片审核先快速完成上线,于是我天真地以为真的只是让我做做而已,没想到在测试人员刚把bug和问题都报我解决了之后便仓促 上线,可以说打了个我促不及防,果真,上线几天便出问题了,客服人员好几次报了错误提示,大概The last packet successfully received from the server was 2,907,745 milliseconds ago. The last packet sent successfully to the server was 0 milliseconds ago.,起初一看只报了一次便没理它,谁知过了几天突然一次性报了10次,于是考虑到问题到了非解决不可的地步,便让客服人员先用老系统来审核图片。 出了问题怎么办,首先想到的是查日志,一查之下十分失望,日志里面根本没有该错误提示,该提示直接输出到控制台了,于是想着 重现吧,但是在测试服务器上怎么也重现不出来,百思不得其解之下又回到了老路:上搜索引擎,毕业广大人民群众的智慧是无穷的嘛! 找啊找啊找朋友,找到一个好朋友,咦,差点忘了程序员怎么能找到朋友吧,就算是男朋友也行啊哈哈,终于在枯藤老树昏鸦,小桥流水 人家......断肠人在天涯的心情下涌现了无数篇关于Mybatis的文章解读,可是它的配置参数一个都不熟悉,只得在众多已经躺过坑的朋友 的建议下下载了Mybatis的源码来看,咦,这就是传说中的源代码么?!这么简单?看来我还是有成为代码大神的潜力嘛。终于,还是没有 看出个所以然来,正如你所认为的结局一下。

等一下,雀的玛德,果然解BUG只,在两天两夜的万千思有乱猜才是终极大招绪中,终于碰了碰运气将poolPingConnectionsNotUsedFor 参数值由60000改到了20000,果然,到目前一个月了,再没报相关问题了。那么问题出在哪儿呢,原来,mysql对一个连接的时间是8个小时,按理说60秒不应该超时啊,可是实际情况是,由于公司的APP上用户 量过万,8个小时的连接超时时间太过浪费,于是将时间改为30秒,看到这儿有些朋友可能知道问题出在哪儿了,没错,由于当初设置的 _poolPingConnectionsNotUsedFor_值大于30秒,导出会出现连接被mysql强行关闭的情况,而mybatis连接池却不知情,于是会出现 执行操作会报异常的情况。

好了,现在回过头来看一看这个poolPingConnectionsNotUsedFor参数到底是神马鬼!顾名思义,连接池在闲置连接没有被使用多少 秒后会去ping一下mysql看该连接是否已经被断开,如果被断开,该连接将不会被拿来使用,而是直接释放并重新看其它的连接是否可用, 而如果该连接还未超过设置的时间,就拿来使用。好了,如果有不懂的,可以联系我,我会尽量解决的,联系方式嘛,相信你会找到的。

关于Mybatis的一次pingQuery时间间隔的实践及思考的更多相关文章

  1. Mybatis连接Oracle实现增删改查实践

    1. 首先要在项目中增加Mybatis和Oracle的Jar文件 这里我使用的版本为ojdbc7 Mybatis版本为:3.2.4 2. 在Oracle中创建User表 create table T_ ...

  2. Java Persistence with MyBatis 3(中文版) 前言

    对很多软件系统而言,保存数据到数据库和从数据库中检索数据是其工作流程中至关重要的一部分.在 Java 领域,有很多的实现了数据持久化层的工具和框架,它们每一个都有自己不同的实现方法.而 MyBatis ...

  3. MyBatis总结与复习

    Spring 主流框架 依赖注入容器/AOP实现 声明式事务 简化JAVAEE应用 粘合剂,将大家组装到一起 SpringMVC 1.  结构最清晰的MVC Model2实现 2.  高度可配置,支持 ...

  4. 浅析MyBatis(四):全自动写代码的MyBatis逆向工程

    在前面几篇文章中,笔者介绍了 MyBatis 的运行流程,在此基础上简单介绍了手写 MyBatis 简易框架与自定义 MyBatis 插件的步骤,相信大家对于 MyBatis 框架的使用流程已经游刃有 ...

  5. 系统吞吐量、TPS(QPS)、用户并发量、性能测试概念和公式

    PS:下面是性能测试的主要概念和计算公式,记录下: 一.系统吞度量要素: 一个系统的吞度量(承压能力)与request对CPU的消耗.外部接口.IO等等紧密关联.单个reqeust 对CPU消耗越高, ...

  6. 使用mybatis-generator自动生成model、dao、mapping文件

    参考文献:http://www.cnblogs.com/smileberry/p/4145872.html 一.所需库 1.mybatis-generator库 2.连接DB的驱动(此以mysql为例 ...

  7. 系​统​吞​吐​量​(​T​P​S​)​、​用​户​并​发​量​、​性​能​测​试、IO负载学习

    目录 . 如何评价一个系统的性能 . 系统吞度量 . 网络上下行数据量 . 客户端-服务端TCP同时长连接数量 . 系统性能的指标计算 . 系统IO负载 1. 如何评价一个系统的性能 在文章的开始,我 ...

  8. Api项目压力测试知识荟萃

    并发用户.在线用户和注册用户以及彼此之间的换算方法(估算模型).系统的最大并发用户数根据注册用户数来获得,换算方法一般是注册总人数的5%-20%之间:系统的并发数根据在线人数来获得,换算方法一般是在3 ...

  9. 数据库服务器---Tps

    事务处理系统:Transactionprocessingsystems(TPS) 提高事务处理效率与保证其正确性 在数据(信息)发生处将它们记录下来 通过OLTP产生新的信息 将信息保存到数据库中供其 ...

随机推荐

  1. interface接口

    当一个抽象类中的方法都是抽象的时候,这时可以将该抽象类用另一种形式定义和表示,就是接口 interface. 定义接口使用的关键字不是class,是interface.接口中常见的成员: 这些成员都有 ...

  2. git镜像仓库

    有时候我们会把一些仓库放到本地,当他更新的时候,可以使用简单命名更新他. 不是所有时间我们都有网,所以把远程的仓库作为镜像,可以方便我们查看 普通的git clone不能下载所有分支,想要简单的git ...

  3. CMake必知必会

    CMake 文档 https://cmake.org/cmake/help/v3.7/index.html 需要阅读的文档 item note link cmake-buildsystem(7) cm ...

  4. MySQL数据库分区的概念与2大好处(1)

    我们大家都知道通过MySQL数据库分区(Partition)可以提升MySQL数据库的性能,那么到底什么是MySQL数据库分区呢?以及其实际应用的好处的表现有哪些呢?以下的文章就是对这些内容的描述. ...

  5. await和async更多的理解

    最近有不少网友提起await和async,呵呵,C# 5引进的语法糖. 这个语法糖还真不好吃,能绕倒一堆初学的朋友,在网上也有很多网友关于这块知识点的争论,有对有错,今天在这里把这个误区好好讲讲. 在 ...

  6. LeetCode 548. Split Array with Equal Sum (分割数组使得子数组的和都相同)$

    Given an array with n integers, you need to find if there are triplets (i, j, k) which satisfies fol ...

  7. 【译】10分钟学会Pandas

    十分钟学会Pandas 这是关于Pandas的简短介绍主要面向新用户.你可以参考Cookbook了解更复杂的使用方法 习惯上,我们这样导入: In [1]: import pandas as pd I ...

  8. [PGM] Bayes Network and Conditional Independence

    2 - 1 - Semantics & Factorization 2 - 2 - Reasoning Patterns 2 - 3 - Flow of Probabilistic Influ ...

  9. js 判断通过什么打开(安卓、苹果、微信、QQ、浏览器、某个app应用…)

    /* 获取当前环境: 系统环境: iOS Android PC 浏览器环境 微信内置浏览器.QQ内置浏览器.正常浏览器 是否app内打开 */ var ua = navigator.userAgent ...

  10. poj 2720 Last Digits

    Last Digits Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 2233   Accepted: 474 Descri ...