Proxool数据库连接池解析

合集下载

proxool配置详解

proxool配置详解

proxool详细配置proxool一个数据库连接池框架,提供了对你选择的其它类型的驱动程序的连接池封装。

可以非常简单的移植到现存的代码中。

完全可配置。

快速,成熟,健壮。

可以透明地为你现存的JDBC驱动程序增加连接池功能。

到目前为止最新版本是proxool 0.9.1,可从官网下载最新版本一、配置proxool.xml文件Xml代码<?xml version="1.0" encoding="UTF-8"?><!--the proxool configuration can be embedded within your ownapplication's. Anything outside the "proxool" tag is ignored.--><something-else-entirely><proxool><alias>dbname</alias> <!--数据源的别名--><driver-url>jdbc:oracle:thin:@127.0.0.1:1521:testdb</driver-url><!--url连接串--><driver-class>oracle.jdbc.driver.OracleDriver</driver-class> <!--驱动类--><driver-properties><property name="user" value="username" /> <!--用户名--><property name="password" value="password" /><!--密码--></driver-properties><!--最大连接数(默认5个),超过了这个连接数,再有请求时,就排在队列中等候,最大的等待请求数由maximum-new-connections决定--><maximum-connection-count>100</maximum-connection-count><!--最小连接数(默认2个)--><minimum-connection-count>10</minimum-connection-count><!--proxool自动侦察各个连接状态的时间间隔(毫秒),侦察到空闲的连接就马上回收,超时的销毁默认30秒--><house-keeping-sleep-time>90000</house-keeping-sleep-time><!--没有空闲连接可以分配而在队列中等候的最大请求数,超过这个请求数的用户连接就不会被接受--><maximum-new-connections>10</maximum-new-connections><!--最少保持的空闲连接数(默认2个)--><prototype-count>5</prototype-count><!--在使用之前测试--><test-before-use>true</test-before-use><!--用于保持连接的测试语句--><house-keeping-test-sql>select sysdate from dual</house-keeping-test-sql> </proxool></something-else-entirely><?xml version="1.0" encoding="UTF-8"?><!--the proxool configuration can be embedded within your ownapplication's. Anything outside the "proxool" tag is ignored.--><something-else-entirely><proxool><alias>dbname</alias> <!--数据源的别名--><driver-url>jdbc:oracle:thin:@127.0.0.1:1521:testdb</driver-url><!--url连接串--><driver-class>oracle.jdbc.driver.OracleDriver</driver-class> <!--驱动类--><driver-properties><property name="user" value="username" /> <!--用户名--><property name="password" value="password" /><!--密码--></driver-properties><!--最大连接数(默认5个),超过了这个连接数,再有请求时,就排在队列中等候,最大的等待请求数由maximum-new-connections决定--><maximum-connection-count>100</maximum-connection-count><!--最小连接数(默认2个)--><minimum-connection-count>10</minimum-connection-count><!--proxool自动侦察各个连接状态的时间间隔(毫秒),侦察到空闲的连接就马上回收,超时的销毁默认30秒--><house-keeping-sleep-time>90000</house-keeping-sleep-time><!--没有空闲连接可以分配而在队列中等候的最大请求数,超过这个请求数的用户连接就不会被接受--><maximum-new-connections>10</maximum-new-connections><!--最少保持的空闲连接数(默认2个)--><prototype-count>5</prototype-count><!--在使用之前测试--><test-before-use>true</test-before-use><!--用于保持连接的测试语句--><house-keeping-test-sql>select sysdate from dual</house-keeping-test-sql> </proxool></something-else-entirely>二、配置web.xmlXml代码<?xml version="1.0" encoding="UTF-8"?><web-app version="2.4" xmlns="/xml/ns/j2ee"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/xml/ns/j2ee/xml/ns/j2ee/web-app_2_4.xsd"><servlet><servlet-name>ServletConfigurator</servlet-name><servlet-class>org.logicalcobwebs.proxool.configuration.ServletConfigurator</servlet-class><init-param><param-name>xmlFile</param-name><param-value>WEB-INF/proxool.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet><servlet-name>Admin</servlet-name><servlet-class>org.logicalcobwebs.proxool.admin.servlet.AdminServlet</servlet-class></servlet><servlet-mapping><servlet-name>Admin</servlet-name><url-pattern>/admin</url-pattern></servlet-mapping><!-- 配置受保护域,只有Tomcat管理员才能察看连接池的信息--><security-constraint><web-resource-collection><web-resource-name>proxool</web-resource-name><url-pattern>/admin</url-pattern></web-resource-collection><auth-constraint><role-name>manager</role-name></auth-constraint></security-constraint><login-config><auth-method>BASIC</auth-method><realm-name>proxool manager Application</realm-name></login-config><security-role><description>The role that is required to log in to the Manager Application</description> <role-name>manager</role-name></security-role><error-page><error-code>401</error-code><location>/401.jsp</location></error-page></web-app><?xml version="1.0" encoding="UTF-8"?><web-app version="2.4" xmlns="/xml/ns/j2ee"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/xml/ns/j2ee/xml/ns/j2ee/web-app_2_4.xsd"><servlet><servlet-name>ServletConfigurator</servlet-name><servlet-class>org.logicalcobwebs.proxool.configuration.ServletConfigurator</servlet-class><init-param><param-name>xmlFile</param-name><param-value>WEB-INF/proxool.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet><servlet-name>Admin</servlet-name><servlet-class>org.logicalcobwebs.proxool.admin.servlet.AdminServlet</servlet-class></servlet><servlet-mapping><servlet-name>Admin</servlet-name><url-pattern>/admin</url-pattern></servlet-mapping><!-- 配置受保护域,只有Tomcat管理员才能察看连接池的信息--><security-constraint><web-resource-collection><web-resource-name>proxool</web-resource-name><url-pattern>/admin</url-pattern></web-resource-collection><auth-constraint><role-name>manager</role-name></auth-constraint></security-constraint><login-config><auth-method>BASIC</auth-method><realm-name>proxool manager Application</realm-name></login-config><security-role><description>The role that is required to log in to the Manager Application</description> <role-name>manager</role-name></security-role><error-page><error-code>401</error-code><location>/401.jsp</location></error-page></web-app>ServletConfigurator:加载并初始化proxool.xml文件,因为它是连接数据库的.其他很多模块都用到数据,所以必须首先加载它load-on-startup:数值越小,就会先被加载初始化Admin:监控数据库连接池的连接情况//获得数据库连接的语句Connection conn=DriverManager.getConnection("proxool.dbname");注意:在401.jsp页面中必须加<%response.setHeader("WWW-Authenticate", "Basic realm=\"Tomcat Manager Application\""); %>这句话,否则在访问/admin察看连接池信息时,会直接跳转到401.jsp页面。

