proxool连接池配置详解及例程

原创 2007年09月13日 12:53:00

 

1. http://proxool.sourceforge.net/download.html 去下载最新的proxool-***.zip , 将里面的 lib/proxool-**.jar 添加到Eclipse的工程中.

2.proxool.xml文件放于src中,部署后处于WEB-INF/classes/文件夹中
<?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>MyPool</alias>
    <driver-url>jdbc:microsoft:sqlserver://localhost:2767;DatabaseName=camis;SelectMethod=cursor</driver-url>
    <driver-class>com.microsoft.jdbc.sqlserver.SQLServerDriver</driver-class>
    <driver-properties>
      <property name="user" value="sa"/>
      <property name="password" value="sa"/>
    </driver-properties>
    <maximum-connection-count>30</maximum-connection-count>
    <minimum-connection-count>10</minimum-connection-count>
    <house-keeping-sleep-time>90000</house-keeping-sleep-time>
    <prototype-count>5</prototype-count>
    <house-keeping-test-sql>select CURRENT_DATE</house-keeping-test-sql>
  </proxool>
</something-else-entirely>
 
3.在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/classes/proxool.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>

<!--连接池监听-->
  <servlet>
    <servlet-name>proxool</servlet-name>
    <servlet-class>org.logicalcobwebs.proxool.admin.servlet.AdminServlet</servlet-class>
 </servlet>
 
  <servlet-mapping>
   <servlet-name>proxool</servlet-name>
   <url-pattern>/Admin/proxool/</url-pattern>
  </servlet-mapping>  
 
4.修改hibernate.cfg.xml文件,配置连接池

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
          "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<!-- Generated by MyEclipse Hibernate Tools.                   -->
<hibernate-configuration>

<session-factory>
<property name="hibernate.connection.provider_class">org.hibernate.connection.ProxoolConnectionProvider</property>
<property name="hibernate.proxool.pool_alias">MyPool</property>
<property name="hibernate.proxool.xml">proxool.xml</property>
<property name="show_sql">true</property>
<property name="dialect">org.hibernate.dialect.SQLServerDialect</property>
</session-factory>
</hibernate-configuration>

5.http://localhost:8080/camis//Admin/proxool/即可对连接池的情况进行监控

6.在普通jsp中使用,可以先写一个通用的类

package com.db;
import java.sql.*;

import org.apache.log4j.*;
public class ProxoolAction {
 private static Connection conn;
 static Logger log=Logger.getLogger("ProxoolAction.class");
 public static Connection getConnection()
 {
  try
  {
  conn = DriverManager.getConnection("proxool.MyPool"); //其中MyPool是proxool中配置的连接池的别名,这里如果没有配置正确,会出现no suitable driver的异常

  }catch(Exception e)
 {
  log.error("无法获取数据库连接!"+e);
 }
  return conn;
 }
 public static void closeConnection(Connection conn)
 {
  if (conn == null) return;
  try
  {
   conn.close();
  }catch(Exception e)
  {
   log.error("不能关闭数据库连接!",e);
  }
 }
 public static void closeStatement(Statement stmt)
 {
  if(stmt==null) return;
  try
  {
   stmt.close(); 
  }catch(Exception e)
  {
   log.error("不能关闭statement",e);
  }
 }
 public static void closeResultSet(ResultSet rs)
 {
  if(rs==null) return;
  try
   {
         rs.close();
      }catch (SQLException e)
      {
         log.error("不能关闭 resultset.", e);
      }
 }
}

7.在jsp中调用

<%
Connection conn=null;
PreparedStatement stmt=null;
ResultSet rs=null;
try
{
  conn=ProxoolAction.getConnection();
  stmt=conn.prepareStatement("select * from m_student");
  rs=stmt.executeQuery();
  while(rs.next())
  {
    out.println(rs.getString(2)+"<br>");
  }
  ProxoolAction.closeStatement(stmt);   //1.关闭statement
}catch(Exception e)
{
}finally
{
  ProxoolAction.closeResultSet(rs);
  ProxoolAction.closeStatement(stmt);  //2.关闭statement
  ProxoolAction.closeConnection(conn);
}

 %>

注意上面关闭statement时,如果已经关闭了一次,下面再调用关闭statement的方法,后台会出现如下信息:

2007-09-13 10:29:02,000 [org.logicalcobwebs.proxool.MyPool]-[WARN] 000918 (05/20/00) - #185 registered a statement as closed which wasn't known to be open.

此时只要将1.关闭statement去掉即可.当然,如果在1处的后面继续要使用这个statement,则应该将其关闭,否则在oracle数据库中会出现超出游标最大数的异常
8.相关步骤转自http://www.blogjava.net/lyyb2001/archive/2007/06/26/126439.html,具体的配置文件变化较大。
 

相关文章推荐

proxool详细配置

连接池最基本的目的: 1、重用连接,节省连接资源; 2、免去建立连接操作,提高效率 最近做的一个项目中运用到了连接池技术,在此简单的记录一下,我在项目中成功的配置和测试源码。 第一步:首先去http:...
  • Baple
  • Baple
  • 2015年04月07日 11:18
  • 1104

proxool配置详解

1、proxool是一个非常优秀的数据库连接池框架。其常用配置属性如下,其中红体字为必配项,蓝体字为建议配置项,其他非必要可采用默认值。 alias:别名,用于获取数据库连接。 driver-url:...

用proxool配置数据库连接池步骤(properties配置)

1、下载proxool 地址:http://proxool.sourceforge.net2、解压缩proxool-0.9.0RC2.zip,拷贝lib/proxool-0.9.0RC2.jar到we...
  • jenhy
  • jenhy
  • 2008年04月01日 18:52
  • 3545

proxool的oracle配置

配置一:XML方法1、下载proxool 地址:http://proxool.sourceforge.net    2、解压缩proxool-0.9.0RC2.zip,拷贝lib/proxool-0....

proxool 连接池配置属性说明详解

今天配置proxool 连接池,发现可配置属性非常多,以前也只是用,没总结过,今天查了下网上的资料,总结一下 方便你我。其实网上很多英文资料都很全,网上很多人就是考翻译老外的文章赚些流量,其实也...

Proxool数据库连接池使用方法

转载:http://blog.csdn.net/yjboy1982/article/details/1514011 首先从 http://proxool.sourceforge.net/...

proxool连接池配置

项目开始是用bonecp连接池,其他同事配置的,一直也没研究。但是项目上线后,发现一个问题,长时间不访问的情况下,再次访问,会非常常慢。经过排查,是因为连接池里没有存活动的链接,长时间不访问,连接池里...

JDBC连接多数据库-proxool连接池配置

近来,公司要求将以前sqlserver2008上的某一部分数据导入到现在的oracle11g上来,因为很多表和字段都没对应上,那肯定不能用sql脚本导,既然要连到多个数据库,自然就想到了连接池。 下...

SSH框架中配置Hibernate使用proxool连接池

SSH框架中配置Hibernate使用proxool连接池。

Proxool连接池的使用心得

转自:http://hi.baidu.com/zhangxuewen/blog/item/ac5d5ad58e4e07c751da4ba9.html  公司里用的连接池都是自己写好了,封装起来的,做大...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:proxool连接池配置详解及例程
举报原因:
原因补充:

(最多只允许输入30个字)