proxool连接池配置

使用proxool连接池需要三个jar包:一个是proxool-0.9.1.jar和proxool-cglib.jar,还需要自己找一个 commons-logging.jar

推荐是使用proxool-0.9的jar不建议使用0.8的jar。原因是因为虽然0.8版本不需要commons包,但打开admin页面时是会出现字符错误提示:java.io.CharConversionException: Not an ISO 8859-1 character:

推荐使用以下两中方式

一、proxool.xml + web.xml


1、创建 proxool.xml(放在WEB-INF里面

<?xml version="1.0" encoding="UTF-8"?>
    <!--
        the proxool configuration can be embedded within your own
        application's. Anything outside the "proxool" tag is ignored.
    -->
<something-else-entirely>
    <proxool>
        <alias>dbname</alias> <!--数据源的别名-->
        <!--<driver-url>jdbc:oracle:thin:@127.0.0.1:1521:testdb</driver-url>--><!--url连接串-->
        <!--<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>--> <!--驱动类-->
      <driver-url>jdbc:mysql://localhost:3306/testdb?useUnicode=true&amp;characterEncoding=utf8</driver-url>
        <driver-class>com.mysql.jdbc.Driver</driver-class>
        <driver-properties>
            <property name="user" value="username" /> <!--用户名-->
            <property name="password" value="password" /><!--密码-->
        </driver-properties> 
        <!--最大连接数(默认5个),超过了这个连接数,再有请求时,就排在队列中等候,最大的等待请求数由maximum-new-connections决定 -->
        <maximum-connection-count>100</maximum-connection-count> 
        <!--最小连接数(默认2个)-->
        <minimum-connection-count>10</minimum-connection-count> 
        <!--proxool自动侦察各个连接状态的时间间隔(毫秒),侦察到空闲的连接就马上回收,超时的销毁 默认30秒-->
        <house-keeping-sleep-time>90000</house-keeping-sleep-time>
        <!--没有空闲连接可以分配而在队列中等候的最大请求数,超过这个请求数的用户连接就不会被接受-->
        <maximum-new-connections>10</maximum-new-connections> 
        <!--最少保持的空闲连接数(默认2个)-->
        <prototype-count>5</prototype-count> 
        <!--在使用之前测试-->
        <test-before-use>true</test-before-use>
        <!--用于保持连接的测试语句 -->
        <!--<house-keeping-test-sql>select sysdate from dual</house-keeping-test-sql>-->
        <house-keeping-test-sql>select sysdate()</house-keeping-test-sql>
        </proxool>
        </something-else-entirely>


2、在web.xml中加入以下内容

<servlet>
     <servlet-name>ServletConfigurator</servlet-name>
     <servlet-class>org.logicalcobwebs.proxool.configuration.ServletConfigurator</servlet-class>   
     <init-param>
	<!--ServletConfigurator:加载并初始化proxool.xml文件,因为它是连接数据库的.其他很多模块都用到数据,所以必须首先加载它-->
	<param-name>xmlFile</param-name>
	<param-value>WEB-INF/proxool.xml</param-value>   
     </init-param>    
     <load-on-startup>1</load-on-startup>
     <!--load-on-startup:数值越小,就会先被加载初始化-->
 </servlet>

<servlet>
    <!--Admin:监控数据库连接池的连接情况-->
    <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>  
    <!--到时候直接访问项目路径/admin,就能查看属性设置请款和快照snapshot。你不喜欢admin的话,可以改成其他的。网上有些代码是用proxool>
</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>
 <error-page>
     <error-code>401</error-code>
     <location>/401.jsp</location>
 </error-page>

注意:在401.jsp页面中必须加

<%
  response.setHeader("WWW-Authenticate", "Basic realm=\"Tomcat Manager Application\"");
%>

默认的tomcat6的webapps-->manager下的包中有401.jsp文件,并且该文件中有这句话。

这句话,否则在访问/admin察看连接池信息时,会直接跳转到401.jsp页面。我们是想让访问admin/的用户必须输入用户名和密码,且必须是manager角色,三次输入不正确才会跳到401.jsp页面


方式二:用Proxool.properties和web.xml


1、创建一个Proxool.properties,放在WEB-INF/classes下(即src下)

jdbc-0.proxool.alias=test
jdbc-0.proxool.driver-class=org.postgresql.Driver
jdbc-0.proxool.driver-url=jdbc:postgresql://localhost/portal
jdbc-0.user=postgres
jdbc-0.password=password
(其他属性自己加)
jdbc-0.proxool.maximum-connection-count=10
jdbc-0.proxool.prototype-count=4
jdbc-0.proxool.house-keeping-test-sql=SELECT CURRENT_DATE
jdbc-0.proxool.verbose=true
jdbc-0.proxool.statistics=10s,1m,1d
jdbc-0.proxool.statistics-log-level=DEBUG
jdbc-0.proxool.house-keeping-sleep-time=30000
jdbc-0.proxool.maximum-connection-lifetime=60000
jdbc-0.proxool.simultaneous-build-throttle=1
jdbc-0.proxool.overload-without-refusal-lifetime=10000
jdbc-0.proxool.maximum-active-time=50000
jdbc-0.proxool.trace=true
jdbc-0.proxool.fatal-sql-exception=ORA-1234
jdbc-0.proxool.prototype-count=2
2、在web.xml中,加入以下内容,和上面方法一中的方法相似

只需要把

<param-name>xmlFile</param-name>

<param-value>WEB-INF/classes/proxool.xml</param-value>  

改成:

<param-name>propertyFile</param-name>

<param-value>WEB-INF/Proxool.properties</param-value>


最后测试:


用这两句测试链接是否成功

Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");
Connection  conn = DriverManager.getConnection("proxool.你设置别名");


获取数据库链接或者可参考文章:http://www.cnblogs.com/lslk89/p/6900942.html





  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值