proxool连接池配置详细说明

proxool连接池配置详细说明

proxool连接池配置详细说明收藏目前市面上三个主流连接池从性能上排名如下:proxool>c3p0>dbcp,proxool还提供了可视化的连接池实时监控工具,所以既稳定又方便,配置也是非常容易的事情。

下面我来讲讲我如何配置proxool连接池的。

1、下载相关资源。

从/站点上下载我们需要的资源,proxool-0.9.1是最新版本,解压后从lib下copy里面的2个JAR包proxool-0.9.1.jar和proxool-cglib.jar至项目中去。

如果不加proxool-cglib.jar的话会报 ng.ClassNotFound Exception:org.logicalcobwebs.cglib.proxy.Callback异常。

2、首先在WEB-INF目录下新建一个proxool.xml文件。

view plaincopy to clipboardprint?1.<?xml version="1.0" encoding="UTF-8"?>2.<proxool-config>3.<proxool>4.<alias>datasource1</alias>5.<driver-url>jdbc:mysql://localhost:3306/datasource1</driver-url>6.<driver-class>com.mysql.jdbc.Driver</driver-class>7.<driver-properties>8.<property name="user"value="root"/>9.<property name="password"value="root"/>10.</driver-properties>11.<house-keeping-sleep-time>90000</house-keeping-sleep-time>12.<maximum-new-connections>20</maximum-new-connections>13.<prototype-count>5</prototype-count>14.<maximum-connection-count>1000</maximum-connection-count>15.<minimum-connection-count>10</minimum-connection-count>16.</proxool>17.18.<proxool>19.<alias>datasource2</alias>20.<driver-url>jdbc:sybase:Tds:localhost:16428/datasource2</driver-url>21.<driver-class>com.sybase.jdbc3.jdbc.SybDriver</driver-class>22.<driver-properties>23.<property name="user"value="dba"/>24.<property name="password"value="dba"/>25.</driver-properties>26.<house-keeping-sleep-time>90000</house-keeping-sleep-time>27.<maximum-new-connections>20</maximum-new-connections>28.<prototype-count>5</prototype-count>29.<maximum-connection-count>1000</maximum-connection-count>30.<minimum-connection-count>10</minimum-connection-count>31.</proxool>32.</proxool-config>我在里面配置了2个不同数据库的数据源,你可以根据需要配置多个,其中具体的参数属性我会在下面全部予以说明。

Proxool连接池使用方法

Proxool连接池使用方法

Proxool连接池使用方法收藏首先, 你要把下载proxool 的lib 下面所有的jar 文件, 放到WEB-INF/lib 下面,另外, 把你的jdbc driver 也放到相同的lib,接著就是设定/WEB-INF/web.xmlweb.xml#########web.xml start here<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE web-appPUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN""/WEB-INF/dtds/web-app_2_3.dtd"><web-app><display-name>proxool</display-name><servlet><servlet-name>Admin</servlet-name><servlet-class>org.logicalcobwebs.proxool.admin.servlet.AdminServlet</servlet-class></servlet><servlet-mapping><servlet-name>Admin</servlet-name><url-pattern>/admin</url-pattern></servlet-mapping></web-app>#########web.xml end hereSECTION 02 透过ProxoolDriver 取得connection建立一个jsp or DAO Bean, 透过org.logicalcobwebs.proxool.ProxoolDriver 建立Connection test.jsp<%@page import="java.sql.*"%><%Connection connection = null;try {Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");connection = DriverManager.getConnection("proxool.test:org.gjt.mm.mysql.Driver:jdbc:mysql://localhost:3306/test","root","password");} catch (Exception e) {out.println(e);}out.println("OK");%>SECTION 04 检视pooling 现在状态执行http://localhost:8080/proxool-test/admin 如果没有任何pool 状态的时候, 你只会看到Pools 这几个字, 所以你先执行http://localhost:8080/proxool-test/test.jsp 建立一个connection, 就可以监控connection pooling 的状态了.SECTION 05 使用properties 或者xml 来设定DB URL 及Driver可以采用xml 设定, 在程式中使用JAXPConfigurator.configure("proxool.xml", false); 将资料设定WEB-INF/proxool.xml<?xml version="1.0" encoding="ISO-8859-1"?><!-- the proxool configuration can be embedded within your own application's.Anything outside the "proxool" tag is ignored. --><something-else-entirely><proxool><alias>xml-test</alias><driver-url>jdbc:mysql://localhost:3306/test</driver-url><driver-class>org.gjt.mm.mysql.Driver</driver-class><driver-properties><property name="user" value="root"/><property name="password" value="password"/></driver-properties><maximum-connection-count>10</maximum-connection-count><house-keeping-test-sql>select CURRENT_DATE</house-keeping-test-sql></proxool></something-else-entirely>也可以采用properties, 在程式PropertyConfigurator.configure("proxool.properties"); 将资料设定WEB-INF/proxool.propertiesjdbc-0.proxool.alias=property-testjdbc-0.proxool.driver-url=jdbc:mysql://localhost:3306/testjdbc-0.proxool.driver-class=org.gjt.mm.mysql.Driverer=rootjdbc-0.password=passwordjdbc-0.proxool.maximum-connection-count=10jdbc-0.proxool.house-keeping-test-sql=select CURRENT_DATE如果在Web 使用, 在web.xml 也可以设定ServletConfigurator Servlet 来注册<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE web-appPUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN""/WEB-INF/dtds/web-app_2_3.dtd"><web-app><display-name>proxool</display-name><servlet><servlet-name>ServletConfigurator</servlet-name><servlet-class>org.logicalcobwebs.proxool.configuration.ServletConfigurator</servlet-class><init-param><param-name>xmlFile</param-name><param-value>WEB-INF/proxool.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet><servlet-name>Admin</servlet-name><servlet-class>org.logicalcobwebs.proxool.admin.servlet.AdminServlet</servlet-class></servlet><servlet-mapping><servlet-name>Admin</servlet-name><url-pattern>/admin</url-pattern></servlet-mapping></web-app>在程式中, 只需要利用到别名就可以呼叫connection pool 里面的connection 来使用了<%@page import="java.sql.*;"%><%Connection connection = null;try {Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");connection = DriverManager.getConnection("proxool.xml-test");} catch (Exception e) {out.println(e);}out.println("ok");%>SECTION 06 使用connection.close() 关闭connection以上的例子我都没有写close, 在connection 做完之后记得使用close() 来关闭,否则很快就会到达最大连接数的.SECTION 07 中文问题和往常一样,中文的问题就会出现。

