`
7tianle
  • 浏览: 95172 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Proxool连接池的使用心得

    博客分类:
  • ssh
阅读更多
公司里用的连接池都是自己写好了,封装起来的,做大型项目的时候,非常有用,但近段时间总是发现数据库连接过多,造成数据库连接压力过大,网站无法访问等严重后果,我们做的网站主要是用于移动公司的后台,经常会处理很大"群集任务",找了很长时间,发现是程序里有很多打开的连接没有关闭,放回到连接池里去,造成连接数不够的问题.

             后来上网上找了这个PROXOOL连接池插件,发现有自动KILL不活动的连接的功能.而且有VIEW方式查看连接情况,而且很多数据都是配置完成。决定在项目中试验一下。

          官方网址:http://proxool.sourceforge.net/    当前版本:proxool-0.9.0RC2

             1、下载proxool 地址:http://proxool.sourceforge.net
             2、解压缩proxool-0.9.0RC2.zip,拷贝lib/proxool-0.9.0RC2.jar到web-info/lib      拷贝jdbc驱动到web-info/lib
             3、在web-info下建立文件:proxool.xml
<?xml version="1.0" encoding="UTF-8"?>
<something-else-entirely>
<proxool>
    <alias>Test</alias>
    <driver-url>jdbc:oracle:thin:@192.168.10.160:1521:orc1</driver-url>
    <driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
    <driver-properties>
      <property name="user" value="test"/>
      <property name="password" value="testpass"/>
    </driver-properties>
    <maximum-connection-count>10</maximum-connection-count>
    <house-keeping-test-sql>select CURRENT_DATE</house-keeping-test-sql>
</proxool>
</something-else-entirely>
             4、在web.xml里新增如下:

<servlet>
      <servlet-name>proxoolServletConfigurator</servlet-name>
     <servlet-class>org.logicalcobwebs.proxool.configuration.ServletConfigurator</servlet-class>
     <init-param>
       <param-name>xmlFile</param-name>
       <param-value>WEB-INF/config/proxool.xml</param-value>
     </init-param>
     <load-on-startup>1</load-on-startup>
   </servlet>
<!-- proxool提供的管理监控工具,可查看当前数据库连接情况。如果运行不成功,请删除本行 -->
<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>

5、在调用数据库连接代码:
       Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");
       Connection conn = DriverManager.getConnection("proxool.Develop");
     6、利用proxool监控工具查看数据库运行状态。地址:./admin


       以上配置是采用的XML文件方式,也可以采用properties配置方式:

proxool.alias=Test
proxool.driver-class=oracle.jdbc.driver.OracleDriver
proxool.driver-url=jdbc:oracle:thin:@192.168.10.160:1521:orcl
proxool.user=test
proxool.password=testpass
proxool.maximum-connection-count=20
proxool.prototype-count=4
proxool.house-keeping-test-sql=select sysdate from DUAL
proxool.verbose=true
proxool.statistics=10s,1m,1d
proxool.statistics-log-level=ERROR


<servlet>
<servlet-name>ServletConfigurator</servlet-name>
<servlet-class>org.logicalcobwebs.proxool.configuration.ServletConfigurator</servlet-class>

<init-param>
   <param-name>propertyFile</param-name>
   <param-value>WEB-INF/config/Proxool.properties</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>


在调用数据库连接代码
    Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");
   Connection conn = DriverManager.getConnection("proxool.Test");


还有一些配置属性:
maximum-connection-lifetime   最大连接生命周期 默认值:4小时
maximum-active-time:      最大活动时间    默认值:5分钟
maximum-connection-count    最大连接数     默认值:15个
minimum-connection-count    最小连接数     默认值:5个

在用admin调用的时候,可以查看这个WEB应用所有的连接数的状态,虽然这个插件可以把不活动的连接自动放到连接池里,但是如果连接数过多,而不及时KILL的话,对网站的连接是有很大的影响的,建议还是手工KILL。
注意:一般连接用完应关闭连接,对于执行时间比较长的操作,maximum-active-time的值要设大一些,不然时间到了,连接池会将连接关闭,导致数据库操作出错。对于连续的统计任务,使用数据库连接可以在一小时以上,应考虑自动关闭的情况,加上事务处理,并重新建立连接。

原文地址 http://hi.baidu.com/zhangxuewen/blog/item/ac5d5ad58e4e07c751da4ba9.html
分享到:
评论

相关推荐

    proxool连接池使用详细说明

    下面将详细讲解Proxool连接池的使用方法及其核心概念。 1. **Proxool简介** Proxool是Apache软件基金会的一个开源项目,它提供了一个轻量级的数据库连接池实现。Proxool通过创建一个数据库连接池来管理数据库连接...

    Proxool连接池使用方法

    Proxool连接池使用方法 首先, 你要把下载 proxool 的 lib 下面所有的 jar 文件, 放到 WEB-INF/lib 下面, 另外, 把你的 jdbc driver 也放到相同的 lib,

    proxool连接池用户名密码加密

    Proxool是一个开源的、轻量级的Java数据库连接池实现,它提供了一种高效、灵活的方式来管理数据库连接。在某些场景下,为了保护敏感信息,如数据库的用户名和密码,我们需要对这些数据进行加密处理。"proxool连接池...

    proxool连接池配置文件

    项目实用的proxool连接池配置文件,每个标签都有注释,可以直接拿来使用

    在Hibernate中配置Proxool连接池

    以下是如何配置SessionFactory以使用Proxool连接池: ```xml &lt;prop key="hibernate.dialect"&gt;org.hibernate.dialect.Oracle9Dialect&lt;/prop&gt; &lt;!-- 数据库方言 --&gt; &lt;prop key="hibernate.show_sql"&gt;true...

    proxool连接池配置

    -- 连接池的别名 --&gt; &lt;alias&gt;DBPool&lt;/alias&gt; - &lt;!-- proxool只能管理由自己产生的连接 --&gt; &lt;driver-url&gt;jdbc:sqlserver://localhost:1433;dataBaseName=books&lt;/driver-url&gt; - &lt;!-- JDBC驱动程序 --&gt; ...

    proxool连接池所涉及的jar包文件

    Proxool的核心功能是创建一个池化的数据库连接集合,当应用需要连接时,可以从池中获取,使用完毕后归还,而不是每次操作数据库都创建新的连接。这种方式减少了频繁创建和关闭连接的开销,提高了系统资源利用率。...

    proxool连接池配置详解

    ### Proxool连接池配置详解 #### 一、概述 Proxool是一个开源的轻量级Java数据库连接池实现,其主要目标是替代常见的数据库连接池解决方案,如C3P0或DBCP,并且提供了更加灵活和易于配置的特性。在实际应用中,...

    Spring+Hibernate+Proxool连接池

    标题 "Spring+Hibernate+Proxool连接池" 涉及到的是在Java Web开发中,如何使用Spring框架集成Hibernate ORM框架,并结合Proxool作为数据库连接池的技术实践。这通常是为了提高应用性能,有效管理和复用数据库连接,...

    ssh2简单案例,注解+proxool连接池+sf4j记录日志

    在这个"ssh2简单案例"中,我们将探讨如何结合注解、Proxool连接池和SF4J日志记录来构建一个SSH2注册登录系统。 首先,SSH2在Java中的实现通常通过JSch库来完成。JSch允许开发者在Java程序中执行命令、传输文件以及...

    proxool连接池jar包

    2. `proxool-0.9.1.jar`:这是Proxool的主要库文件,包含了连接池的核心实现和所有必要的类,开发者在项目中引用这个jar文件就可以使用Proxool的功能。 在实际应用中,使用Proxool连接池的步骤通常包括: 1. 添加...

    Proxool连接池jar包

    总的来说,Proxool连接池提供了一种轻量级、易于使用的数据库连接管理方案,能够有效提高Java应用程序处理数据库的能力,降低系统资源的消耗,同时通过监控和统计功能帮助我们更好地理解和优化系统性能。在选择和...

    proxool连接池

    5. **透明性**:对应用程序来说,使用Proxool 连接池几乎无需修改原有代码,因为它的API设计与JDBC接口兼容。 ### Proxool 的基本配置: 在使用Proxool之前,需要进行必要的配置,通常通过XML文件来完成。配置文件...

    proxool连接池使用说明

    【Proxool 连接池】是一个高效且可扩展的数据库连接池,它通过复用已存在的数据库连接,显著提高了数据库操作的性能。连接池管理数据库连接的分配、监控和释放,防止因未正确释放连接而导致的资源浪费。Proxool 设计...

    Hibernate Proxool连接池配置总结及常遇问题

    这里,`pool_alias`定义了连接池的别名,`hibernate.proxool.xml`指定了Proxool配置文件的位置,`connection.provider_class`则指明使用Proxool作为连接提供者。 **(3)Proxool配置文件** 创建`ProxoolConf.xml`...

    Proxool连接池实例.zip

    在这个"Proxool连接池实例.zip"压缩包中,我们可以推测包含了一些关于如何在C#环境下集成和使用Proxool连接池的示例代码和相关资源。 首先,让我们深入理解一下Proxool连接池的工作原理。Proxool维护了一个数据库...

    Proxool连接池及使用文档

    在学习Proxool的过程中,提供的文档是十分重要的,它将详细介绍如何配置、使用和诊断Proxool连接池,以确保你在实际项目中能够充分利用其优势,优化数据库访问效率。通过阅读文档,你可以了解更深入的细节,例如连接...

    基于ssh的proxool连接池配置

    在这里,我们通过`dataSource`属性引用了上面配置的数据源,这样Hibernate就能使用Proxool连接池进行数据库操作。 5. 在`hibernateProperties`中,我们设置了`hibernate.dialect`为`MySQLDialect`,表示使用的是...

    Spring2.5配置proxool连接池

    Spring2.5配置proxool连接池

Global site tag (gtag.js) - Google Analytics