Tomcat连接池—最简单的实现.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Tomcat连接池—最简单的实现

2. Tomcat 5.5 2.1. 连接池概述 数据库连接的建立及关闭对系统而言是耗费系统资源的操作,在多层结构的应用环境中,这种耗费资源的动作对系统的性能影响尤为明显。在传统的数据库连接方式(指通过DriverManager)中,一个数据库连接对象均对应一个物理数据库连接,每次操作都打开一个物理连接,使用完都关闭连接,这样很容易造成系统性能的下降。 数据库连接池的解决方案是在应用程序启动的时候建立足够的数据库连接,并将这些连接组成一个连接池(简单说:在一个“池”里放了好多半成品的数据库连接对象),由应用程序动态地对池中的连接进行申请、使用和释放。对于多于连接池中连接数的并发请求,应该在请求队列中排队等待,并且应用程序可以根据池中连接的使用率,动态增加或减少池中的连接数。 连接池技术尽可能地重用了消耗内存的资源,大大节省了内存,提高了服务器的服务效率,能够支持更多的客户服务。通过使用连接池,将大大提高程序运行效率,同时,我们可以通过其自身的管理机制来监视数据库连接的数量、使用情况等。 数据库连接是一种关键的有限额昂贵的资源,这一点在多用的网页应用程序中体现得尤为突出。对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,将影响到程序的性能指标。数据库连接池正是针对这个问题提出的。 数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不再是重新建立一个,释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。这项技术能明显提高对数据库操作的性能。 数据库连接池在初始化时将创建一定数量的数据库连接放到连接池中,这些数据库连接的数量是由最小数据库连接来决定的。无论这些数据库连接是否被使用,连接池都将一直保持至少拥有这么多的连接数量。连接池的最大数据库连接数量限定了这个连接池能占有的最大连接数,当应用程序向连接池的连接数超过最大连接数量时,这些请求将被加入到等待队列中。数据库连接的最小连接数和最大连接数的设置要考虑下列几个因素: 最小连接数是连接池一直保持的数据库连接,所以如果应用程序对数据库连接的使用使用量不大,将会有大量的数据库连接资源被浪费。 最大连接数是连接池能申请的最大连接数,如果数据库连接请求超过此数,后面的数据库连接请求将被加入到等待队列中,这会影响之后的数据库操作。 如果最小的连接数与最大的连接数相差太大,那么最先的连接请求将会获利,之后超过最小连接请求等价于建立一个新的数据库请求,不过,这些这些大于最小连接数的数据库连接在使用完不会马上被释放,它将会被放到连接池中等待重复使用或是空闲超时后被释放。 2.2. Tomcat连接池配置 在这个环节,我使用的工具是Tomcat 5.5,Mysql 5.1以及Eclipse3.3.2。 第一步操作:我们需要把mysql驱动程序放置到%Tomcat_Home%\common\lib下。 第二步操作:打开Eclipse,打开server下的server.xml,在Host节点中加入以下代码: 程序2-1 Context docBase=ServletPractise path=/ServletPractise reloadable=true source=org.eclipse.jst.j2ee.server:ServletPractise Resource name=jdbc/mysql auth=Container type=javax.sql.DataSource driverClassName=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/test username=root password= maxActive=5000 maxIdle=10 maxWait=-1 / /Context Context节点中的属性解释: doBase:虚拟目录的路径。 path:虚拟目录的名字,就是我们输入http://localhost:8080/aaa的时候。aaa就是名字。 reloadable:重新载入,设置为true,表示一旦有改动,tomcat会重新加载。 source:好像是Eclipse自带的。 Resource节点中的属性解释: name:JDBC数据源的名称。 driverClassName:数据库驱动。 username:用户名。 password:密码。 maxActive:最大活动的连接。 maxWait:最长等待获得连接的时间。 maxIdle:最大处于空闲的连接数。 url:数据库连接路径。 type:数据源类别,一般值为“javax.sql.DataSource

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档