数据库连接池参数

数据库连接池参数

数据库连接池参数数据库连接是一种关键的、有限的、昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。

对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标。

数据库连接池正是针对这个问题提出来的。

数据库连接池在初始化时将创建一定数量的数据库连接放到连接池中,这些数据库连接的数量是由最小数据库连接数制约。

无论这些数据库连接是否被使用,连接池都将一直保证至少拥有这么多的连接数量。

连接池的最大数据库连接数量限定了这个连接池能占有的最大连接数,当应用程序向连接池请求的连接数超过最大连接数量时,这些请求将被加入到等待队列中。

数据库连接池的最小连接数和最大连接数的设置要考虑到下列几个因素: 1. 最轻连接数是连接池一直保持的数据库连接,所以如果应用程序对数据库连接的使用量不大,将会有大量的数据库连接资源被浪费。

2. 最小连接数是连接池能申请的最大连接数,如果数据库连接请求超过此数,后面的数据库连接请求将被加入到等待队列中,这会影响之后的数据库操作。

3. 最轻连接数与最小连接数差距最小连接数与最大连接数相差太大,那么最先的连接请求将会获利,之后超过最小连接数量的连接请求等价于建立一个新的数据库连接。

不过,这些大于最小连接数的数据库连接在使用完不会马上被释放,它将被放到连接池中等待重复使用或是空闲超时后被释放。

连接池基本的思想就是在系统初始化的时候,将数据库相连接做为对象存储在内存中,当用户须要出访数据库时,并非创建一个代莱相连接,而是从连接池中抽出一个已创建的空闲相连接对象。

采用完后,用户也并非将相连接停用,而是将相连接摆回去连接池中,以供下一个命令出访采用。

而相连接的创建、断裂都由连接池自身去管理。

同时,还可以通过设置连接池的参数去掌控连接池中的起始连接数、相连接的上时上限数以及每个相连接的最小采用次数、最小空闲时间等等。

也可以通过其自身的管理机制去监控数据库相连接的数量、采用情况等。

proxool链接池源码分析

proxool链接池源码分析

Proxool链接池框架下的事务控制初探文本从源码层面进行proxool链接池的主要操作及事务控制方面的跟踪分析,对于直接使用JDBC操作数据库而又要用proxool做链接池及事务操作的场景也许会有所帮助。

一、Proxool注册链接池ProxoolFacade是proxool框架对外的外观,类似某个设计模式,通过这里暴露proxool的各种操作及属性,这里会把外来个各种各样的Connection pool注册到ConnectionPoolManager,同时会注册listener及jmx等。

代码调用路径:ProxoolDriver -> ProxoolFacade.registerConnectionPool -> ConnectionPoolManager部分图释:图1图2二、向链接池获取Connection首次注册完成,以后调用通过动态代理进行调用,即实现connection的动态管理。

代码调用路径:ProxoolDriver.connect -> ConnectionPoolManager.getConnectionPool -> connectionPool.getConnection-> ProxyConnection = prototyper.buildConnection -> proxyConnection.open();-> ProxyFactory.getWrappedConnection(proxyConnection)-> WrappedConnection部分图释:图3图4图5三、框架中关闭“Connection”真正的操作代码调用路径:WrappedConnection -> close -> proxyConnection.close()-> openStatements.close -> connectionPool.removeProxy部分图释:通过断点调试可以看到,当我们CC系统里执行下面的代码时候图6其真正执行的是下面的操作,即关闭所有的statement,重置connection的代理,并修改状态“active”成“available”,并没有执行真正的java.sql.connection接口实现的close方法。

数据库连接池的作用及原理

数据库连接池的作用及原理

数据库连接池的作用及原理1. 介绍数据库连接池是数据库应用程序中常用的技术之一,它的作用是通过预先建立一定数量的数据库连接对象,将这些连接对象存放在一个池子中,然后在需要连接数据库的时候,从连接池中获取一个空闲的数据库连接对象进行使用。

使用完毕后,再将连接放回连接池,以供其他线程复用。

数据库连接池的存在可以提高数据库访问性能、降低资源消耗,使应用程序更高效稳定。

2. 作用数据库连接池的主要作用包括以下几个方面:2.1 提高数据库访问性能数据库连接的建立和释放会消耗较多的时间和系统资源。

通过使用连接池,可以避免频繁地创建和销毁连接,从而减少系统开销,并且在连接池中可复用现有的连接,减少了建立连接的时间,提高了数据库访问的响应速度。

2.2 资源控制和管理数据库连接池可以限制连接的数量,通过设置连接池的最大连接数,可以有效地控制数据库连接的使用,避免过多的连接导致系统的性能下降。

连接池还可以实现对连接的生命周期进行管理,包括连接的创建、销毁、超时等,更好地管理系统资源。

另外,连接池还可以设置连接的最小空闲数和最大空闲时间,保持连接的稳定性和可靠性。

2.3 防止数据库连接泄露在使用数据库连接时,如果没有正确释放连接,会导致连接的泄露。

数据库连接泄露会占用系统资源,最终导致系统崩溃。

连接池可以通过连接的闲置超时机制和自动回收功能,检测并关闭长时间未使用的连接,及时释放系统资源,防止连接泄露的发生。

3. 连接池的原理数据库连接池的实现原理主要包括以下几个方面:3.1 连接池的创建和初始化连接池的创建一般在系统初始化的时候进行,根据系统的需求和实际情况设置连接池的参数,例如最大连接数、最小空闲数、最大空闲时间等。

连接池也可以设置一些其他的参数,例如连接超时时间、回收机制等。

初始化连接池时,会创建一定数量的连接对象,并将这些连接对象放入连接池中。

3.2 连接的获取和释放应用程序在需要连接数据库时,可以从连接池中获取一个可用的连接对象。

Proxool-0.9.0RC3连接池的使用

