连接池Connection timed out
当应用程序使用数据库连接池(或带服务程序的连接池)进行数据连接时,防火墙的设置有可能会导致连接出现超时或者被重置的问题。当从数据库读数据(或服务程序客户端读取数据)的时候 有可能会 Connection timed out, 这是由于应用会缓存数据连接,当要访问数据库(服务程序)的时候,但是这个时候缓存的数据库(服务程序)连接有可能因为防火墙设置已经超时或者被数据库(或系统优化程序)干掉了。
问题描述:
系统割接后,中间件和数据库进行了防火墙隔离,由于数据库和应用都进行了割接,系统架构由原先的单一网络变成了跨系统部署,数据库和应用之间的访问通过防火墙;而防火墙这边对空闲的连接配置了超时时间(一般默认为30分钟),一旦超过时间,会自动将连接断掉;而断掉后,应用程序这一侧的数据库连接池这边还是认为该连接有效,它只在应用获取该连接时才会进行一个有效性测试,会每间隔一个时间尝试一次,尝试n次后才确定该连接失效,发起重连,最终造成业务耗时长。
由于连接池连接数很多,势必造成有部分连接空闲时间超过了防火墙的设置,而应用程序这边没有配置对空闲连接的维护参数,空闲连接会一直认为有效,所以该现象只会出现在连接池中的空闲连接上;当应用获取已被防火墙断开的空闲连接时,就会造成应用的响应慢,或者直接提示 connection timed out 异常。
解决办法:
针对该现象,解决方案一般有以下几个:
1、对连接池这一块的参数进行优化,增加对空闲连接的未使用超时和时效超时(小于防火墙的配置),优化现有连接有效性测试的相关次数和间隔时间配置,使得应用侧从连接池中获取到的连接均有效,避免因长时间没有进行数据操作被防火墙kill掉;
2、取消防火墙中对于数据库连接的超时设置。
连接池Connection timed out的更多相关文章
- SecureCRT连接本地的Vmware虚拟机(CentOS)时提示连接超时“Connection timed out”
测试了一下,直接在Vmware的VM里面可以ping通宿主机. 但是宿主机无法ping通VM. 后面发现是本地的网络设置里面的vmware的NAT的网卡设置了手工填写地址和DNS. 修改为自动获取.问 ...
- okhttp连接池:put,get方法&connection回收
OkHttp连接池put和get方法: 在上一次[https://www.cnblogs.com/webor2006/p/9281429.html]咱们分析了连接拦截器,如下: 不管是Http1.0还 ...
- nodejs的mysql模块学习(六)连接池的创建和使用
介绍 在 软件工程 , 连接池 是一个 高速缓存 的 数据库连接 维持,使得连接可以当需要将来向数据库请求重复使用. [ 来源请求 ] 连接池用于提高数据库上执行命令的性能. 打开并保持每个用户的数据 ...
- C3P0连接池温习1
一.应用程序直接获取数据库连接的缺点 用户每次请求都需要向数据库获得链接,而数据库创建连接通常需要消耗相对较大的资源,创建时间也较长.假设网站一天10万访问量,数据库服务器就需要创建10万次连接,极大 ...
- Java 学习使用常见的开源连接池
目录 连接池介绍 自定义连接池 JDBC Tomcat Pool DBCP(DataBase Connection Pool) 使用配置文件来设置DBCP C3P0 Druid 连接池介绍 在说连接池 ...
- JAVA_连接池、DataSource、JNDI
1.连接池 Connection的取得和开放是代价比较高的处理,解决这个问题的方法是连接池. 连接池就是事先取得一定数量的Connection,程序执行处理的时候不是新建Connectio ...
- day18 16.dbcp连接池使用介绍
package cn.itcast.datasource; import java.io.FileInputStream; import java.sql.Connection; import jav ...
- c3p0连接池获得的Connection执行close方法后是否真的销毁Connection对象?
问题描述: jfinal做的api系统中,在正常调用接口一段时间后,突然再调用接口的时候,该请求无响应api系统后台也无错误信息 (就是刚开始接口调用是正常的,突然就无响应了) 于是啊,就开始找错误. ...
- 连接池技术 Connection Pooling
原创地址:http://www.cnblogs.com/jfzhu/p/3705703.html 转载请注明出处 和数据库建立一个物理连接是一个很耗时的任务,所以无论是ADO.NET还是J2EE都提供 ...
随机推荐
- 微信强大的demo
https://github.com/xialeistudio/wechatPublicPlatform
- Python - json和simplejson比较(转)
From:https://stackoverflow.com/questions/712791/what-are-the-differences-between-json-and-simplejson ...
- Hibernate使用xml文件的每个类层次一张表
通过这种继承策略,我们可以通过单表映射整个层次结构. 这里,在表中创建一个额外的列(也称为discriminator列)来标识该类. 让我们先了解问题.下面给出的整个层次类映射到数据库的一个表中图解说 ...
- Python 爬虫实战5 模拟登录淘宝并获取所有订单
经过多次尝试,模拟登录淘宝终于成功了,实在是不容易,淘宝的登录加密和验证太复杂了,煞费苦心,在此写出来和大家一起分享,希望大家支持. 本篇内容 python模拟登录淘宝网页 获取登录用户的所有订单详情 ...
- Android 版本更新升级
推荐一款很好的版本升级开源框架: https://github.com/WVector/AppUpdate 个人地址:总结https://gitee.com/anan9303/AppVersionUp ...
- IOS开发之----常用加密方法
本文转载至 http://blog.csdn.net/wildfireli/article/details/23191983 (AES.MD5.Base64) 分类: iPhone 2014-04-0 ...
- ibatis 大于等于小于等于的写法
在ibatis的sql语句xml配置文件中,写sql语句会经常用到大于等于小于等于等等符号.网上搜罗了一些写法,大致有3种: 其实就是xml特殊符号,转义的方式. < < > > ...
- 检验指定路径的文件是否存在ftp服务器中
import org.apache.commons.net.ftp.FTP;import org.apache.commons.net.ftp.FTPClient;import org.apache. ...
- php自定义函数: 下载远程文件 httpcopy
<?php function httpcopy($url, $file="", $timeout=60) { $file = empty($file) ? pathinfo( ...
- 【转】jstack简单使用
转载记录下, 转载自https://www.cnblogs.com/chenpi/p/5377445.html 当我们运行java程序时,发现程序不动,但又不知道是哪里出问题时,可以使用JDK自带的j ...