`
canofy
  • 浏览: 828813 次
  • 性别: Icon_minigender_1
  • 来自: 北京、四川
社区版块
存档分类
最新评论

proxool试用

 
阅读更多
配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<something-else-entirely>
	<proxool>
		<alias>DBPool</alias>
		<driver-url>jdbc:mysql://127.0.0.1:3306/qianyu</driver-url>
		<driver-class>com.mysql.jdbc.Driver</driver-class>
		<driver-properties>
			<property name="user" value="root" />
			<property name="password" value="admin" />
			<property name="useUnicode" value="true" />
			<property name="characterEncoding" value="utf8" />
		</driver-properties>
		<!--自动侦察各个连接状态的时间间隔(毫秒),侦察到空闲的连接就马上回收,超时的销毁 -->
		<house-keeping-sleep-time>90000</house-keeping-sleep-time>
		<!--最少保持的空闲连接数 -->
		<prototype-count>5</prototype-count>
		<!--允许最大连接数,超过了这个连接,再有请求时,就排在队列中 -->
		<maximum-connection-count>1000</maximum-connection-count>
		<!--最小连接数 -->
		<minimum-connection-count>10</minimum-connection-count>
		<!--最大的等待请求数,即因没有空闲连接可以分配而在队列中等候的最大请求数,超过这个请求数的 用户连接就不会被接受 -->
		<proxool.simultaneous-build-throttle>200</proxool.simultaneous-build-throttle>
		<!-- 自动重连的,也就是在网络错误或数据库重启等等原因导致与数据库断开,每次获取连接前都会检查,如果现在池子中的连接已经无效将会重新创建 -->
		<test-before-use>true</test-before-use>
		<!--Test SQL(SELECT getDate()) -->
		<house-keeping-test-sql>select CURRENT_DATE</house-keeping-test-sql>
	</proxool>
</something-else-entirely>

web.xml中加入:
<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> 


java测试代码:
/**   
 * java (__FILE__, "$Revision: 1.1 $")
 *
 * @ A.java Create on 2014-3-26   
 *
 * Copyright (c) 2014 by sqin@pachiratech.com.   
 */  
package com.dingding.dao;



import java.sql.Connection;       
import java.sql.DriverManager;       
import java.sql.ResultSet;       
import java.sql.SQLException;       
import java.sql.Statement;       
      
import org.logicalcobwebs.proxool.ProxoolException;       
import org.logicalcobwebs.proxool.ProxoolFacade;       
import org.logicalcobwebs.proxool.admin.SnapshotIF;       

import com.pachira.utils.SrvLogger;
      
      
public class ProxoolPoolManager {       
           
    private static int activeCount = 0;       
           
           
    public ProxoolPoolManager(){       
               
    }          
    /**     
     * 获取连接     
     * getConnection     
     * @param name     
     * @return     
     */      
    public Connection getConnection() {       
        try{       
            Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");//proxool驱动类       
            Connection conn = DriverManager.getConnection("proxool.DBPool");    
           //此处的DBPool是在proxool.xml中配置的连接池别名      
            showSnapshotInfo();       
                   
            return conn;       
        }catch(Exception ex){       
            ex.printStackTrace();       
        }       
        return null;       
    }       
    /**     
     * 此方法可以得到连接池的信息     
     * showSnapshotInfo     
     */      
    private void showSnapshotInfo(){       
        try{       
            SnapshotIF snapshot = ProxoolFacade.getSnapshot("DBPool", true);       
            int curActiveCount=snapshot.getActiveConnectionCount();//获得活动连接数       
            int availableCount=snapshot.getAvailableConnectionCount();//获得可得到的连接数       
            int maxCount=snapshot.getMaximumConnectionCount() ;//获得总连接数       
            if(curActiveCount!=activeCount)//当活动连接数变化时输出的信息       
            {       
             SrvLogger.debug(this.getClass(),"活动连接数:"+curActiveCount+"(active)  可得到的连接数:"+availableCount+"(available)  总连接数:"+maxCount+"(max)");                    
             activeCount=curActiveCount;       
            }       
        }catch(ProxoolException e){       
            SrvLogger.errorW(getClass(), "showSnapshotInfo error,",e);   
        }       
    }       
    /**     
     * 获取连接     
     * getConnection     
     * @param name     
     * @return     
     */      
    public Connection getConnection(String name){       
        return getConnection();       
    }       
    /**     
     * 释放连接     
     * freeConnection     
     * @param conn     
     */      
    public void freeConnection(Connection conn){       
        if(conn!=null){       
            try {       
                conn.close();       
            } catch (SQLException e) {                     
                e.printStackTrace();       
            }       
        }       
    }       
    /**     
     * 释放连接     
     * freeConnection     
     * @param name     
     * @param con     
     */      
    public void freeConnection (String name,Connection con){       
        freeConnection(con);       
    }       
           
    public void getQuery() {               
        try {       
            Connection conn = getConnection();       
            if(conn != null){       
                Statement statement = conn.createStatement();       
                ResultSet rs = statement.executeQuery("select id,uuid from Transcription");       
                int c = rs.getMetaData().getColumnCount();       
                while(rs.next()){                          
                    System.out.println();       
                    for(int i=1;i<=c;i++){       
                        System.out.print(rs.getObject(i));       
                    }       
                }       
                rs.close();       
            }       
            freeConnection(conn);       
        } catch (SQLException e) {                 
            e.printStackTrace();       
        }       
      
    }       
      
    
    public static void main(String[] args) {
    	ProxoolPoolManager pool=new ProxoolPoolManager();
    	pool.getQuery();
	}
}


重启数据库不影响连接池
分享到:
评论

相关推荐

    proxool-0.9.1.jar,proxool-cglib.jar

    标题中的"proxool-0.9.1.jar"和"proxool-cglib.jar"是两个重要的Java档案文件,它们是Proxool项目的组件。Proxool是一个开源的数据库连接池解决方案,它允许开发者在Java应用程序中高效地管理数据库连接。数据库连接...

    proxool配置参数说明及proxool-0.9.1相关jar包及spring配置方法

    **Proxool配置参数说明** Proxool是一个开源的数据库连接池实现,它提供了一种灵活的方式来管理和控制数据库连接。在使用Proxool时,理解其配置参数是至关重要的,这些参数可以调整连接池的行为,以适应不同应用...

    proxool 的使用 配置

    标题 "proxool 的使用配置" 暗示我们将探讨一个名为 Proxool 的数据库连接池的配置和使用方法。Proxool 是一个轻量级、高效的开源 Java 数据库连接池,它提供了一种灵活的方式来管理和控制数据库连接。在这个主题中...

    proxool

    proxool数据库连接池

    proxool-0.9.1.jar proxool_cglib-0.9.1.jar

    标题中的"proxool-0.9.1.jar"和"proxool_cglib-0.9.1.jar"是两个Java库文件,它们是Proxool项目在0.9.1版本时的实现。Proxool是一个开源的数据库连接池,它提供了一种灵活且高效的解决方案来管理数据库连接。在Java...

    hibernate3+ proxool-0.9.1配置 和proxool-0.9.1.jar

    标题中的“hibernate3+ proxool-0.9.1配置”涉及到的是在Java开发中,使用Hibernate3 ORM框架与Proxool连接池的整合配置。Hibernate3是一款流行的持久层框架,它允许开发者用面向对象的方式来操作数据库,而Proxool...

    oracle proxool jar jdbc jar包 proxool源码包 Java oracle proxool 实例

    Oracle Proxool是一款开源的数据库连接池,它提供了一种高效、灵活的方式来管理数据库连接,以提高Java应用程序的性能和可扩展性。在Java应用程序中,数据库连接的创建和关闭是一个耗时的操作,通过使用连接池,我们...

    java项目使用 proxool

    Java项目中的Proxool是一个连接池管理框架,它允许开发者高效地管理数据库连接,从而提高应用程序的性能和可伸缩性。在非Web环境中使用Proxool,意味着我们需要在独立的Java应用程序中集成这个库来处理数据库连接。...

    proxool-0.9.1.zip

    标题中的"proxool-0.9.1.zip"是一个压缩包文件,其中包含了与Proxool相关的组件。Proxool是Java的一个开源数据库连接池,它允许开发者在应用程序中更有效地管理和控制数据库连接。这个0.9.1版本可能是Proxool的一个...

    proxool连接池用户名密码加密

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

    proxool与mybatis整合例子

    本文将深入探讨如何将`Proxool`数据库连接池与`Mybatis`持久层框架进行整合,无需依赖`Spring`框架。我们将讨论配置过程、核心概念以及整合的步骤。 首先,让我们了解`Proxool`。Proxool是基于Apache 2.0协议的一个...

    spring+proxool配置spring+proxool配置

    而Proxool是Oracle公司开源的一个数据库连接池组件,它提供了高效的数据库连接管理,有助于减少数据库资源的消耗,提高系统性能。本篇文章将深入探讨如何在Spring框架中配置和使用Proxool。 首先,我们需要了解...

    proxool相关jar包.rar

    标题 "proxool相关jar包.rar" 提供的信息表明,这个压缩包包含的是与Proxool相关的Java类库,主要用于数据库连接池管理。Proxool是一个开源的、基于Apache 2.0许可证的JDBC连接池实现,它为Java应用程序提供了一个...

    spring proxool配置资料

    Spring Proxool是Spring框架中一个非常重要的组件,它提供了对proxool数据库连接池的集成。Proxool是一个轻量级、高效的数据库连接池,它允许应用程序在处理大量并发请求时有效地管理数据库连接,从而提高系统的性能...

    spring+proxool整合配置

    而Proxool是Apache的一个开源项目,它是一个轻量级的数据库连接池,能够有效地管理和优化数据库连接,提高应用的性能和可伸缩性。当我们需要在Spring框架中集成Proxool作为数据连接池时,需要进行一系列的配置工作。...

    Proxool-数据源配置详解

    **Proxool 数据源配置详解** Proxool是一款开源的Java数据库连接池,它提供了一种灵活、高效的方式来管理数据库连接。在Java应用程序中,数据源(DataSource)是用于管理和控制数据库连接的关键组件,它能有效地...

    proxool相关jar包

    标题中的“proxool相关jar包”指的是用于Spring框架与DB2数据库交互的一种连接池管理工具——Proxool的Java库。Proxool是Apache软件基金会的一个项目,它提供了一个轻量级、高效的数据库连接池解决方案,能有效地...

    proxool-0.9.1-api.chm

    proxool api proxool api proxool api proxool api

    proxool 9.0.1

    Proxool是Apache软件基金会的一个开源项目,它提供了一个连接池解决方案,用于管理数据库连接。在Java应用程序中,使用数据库连接池可以显著提高性能和效率,因为它减少了创建和销毁数据库连接的开销。标题提到的...

    Proxool 在 Hibernate 中的典型配置

    Proxool是一种Java数据库连接池技术,由SourceForge提供支持,作为开源项目,其设计目标是为Java应用提供一个健壮且易用的数据库连接管理方案。Proxool连接池特别强调易用性和监控功能,使得开发者能够容易地发现...

Global site tag (gtag.js) - Google Analytics