Proxool-0.9.0RC3连接池的使用

Proxool-0.9.0RC3连接池的使用创建proxool.xml,内容如下:1.xml version="1.0" encoding="UTF-8"?>2.<something-else-entirely>3.<proxool>4.<alias>liferayalias>5.<driver-url>jdbc:oracle:thin:@localhost:1521:orcldriver-url>6.<driver-class>oracle.jdbc.driver.OracleDriverdriver-class>7.<driver-properties>8.<property name="user" value="kook"/>9.<property name="password" value="kook"/>10.driver-properties>11.<maximum-connection-count>500maximum-connection-count>12.<minimum-connection-count>5minimum-connection-count>13.proxool>14.something-else-entirely>alias是连接的别名,需要在其他部分引用。

将proxool.xml拷贝到WEB-INF目录下,打开web.xml,新增如下部分1.<servlet>2.<servlet-name>proxoolServletConfiguratorservlet-name>3.<servlet-class>org.logicalcobwebs.proxool.configuration.ServletConfiguratorservlet-class>4.<init-param>5.<param-name>xmlFileparam-name>6.<param-value>WEB-INF/proxool.xmlparam-value>7.init-param>8.<load-on-startup>1load-on-startup>9.servlet>10.<servlet>11.<servlet-name>Adminservlet-name>12.<servlet-class>org.logicalcobwebs.proxool.admin.servlet.AdminServletservlet-class>13.servlet>14.<servlet>15.<servlet-mapping>16.<servlet-name>Adminservlet-name>17.<url-pattern>/proxoolurl-pattern>18.servlet-mapping>拷贝proxool-0.9.0RC3.jar和相关的数据库驱动到项目的lib目录中,配置完成Proxool的使用,只需要如下简单的代码即可java 代码2.Connection con = DriverManager.getConnection("proxool:liferay");//参数为proxool.xml中的alias元素的值这样即可获得一个连接。

proxool连接池原理

proxool连接池原理

proxool连接池原理
proxool连接池原理
Proxool是一个用来管理连接的代理,它将数据库连接弱化为JDBC API,并对连接池的使用、释放和管理进行了自动化,提供了性能监视,可以对数据库连接进行设置,可以使用预热,以及超时和故障检测等功能,使用者无需关心真正的数据库连接,可以将精力放在应用程序上。

Proxool的核心是一个叫做连接池的抽象容器,这个连接池可以为多个应用程序提供抽象的数据库连接,其中的每一个连接都由一个连接池来管理,每个应用程序可以从连接池取出一个永久性的连接,然后该连接可以被它们共享,并且应用程序可以在一个连接处理完一个任务之后再将该连接返回给连接池,而连接池中其他的应用程序也可以获得该连接。

Proxool的另一个重要功能是监视。

Proxool可以定期检查连接中的数据库活动,并将该活动的概要信息记录在日志中,以便对应用程序的性能进行监控。

除此之外,Proxool还可以记录连接池的使用情况,比如处理任务的速率等。

Proxool还提供了其他功能,比如可以在连接池中的连接数量达到一定水平时启动一个新的线程,或者在没有任何应用程序的情况下关闭连接池,以及在线程的运行中限制连接的数量等。

这些功能都有助于保证连接的健康,提高系统的可用性和性能。

- 1 -。

【个人总结系列-43】连接池Proxool学习总结-概述-配置-使用

【个人总结系列-43】连接池Proxool学习总结-概述-配置-使用

连接池Proxool学习总结-概述-配置-使用2.2 连接池Proxool学习总结2.2.1 连接池概述在需要频繁连接数据库的应用场景,连接的建立和销毁都是一个十分消耗资源的过程,因此这时可以通过使用连接池技术来提高效率。

连接池技术的核心思想是连接复用,通过建立一个数据库连接池以及一套连接使用、分配、管理策略,使得该连接池中的连接可以得到高效、安全的复用,避免了数据库连接频繁建立、关闭的开销。

Proxool是一种Java数据库连接池技术,是sourceforge下的一个开源项目,这个项目提供一个健壮、易用的连接池,最为关键的是这个连接池提供监控的功能,方便易用,便于发现连接泄漏的情况。

Proxool在工程中的使用流程为:1.在工程中导入并引用Proxool所需的jar包,proxool-0.9.1.jar、proxool-cglib.jar和commons-logging-1.1.3.jar2.在工程中添加文件配置Proxool的相关属性3.在工程中加载配置文件和驱动类4.在程序中从连接池里获取数据库连接,使用完成后释放连接(没有真正释放连接,而是放回容器中)2.2.2 Proxool连接池配置在Proxool连接池配置配置时,通常有如下一些常用的配置项,各项的含义解释如下:•alias:连接池的别名•driver-url:是数据库驱动的url,就是连接的url•driver-class:数据库驱动类,不同的数据库驱动类不同•driver-properties:驱动的属性,可以设置登陆数据库的用户名和密码•house-keeping-sleep-time:保留线程处于睡眠状态的最长时间(house keeper 的职责是检查各个连接的状态,并判断是否需要销毁或者创建)•maximum-active-time:如果house keeper检测到某个线程的活动时间大于这个数值,它将会杀掉这个线程,默认是5分钟•maximum-connection-count:最大的数据库连接数•minimum-connection-count:最小的数据库连接数•maximum-connection-lifetime:一个线程的最大寿命•prototype-count:连接池中可用的连接数量.如果当前的连接池中的连接少于这个数值.新的连接将被建立Proxool可以应用在Java Web环境下,也可以应用在Java Application中,网上大部分的例子讲解的都是运用在Web环境的情形。

连接池原理解析与配置优化

连接池原理解析与配置优化

连接池原理解析与配置优化数据库连接池是在应用程序与数据库之间建立连接的中间层,主要用于管理和复用数据库连接,从而提高应用程序的性能和并发处理能力。

本文将详细解析连接池的原理,并提供一些配置优化的建议。

一、连接池的原理解析在传统的数据库连接方式中,每次应用程序需要进行数据库操作时,都需要建立一个新的数据库连接,在操作结束后再关闭该连接。

这样做的问题在于,频繁地建立和关闭连接会消耗大量的资源,降低了性能,并且在高并发的情况下容易导致连接耗尽。

连接池通过预先创建一定数量的数据库连接,并将其保存在连接池中。

当应用程序需要进行数据库操作时,直接从连接池中获取一个可用的连接,而不是每次都重新创建。

