proxool数据源常规配置

阅读更多

配置proxool.xml文件 

 

Xml代码  

  1.  version="1.0" encoding="UTF-8"?>  
  2.       
  3.   
  4.       
  5.         dbname   
  6.         jdbc:oracle:thin:@127.0.0.1:1521:testdb  
  7.         oracle.jdbc.driver.OracleDriver   
  8.           
  9.                
  10.               
  11.             
  12.           
  13.         100    
  14.           
  15.         10    
  16.           
  17.         90000  
  18.           
  19.         10    
  20.           
  21.         5    
  22.           
  23.         true  
  24.           
  25.         select sysdate from dual  
  26.       
  27.    
 
 
  dbname 
  jdbc:oracle:thin:@127.0.0.1:1521:testdb
  oracle.jdbc.driver.OracleDriver 
  
    
   
   
  
  100 
  
  10 
  
  90000
  
  10 
  
  5 
  
  true
  
  select sysdate from dual
 
 

 

二、配置web.xml

Xml代码  

  1.  version="1.0" encoding="UTF-8"?>  
  2.  version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"  
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  4.     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee    
  5.     http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">  
  6.   
  7.   ServletConfigurator  
  8.     
  9.     org.logicalcobwebs.proxool.configuration.ServletConfigurator   
  10.     
  11.     
  12.     xmlFile  
  13.     WEB-INF/proxool.xml  
  14.     
  15.   1  
  16.   
  17.   
  18.   
  19.   Admin  
  20.     
  21.     org.logicalcobwebs.proxool.admin.servlet.AdminServlet   
  22.     
  23.   
  24.   
  25.   Admin  
  26.   /admin  
  27.   
  28.   
  29.   
  30.     
  31.       proxool    
  32.       /admin  
  33.     
  34.     
  35.      manager    
  36.        
  37.     
  38.    
  39.      BASIC    
  40.      proxool manager Application    
  41.     
  42.     
  43.     The role that is required to log in to the Manager Application    
  44.      manager    
  45.    
  46.     
  47.     401  
  48.     /401.jsp  
  49.     
  50.   
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
 http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
  ServletConfigurator
  
    org.logicalcobwebs.proxool.configuration.ServletConfigurator
  
  
    xmlFile
    WEB-INF/proxool.xml
  
  1
 
  Admin
  
    org.logicalcobwebs.proxool.admin.servlet.AdminServlet
  
  Admin
  /admin
  
      proxool 
      /admin
  
  
     manager 
     
  
 
     BASIC 
     proxool manager Application 
  
  
    The role that is required to log in to the Manager Application 
     manager 
 
  
    401
    /401.jsp
  

 

 

 

ServletConfigurator:加载并初始化proxool.xml文件,因为它是连接数据库的.其他很多模块都用到数据,所以必须首先加载它
load-on-startup:
数值越小,就会先被加载初始化
Admin:监控数据库连接池的连接情况

//获得数据库连接的语句

Connection conn=DriverManager.getConnection("proxool.dbname");

 

 

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

<%
  response.setHeader("WWW-Authenticate", "Basic realm=\"Tomcat Manager Application\"");
%>
这句话,否则在访问/admin察看连接池信息时,会直接跳转到401.jsp页面。我们是想让访问admin/的用户必须输入用户名和密码,且必须是manager角色,三次输入不正确才会跳到401.jsp页面,如图

 

输入正确用户名和密码后才能看到proxool池的信息

 

三、更详细的proxool.xml的配置属性说明:

