- 浏览: 50411 次
- 性别:
- 来自: 台源
最新评论
Example configuration:
这一步主要配置连接池的一些参数。
由于整个程序已经可以运行起来了,或许你很高兴,但是你可不要高兴的太早,如果就这样拿你的项目去做压力测试,那十有八九是通不过的!为什么啊?因为你的连接池还没有经过参数的调优,下面我就简单的介绍一下各个参数的意思,你明白了这些,压力测试肯定不成问题。
house-keeping-sleep-time: house keeper 保留线程处于睡眠状态的最长时间,house keeper 的职责就是检查各个连接的状态,并判断是否需要销毁或者创建,这个的默认值是30秒。
house-keeping-test-sql: 如果发现了空闲的数据库连接.house keeper 将会用这个语句来测试.这个语句最好非常快的被执行.如果没有定义,测试过程将会被忽略。
maximum-active-time: 如果housekeeper 检测到某个线程的活动时间大于这个数值.它将会杀掉这个线程.所以确认一下你的服务器的带宽.然后定一个合适的值.默认是5分钟。经常有些人或许会遇到正在执行的程序忽然拒绝连接,莫明其妙的程序假死,这些都与这个参数的设置有关,我们大部分数据库操作都会在5分钟之内完成,可是偏偏有些可能5分钟还完成不了,而这个值如果按照默认值的话,连接池就会不管你到底有没有执行完,都会强行关闭数据库连接,所以这个值你可要小心设置哦:)
maximum-connection-count: 最大的数据库连接数.一般的大应用设置30就足够了。
maximum-connection-lifetime: 一个线程的最大寿命.
minimum-connection-count: 最小的数据库连接数,一般最好事先初始化一部分连接这样,对于初次连接数据库的应用效率比较高,推荐设置5-10
prototype-count: 连接池中可用的连接数量.如果当前的连接池中的连接少于这个数值.新的连接将被建立(假设没有超过最大可用数).例如.我们有3个活动连接2个可用连接,而我们的prototype-count是4,那么数据库连接池将试图建立另外2个连接.这和 minimum-connection-count不同. minimum-connection-count把活动的连接也计算在内.prototype-count 是spare connections 的数量.
trace: 如果为true,那么每个被执行的SQL语句将会在执行期被log记录(DEBUG LEVEL).你也可以注册一个ConnectionListener (参看ProxoolFacade)得到这些信息.
------------------------------------------------------------------------
另附加一份proxool.xml的配置属性说明:
属性列表说明:
fatal-sql-exception: 它是一个逗号分割的信息片段.当一个SQL异常发生时,他的异常信息将与这个信息片段进行比较.如果在片段中存在,那么这个异常将被认为是个致命错误(Fatal SQL Exception ).这种情况下,数据库连接将要被放弃.无论发生什么,这个异常将会被重掷以提供给消费者.用户最好自己配置一个不同的异常来抛出.
fatal-sql-exception-wrapper-class:正如上面所说,你最好配置一个不同的异常来重掷.利用这个属性,用户可以包装SQLException,使他变成另外一个异常.这个异常或者继承SQLException或者继承字RuntimeException.proxool自带了2个实现:'org.logicalcobwebs.proxool.FatalSQLException' 和'org.logicalcobwebs.proxool.FatalRuntimeException' .后者更合适.
house-keeping-sleep-time: house keeper 保留线程处于睡眠状态的最长时间,house keeper 的职责就是检查各个连接的状态,并判断是否需要销毁或者创建.
house-keeping-test-sql: 如果发现了空闲的数据库连接.house keeper 将会用这个语句来测试.这个语句最好非常快的被执行.如果没有定义,测试过程将会被忽略。
injectable-connection-interface: 允许proxool实现被代理的connection对象的方法.
injectable-statement-interface: 允许proxool实现被代理的Statement 对象方法.
injectable-prepared-statement-interface: 允许proxool实现被代理的PreparedStatement 对象方法.
injectable-callable-statement-interface: 允许proxool实现被代理的CallableStatement 对象方法.
jmx: 略
jmx-agent-id: 略
jndi-name: 数据源的名称
maximum-active-time: 如果housekeeper 检测到某个线程的活动时间大于这个数值.它将会杀掉这个线程.所以确认一下你的服务器的带宽.然后定一个合适的值.默认是5分钟.
maximum-connection-count: 最大的数据库连接数.
maximum-connection-lifetime: 一个线程的最大寿命.
minimum-connection-count: 最小的数据库连接数
overload-without-refusal-lifetime: 略
prototype-count: 连接池中可用的连接数量.如果当前的连接池中的连接少于这个数值.新的连接将被建立(假设没有超过最大可用数).例如.我们有3个活动连接2个可用连接,而我们的prototype-count是4,那么数据库连接池将试图建立另外2个连接.这和 minimum-connection-count不同. minimum-connection-count把活动的连接也计算在内.prototype-count 是spare connections 的数量.
recently-started-threshold: 略
simultaneous-build-throttle: 略
statistics: 连接池使用状况统计。 参数
<proxool> <alias>apple</alias> <driver-url>jdbc:hsqldb:.</driver-url> <driver-class>org.hsqldb.jdbcDriver</driver-class> <driver-properties> <property name="user" value="abc" /> <property name="password" value="def" /> </driver-properties> <house-keeping-sleep-time>40000</house-keeping-sleep-time> <house-keeping-test-sql>select CURRENT_DATE</house-keeping-test-sql> <maximum-connection-count>10</maximum-connection-count> <minimum-connection-count>3</minimum-connection-count> <maximum-connection-lifetime>18000000</maximum-connection-lifetime> <!-- 5 hours --> <simultaneous-build-throttle>5</simultaneous-build-throttle> <recently-started-threshold>40000</recently-started-threshold> <overload-without-refusal-lifetime>50000</overload-without-refusal-lifetime> <maximum-active-time>60000</maximum-active-time> <verbose>true</verbose> <trace>true</trace> <fatal-sql-exception>ORA-1234</fatal-sql-exception> <prototype-count>2</prototype-count> </proxool>
这一步主要配置连接池的一些参数。
由于整个程序已经可以运行起来了,或许你很高兴,但是你可不要高兴的太早,如果就这样拿你的项目去做压力测试,那十有八九是通不过的!为什么啊?因为你的连接池还没有经过参数的调优,下面我就简单的介绍一下各个参数的意思,你明白了这些,压力测试肯定不成问题。
house-keeping-sleep-time: house keeper 保留线程处于睡眠状态的最长时间,house keeper 的职责就是检查各个连接的状态,并判断是否需要销毁或者创建,这个的默认值是30秒。
house-keeping-test-sql: 如果发现了空闲的数据库连接.house keeper 将会用这个语句来测试.这个语句最好非常快的被执行.如果没有定义,测试过程将会被忽略。
maximum-active-time: 如果housekeeper 检测到某个线程的活动时间大于这个数值.它将会杀掉这个线程.所以确认一下你的服务器的带宽.然后定一个合适的值.默认是5分钟。经常有些人或许会遇到正在执行的程序忽然拒绝连接,莫明其妙的程序假死,这些都与这个参数的设置有关,我们大部分数据库操作都会在5分钟之内完成,可是偏偏有些可能5分钟还完成不了,而这个值如果按照默认值的话,连接池就会不管你到底有没有执行完,都会强行关闭数据库连接,所以这个值你可要小心设置哦:)
maximum-connection-count: 最大的数据库连接数.一般的大应用设置30就足够了。
maximum-connection-lifetime: 一个线程的最大寿命.
minimum-connection-count: 最小的数据库连接数,一般最好事先初始化一部分连接这样,对于初次连接数据库的应用效率比较高,推荐设置5-10
prototype-count: 连接池中可用的连接数量.如果当前的连接池中的连接少于这个数值.新的连接将被建立(假设没有超过最大可用数).例如.我们有3个活动连接2个可用连接,而我们的prototype-count是4,那么数据库连接池将试图建立另外2个连接.这和 minimum-connection-count不同. minimum-connection-count把活动的连接也计算在内.prototype-count 是spare connections 的数量.
trace: 如果为true,那么每个被执行的SQL语句将会在执行期被log记录(DEBUG LEVEL).你也可以注册一个ConnectionListener (参看ProxoolFacade)得到这些信息.
------------------------------------------------------------------------
另附加一份proxool.xml的配置属性说明:
<?xml version="1.0" encoding="ISO-8859-1"?> <!-- Properties for Proxool Configurator testing. Defines the same parameters as TestHelper.buildCompleteAlternativeProperties() --> <something-else-entirely xmlns="http://sumthin.else.entirely" xmlns:proxool="The latest version is available at http://proxool.sourceforge.net/xml-namespace"> <proxool:proxool> <proxool:alias>xml-test-ns</proxool:alias> <proxool:driver-url>jdbc:hsqldb:db/test</proxool:driver-url> <proxool:driver-class>org.hsqldb.jdbcDriver</proxool:driver-class> <proxool:driver-properties> <proxool:property name="user" value="sa"/> <proxool:property name="password" value=""/> </proxool:driver-properties> <proxool:house-keeping-sleep-time>40000</proxool:house-keeping-sleep-time> <proxool:house-keeping-test-sql>select CURRENT_DATE</proxool:house-keeping-test-sql> <proxool:maximum-connection-count>10</proxool:maximum-connection-count> <proxool:minimum-connection-count>3</proxool:minimum-connection-count> <proxool:maximum-connection-lifetime>18000000</proxool:maximum-connection-lifetime> <!-- 5 hours --> <proxool:simultaneous-build-throttle>5</proxool:simultaneous-build-throttle> <proxool:recently-started-threshold>40000</proxool:recently-started-threshold> <proxool:overload-without-refusal-lifetime>50000</proxool:overload-without-refusal-lifetime> <proxool:maximum-active-time>60000</proxool:maximum-active-time> <proxool:verbose>true</proxool:verbose> <proxool:trace>true</proxool:trace> <proxool:fatal-sql-exception>Fatal error</proxool:fatal-sql-exception> <proxool:prototype-count>2</proxool:prototype-count> </proxool:proxool> <nothing-to-do-with-proxool> <proxool:proxool> <proxool:alias>xml-test-ns-2</proxool:alias> <proxool:driver-url>jdbc:hsqldb:db/test</proxool:driver-url> <proxool:driver-class>org.hsqldb.jdbcDriver</proxool:driver-class> <proxool:driver-properties> <proxool:property name="user" value="sa"/> <proxool:property name="password" value=""/> </proxool:driver-properties> <proxool:house-keeping-sleep-time>40000</proxool:house-keeping-sleep-time> <proxool:house-keeping-test-sql>select CURRENT_DATE</proxool:house-keeping-test-sql> <proxool:maximum-connection-count>10</proxool:maximum-connection-count> <proxool:minimum-connection-count>3</proxool:minimum-connection-count> <proxool:maximum-connection-lifetime>18000000</proxool:maximum-connection-lifetime> <!-- 5 hours --> <proxool:simultaneous-build-throttle>5</proxool:simultaneous-build-throttle> <proxool:recently-started-threshold>40000</proxool:recently-started-threshold> <proxool:overload-without-refusal-lifetime>50000</proxool:overload-without-refusal-lifetime> <proxool:maximum-active-time>60000</proxool:maximum-active-time> <proxool:verbose>true</proxool:verbose> <proxool:trace>true</proxool:trace> <proxool:fatal-sql-exception>Fatal error</proxool:fatal-sql-exception> <proxool:prototype-count>2</proxool:prototype-count> </proxool:proxool> </nothing-to-do-with-proxool> </something-else-entirely>
属性列表说明:
fatal-sql-exception: 它是一个逗号分割的信息片段.当一个SQL异常发生时,他的异常信息将与这个信息片段进行比较.如果在片段中存在,那么这个异常将被认为是个致命错误(Fatal SQL Exception ).这种情况下,数据库连接将要被放弃.无论发生什么,这个异常将会被重掷以提供给消费者.用户最好自己配置一个不同的异常来抛出.
fatal-sql-exception-wrapper-class:正如上面所说,你最好配置一个不同的异常来重掷.利用这个属性,用户可以包装SQLException,使他变成另外一个异常.这个异常或者继承SQLException或者继承字RuntimeException.proxool自带了2个实现:'org.logicalcobwebs.proxool.FatalSQLException' 和'org.logicalcobwebs.proxool.FatalRuntimeException' .后者更合适.
house-keeping-sleep-time: house keeper 保留线程处于睡眠状态的最长时间,house keeper 的职责就是检查各个连接的状态,并判断是否需要销毁或者创建.
house-keeping-test-sql: 如果发现了空闲的数据库连接.house keeper 将会用这个语句来测试.这个语句最好非常快的被执行.如果没有定义,测试过程将会被忽略。
injectable-connection-interface: 允许proxool实现被代理的connection对象的方法.
injectable-statement-interface: 允许proxool实现被代理的Statement 对象方法.
injectable-prepared-statement-interface: 允许proxool实现被代理的PreparedStatement 对象方法.
injectable-callable-statement-interface: 允许proxool实现被代理的CallableStatement 对象方法.
jmx: 略
jmx-agent-id: 略
jndi-name: 数据源的名称
maximum-active-time: 如果housekeeper 检测到某个线程的活动时间大于这个数值.它将会杀掉这个线程.所以确认一下你的服务器的带宽.然后定一个合适的值.默认是5分钟.
maximum-connection-count: 最大的数据库连接数.
maximum-connection-lifetime: 一个线程的最大寿命.
minimum-connection-count: 最小的数据库连接数
overload-without-refusal-lifetime: 略
prototype-count: 连接池中可用的连接数量.如果当前的连接池中的连接少于这个数值.新的连接将被建立(假设没有超过最大可用数).例如.我们有3个活动连接2个可用连接,而我们的prototype-count是4,那么数据库连接池将试图建立另外2个连接.这和 minimum-connection-count不同. minimum-connection-count把活动的连接也计算在内.prototype-count 是spare connections 的数量.
recently-started-threshold: 略
simultaneous-build-throttle: 略
statistics: 连接池使用状况统计。 参数
发表评论
-
WSDL中min0ccurs和nillable的区别
2011-08-15 16:59 8210minOccurs="0" 在null的时 ... -
[转]利用Spring的AOP机制配置管理EHCache
2010-05-27 09:17 1430如果我们的项目中采用的是Spring+hibern ... -
[转]Spring几种获取Bean的方式
2010-05-20 08:34 1333获得spring里注册Bean的四种方法,特别是第三种方法,简 ... -
[转]Spring中ApplicationContext的获取方式
2010-05-20 08:29 972Spring中ApplicationContext加载机制。 ... -
[转]Struts 2.1.x + Spring 2.5.x + Hibernate 3.3.x整合需要的JAR包
2010-05-19 08:55 1289下面这个表相信对很多人都有用: jar包名称 ... -
Spring整合Hibernate
2010-05-18 22:39 0Hibernate3.3 + Spring2.5整合 1.包 ... -
[转]Javascript解析XML文档
2010-05-11 15:41 769例如有如下XML文件: <?xml version ... -
[转]Criteria和DetachedCriteria的分别
2010-05-07 12:42 807使用 Spring 和 Hibernate 进行开发,有 ... -
Java读取properties文件的思考
2010-04-21 15:33 1157此文为转载,原文地址:http://lavasoft.blog ... -
超简单的QuartZ上手入门教程
2010-04-19 16:57 2317随便写个Job类,实现quartz的job package ... -
MAS系统的ApiClient源码
2010-03-23 10:12 3853此文为转载,权作参考! package com.jasson ... -
LRC格式转换
2008-09-12 23:36 1361import java.io.BufferedReader; ...
相关推荐
**Hibernate Proxool连接池配置详解** 在Java应用程序中,数据库连接池是管理数据库连接的一种高效方式,它可以显著提升系统性能,减少数据库资源的浪费。本文将深入探讨Hibernate与Proxool连接池的配置,以及在...
本篇将详细介绍如何在Hibernate中配置Proxool连接池。 首先,我们需要在Spring的配置文件`applicationContext.xml`中设置SessionFactory Bean。SessionFactory是Hibernate的核心组件,它负责创建Session对象,而...
标题 "Spring+Hibernate+Proxool连接池" 涉及到的是在Java Web开发中,如何使用Spring框架集成Hibernate ORM框架,并结合Proxool作为数据库连接池的技术实践。这通常是为了提高应用性能,有效管理和复用数据库连接,...
总之,"proxool连接池用户名密码加密"是一个重要的安全实践,通过加密数据库连接的凭证,我们可以提高系统的安全性,保护数据免受未经授权的访问。正确地配置和使用这个功能,可以确保在享受数据库连接池带来的性能...
3. Proxool配置:除了在Hibernate配置文件中设置基本的数据库连接信息,我们还可以在Proxool的配置文件(如proxool.xml)中设置更详细的连接池参数,比如最大连接数、最小空闲连接数、超时时间等,以优化连接池性能...
本文将详细讲解如何将Hibernate与Proxool连接池整合,以实现更高效的数据访问。 1. Hibernate简介: Hibernate是一个开源的ORM框架,它提供了一种在Java应用程序中操作数据库的方式,无需编写大量的SQL语句。通过...
### Proxool连接池配置详解 #### 一、概述 Proxool是一个开源的轻量级Java数据库连接池实现,其主要目标是替代常见的数据库连接池解决方案,如C3P0或DBCP,并且提供了更加灵活和易于配置的特性。在实际应用中,...
综上所述,这个"Hibernate dbpool proxool例子和jar包"提供的内容应该包含了如何在Hibernate项目中配置和使用Proxool连接池的示例代码以及所需的jar包,对于学习和实践Hibernate与Proxool的结合使用非常有帮助。...
三、配置Proxool连接池 Proxool是Apache的一个开源项目,提供了一个轻量级的数据库连接池。以下是配置Hibernate使用Proxool的步骤: 1. 添加依赖:在项目的类路径下添加Proxool的JAR包,如`proxool-0.9.0RC3.jar`。...
总之,基于SSH的Proxool连接池配置涉及到Spring、Hibernate和Proxool之间的协作,通过这种方式,我们可以有效地管理和优化数据库连接,提高应用程序的性能和稳定性。在实际开发中,需要根据项目需求调整配置参数,以...
本文将详细介绍如何在Struts2+Spring+Hibernate的环境中配置Proxool连接池。 首先,理解Proxool的工作原理。Proxool是一个基于池化的JDBC代理,它维护着一个数据库连接池,当应用需要访问数据库时,可以从池中获取...
**Proxool连接池**:Proxool是数据库连接池的一种实现,它的主要作用是管理数据库连接,减少创建和销毁连接的开销。当多个用户请求数据库连接时,Proxool会复用已存在的连接,而不是每次请求都新建一个。这大大提高...
本项目采用Struts2、Hibernate3集成JPA2、Spring3和Proxool连接池的集成,对整体SSH框架的数据访问及网站效率都有较大的提升,本项目即时部署即可使用,既满足新手的学习,也对有深层研究的朋友有帮助。
3. **Proxool连接池配置**: 对于Proxool,配置如下: ```xml ... <property name="hibernate.c3p0.proxy_factory_class">org.hibernate.connection.ProxoolProxyFactory <property name="proxool.hibernate....
proxool-0.9.1(my).jar 包是我修改了proxool-0.9.1后的jar包,修改后可以完全支持spring配置,并添加了charSet配置属性,用于配置数据库链接的设置默认字符集,并且解决了proxool数据库连接池报如下错误的问题:...