poolman数据库连接池
来源:互联网 发布:知乎 正义联盟 编辑:程序博客网 时间:2024/06/05 20:26
由于tomcat自带的连接池有性能问题,因此采用第三方的开源连接池,比如poolman2.0(中文文档比较少)
1、下载poolman的资源,地址为:http://telia.dl.sourceforge.net/sourceforge/poolman/;
将poolman.jar(jdbc2_0-stdext.jar,jmxri.jar,jta.jar,xerces.jar)加入classpath;
2、配置poolman.xml,这个xml文件声明池的各种信息。
各属性说明如下:
<dbname> 池名
<jndiName> JNDI 名
<driver> 数据库驱动,如:org.gjt.mm.mysql.Driver
<url> 数据库的连接地址
<username><password>连接数据库的用户名及密码
<initialConnections> 池的初始连接数,默认值为1
<minimumSize> 最少连接数,默认值为0
<maximumSize> 最大的连接数,默认值为Inter.MAX_VALUE (2的31次方-1)
<connectionTimeout> 连接最长保留时间,默认值为1200秒
<userTimeout> 数据库库操作的最长时间,默认值20秒
<logFile> 日志文件地址,默认为system.out
<debugging> 是否为调试状态,默认为false
<cacheEnabled> 缓存resultse ,默认false
<cacheRefreshInterval> 缓存刷新间隔,默认:30秒
**把poolman.xml文件放置在\WEB-INF\classes\conf路径下
3、在web.xml下配置初始化连接池的servlet(该servlet似乎也可以不配置,配置的好处是为了方便poolman.xml改变放置路径)
<servlet>
<servlet-name>PoolmanConnectBroker</servlet-name>
<servlet-class>com.car.pub.PoolmanConnectBroker</servlet-class>
<init-param>
<param-name>poolman_xml_file</param-name>
<param-value>conf/poolman.xml</param-value>
</init-param>
<load-on-startup>3</load-on-startup>
</servlet>
4、编写关键的PoolmanConnectBroker类:
package com.car.pub;
import com.codestudio.util.ObjectPool;
import com.codestudio.util.SQLManager;
import java.io.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;
import org.apache.log4j.Logger;
public class PoolmanConnectBroker extends HttpServlet {
private final static Logger Log = Logger.getLogger(PoolmanConnectBroker.class);
private static SQLManager sqlManager ;
public void init() throws ServletException {
String prefix = getServletContext().getRealPath("/");
String file = getServletConfig().getInitParameter("poolman_xml_file");
File ff=new File(file);
String filepath=ff.getPath();
if(sqlManager == null)
sqlManager = SQLManager.getInstance(filepath);
}
public PoolmanConnectBroker()
{
}
public Connection getConnection()
{
Connection c = null;
try{
c = sqlManager.requestConnection();
}catch(Exception e) {
Log.debug(e);
}
return c;
}
}
5、连接池的使用:
PoolmanConnectBroker pool = new PoolmanConnectBroker();
Connection conn = pool.getConnection();
conn.close();
附件:我成功配置的poolman.xml样例内容为:
<?xml version="1.0" encoding="UTF-8"?>
<poolman>
<management-mode>local</management-mode>
<!-- ========================================================== -->
<!-- These entries are an example of JDBC Connection pooling. -->
<!-- Many of the parameters are optional. Consult the -->
<!-- UsersGuide.html doument and the poolman.xml.template file -->
<!-- for guidance and element definitions. -->
<!-- ========================================================== -->
<datasource>
<!-- ============================== -->
<!-- Physical Connection Attributes -->
<!-- ============================== -->
<!-- Standard JDBC Driver info -->
<dbname>jdbc/car</dbname>
<jndiName>car</jndiName>
<driver>COM.ibm.db2.jdbc.app.DB2Driver</driver>
<url>jdbc:db2:car</url>
<username>db2admin</username>
<password>admin</password>
<minimumSize>0</minimumSize>
<maximumSize>10</maximumSize>
<connectionTimeout>600</connectionTimeout>
<userTimeout>12</userTimeout>
<shrinkBy>10</shrinkBy>
<logFile>d:\log\poolman.log</logFile>
<debugging>true</debugging>
<!-- Query Cache Attributes-->
<cacheEnabled>false</cacheEnabled>
<cacheSize>20</cacheSize>
<cacheRefreshInterval>120</cacheRefreshInterval>
</datasource>
<!-- DISABLED FOR PRODUCTION
<admin-agent>
<class>com.sun.jdmk.comm.HtmlAdaptorServer</class>
<name>Adaptor:name=html</name>
<maxClients>10</maxClients>
<port>8082</port>
</admin-agent>
-->
</poolman>
- poolman数据库连接池
- poolman连接池配置
- poolman 学习笔记
- 数据库连接池
- 数据库连接池
- 数据库连接池
- 数据库连接池
- 数据库连接池
- 数据库连接池
- 数据库连接池
- 数据库连接池
- 数据库连接池
- 数据库连接池
- 数据库连接池
- 数据库连接池
- 数据库连接池
- 数据库连接池
- 数据库连接池
- 8月前台实践
- 再谈c++ thuck
- 信号量学习笔记
- 运行在单独进程中的ContentProvider
- Android 开发者必备的十个工具(下)
- poolman数据库连接池
- jquery常用的1000个插件
- Nutch-0.9源代码:Crawl类整体分析
- MR框架结构
- 在Corona SDK中使用子目录的方法
- Binder学习三 MediaServer -- 实例
- Item:明智而审慎的使用pirvate继承
- hdu 3938 Portal
- 问题1:Project has no default.properties file! Edit the project properties to set one.