proxool连接池配置详解及例程
2007-09-13 12:53
453 查看
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,具体的配置文件变化较大。
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 连接池配置属性说明详解
- proxool 连接池配置属性说明详解
- proxool 连接池配置属性说明详解
- proxool 连接池配置属性说明详解
- tomcat连接池的各项配置详解及例程
- proxool 连接池配置属性说明详解
- proxool连接池配置详解
- proxool 连接池配置属性说明详解【转】
- proxool 连接池配置属性说明详解
- proxool 连接池配置属性说明详解
- spring配置详解-proxool连接池配置
- [J2EE]DBCP、C3P0、Proxool三大连接池的配置参数说明和使用详解
- proxool 连接池配置属性说明详解
- spring配置详解-proxool连接池配置
- proxool 连接池配置属性说明详解
- 最新的Hibernate(5.0.2.Final)里配置proxool连接池详细步骤
- (绝对有效)sqlserver2000链接proxool连接池,终于配置出spring整合struts,hibernate annotation(pool数据池,sqlserver2000数据库)
- Spring+Hibernate与proxool连接池的配置
- 在Hibernate中配置Proxool连接池
- 配置proxool连接池时注意的问题