当前位置: 技术问答>java相关
数据库连接池中多个连接池和单个连接池之间的区别
来源: 互联网 发布时间:2017-04-18
本文导语: 最近看连接池,有很多实现方法, A:有一个会话使用一个池子的,连接最大数是30,这个比较常见 B:在DBConnectionManager里用Hashtable保存一个连接池Hashtable的, 那在B里就可以开好几个池子的,不知道理解的是否对? B...
最近看连接池,有很多实现方法,
A:有一个会话使用一个池子的,连接最大数是30,这个比较常见
B:在DBConnectionManager里用Hashtable保存一个连接池Hashtable的,
那在B里就可以开好几个池子的,不知道理解的是否对?
B是否比A有更好的性能(当访问很大时?),有什么具体的区别?
但我看到的例子中B其实也只生成了一个池子,不知道开几个池子该怎么做?
连接池初始化时很多都有个预先建立连接,一个?还是几个为好?最大数一般在什么合适?
看到过用实现TimerListener接口再服务器端自维护池子的,比如当一个连接存在时间太长或使用次数很高后就释放该连接,但没具体代码,不知哪位兄台有这么方面经验,可否指点一二(关键是怎么维护,或者说维护的具体策略是什么?):)
初学之人,望各位不吝赐教了:)谢谢:)
A:有一个会话使用一个池子的,连接最大数是30,这个比较常见
B:在DBConnectionManager里用Hashtable保存一个连接池Hashtable的,
那在B里就可以开好几个池子的,不知道理解的是否对?
B是否比A有更好的性能(当访问很大时?),有什么具体的区别?
但我看到的例子中B其实也只生成了一个池子,不知道开几个池子该怎么做?
连接池初始化时很多都有个预先建立连接,一个?还是几个为好?最大数一般在什么合适?
看到过用实现TimerListener接口再服务器端自维护池子的,比如当一个连接存在时间太长或使用次数很高后就释放该连接,但没具体代码,不知哪位兄台有这么方面经验,可否指点一二(关键是怎么维护,或者说维护的具体策略是什么?):)
初学之人,望各位不吝赐教了:)谢谢:)
|
一个好的连接池功能奇多的!
简单的说:
1、连接非活动超时:在业务不繁忙时,释放连接到用户指定的最低连接数。
2、连接活动超时:当用户获取一个连接时间过长后连接池自动回收该连接。
3、同一连接重用:在一定时间内,用户可以通过一些参数得到上次使用过的同一个连接。
4、自动恢复连接:当连接池中的连接不可用时(例如数据库重起)自动恢复池中连接。
5、用户连接备用:当池中连接全部再使用时,对新的用户连接请求不拒绝,而是等待池中有可用连接,知道达到最大用户里连接备用数。
…………
…………
…………
啊~太多了,还有很多功能是应该具备的。
总之,连接池的作用除了连接复用外还有很多功能的。而最大最小连接数取决与你的数据库服务器的性能。
至于开多个池子,我过去用这种方式的情况是我需要不同用户和它的不同权限时,开不同的数据库用户的连接的。
简单的说:
1、连接非活动超时:在业务不繁忙时,释放连接到用户指定的最低连接数。
2、连接活动超时:当用户获取一个连接时间过长后连接池自动回收该连接。
3、同一连接重用:在一定时间内,用户可以通过一些参数得到上次使用过的同一个连接。
4、自动恢复连接:当连接池中的连接不可用时(例如数据库重起)自动恢复池中连接。
5、用户连接备用:当池中连接全部再使用时,对新的用户连接请求不拒绝,而是等待池中有可用连接,知道达到最大用户里连接备用数。
…………
…………
…………
啊~太多了,还有很多功能是应该具备的。
总之,连接池的作用除了连接复用外还有很多功能的。而最大最小连接数取决与你的数据库服务器的性能。
至于开多个池子,我过去用这种方式的情况是我需要不同用户和它的不同权限时,开不同的数据库用户的连接的。