当操作完成后,将连接释放回连接池供其他应用程序使用。

连接池的原理可以简单概括为以下几个步骤:1. 初始化连接池,创建一定数量的数据库连接,并将其放入连接池中。

2. 应用程序从连接池中获取一个可用的连接。

3. 应用程序使用连接进行数据库操作。

4. 操作完成后,将连接释放回连接池。

通过连接池的管理,应用程序可以复用连接,提高了数据库操作的效率和并发处理能力。

二、连接池的配置优化对于连接池的配置,不同的应用程序会有不同的需求和优化目标。

下面是一些常见的连接池配置优化建议:1. 连接池大小的设置:连接池的大小决定了连接的数量,需要根据应用程序的并发处理需求进行调整。

过小的连接池可能导致连接不足,影响系统性能;过大的连接池则会占用过多的资源,造成资源浪费。

可以通过观察应用程序在高峰期的连接使用情况,来确定适合的连接池大小。

2. 连接的最大空闲时间:连接在连接池中的最大空闲时间需要设置一个适当的值。

如果连接超过最大空闲时间没有被使用,连接池会自动将其关闭以释放资源。

过小的最大空闲时间会导致频繁地创建连接,影响性能;过大的最大空闲时间则会占用过多的资源。

可以根据应用程序的特点和连接的平均使用时长来确定最大空闲时间。

3. 连接的最大生存时间:连接在连接池中的最大生存时间需要设置一个适当的值。

proxool连接池的使用方法心得

proxool连接池的使用方法心得

Proxool连接池的使用方法、心得Proxool连接池的使用方法、心得[原创]公司里用的连接池都是自己写好了,封装起来的,做大型项目的时候,非常有用,但近段时间总是发现数据库连接过多,造成数据库连接压力过大,网站无法访问等严重后果,我们做的网站主要是用于移动公司的后台,经常会处理很大"群集任务",找了很长时间,发现是程序里有很多打开的连接没有关闭,放回到连接池里去,造成连接数不够的问题.后来上网上找了这个PROXOOL连接池插件,发现有自动KILL不活动的连接的功能.而且有VIEW方式查看连接情况,而且很多数据都是配置完成。

决定在项目中试验一下。

官方网址:/ 当前版本:proxool-0.9.0RC2 1、下载proxool 地址:2、解压缩proxool-0.9.0RC2.zip,拷贝lib/proxool-0.9.0RC2.jar到web-info/lib 拷贝jdbc驱动到web-info/lib3、在web-info下建立文件:proxool.xml&lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;something-else-entirely&gt;&lt;proxool&gt;&lt;alias&gt;Test&lt;/alias&gt;&lt;driver-url&gt;jdbc:oracle:thin:@192.168.10.160:1521:or c1&lt;/driver-url&gt;&lt;driver-class&gt;oracle.jdbc.driver.OracleDriver&lt;/drive r-class&gt;&lt;driver-properties&gt;&lt;property name="user" value="test"/&gt;&lt;property name="password"value="testpass"/&gt;&lt;/driver-properties&gt;&lt;maximum-connection-count&gt;10&lt;/maximum-conne ction-count&gt;&lt;house-keeping-test-sql&gt;selectCURRENT_DATE&lt;/house-keeping-test-sql&gt;&lt;/proxool&gt;&lt;/something-else-entirely&gt;4、在web.xml里新增如下:&lt;servlet&gt;&lt;servlet-name&gt;proxoolServletConfigurator&lt;/servlet-name&gt;&lt;servlet-class&gt;org.logicalcobwebs.proxool.configurati on.ServletConfigurator&lt;/servlet-class&gt;&lt;init-param&gt;&lt;param-name&gt;xmlFile&lt;/param-name&gt;&lt;param-value&gt;WEB-INF/config/proxool.xml&lt;/param -value&gt;&lt;/init-param&gt;&lt;load-on-startup&gt;1&lt;/load-on-startup&gt;&lt;/servlet&gt;&lt;!-- proxool提供的管理监控工具,可查看当前数据库连接情况。

c3p0,dbcp和proxool三种数据库连接池

c3p0,dbcp和proxool三种数据库连接池

现在常用的开源数据连接池主要有c3p0,dbcp和proxool三种,其中:¨ hibernate开发组推荐使用c3p0;¨ spring开发组推荐使用dbcp (dbcp连接池有weblogic连接池同样的问题,就是强行关闭连接或数据库重启后,无法reconnect ,告诉连接被重置,这个设置可以解决);¨ hibernate in action推荐使用c3p0和proxool;下面具体就每种连接池的调研结果进行说明:1. Apache-DBCPØ BasicDataSource 相关的参数说明dataSource: 要连接的datasource (通常我们不会定义在server.xml) defaultAutoCommit: 对于事务是否autoCommit, 默认值为truedefaultReadOnly: 对于数据库是否只能读取, 默认值为falsedriverClassName:连接数据库所用的JDBC Driver Class,maxActive: 可以从对象池中取出的对象最大个数,为0则表示没有限制,默认为8 maxIdle: 最大等待连接中的数量,设0 为没有限制(对象池中对象最大个数)minIdle:对象池中对象最小个数maxWait: 最大等待秒数, 单位为ms, 超过时间会丟出错误信息password: 登陆数据库所用的密码url: 连接数据库的URLusername: 登陆数据库所用的帐号validationQuery: 验证连接是否成功, SQL SELECT 指令至少要返回一行removeAbandoned: 是否自我中断, 默认是falseremoveAbandonedTimeout: 几秒后会自我中断, removeAbandoned 必须为true logAbandoned: 是否记录中断事件, 默认为falseminEvictableIdleTimeMillis:大于0 ,进行连接空闲时间判断,或为0,对空闲的连接不进行验证;默认30分钟timeBetweenEvictionRunsMillis:失效检查线程运行时间间隔,如果小于等于0,不会启动检查线程,默认-1testOnBorrow:取得对象时是否进行验证,检查对象是否有效,默认为false testOnReturn:返回对象时是否进行验证,检查对象是否有效,默认为false testWhileIdle:空闲时是否进行验证,检查对象是否有效,默认为falseØ在使用DBCP的时候,如果使用默认值,则数据库连接因为某种原因断掉后,再从连接池中取得连接又不进行验证,这时取得的连接实际上就会是无效的数据库连接。