Xml代码  

  1.    
  2.   
  3.  xmlns="http://sumthin.else.entirely" xmlns:proxool="The latest version is available at http://proxool.sourceforge.net/xml-namespace">  
  4.       
  5.         xml-test-ns  
  6.         jdbc:hsqldb:db/test  
  7.         org.hsqldb.jdbcDriver  
  8.           
  9.               
  10.               
  11.           
  12.         40000  
  13.         select CURRENT_DATE  
  14.         10  
  15.         3  
  16.         18000000   
  17.         5  
  18.         40000  
  19.         50000  
  20.         60000  
  21.         true  
  22.         true  
  23.         Fatal error  
  24.         2  
  25.       
  26.       
  27.           
  28.             xml-test-ns-2  
  29.             jdbc:hsqldb:db/test  
  30.             org.hsqldb.jdbcDriver  
  31.               
  32.                   
  33.                   
  34.               
  35.             40000  
  36.             select CURRENT_DATE  
  37.             10  
  38.             3  
  39.             18000000   
  40.             5  
  41.             40000  
  42.             50000  
  43.             60000  
  44.             true  
  45.             true  
  46.             Fatal error  
  47.             2  
  48.           
  49.       
  50.   
 
    
        xml-test-ns
        jdbc:hsqldb:db/test
        org.hsqldb.jdbcDriver
        
            
            
        
        40000
        select CURRENT_DATE
        10
        3
        18000000 
        5
        40000
        50000
        60000
        true
        true
        Fatal error
        2
    
    
        
            xml-test-ns-2
            jdbc:hsqldb:db/test
            org.hsqldb.jdbcDriver
            
                
                
            
            40000
            select CURRENT_DATE
            10
            3
            18000000 
            5
            40000
            50000
            60000
            true
            true
            Fatal error
            2
        
    

属性列表说明:

fatal-sql-exception:它是一个逗号分割的信息片段.当一个SQL异常发生时,他的异常信息将与这个信息片段进行比较.如果在片段中存在,那么这个异常将被认为是个致命错误(Fatal SQL Exception ).这种情况下,数据库连接将要被放弃.无论发生什么,这个异常将会被重掷以提供给消费者.用户最好自己配置一个不同的异常来抛出.

fatal-sql-exception-wrapper-class:正如上面所说,你最好配置一个不同的异常来重掷.利用这个属性,用户可以包装SQLException,使他变成另外一个异常.这个异常或者继承SQLException或者继承字RuntimeException.proxool自带了2个实现:'org.logicalcobwebs.proxool.FatalSQLException' 'org.logicalcobwebs.proxool.FatalRuntimeException' .后者更合适.

house-keeping-sleep-time: house keeper保留线程处于睡眠状态的最长时间,house keeper 的职责就是检查各个连接的状态,并判断是否需要销毁或者创建.

house-keeping-test-sql:  如果发现了空闲的数据库连接.house keeper 将会用这个语句来测试.这个语句最好非常快的被执行.如果没有定义,测试过程将会被忽略。

injectable-connection-interface:允许proxool实现被代理的connection对象的方法.

injectable-statement-interface:允许proxool实现被代理的Statement 对象方法.

injectable-prepared-statement-interface:允许proxool实现被代理的PreparedStatement 对象方法.

injectable-callable-statement-interface:允许proxool实现被代理的CallableStatement 对象方法.

jmx:

jmx-agent-id:

jndi-name:数据源的名称

maximum-active-time:如果housekeeper 检测到某个线程的活动时间大于这个数值.它将会杀掉这个线程.所以确认一下你的服务器的带宽.然后定一个合适的值.默认是5分钟.

maximum-connection-count:最大的数据库连接数.

maximum-connection-lifetime:一个线程的最大寿命.

minimum-connection-count:最小的数据库连接数

overload-without-refusal-lifetime:

prototype-count:连接池中可用的连接数量.如果当前的连接池中的连接少于这个数值.新的连接将被建立(假设没有超过最大可用数).例如.我们有3个活动连接2个可用连接,而我们的prototype-count4,那么数据库连接池将试图建立另外2个连接.这和 minimum-connection-count不同. minimum-connection-count把活动的连接也计算在内.prototype-count spare connections 的数量.

recently-started-threshold: 

simultaneous-build-throttle: 

statistics:  连接池使用状况统计。参数“10s,1m,1d”

statistics-log-level:  日志统计跟踪类型。 参数“ERROR” “INFO”

test-before-use:

test-after-use:

trace:如果为true,那么每个被执行的SQL语句将会在执行期被log记录(DEBUG LEVEL).你也可以注册一个ConnectionListener (参看ProxoolFacade)得到这些信息.

verbose:详细信息设置。 参数 bool

你可能感兴趣的:(proxool,数据源,常规配置)