zoukankan      html  css  js  c++  java
  • Proxool连接池的简单配置

    官方网址:http://proxool.sourceforge.net/     当前版本:proxool-0.9.0RC2
    1、下载proxool 地址:http://proxool.sourceforge.net
    2、解压缩proxool-0.9.0RC2.zip,拷贝lib/proxool-0.9.0RC2.jar到web-info/lib       拷贝jdbc驱动到web-info/lib
    3、在web-info下建立文件:proxool.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <something-else-entirely>  
        <proxool>  
            <!--连接池的别名-->  
            <alias>DBPool</alias>  
            <!--proxool只能管理由自己产生的连接-->  
            <driver-url>jdbc:oracle:thin:@127.0.0.1:1521:ora</driver-url>  
            <!--JDBC驱动程序-->  
            <driver-class>oracle.jdbc.driver.OracleDriver</driver-class>  
            <driver-properties>  
                <property name="user" value="sys"/>  
                <property name="password" value="sys"/>  
            </driver-properties>  
            <!-- proxool自动侦察各个连接状态的时间间隔(毫秒),侦察到空闲的连接就马上回收,超时的销毁-->  
            <house-keeping-sleep-time>90000</house-keeping-sleep-time>  
            <!-- 指因未有空闲连接可以分配而在队列中等候的最大请求数,超过这个请求数的用户连接就不会被接受-->    
            <maximum-new-connections>150</maximum-new-connections>  
            <!-- 最少保持的空闲连接数-->    
            <prototype-count>3</prototype-count>  
            <!-- 允许最大连接数,超过了这个连接,再有请求时,就排在队列中等候,最大的等待请求数由maximum-new-connections决定-->    
            <maximum-connection-count>100</maximum-connection-count>  
            <!-- 最小连接数-->  
            <minimum-connection-count>3</minimum-connection-count>  
        </proxool>  
    </something-else-entirely> 

    4、在web.xml里新增如下:
    <!--加载proxool配置信息-->
    <servlet>
           <servlet-name>proxoolServletConfigurator</servlet-name>
         <servlet-class>org.logicalcobwebs.proxool.configuration.ServletConfigurator</servlet-class>
          <init-param>
            <param-name>xmlFile</param-name>
            <param-value>WEB-INF/config/proxool.xml</param-value>
          </init-param>
          <load-on-startup>1</load-on-startup>
        </servlet>
    <!-- proxool提供的管理监控工具,可查看当前数据库连接情况。如果运行不成功,请删除本行 -->
    <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>

    5、在调用数据库连接代码:
            Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");
            Connection conn = DriverManager.getConnection("proxool.Develop"); 
    6、利用proxool监控工具查看数据库运行状态。地址:./admin

    以上配置是采用的XML文件方式,也可以采用properties配置方式:

    proxool.alias=Test
    proxool.driver-class=oracle.jdbc.driver.OracleDriver
    proxool.driver-url=jdbc:oracle:thin:@192.168.10.160:1521:orcl
    proxool.user=test
    proxool.password=testpass
    proxool.maximum-connection-count=20
    proxool.prototype-count=4
    proxool.house-keeping-test-sql=select sysdate from DUAL
    proxool.verbose=true
    proxool.statistics=10s,1m,1d
    proxool.statistics-log-level=ERROR


    <servlet>
    <servlet-name>ServletConfigurator</servlet-name>
    <servlet-class>org.logicalcobwebs.proxool.configuration.ServletConfigurator</servlet-class>

    <init-param>
        <param-name>propertyFile</param-name>
        <param-value>WEB-INF/config/Proxool.properties</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
    </servlet>


    在调用数据库连接代码
        Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");
        Connection conn = DriverManager.getConnection("proxool.Test");


    还有一些配置属性:
    maximum-connection-lifetime    最大连接生命周期 默认值:4小时
    maximum-active-time:      最大活动时间    默认值:5分钟
    maximum-connection-count    最大连接数     默认值:15个
    minimum-connection-count    最小连接数     默认值:5个

    在用admin调用的时候,可以查看这个WEB应用所有的连接数的状态,虽然这个插件可以把不活动的连接自动放到连接池里,但是如果连接数过多,而不及时KILL的话,对网站的连接是有很大的影响的,建议还是手工KILL。

    在web-info下建立文件:proxool.xml
    文件内容如下:
    <?xml version="1.0" encoding="UTF-8"?>
    <something-else-entirely>  
        <proxool>  
            <!--连接池的别名-->  
            <alias>DBPool</alias>  
            <!--proxool只能管理由自己产生的连接-->  
            <driver-url>jdbc:oracle:thin:@127.0.0.1:1521:ora</driver-url>  
            <!--JDBC驱动程序-->  
            <driver-class>oracle.jdbc.driver.OracleDriver</driver-class>  
            <driver-properties>  
                <property name="user" value="sys"/>  
                <property name="password" value="sys"/>  
            </driver-properties>  
            <!-- proxool自动侦察各个连接状态的时间间隔(毫秒),侦察到空闲的连接就马上回收,超时的销毁-->  
            <house-keeping-sleep-time>90000</house-keeping-sleep-time>  
            <!-- 指因未有空闲连接可以分配而在队列中等候的最大请求数,超过这个请求数的用户连接就不会被接受-->    
            <maximum-new-connections>150</maximum-new-connections>  
            <!-- 最少保持的空闲连接数-->    
            <prototype-count>3</prototype-count>  
            <!-- 允许最大连接数,超过了这个连接,再有请求时,就排在队列中等候,最大的等待请求数由maximum-new-connections决定-->    
            <maximum-connection-count>100</maximum-connection-count>  
            <!-- 最小连接数-->  
            <minimum-connection-count>3</minimum-connection-count>  
        </proxool>  
    </something-else-entirely> 
    4、在web.xml文件内加入以下内容:

    <servlet>
    <servlet-name>proxoolServletConfigurator</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>
    <!-- proxool提供的管理监控工具,可查看当前数据库连接情况。如果运行不成功,请删除本行 -->
    <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>

    5、在调用数据库连接代码:
        Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");
        Connection conn = DriverManager.getConnection("proxool.Develop");

    6、利用proxool监控工具查看数据库运行状态。地址:./admin

    在Spring框架中使用Proxool数据源BEAN

    方法一、使用Proxool的数据源BEAN。在spring的BEAN配置文件中增加配置代码,如下:

    <bean id="dataSource" class="org.logicalcobwebs.proxool.ProxoolDataSource">
      <property name="driver">
       <value>oracle.jdbc.driver.OracleDriver</value>
      </property>
      <property name="driverUrl">
       <value>jdbc:oracle:thin:@127.0.0.1:1521:ORA</value>
      </property>
      <property name="user">
       <value>sys</value>
      </property>
      <property name="password">
       <value>sys</value>
      </property>
      <property name="alias">
       <value>DB</value>
      </property>
      <property name="prototypeCount">
       <value>1</value>
      </property>
      <property name="maximumConnectionCount">
       <value>10</value>
      </property>
      <property name="minimumConnectionCount">
       <value>1</value>
      </property>
      <property name="trace">
       <value>true</value>
      </property>
      <property name="verbose">
       <value>true</value>
      </property>
     </bean>

     以上参数与在proxool中配置的基本相同,这里不在做解释。

    方法二、结合Spring的org.springframework.jdbc.datasource.DriverManagerDataSource类来使用,配置如下:

    1、先在WEB-INF目录下建立proxool.xml文件。参考上面的proxool.xml及web.xml配置。

    2、在Spring的bean配置文件中配置以下代码:

    <bean id="dataSource1" class="org.springframework.jdbc.datasource.DriverManagerDataSource" singleton="true">  
            <property name="driverClassName" value="org.logicalcobwebs.proxool.ProxoolDriver"/>  
            <property name="url" value="proxool.DBPool"/><!--使用此种方式必须比SPRING框架先加载配置-->   
    </bean>

    <!--对proxool进行事务支持-->
    <bean id="transactionManager"    
            class="org.springframework.jdbc.datasource.DataSourceTransactionManager">  
            <property name="dataSource">  
                <ref local="dataSource1" />  
            </property>  
    </bean>

  • 相关阅读:
    发一个使用 GridView 对数据小类进行分别汇总的例子
    C#根据当前时间确定日期范围(本周、本月、本季度、本年度)
    软件开发人员的作战手册
    C#服务常用继成函数说明
    ServiceController控制windows服务
    不做沙和尚
    C#多线程(二) 如何操纵一个线程转
    C#多线程(一) 多线程的相关概念
    如何为windows服务添加安装程序(转)
    用C#开发Windows服务、自动安装注册(转)
  • 原文地址:https://www.cnblogs.com/interdrp/p/1542381.html
Copyright © 2011-2022 走看看