proxool开源的数据库连接池用包使用说明

proxool开源的数据库连接池用包使用说明

proxool是一个开源的数据库连接池。

官方网站是:/要使用这个连接池需要倒入两个Jar包,proxool-0.9.1.jar和proxool-cglib.jar。

可以从官网下载最新的包。

以前一直使用tomcat原配的那个连接池,好象叫作dbcp,效率怎么样没有深究,关键是配置比较方便,也不用额外下载jar包。

最近听说Proxool可能、也许、好象比较好一点。

就决定拿来研究一下。

我比较喜欢使用JSTL的SQL标签,因此本文介绍一下JSTL与Proxool结合使用的方法。

共分三个步骤,应用服务器选用tomcat,其它应用服务器应该也是一样的,不过我没有研究过。

一、proxool的配置,网上讲得比较多。

无外乎两种方式,一种使用properties文件,一种使用xml文件。

两处方式其实差不多。

我一般偏爱properties文件,觉得比较简洁。

因此本文就以属性文件为例,可仿照下面的方式来配制。

jdbc-0.proxool.alias=proxool-pooljdbc-0.proxool.driver-url=jdbc:oracle:thin:@127.0.0.1:1521:oradbjdbc-0.proxool.driver-class=oracle.jdbc.driver.OracleDriverer=hrjdbc-0.password=hrjdbc-0.proxool.house-keeping-sleep-time=400000jdbc-0.proxool.house-keeping-test-sql=select sysdate from dualjdbc-0.proxool.maximum-connection-count=10jdbc-0.proxool.minimum-connection-count=5jdbc-0.proxool.maximum-connection-lifetime=18000000jdbc-0.proxool.simultaneous-build-throttle=5jdbc-0.proxool.recently-started-threshold=40000jdbc-0.proxool.overload-without-refusal-lifetime=50000jdbc-0.proxool.maximum-active-time=60000jdbc-0.proxool.verbose=truejdbc-0.proxool.trace=truejdbc-0.proxool.fatal-sql-exception=Fatalerrorjdbc-0.proxool.prototype-count=2将文件保存为proxool.properties,目录:WEB-INF/classes,这个文件名下文会用的。

Java数据库连接池之proxool

Java数据库连接池之proxool

