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

数据库连接池报last packet ... ms的终极解决方法

阅读更多
最近项目上线后遇到了一个连接池获取的连接不可用,导致报last packet ... ms这样的错误。记录一下解决的过程。
我们使用的是druid数据库,使用的是网上最常见的配置方式,如下:

<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">   
    <!-- 基本属性 url、user、password -->  
    <property name="url" value="${jdbc_url}" />  
    <property name="username" value="${jdbc_user}" />  
    <property name="password" value="${jdbc_password}" />  
        
    <!-- 配置初始化大小、最小、最大 -->  
    <property name="initialSize" value="1" />  
    <property name="minIdle" value="1" />   
    <property name="maxActive" value="20" />  
   
    <!-- 配置获取连接等待超时的时间 -->  
    <property name="maxWait" value="60000" />  
   
    <!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->  
    <property name="timeBetweenEvictionRunsMillis" value="60000" />  
   
    <!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->  
    <property name="minEvictableIdleTimeMillis" value="300000" />  
    
    <property name="validationQuery" value="SELECT 'x'" />  
    <property name="testWhileIdle" value="true" />  
    <property name="testOnBorrow" value="false" />  
    <property name="testOnReturn" value="false" />  
   
    <!-- 打开PSCache,并且指定每个连接上PSCache的大小 -->  
    <property name="poolPreparedStatements" value="true" />  
    <property name="maxPoolPreparedStatementPerConnectionSize" value="20" />  
   
    <!-- 配置监控统计拦截的filters,去掉后监控界面sql无法统计 -->  
    <property name="filters" value="stat" />   
</bean>  


这里的超时时间其实就是timeBetweenEvictionRunsMillis设置的60秒了,空闲时间超过60秒的连接,在使用前会检查是否可用,所以首先查看数据库配置,但发现数据库配置的时间是超过60秒的,而且再加大超时时间也没有用。

后来dba说在数据库前还用了mycat,把mycat去掉直接连果然好了。

可是mycat也有超时时间,查看设置后发现也是大于60秒的,所以虽然基本上确定是mycat那边的问题,但始终不知道怎么解决。

直到...一天后dba又说mycat前面还有haproxy代理(...),并且发现haproxy设置的超时时间很短,后来加大时间把mycat加回去后问题终于解决。


总结:遇到类似的问题一定要搞清楚从程序到数据库一共经过了几层,每一层的超时时间必须依次增大,否则就会出现类似问题。
分享到:
评论

相关推荐

    Packet.dll 动态库文件

    eNSP.exe 打开需要使用的动态...由于找不到packet.dll,无法继续执行代码,重新安装程序可能会解决此问题 解决办法: 复制Packet.dll 到 C:\Windows\SysWOW64 和 C:\Windows\System32 目录下,再次启动软件即可正常。

    安装tcp ip协议用 packet.sys

    Packet.sys是一个重要的系统驱动文件,主要用于在Windows操作系统中实现TCP/IP协议的底层接口。本文将深入探讨TCP/IP协议,Packet.sys的作用以及如何安装和使用。 首先,TCP/IP协议栈由四个主要层次组成:网络接口...

    packet.dll

    3. "Packet.dll_PChome下载介绍.txt" - 这可能是一个文本文件,包含了从PCHome下载packet.dll的详细说明,包括如何验证文件的真伪、如何正确安装以及可能遇到的问题和解决方法。 在处理packet.dll缺失的问题时,...

    winpcap SDK开发包头文件sdk(pcap.h,Packet32.h,Packet32.h,wpcap.lib,Packet.lib)

    标签中的"winpcapSDK 开发包 头文件 sdk pcap.h Packet32.h Packet32.h wpcap.lib Packet.lib"进一步强调了这些文件在WinPCAP SDK中的重要性。这些标签是关键词,方便开发者搜索和识别相关资源。 在压缩包的子文件...

    packet.DLL,多个软件需要的dll

    packet.DLL,很多开发软件需要个人经历啊!好多开发软件需要各种各样的dll,并且还需要单独放到目录里 就便宜点吧,无语了……

    Packet.Tracer5.3.0.0088-汉化包

    这个"Packet.Tracer5.3.0.0088-汉化包"是该软件的一个版本,针对中文用户进行了语言本地化处理,使得中国用户在使用过程中能够更加方便地理解和操作。 Packet Tracer的主要功能包括以下几个方面: 1. **网络模拟**...

    思科路由器交换机模拟软件].Packet.Tracer5.3.0.0088.part1

    思科路由器交换机模拟软件].Packet.Tracer5.3.0.0088.part1,还有part2

    Packet.Tracer5.2.0.0068.part2

    Packet.Tracer5.2.0.0068.part1内含汉化包

    org.xmpp.packet.JID

    在使用android openfire 作为IM服务的时候 利用第三方账号 如果第三方账号中含有@符号的话 登录会报错 可以利用这个代码进行...然后传递到openfire 在查询数据库之前进行解析 这是在openfire的源代码中找出来 [更多]

    [思科路由器交换机模拟软件].Packet.Tracer5.3.0汉化包

    [[思科路由器交换机模拟软件].Packet.Tracer5.3.0汉化包,[思科路由器交换机模拟软件].Packet.Tracer5.3.0汉化包

    使用packet.dll发送与接收原始数据包

    本文将详细讲解如何使用packet.dll库来实现这一功能,该库为开发者提供了直接操作网络接口层的能力,使得我们可以构建更加灵活且定制化的网络应用。 首先,packet.dll是一个Windows平台下的动态链接库,它提供了低...

    af_packet.c

    在linux先安装sebek往往缺少这个内核文件,内核版本2.6.18

    Packet.Tracer5.2.0.0068.part1

    Packet.Tracer5.2.0.0068.part1内含汉化包

    packet32.h

    一个头文件,做网络嗅控时要用到的头,在计算机网络可以用到

    HG532eV100R001C01B020_upgrade_packet.bin

    HG532eV100R001C01B020_upgrade_packet.bin 定制版的华为HG532具有远程执行代码漏洞。 经过身份验证的攻击者可以将恶意数据包发送到端口37215,以发起攻击。 成功的利用可能导致远程执行任意代码。

    Packet.Tracer 官方原版 汉化包

    Packet.Tracer5.3.3官方原版+汉化包

Global site tag (gtag.js) - Google Analytics