proxool配置说明
- 格式:pdf
- 大小:204.01 KB
- 文档页数:18
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>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-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简单使用首先从 http://下载proxool-0.9.0RC2.zip解压后,把proxool-0.9.0RC2.jar放到工程的lib文件夹里面。
proxool是一个非常强大的连接池工具包,我觉得相比dbcp、c3p0这两个连接池包都要好用,我用loadrunner测试过,这三个连接池的从性能上排名如下:proxool>c3p0>dbcp,特别是dbcp在大并发的情况下总是出现各种异常。
详细关于dbcp的介绍请参考dbcp 用户指南,dbcp实现参考。
下面是实现proxool的几种方式:JDBC连接方法:首先建一个proxool的配置文件proxool.xmlproxool.xml 代码xml 代码1.xml version="1.0" encoding="UTF-8"?>2.3.4.5.<something-else-entirely>6.<proxool>7.8.<alias>DBPoolalias>9.10.<driver-url>jdbc:oracle:thin:@192.168.0.40:1521:drcomdriver-url>11.12.<driver-class>oracle.jdbc.driver.OracleDriverdriver-class>13.<driver-properties>14.<property name="user" value="drcom"/>15.<property name="password" value="drcom"/>16.driver-properties>17.18.<house-keeping-sleep-time>90000house-keeping-sleep-time>19.20.<maximum-new-connections>150maximum-new-connections>21.22.<prototype-count>3prototype-count>23.24.<maximum-connection-count>100maximum-connection-count>25.26.<minimum-connection-count>3minimum-connection-count>27.proxool>28.something-else-entirely>再在web.xml中进行配置,其中的ServletConfigurator是装载WEB-INF目录下的proxool.xml,并设置为T omcat启动时就加载。
连接池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环境的情形。
Hibernate的三种连接池设置C3P0、Proxool和DBCP一、Hibernate连接池配置:Hibernate支持第三方的连接池,官方推荐的连接池是C3P0,Proxool,以及DBCP。
在配置连接池时需要注意的有三点:一、Apche的DBCP在Hibernate2中受支持,但在Hibernate3中已经不再推荐使用,官方的解释是这个连接池存在缺陷。
如果你因为某种原因需要在Hibernate3中使用DBCP,建议采用JNDI方式。
二、默认情况下(即没有配置连接池的情况下),Hibernate会采用内建的连接池。
但这个连接池性能不佳,且存在诸多BUG(笔者就曾在Mysql环境下被八小时连接悬空问题困扰过),因此官方也只是建议仅在开发环境下使用。
三、Hibernate2和Hibernate3的命名空间有所变化。
例如,配置C3P0时的provider_cla ss有Hibernate2环境下使用net.sf.hibernate.connection.C3P0ConnectionProvider,在Hibernate3环境下使用org.hibernate.connection.C3P0ConnectionProvider。
下面是Hibernate环境下几种常见的连接池配置:1.Hibernate默认连接池<?xml version='1.0' encoding='UTF-8'?><!DOCTYPE hibernate-configurationPUBLIC "-//Hibernate/Hibernate Configuration DTD//EN""/hibernate-configuration-3.0.dtd"><hibernate-configuration><session-factory ><!—JDBC驱动程序--><property nam e="connection.driver_class">com.mysql.jdbc.Driver</property> <!-- 连接数据库的URL--><property nam e="connection.url">jdbc:m ysql://localhost:3306/schoolproject</property><property nam e="eUnicode">t rue</property><property nam e="connection.characterEncoding">UTF-8</property><!--连接的登录名--><property nam e="ername">root</property><!—登录密码--><property nam e="connection.password"></property><!--是否将运行期生成的SQL输出到日志以供调试--><property nam e="show_sql">t rue</property><!--指定连接的语言--><property nam e="dialect">org.hibernate.dialect.MySQLDialect</property><!--映射Student这个资源--><mapping resource="com/wqbi/model/pojo/student.hbm.xml" /></session-factory></hibernate-configuration>2.C3P0连接配置<?xml version='1.0' encoding='UTF-8'?><!DOCTYPE hibernate-configurationPUBLIC "-//Hibernate/Hibernate Configuration DTD//EN""/hibernate-configuration-3.0.dtd"><hibernate-configuration><session-factory ><!—JDBC驱动程序--><property nam e="connection.driver_class">com.mysql.jdbc.Driver</property><!-- 连接数据库的URL--><property nam e="connection.url">jdbc:m ysql://localhost:3306/schoolproject</property><property nam e="eUnicode">t rue</property><property nam e="connection.characterEncoding">UTF-8</property><!--连接的登录名--><property nam e="ername">root</property><!--登录密码--><property nam e="connection.password"></property><!-- C3P0连接池设定--><property nam e="hibernate.connection.provider_class">org.hibernate.connectio n.C3P0ConnectionProvider</property><property nam e="hibernate.c3p0.m ax_size">20</property><property nam e="hibernate.c3p0.m in_size">5</property><property nam e="hibernate.c3p0.tim eout">120</property><property nam e="hibernate.c3p0.m ax_statem ents">100</property><property nam e="hibernate.c3p0.idle_test_period">120</property><property nam e="hibernate.c3p0.acquire_increment">2</property><!--是否将运行期生成的SQL输出到日志以供调试--><property nam e="show_sql">t rue</property><!--指定连接的语言--><property nam e="dialect">org.hibernate.dialect.MySQLDialect</property><!--映射Student这个资源--><mapping resource="com/wqbi/model/pojo/student.hbm.xml" /></session-factory></hibernate-configuration>3.proxool连接池(1) 先写proxool的配置文件,文件名:proxool.xml(一般放在与hibernate.cfg.xml文件在同一个目录中)本例配置的是MYSQL数据库,数据库的名字为schoolproject<?xml version="1.0" encoding="UTF-8"?><!-- the proxool configuration can be em bedded within your own application's.Anything outside the "proxool" tag is ignored. --><something-else-entirely><proxool><!--连接池的别名--><alias>DBPool</alias><!--proxool只能管理由自己产生的连接--><driver-url>jdbc:m ysql://localhost:3306/schoolproject?useUnicode=true&characterEnco ding=UTF8</driver-url><!—JDBC驱动程序--><driver-class>com.m ysql.jdbc.Driver</driver-class><driver-properties><property nam e="user" value="root"/><property nam e="password" value=""/></driver-properties><!-- proxool自动侦察各个连接状态的时间间隔(毫秒),侦察到空闲的连接就马上回收,超时的销毁--><house-keeping-sleep-tim e>90000</house-keeping-sleep-tim e><!-- 指因未有空闲连接可以分配而在队列中等候的最大请求数,超过这个请求数的用户连接就不会被接受--><maximu m-new-connections>20</maximum-new-connections><!-- 最少保持的空闲连接数--><prototype-count>5</prototype-count><!-- 允许最大连接数,超过了这个连接,再有请求时,就排在队列中等候,最大的等待请求数由maximum-new-connections决定--><maximu m-connection-count>100</maximu m-connection-count><!-- 最小连接数--><minimum-connection-count>10</minimu m-connection-count></proxool></something-else-entirely>(2)配置hibernate.cfg.xml文件<?xml version='1.0' encoding='UTF-8'?><!DOCTYPE hibernate-configurationPUBLIC "-//Hibernate/Hibernate Configuration DTD//EN""/hibernate-configuration-3.0.dtd"><hibernate-configuration><session-factory ><property nam e="hibernate.connection.provider_class">org.hibernate.connection.ProxoolConnectionProvider</property><property nam e="hibernate.proxool.pool_alias">DBPool</property><property nam e="hibernate.proxool.xml">proxoolconf.xml</property><!--是否将运行期生成的SQL输出到日志以供调试--><property nam e="show_sql">t rue</property><!--指定连接的语言--><property nam e="dialect">org.hibernate.dialect.MySQLDialect</property><!--映射Student这个资源--><mapping resource="com/wqbi/model/pojo/student.hbm.xml" /></session-factory></hibernate-configuration>(1) hibernate.connection.provider_class定义Hibernate的连接加载类,这里Proxool 连接池是用这个,不同的连接池有不同的加载类,可以查阅Hibernate文档获取相关信息(2) hibernate.proxool.pool_alias这里就是用我们上面提到的连接池的别名(3) hibernate.proxool.xml是向Hibernate声明连接池的配置文件位置,可以用相对或绝对路径,用相对路径时要注意一定在要Path范围内!不然会抛出异常。
现在常用的开源数据连接池主要有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的时候,如果使用默认值,则数据库连接因为某种原因断掉后,再从连接池中取得连接又不进行验证,这时取得的连接实际上就会是无效的数据库连接。
Hibernate 连接池的三种配置方式:dbcp , c3p0 , proxoolURL的多种指定方式连接池监控在hibernate3.0中,已经不再支持dbcp了,hibernate的作者在中,明确指出在实践中发现dbcp有BUG,在某些种情会产生很多空连接不能释放,所以抛弃了对dbcp的支持。
1 =================== C3P0 配置=============================Xml代码<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-configuration PUBLIC"-//Hibernate/Hibernate Configuration DTD 3.0//EN""/hibernate-configuration-3.0.dtd"><hibernate-configuration><session-factory><!-- 配置事务实现方式--><property name="transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property><!-- 配置JDBC里batch的大小--><property name="jdbc.batch_size">50</property><property name="e_second_level_cache">false</property><!-- 配置线程安全的session --><property name="current_session_context_class">thread</property><!-- 显示SQL --><property name="show_sql">true</property><property name="format_sql">true</property><!-- 配置数据库方言--><property name="dialect">org.hibernate.dialect.Oracle9Dialect</property><!-- 配置数据库连接--><property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property><property name="ername">0804</property><property name="connection.password">0804</property><property name="connection.url">jdbc:oracle:thin:@192.168.0.200:1521:orcl</property><!-- 配置连接池--><property name="c3p0.max_size">2</property><property name="c3p0.min_size">2</property><property name="c3p0.timeout">5000</property><property name="c3p0.max_statements">100</property><property name="c3p0.idle_test_period">3000</property><property name="c3p0.acquire_increment">2</property><property name="c3p0.validate">false</property><!-- 指定hibernate管理的映射文件--><mapping resource="com/ket/ruan/so/entity/User.hbm.xml"/><mapping resource="com/ket/ruan/so/entity/Product.hbm.xml"/>。
注册论坛首页 → 入门讨论版 → proxool 连接池配置详细说明全部 入门技术 IT 厂商浏览 1594 次主题:proxool 连接池配置详细说明 精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)作者正文目前市面上三个主流连接池从性能上排名如下:proxool>c3p0>dbcp ,proxool 还提供了可视化的连接池实时监控: lProxool 连接池实现 lhibernate+proxool l 我用proxool 做连接池的时候出现异常推荐圈子: GT-Grid更多相关推荐工具,所以既稳定又方便,配置也是非常容易的事情。
下面我来讲讲我如何配置proxool连接池的。
1、下载相关资源。
从/站点上下载我们需要的资源,proxool-0.9.1是最新版本,解压后从lib下copy里面的2个JAR包proxool-0.9.1.jar和proxool-cglib.jar至项目中去。
如果不加proxool-cglib.jar的话会报 ng.ClassNotFoundException:org.logicalcobwebs.cglib.proxy.Callback异常。
2、首先在WEB-INF目录下新建一个proxool.xml文件。
Java代码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个不同数据库的数据源,你可以根据需要配置多个,其中具体的参数属性我会在下面全部予以说明。
3、配置web.xml文件。
Java代码1.<?xml version="1.0" encoding="UTF-8" ?>2.<web-app version="2.5" xmlns="/xml/ns/javaee"3. xmlns:xsi="/2001/XMLSchema-instance"4. xsi:schemaLocation="/xml/ns/javaee /xml/ns/javaee/web-app_2_5.xsd">5. <servlet>6. <servlet-name>ServletConfigurator</servlet-name>7. <servlet-class>8. org.logicalcobwebs.proxool.configuration.ServletConfigurator9. </servlet-class>10. <init-param>11. <param-name>xmlFile</param-name>12. <param-value>WEB-INF/proxool.xml</param-value>13. </init-param>14. <load-on-startup>1</load-on-startup>15. </servlet>16. <servlet>17. <servlet-name>datasource_situation</servlet-name>18. <servlet-class>19. org.logicalcobwebs.proxool.admin.servlet.AdminServlet20. </servlet-class>21. </servlet>22. <servlet-mapping>23. <servlet-name>datasource_situation</servlet-name>24. <url-pattern>/datasource_situation</url-pattern>25. </servlet-mapping>26. <!-- 配置受保护域,只有Tomcat管理员才能察看连接池的信息 -->27. <security-constraint>28. <web-resource-collection>29. <web-resource-name>proxool</web-resource-name>30. <url-pattern>/datasource_situation</url-pattern>31. </web-resource-collection>32. <auth-constraint>33. <role-name>manager</role-name>34. </auth-constraint>35. </security-constraint>36. <login-config>37. <auth-method>BASIC</auth-method>38. <realm-name>proxool manager Application</realm-name>39. </login-config>40. <security-role>41. <description>42. The role that is required to log in to the Manager43. Application44. </description>45. <role-name>manager</role-name>46. </security-role>47. <error-page>48. <error-code>401</error-code>49. <location>/401.jsp</location>50. </error-page>51.</web-app><load-on-startup>1</load-on-startup>用来设置加载属性,一定要保证在其他配置项之前加载。
Java代码1.<servlet>2. <servlet-name>datasource_situation</servlet-name>3. <servlet-class>4. org.logicalcobwebs.proxool.admin.servlet.AdminServlet5. </servlet-class>6.</servlet>7.<servlet-mapping>8. <servlet-name>datasource_situation</servlet-name>9. <url-pattern>/datasource_situation</url-pattern>10.</servlet-mapping>这个属性是用来提供察看连接池信息的工具,既在域名后跟上/datasource_situation就可以查看了,当然名字可以自己定义。