28. </proxool-config> web.xml 文件中的代码: 1. 2. <?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="/xml/ns/javaee" 4/6
Java 数据库连接池之 proxool
Proxool 是一种 Java 数据库连接池技术。sourceforge 下的一个开源项目,这个项目提供一个健壮、易用的连接池,最 为关键的是这个连接池提供监控的功能,方便易用,便于发现连接泄漏的情况。 目前是和 DBCP 以及 C3P0 一起,最为常见的三种 JDBC 连接池技术。 日前,Hibernate 官方宣布由于 Bug 太多不再支持 DBCP,而推荐使用 Proxool 或 C3P0。 下面通过一个 Demo 说明一下如何使用: 项目结构如下:
resultSet = preparedStatement.executeQuery(); ResultSetMetaData rsmd = resultSet.getMetaData(); int columnCount = rsmd.getColumnCount(); while(resultSet.next()){ Map<String, Object> map = new HashMap<String, Object>(); for(int i =1; i<=columnCount;i++){ String columnName = rsmd.getColumnName(i); Object obj = null; if(rsmd.getColumnTypeName(i).equals("DATE")){ obj = resultSet.getString(columnName); }else{ obj = resultSet.getObject(columnName); } map.put(columnName, obj); } list.add(map); } }catch(SQLException e){ e.printStackTrace(); }finally{ close(); return list;

proxool使用说明

proxool使用说明

Proxool使用说明1.配置有如下几种配置方式:1.1当建立连接的时候传递一个java.util.Properties对象给数据库驱动。

Properties info = new Properties();info.setProperty("proxool.maximum-connection-count", "20");info.setProperty("proxool.house-keeping-test-sql", "select CURRENT_DA TE");info.setProperty("user", "sa");info.setProperty("password", "");String alias = "test";String driverClass = "org.hsqldb.jdbcDriver";String driverUrl = "jdbc:hsqldb:test";String url = "proxool." + alias + ":" + driverClass + ":" + driverUrl;connection = DriverManager.getConnection(url, info);1.2使用xml文件。

例如:<?xml version="1.0" encoding="ISO-8859-1"?><!--the proxool configuration can be embedded within your own application's.Anything outside the "proxool" tag is ignored. --><something-else-entirely><proxool><alias>xml-test</alias><driver-url>jdbc:hsqldb:.</driver-url><driver-class>org.hsqldb.jdbcDriver</driver-class><driver-properties><property name="user" value="sa"/><property name="password" value=""/></driver-properties><maximum-connection-count>10</maximum-connection-count><house-keeping-test-sql>select CURRENT_DA TE</house-keeping-test-sql> </proxool></something-else-entirely>然后在你的启动代码中简单的调用xml configurator(JAXPConfigurator):JAXPConfigurator.configure("src/java-test/org/logicalcobwebs/proxool/configuration/test-no -ns.xml", false);//false意味着没有验证也可以使用一个servlet来装载配置文件:<servlet><servlet-name>ServletConfigurator</servlet-name><servlet-class>org.logicalcobwebs.proxool.configuration.ServletConfigurator</servlet-class><init-param><param-name>xmlFile</param-name><param-value>WEB-INF/proxool.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet>建立连接非常简单("xml-test"是上面我们用的别名)connection = DriverManager.getConnection("proxool.xml-test");注意:需要include一个JAXP xml解析器,比如Crimson或Xerces。

项目中用到的Proxool0.9.1数据连接池配置实践

项目中用到的Proxool0.9.1数据连接池配置实践

1:先是配置文件:Xml代码1.<?xml version="1.0"encoding="gb2312"?>2.<!-- the proxool configuration can be embedded within your ownapplication's.3. Anything outside the "proxool" tag is ignored. -->4.<something-else-entirely>5.<proxool>6.<alias>example</alias>7.<driver-url>8. jdbc:oracle:thin:@*.*.*.*:1521:****9.</driver-url>10. <driver-class>oracle.jdbc.driver.OracleDriver</driver-class>11. <driver-properties>12. <property name="user"value="*****"/>13. <property name="password"value="*****"/>14. </driver-properties>15. <!--最大连接数(默认5个),超过了这个连接数,再有请求时,就排在队列中等候,最大的等待请求数由maximum-new-connections决定-->16. <maximum-connection-count>20</maximum-connection-count>17. <!--最小连接数(默认2个,包含活动的和空闲的)-->18. <minimum-connection-count>4</minimum-connection-count>19. <!--proxool自动侦察各个连接状态的时间间隔(毫秒),侦察到空闲的连接就马上回收,超时的销毁默认30秒-->20. <house-keeping-sleep-time>30000</house-keeping-sleep-time>21. <!--没有空闲连接可以分配而在队列中等候的最大请求数,超过这个请求数的用户连接就不会被接受-->22. <!-- maximum-new-connections不被推荐使用了,所以用simultaneous-build-throttle来代替了 -->23. <simultaneous-build-throttle>15</simultaneous-build-throttle>24. <!--maximum-new-connections>10</maximum-new-connections-->25. <!--最少保持的空闲连接数(默认2个)-->26. <prototype-count>2</prototype-count>27. <!-- maximum-active-time缺省5minutes 172800000毫秒=48小时-->28. <maximum-active-time>172800000</maximum-active-time>29. <!-- maximum-connection-lifetime缺省4hours 180000000毫秒=50小时-->30. <maximum-connection-lifetime>180000000</maximum-connection-lifetime>31. <!--在使用之前测试-->32. <test-before-use>false</test-before-use>33. <!--用于保持连接的测试语句 -->34. <!-- house-keeping-test-sql>35. select sysdate from dual36. </house-keeping-test-sql -->37. <!-- 是否监控sql信息 -->38. <trace>true</trace>39. <!-- statistics>10s,1m</statistics -->40. <!-- statistics-log-level>DEBUG</statistics-log-level-->41.42. </proxool>43.</something-else-entirely>注释:(以上的数据连接IP和用户名密码根据自己的实际情况填写)配置文件里的两行<!-- maximum-active-time缺省5minutes 172800000毫秒=48小时--><maximum-active-time>172800000</maximum-active-time><!-- maximum-connection-lifetime缺省4hours 180000000毫秒=50小时--> <maximum-connection-lifetime>180000000</maximum-connection-lifetime>第一个48小时的是设置连接活动的时间,即:你的sql或存储过程执行的时间,估算一下你的应用中的sql或存储过程最长的执行时间a,将这个值设为大于a 就行了,这是项目中实际发现的问题经验,我有个sql执行时间超过了5分钟,而原来没有设置这个值,缺省为5分钟,所以我的应用刚起来没问题,跑一段时间,跑到这个sql时执行了一段时间后台就报:java.sql.SQLException: Couldn't perform the operation prepareStatement: You can't perform any operations on this connection. It has been automatically closed by Proxool for some reason (see logs).这个错误,后来去官方网页查看Properties发现,如果超过这个值,proxool 就会自动kill掉这个连接。

Proxool数据库连接池解析

Proxool数据库连接池解析

Proxool数据库连接池解析Proxool数据库连接池解析一、简介proxool与c3p0及dbcp数据库具有大致相同的性能,但是在处理连接泄漏的等边界问题上,具有很强的处理能力。

它能够很好的管理连接,并且它还有一个监控平台,能够对连接进行一些简单的监控。

context.xml的配置情况:在tomcat6下使用放在META-INF文件夹下。

WEB-INF/web.xml<="" name="jdbc/tdjPool" p="">auth="Container"type="javax.sql.DataSource"factory="org.logicalcobwebs.proxool.ProxoolDataSource"proxool.alias="testDB"user="hyf"password="hyf"delegateProperties="foo=1,bar=true"proxool.jndi-name="mysqljndi"proxool.driver-url="jdbc:oracle:thin:@192.168.1.230:1521:sryx"proxool.driver-class="oracle.jdbc.OracleDriver"proxool.house-keeping-sleep-time="900000"proxool.maximum-active-time="5"proxool.prototype-count="3"proxool.statistics="1m,15m,1d"proxool.simultaneous-build-throttle="10"proxool.minimum-connection-count="5"proxool.maximum-connection-count="15"proxool.house-keeping-test-sql="select CURRENT_DATEfrom dual"proxool.test-before-use="true"/>。

数据库连接池原理

数据库连接池原理

数据库连接池原理数据库连接池是一种应用程序与数据库之间的中间层,用于管理和复用数据库连接。

它允许应用程序从连接池中获取连接,并在使用完毕后将连接释放回池中,从而避免了频繁创建和关闭数据库连接的开销,提高了应用程序与数据库之间的交互效率。

1.连接池的初始化:连接池初始化时,会创建一定数量的数据库连接,并将这些连接存储在一个数据结构中,如队列、列表或哈希表等。

可以通过配置文件指定连接池的初始大小、最大连接数、最小连接数等参数,以及连接超时时间、空闲连接的检测时间等。

2.连接的获取和释放:应用程序从连接池中获取连接时,会先检查连接池中是否有可用连接,如果有,则直接从连接池中获取一个连接;如果没有可用连接,可以根据策略进行等待(如阻塞等待、超时等待)或者新建连接。

获取到连接后,应用程序可以执行数据库操作,完成后将连接释放回连接池,以便复用。

3.连接的复用:连接池管理连接的核心目标就是复用。

当应用程序释放连接时,连接池会将该连接标记为可用状态,以便其他应用程序可以使用。

而当应用程序从连接池中获取连接时,连接池会将一个可用的连接分配给应用程序使用,从而避免了频繁创建和关闭连接的开销。

4.连接的管理:连接池还需要进行连接的管理,包括空闲连接的检测、连接的有效性检测、连接的销毁等。

空闲连接的检测可以通过定时任务或者异步线程实现,当连接空闲时间超过一定阈值时,可以选择将连接从连接池中移除或者进行重置,以防止连接长时间占用资源而无法被复用。

连接的有效性检测可以通过发送SQL语句或者心跳包等方式进行,以保证连接的可用性。

连接的销毁可以在连接达到最大空闲时间或者连接池关闭时进行。

数据库连接池的优点是显而易见的。

首先,它大大减少了数据库连接的创建和关闭的开销,提高了应用程序与数据库之间的交互效率;其次,连接池可以动态调整连接数,根据系统负载情况灵活控制连接池的大小,以便更好地适应应用程序的需要;此外,连接池还可以提供连接的复用和管理,确保连接的可靠性和稳定性。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Proxool数据库连接池解析一、简介proxool与c3p0及dbcp数据库具有大致相同的性能,但是在处理连接泄漏的等边界问题上,具有很强的处理能力。

它能够很好的管理连接,并且它还有一个监控平台,能够对连接进行一些简单的监控。

context.xml的配置情况:在tomcat6下使用放在META-INF文件夹下。

<?xml version='1.0' encoding='gb2312'?><!--tomcat 6.0 --><Context reloadable="true" crossContext="true"><WatchedResource>WEB-INF/web.xml</WatchedResource><Resource name="jdbc/tdjPool"auth="Container"type="javax.sql.DataSource"factory="org.logicalcobwebs.proxool.ProxoolDataSource"proxool.alias="testDB"user="hyf"password="hyf"delegateProperties="foo=1,bar=true"proxool.jndi-name="mysqljndi"proxool.driver-url="jdbc:oracle:thin:@192.168.1.230:1521:sryx"proxool.driver-class="oracle.jdbc.OracleDriver"proxool.house-keeping-sleep-time="900000"proxool.maximum-active-time="5"proxool.prototype-count="3"proxool.statistics="1m,15m,1d"proxool.simultaneous-build-throttle="10"proxool.minimum-connection-count="5"proxool.maximum-connection-count="15"proxool.house-keeping-test-sql="select CURRENT_DATE from dual"proxool.test-before-use="true"/></Context>二、参数解析:1、fatal-sql-exception: 它是一个逗号分割的信息片段.当一个SQL异常发生时,他的异常信息将与这个信息片段进行比较.如果在片段中存在,那么这个异常将被认为是个致命错误(Fatal SQL Exception ).这种情况下,数据库连接将要被放弃.无论发生什么,这个异常将会被重掷以提供给消费者.用户最好自己配置一个不同的异常来抛出.2、fatal-sql-exception-wrapper-class:正如上面所说,你最好配置一个不同的异常来重掷.利用这个属性,用户可以包装SQLException,使他变成另外一个异常.这个异常或者继承SQLException或者继承字RuntimeException.proxool自带了2个实现:'org.logicalcobwebs.proxool.FatalSQLException' 和'org.logicalcobwebs.proxool.FatalRuntimeException' .后者更合适.3、house-keeping-sleep-time: house keeper 保留线程处于睡眠状态的最长时间,house keeper 的职责就是检查各个连接的状态,并判断是否需要销毁或者创建.4、house-keeping-test-sql: 如果发现了空闲的数据库连接.house keeper 将会用这个语句来测试.这个语句最好非常快的被执行.如果没有定义,测试过程将会被忽略。

5、injectable-connection-interface: 允许proxool实现被代理的connection对象的方法.6、injectable-statement-interface: 允许proxool实现被代理的Statement 对象方法.7、injectable-prepared-statement-interface: 允许proxool实现被代理的PreparedStatement 对象方法.8、injectable-callable-statement-interface: 允许proxool实现被代理的CallableStatement 对象方法.9、jmx: 略10、jmx-agent-id: 略11、jndi-name: 数据源的名称12、maximum-active-time: 如果housekeeper 检测到某个线程的活动时间大于这个数值.它将会杀掉这个线程.所以确认一下你的服务器的带宽.然后定一个合适的值.默认是5分钟.13、maximum-connection-count: 最大的数据库连接数.14、maximum-connection-lifetime: 一个线程的最大寿命.15、minimum-connection-count: 最小的数据库连接数16、overload-without-refusal-lifetime: 略17、prototype-count: 连接池中可用的连接数量.如果当前的连接池中的连接少于这个数值.新的连接将被建立(假设没有超过最大可用数).例如.我们有3个活动连接2个可用连接, 而我们的prototype-count是4,那么数据库连接池将试图建立另外2个连接.这和minimum-connection-count不同. minimum-connection-count把活动的连接]也计算在内.prototype-count 是spare connections 的数量.18、recently-started-threshold: 略19、simultaneous-build-throttle: 一个线程的最大寿命否则如果代码写的不好,会使连接永远不销毁,内存永远不释放20、statistics: 连接池使用状况统计。

