博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
proxool详细配置
阅读量:6930 次
发布时间:2019-06-27

本文共 6466 字,大约阅读时间需要 21 分钟。

hot3.png

 

        proxool一个数据库连接池框架,提供了对你选择的其它类型的驱动程序的连接池封装。可以非常简单的移植到现存的代码中。完全可配置。快速,成熟,健壮。可以透明地为你现存的JDBC驱动程序增加连接池功能。到目前为止最新版本是proxool 0.9.1,可从官网下载最新版本

 

一、配置proxool.xml文件

Xml代码

1.
2.
6.
7.
8.
dbname
9.
jdbc:oracle:thin:@127.0.0.1:1521:testdb
10.
oracle.jdbc.driver.OracleDriver
11.
12.
13.
14.
15.
16.
100
17.
18.
10
19.
20.
90000
21.
22.
10
23.
24.
5
25.
26.
true
27.
28.
select sysdate from dual
29.
30.

 

二、配置web.xml

1.
2.
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.

ServletConfigurator:加载并初始化proxool.xml文件,因为它是连接数据库的.其他很多模块都用到数据,所以必须首先加载它

load-on-startup:数值越小,就会先被加载初始化
Admin:监控数据库连接池的连接情况

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

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

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

1.
5.
6.
7.
xml-test-ns
8.
jdbc:hsqldb:db/test
9.
org.hsqldb.jdbcDriver
10.
11.
12.
13.
14.
40000
15.
select CURRENT_DATE
16.
10
17.
3
18.
18000000
19.
5
20.
40000
21.
50000
22.
60000
23.
true
24.
true
25.
Fatal error
26.
2
27.
28.
29.
30.
xml-test-ns-2
31.
jdbc:hsqldb:db/test
32.
org.hsqldb.jdbcDriver
33.
34.
35.
36.
37.
40000
38.
select CURRENT_DATE
39.
10
40.
3
41.
18000000
42.
5
43.
40000
44.
50000
45.
60000
46.
true
47.
true
48.
Fatal error
49.
2
50.
51.
52.

属性列表说明:

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: proxool自动侦察各个连接状态的时间间隔(毫秒),侦察到空闲的连接就马上回收,超时的销毁 默认30秒)

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

house-keeping-test-sql:  如果发现了空闲的数据库连接.house keeper 将会用这个语句来测试.这个语句最好非常快的被执行.如果没有定义,测试过程将会被忽略。一般mysql可用select SYSDATE ,Oracle可用 select sysdate from dual 或者 select 1 from dual

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: 这个参数帮助我们确定连接池的状态,如果在这个时间阀值内(单位为毫秒)拒绝了一个连接,就认为是过载了。默认值是60。

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

recently-started-threshold:  略

simultaneous-build-throttle:  是指在任一时刻,可以(同时)建立的最大连接数,也就是说,就是已经请求的、但还没可用的新连接数量。因为连接可以用多线程建立,从决定要建立连接到连接 可用是需要一定时间的,所以我们需要一些方式来避免大量的线程想同时建立连接。(我们本应该找一个更聪明的方式来解决这个问题,总有一天我们会找到的)默 认值是10

当我使用140个用户,进行压力测试时,发现偶尔,会有多于10个要求同时建立连接的请求,当请求数量超过限定的数值时,会出现连接失败的情况。
因此结论就是,当数据库并发连接可能会比较高的应用,这个值应该适当的设大一点。
如果并发请求很高,可能出现的bug为

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 值

转载于:https://my.oschina.net/u/2300159/blog/734092

你可能感兴趣的文章
tomcat基于域名虚拟主机
查看>>
spring 实现 接口 加密。
查看>>
commons-lang3:ClassPathUtils
查看>>
Nginx配置文件详细说明
查看>>
python核心编程-第十章-个人笔记
查看>>
Debain update apache error AH00111: Config variable ${APACHE_RUN_DIR} is not defined
查看>>
使用SIP对C库进行Python封装
查看>>
Linux screen命令详解
查看>>
Java中的封装
查看>>
高校信息化现状
查看>>
GlusterFS-动态卷快速应用
查看>>
函数调用规范__cdecl和__stdcall的区别
查看>>
linux中bin与sbin目录的作用及区别介绍
查看>>
why ubuntu use sudo
查看>>
ie6表格边框不显示问题
查看>>
java --汉字数字母排序
查看>>
zookeeper在win系统进行安装
查看>>
eps8266使用详解
查看>>
求Sn= a+aa+aaa+aaaa+aaaaa的五项之和,求中a是一个数字
查看>>
砺剑户外提出:让户外运动和装备用品平民化
查看>>