连接池技术 Connection Pooling
原创地址:http://www.cnblogs.com/jfzhu/p/3705703.html
转载请注明出处
和数据库建立一个物理连接是一个很耗时的任务,所以无论是ADO.NET还是J2EE都提供了一个连接池的技术。
一个池其实就是一个列表。在ADO.NET中,有一个Connection Manager,它对每一个connection string都管理着一个可用连接的列表,这个列表就是Connection Pool。
当第一次数据库连接被初始化时,connection manager会创建一个Connection Pool Group。当第一次连接被打开的时候,才会创建第一个connection pool。一个连接正在被使用中,就会从connection pool中移除;如果使用完(被close或dispose),就会再返回到connection pool中去,以待下一个连接请求使用,所以我们要清楚一个概念,close connection的动作只是关闭了逻辑连接,但并没有关闭物理连接。
在ADO.NET中,默认情况下,一个连接返回到connection pool中,会有4到8分钟的空闲时间,超过这个时间,就会关闭物理连接。如果你的程序有很长时间的空闲时间,你应该确保至少有一个可用的数据库连接,可以通过设置Min Pool Size为1来实现。
另外决定是否一个连接使用的是相同connection string的决定性参数为以下几个:
- Connection Timeout
- Min Pool Size
- Max Pool Size
- Pooling
- Connection Reset
- Load Balancing Timeout(Connection Lifetime)
- Enlist
每当Connection Manager收到一个新的数据库连接请求时,它就会走下面的流程:

最后Entity Framework会帮你管理connection pool,所以不用担心数据库连接的效率问题。
连接池技术 Connection Pooling的更多相关文章
- 连接池(Connection Pool)技术
解释: 连接池(Connection Pool)技术的核心思想是:连接复用,通过建立一个数据库连接池以及一套连接使用.分配.管理策略,使得该连接池中的连接可以得到高效.安全的复用,避免了数据库连接频繁 ...
- 采用DBCP连接池技术管理连接
DBCP的使用步骤步骤一:导包,使用第三方的道具,必须导入相应的jar包. 一般需要导入两个jar包: -commons-dbcp-1.x.jar包 -commons-pool-1.x.x.jar包 ...
- 开源的连接池技术DBCP和C3P0
概述: Sun公司约定: 如果是连接池技术,需要实现一个接口! javax.sql.DataSource; 相关jar包和资料下载 1.1 DBCP连接池: l DBCP 是 Apache 软 ...
- JDBC实例--JDBC连接池技术解密,连接池对我们不再陌生
一.为什么我们要用连接池技术? 前面的数据库连接的建立及关闭资源的方法有些缺陷.统舱传统数据库访问方式:一次数据库访问对应一个物理连接,每次操作数据库都要打开.关闭该物理连接, 系统性能严重受损. 解 ...
- 2017.10.21 Java中的数据源与连接池技术
1.数据源技术就是预先建立好一定的数量的数据库连接,并将这些连接保存在连接池中,有连接池负责对这些数据库连接管理,当访问数据库时,只需要从连接池中取出有空闲状态的数据库连接:当程序访问数据库结束时,释 ...
- 走进JavaWeb技术世界3:JDBC的进化与连接池技术
走进JavaWeb技术世界3:JDBC的进化与连接池技术 转载公众号[码农翻身] 网络访问 随着 Oracle, Sybase, SQL Server ,DB2, Mysql 等人陆陆续续住进数据库 ...
- 线程池-连接池-JDBC实例-JDBC连接池技术
线程池和连接池 线程池的原理: 来看一下线程池究竟是怎么一回事?其实线程池的原理很简单,类似于操作系统中的缓冲区的概念,它的流程如下:先启动若干数量的线程,并让这些线程都处于睡眠状态,当客 ...
- 解密httpclient,dbcp,jedis,c3p0,druid,okhttp都在使用的连接池技术
最近在连接池上面栽了个跟头(参见这里),引起我对池技术的强烈关注,这几天总结了一下很多场景都会使用的池技术: 池概念 pool,中文翻译为水池,但是在英文中,还有一种解释是 an organizati ...
- Mybatis 的连接池技术
我们在前面的 WEB 课程中也学习过类似的连接池技术,而在 Mybatis 中也有连接池技术,但是它采用的是自 己的连接池技术.在 Mybatis 的 SqlMapConfig.xml 配置文件中,通 ...
随机推荐
- 【java】:常用工具类
PS; 平时用到的一些工具类,验证非空.字符切割.时间转换.金额转换 package com.jws.common.util; import java.io.UnsupportedEncodingEx ...
- html中 table 和 form的位置
对于web前端开发来说 经常会用到 像firebug这样审查元素 工具 发现了一个这样的现象: 当 able><form><tr>....</tr>< ...
- mysql 事件调度
适用于mysql 5.1 及以后版本 1.查看是否开启 show variables like '%scheduler%' 2.查看进程 show processlist 3.事件调度器默认是关闭的, ...
- 在安卓下打包cocos2d-js 3.6项目with ProtoBuf.js
项目用到了cocos2d-js 3.6和ProtoBuf.js,但是打包成apk时运行时总是报错(evaluatedOK == JS_FALSE),没有具体的文件和行号报错信息. 只能一个一个文件排查 ...
- 图片预加载和AJAX的图片预加载
利用js实现图片预加载,加载所需要图片的路径与名称即可,很容易实现,该方法尤其适用预加载大量的图片: <div class="hidden"> <script t ...
- 关于json解析中 解析多重json对象
JSONObject rst = {"AIS-RST":"AIS-00000001","AIS-STATUS":"AIS-0000 ...
- 《数据结构》 java的一维数组的内存结构与其特性
1{数组的概念: 数组是相同类型变量的集合,可以使用共同的名字引用它.数组也可以被定义为任何类型,可以是一维或者二维的.数组的访问时通过其对应的下标来实现的.数组提供了一种将有联系的信息便利分组的方式 ...
- swift基础语法(四) 函数、闭包(Closures)
//函数基本定义 func 函数名(参数名:参数类型=默认值) ->返回值类型{代码块} //无参无返回值函数 func hsmin(){ } //单参无返回值函数 func prin(st:S ...
- JQuery按回车提交数据
引入JQuery文件 <script src="JS/jquery-1.9.1.js" type="text/javascript"></sc ...
- mysql 存储 date , datetime问题,初步
1. java 里的 Date date = new Date()(java.util.Date) 得到 Thu Nov 03 22:19:43 CST 2016, 通过Timestamp stam ...