参数“10s,1m,1d”21、statistics-log-level: 日志统计跟踪类型。

参数“ERROR”或“INFO”22、test-before-use: 从连接池中申请一个连接,由连接池返回给我之前他应该测试其是否可用,如果失败了就取另外一个或者建一个新的(除非都建立失败了23、test-after-use: 略24、trace: 如果为true,那么每个被执行的SQL语句将会在执行期被log记录(DEBUGLEVEL).你也可以注册一个ConnectionListener (参看ProxoolFacade)得到这些信息.25、verbose: 详细信息设置。

参数bool 值不过本人通过测试。

该数据库连接池即不使用测试软件,手动也能将连接数刷到满,即使使用150个最大限制,居然也能刷满。

查看了网友们的记录,说是它本身没有等待机制,用满连接后就直接抛出异常。

·<?xml version="1.0" encoding="UTF-8"?>··<!-- the proxool configuration can be embedded within your own application's . Anything outside the "proxool" tag is ignored. -->··<something-else-entirely>· <proxool>· <!--连接池的别名-->· <alias>DBPool</alias>· <!--proxool只能管理由自己产生的连接-->· <driver-url>jdbc:oracle:thin:@192.168.0.40:1521:drcom</driver-url> · <!--JDBC驱动程序-->· <driver-class>oracle.jdbc.driver.OracleDriver</driver-class>· <driver-properties>· <property name="user" value="drcom"/>· <property name="password" value="drcom"/>· </driver-properties>· <!-- proxool自动侦察各个连接状态的时间间隔(毫秒),侦察到空闲的连接就马上回收,超时的销毁-->· <house-keeping-sleep-time>90000</house-keeping-sleep-time>· <!-- 指因未有空闲连接可以分配而在队列中等候的最大请求数,超过这个请求数的用户连接就不会被接受-->· <maximum-new-connections>150</maximum-new-connections> · <!-- 最少保持的空闲连接数-->· <prototype-count>3</prototype-count>· <!-- 允许最大连接数,超过了这个连接,再有请求时,就排在队列中等候,最大的等待请求数由maximum-new-connections决定-->· <maximum-connection-count>100</maximum-connection-count> · <!-- 最小连接数-->· <minimum-connection-count>3</minimum-connection-count>· </proxool>·</something-else-entirely>good。

相关文档
最新文档