下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、连接池的基本工作原理1、基本概念及原理 。该模式正是为了解决资源提供依据。2、服务器自带的连接池JDBC 的APIWEBBEA 的WebLogic 和WebSphere连接池关键问题分析1、并发问题Javasynchronized确保线程是同步的。使用方法为直接在类方法前面加上synchronizedpublic synchronized Connection 2、多数据库服务器和多用户对于大型的企业级应用,常常需要同时连接不同的数据库(如连接Oracle 和 Sybase)()等信息。如tx.url=172.21.15.123:5000/tx_it, 。根据资源文件提供的信息,创建多个连接池
2、类的实名字,通过不同的名字来管理不同的连接池。对于同一个数据库有多个用户使用不同的名称和密码访问的情况,也可以通过资源文件处 url息。3、事务处理“ALL-ALL-NOTHING”于一组SQLJavaConnectionConnection 属性为false,然后显式的调用commitrollback行 Connection实现,这种方法可以大大降低事务管理的复杂性。4、连接池的分配与释放用度,从而降低建立新连接的开销,同时还可以加快用户的访问速度。(通过容器的顺序存放实现(实际是先做连接是否有效maxCon(timeou如果在等待的时间内有连接被释放出来就可以把这个连接分配给等待的用户ti
3、meout,则返回空值。系统对已经分配出去正在使用的连接只做计 5、连接池的配置与维护连接池中到底应该放置多少连接,才能使系统的性能最佳?系统可采取设置最小连接数(minConn)如何确保连接池中的最小连接数呢?有动态和静态两种策略连接池的实现1、连接池模型本文讨论的连接池包括一个连接池类(DBConnectionPool)和一个连接池管理类(原来登记 为可用的连接,由于某种原因不再可用,如超时,通讯问题),总数不低于某个预定值和不超过某个预定值。据库的JDBC 驱动程序;根据属性文件给定的信息,创建连接池对象;为方便管理多个2、连接池实现复制内容到剪贴板下面给出连接池类和连接池管理类的主要属
4、性及所要实现的基本接口:复制内容到剪贴板代码代码:public class DBConnectionPool implements TimerListener private int checkedOut;/已被分配出去的连接数private ArrayList freeConnections=new ArrayList();/容器,空闲池,根据/创建时间顺序存放已创建但尚未分配出去的连接private int minConn;/连接池里连接的最小数量private int 连接池里允许存在的最大连接数private String 为这个连接池取个名字,方便管理private String 连
5、接数据库时需要的密码private String 所要创建连接的数据库的地址private String 连接数据库时需要的用户名public Timer 定时器public DBConnectionPool(String name,String URL,String user,String password,int maxConn)/公开的构造函数public synchronized void freeConnection(Connection con)/使用完毕之后,把连接返还给空闲池public synchronized Connection getConnection(long ti
6、meout)/是等待时间public synchronized void release()/断开所有连接,释放占用的系统资源private Connection newConnection()/新建一个数据库连接public synchronized void TimerEvent()/定时器事件处理函数public class DBConnectionManager static private DBConnectionManager instance;/连接池管理类的唯一实例static private int 客户数量private ArrayList drivers=new Arra
7、yList();/容器,存放数据库驱动程序private HashMap pools = new HashMap();/name/value的形式存取连接池对象的名字及连接池对象static synchronized public DBConnectionManager getInstance()/*instance;否则,调用私有构造函数,创建连接池管理类的唯一实例创建连接池管理类的唯一实例*/ private DBConnectionManager()/私有构造函数,在其中调用初始化函数 init()public void freeConnection(String name,Connec
8、tion con)/是一个连接池对象的名字public Connection getConnection(String name)/name的连接池对象中得到一个连接public Connection getConnection(String name,long time)/从名字为 name 的连接池对象中取得一个连接,time 是等待时间public synchronized void release()/释放所有资源private void createPools(Properties props)/根据属性文件提供的信息,创建一个或多个连接池private void 初始化连接池管理类
9、的唯一实例,由私有构造函数调用private void loadDrivers(Properties 装载数据库驱动程序3、连接池使用上面所实现的连接池在程序开发时如何应用到系统中呢?下面以Servlet 为例说明连接池的使用。Servlet 的生命周期是:在开始建立servlet 时,调用其初始化户请求都导致一个调用前面建立的实例的serviceservletservletdestroy复制内容到剪贴板根据servlet(括创建一个或多个连接池)。如:复制内容到剪贴板代码:代码:public void init() throws ServletExceptionpublic void init() throws ServletExceptionconnMgr=DBConnectionManager.getInstance();然后就可以在service 方法中通过连接池名称使用连接池方法中释放占用的系统资源,如:复制内容到剪贴板复制内容到剪贴板代码:代码:public void destroy() connMgr.release(); super.des
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 统编版五下六上学科融合劳动教材-茄子种植实践(同一班级进阶版)
- 2026黑龙江七台河市人民医院第一批招聘编外医疗卫生技术人员56人备考题库及1套参考答案详解
- 2026贵州黔东南州镇远县人民医院上半年招聘编制外聘用人员17人备考题库含答案详解
- 2026年河南省三门峡市湖滨区事业单位联考招聘备考题库附答案详解(突破训练)
- 2026中国共产党曲靖市委员会统一战线工作部招聘公益性岗位3人备考题库(云南)含答案详解(夺分金卷)
- 2026甘肃省中医院考核招聘高层次人才1人备考题库(第四期)附答案详解(综合题)
- 2026新疆兵团兴新职业技术学院面向高校毕业生招聘37人备考题库含答案详解(培优b卷)
- 2026云南西双版纳勐腊海关招聘2人备考题库含答案详解(预热题)
- 2026辽宁大连理工大学盘锦产业技术研究院招聘(高层次和 急需紧缺)13人备考题库及一套完整答案详解
- 2026北京顺义区教委所属事业单位第二次招聘教师189人备考题库及答案详解(易错题)
- 2025年江西省高考物理试卷真题(含答案及解析)
- 2025年党纪法规知识测试题(含答案)
- 电梯型式试验规则
- 线材生产车间管理制度
- CJ/T 371-2011垃圾填埋场用高密度聚乙烯管材
- CJ 3057-1996家用燃气泄漏报警器
- 基于大数据的临床检验结果分析
- DBJ04T 292-2023 住宅物业服务标准
- 中药天花粉简介
- 2024-2025年全国高中数学联赛试题及解答
- 连续退火铜大拉线机性能参数及操作规范
评论
0/150
提交评论