- 浏览: 5193750 次
- 性别:
- 来自: 北京
-
文章分类
最新评论
-
silence19841230:
先拿走看看
SpringBoot2.0开发WebSocket应用完整示例 -
wallimn:
masuweng 写道发下源码下载地址吧!三个相关文件打了个包 ...
SpringBoot2.0开发WebSocket应用完整示例 -
masuweng:
发下源码下载地址吧!
SpringBoot2.0开发WebSocket应用完整示例 -
masuweng:
SpringBoot2.0开发WebSocket应用完整示例 -
wallimn:
水淼火 写道你好,我使用以后,图标不显示,应该怎么引用呢,谢谢 ...
前端框架iviewui使用示例之菜单+多Tab页布局
网上搜集整理。
编辑美化:wallimn
博客:http://blog.csdn.net/wallimn
时间:2008-12-20
一、为何需要 connection pooling
当我们进入了 Java 的开发世界, pool
也是一门学问, 如何让 connection 先建立好与 DB 的连结, 后来的人可以使用已经存在于 pool 的 connection,
减少连结的时间, 这么优秀的功能, 在许多 application server 都已经实现好了, 你只要简单地按照说明文件配置,
包括最大连结数量, 初始连结数量, 最大等待数量等等的参数, 当然, Tomcat 也有内建 commons-dbcp 相关的
connection pooling 机制, 请查阅 Tomcat JNDI Datasource 设定!!
而
proxool 是一个强大的 connection pooling 项目, 兼容于 jdk 1.3 以及 1.4. 也已经实现了 监控,
纪录等等的功能, 对于一个有限制 connection 数量, 及注重 performation 的项目来说, 是一套非常完整的解决方案.
下载区:http://sourceforge.net/projects/proxool/
二、设置 AdminServlet
首先, 你要把下载 proxool 的 lib 下面所有的 jar 文件, 放到 WEB-INF/lib 下面,
另外, 把你的 jdbc driver 也放到相同的 lib,
接著就是配置 /WEB-INF/web.xml
web.xml
- <? xml version = "1.0" encoding = "UTF-8" ?>
- <!DOCTYPE web-app
- PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
- "/WEB-INF/dtds/web-app_2_3.dtd">
- < web-app >
- < display-name > proxool </ display-name >
- < 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 >
- </ web-app >
三、通过 ProxoolDriver 取得 connection
建立一个 jsp or DAO Bean, 通过 org.logicalcobwebs.proxool.ProxoolDriver 建立 Connection
test.jsp
- <% @page import = "java.sql.*" %>
- <%
- Connection connection = null ;
- try {
- Class.forName( "org.logicalcobwebs.proxool.ProxoolDriver" );
- connection = DriverManager.getConnection(
- "proxool.test:org.gjt.mm.mysql.Driver:jdbc:mysql://localhost:3306/test" ,
- "root" ,
- "password"
- );
- } catch (Exception e) {
- out.println(e)
- }
- out.println( "OK" );
- %>
四、检视 pooling 现在状态
执行 http://localhost:8080/proxool-test/admin
( proxool-test 是你的应用名称 ) 如果没有任何 pool 状态的时候, 你只会看到 Pools 这几个字, 所以你先执行 http://localhost:8080/proxool-test/test.jsp
建立一个 connection, 就可以监控 connection pooling 的状态了.
Pools > test -> jdbc:mysql://www:3306/test
Defintition for test URL jdbc:mysql://localhost:3306/test
Driver org.gjt.mm.mysql.Driver
Connections 0 (min), 15 (max)
Prototyping off
Connection Lifetime 11:00:00
Maximum active time 07:05:00
House keeping sleep time 30s
House keeping test SQL off
Fatal SQL exceptions off
Statistics off
Snapshot at 21:12:53 Start date 01-??-2003 21:12:30
Connections 1 (active), 0 (available), 15 (max)
Served 1
Refused 0
Details # born last
start lap
(ms) thread
1 21:12:31 21:12:31 22432 Thread-15
less information
Proxool 0.7.2 (29-Apr-2003 00:33)
五、使用 properties 或者 xml 来设置 DB URL 及 Driver
可以采用 xml 配置文件, 在程序中使用 JAXPConfigurator.configure("proxool.xml", false); 配置文件设置如下
WEB-INF/proxool.xml
- <? xml version = "1.0" encoding = "ISO-8859-1" ?>
- <!-- the proxool configuration can be embedded within your own application's.
- Anything outside the "proxool" tag is ignored. -- >
- < something-else-entirely >
- < proxool >
- < alias > xml-test </ alias >
- < driver-url > jdbc:mysql://localhost:3306/test </ driver-url >
- < driver-class > org.gjt.mm.mysql.Driver </ driver-class >
- < driver-properties >
- < property name = "user" value = "root" />
- < property name = "password" value = "password" />
- </ driver-properties >
- < maximum-connection-count > 10 </ maximum-connection-count >
- < house-keeping-test-sql > select CURRENT_DATE </ house-keeping-test-sql >
- </ proxool >
- </ something-else-entirely >
也可以采用 properties, 在程序 PropertyConfigurator.configure("proxool.properties"); 文件设置
WEB-INF/proxool.properties
jdbc-0.proxool.alias=property-test
jdbc-0.proxool.driver-url=jdbc:mysql://localhost:3306/test
jdbc-0.proxool.driver-class=org.gjt.mm.mysql.Driver
jdbc-0.user=root
jdbc-0.password=password
jdbc-0.proxool.maximum-connection-count=10
jdbc-0.proxool.house-keeping-test-sql=select CURRENT_DATE
如果在 Web 使用, 在 web.xml 也可以设置 ServletConfigurator Servlet 来注册
- <? xml version = "1.0" encoding = "UTF-8" ?>
- <!DOCTYPE web-app
- PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
- "/WEB-INF/dtds/web-app_2_3.dtd">
- < web-app >
- < display-name > proxool </ display-name >
- < servlet >
- < servlet-name > ServletConfigurator </ 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 >
- < 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 >
- </ web-app >
在程序中, 只需要利用到别名就可以呼叫 connection pool 里面的 connection 来使用了
- <% @page import = "java.sql.*;" %>
- <%
- Connection connection = null ;
- try {
- Class.forName( "org.logicalcobwebs.proxool.ProxoolDriver" );
- connection = DriverManager.getConnection( "proxool.xml-test" );
- } catch (Exception e) {
- out.println(e);
- }
- out.println( "ok" );
- %>
六、
使用 connection.close() 关闭 connection
以上的范例都没有写 close, 希望大家在 connection 做完之后记得使用 close() 来关闭, 将 connection 还到
pool , 以免有 java.sql.SQLException:
org.logicalcobwebs.proxool.ProxoolException: ConnectionCount is 10.
Maximum connection count of 10 cannot be exceeded. 的现象发生.
Proxool - 组态设定
Proxool 提供许多方式可以设定相关的参数,这边先介绍三种,另外还可以直接在Web应用程式中进行设定的方法,这在下一个主题中再说明。
可以直接在Java程式中使用java.util.Properties设定,例如:
Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");
Properties info = new Properties();
info.setProperty("proxool.maximum-connection-count", "20");
info.setProperty("proxool.house-keeping-test-sql", "select CURRENT_DATE");
info.setProperty("user", "caterpillar");
info.setProperty("password", "123456");
Connection conn = DriverManager.getConnection("proxool.example:com.mysql.jdbc.Driver:jdbc:mysql://localhost:3306/GUESTBOOK", info);
当然这种方式是硬编码(hard code)在程式中,要改变参数时必须修改原始档案并重新编译,我们也可以使用XML档案或属性档来进行设定,使用XML档案的方式如下:
proxool.xml
- <? xml version = "1.0" encoding = "ISO-8859-1" ?>
- < something-else-entirely >
- < proxool >
- < alias > example </ alias >
- < driver-url > jdbc:mysql://localhost:3306/GUESTBOOK </ driver-url >
- < driver-class > com.mysql.jdbc.Driver </ driver-class >
- < driver-properties >
- < property name = "user" value = "caterpillar" />
- < property name = "password" value = "123456" />
- </ driver-properties >
-
<
maximum-connection-count
>
10
</
maximum-connection-count
>
< house-keeping-test-sql > select CURRENT_DATE </ house-keeping-test-sql > - </ proxool >
- </ something-else-entirely >
其中example是连接池的别名(Alias),我们使用org.logicalcobwebs.proxool.configuration.JAXPConfigurator来读取XML,以下的示范如何取得连线:
Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");
JAXPConfigurator.configure("proxool.xml", false); // false 表示不验证
XMLConnection conn = DriverManager.getConnection("proxool.example");
我们也可以使用属性档来配置Proxool,属性档的内容如下:
proxool.properties
jdbc-0.proxool.alias=example
jdbc-0.proxool.driver-url=jdbc:mysql://localhost:3306/GUESTBOOK
jdbc-0.proxool.driver-class=com.mysql.jdbc.Driver
jdbc-0.user=caterpillar
jdbc-0.password=123456
jdbc-0.proxool.maximum-connection-count=10
jdbc-0.proxool.house-keeping-test-sql=select CURRENT_DATE
我们使用org.logicalcobwebs.proxool.configuration.PropertyConfigurator来读取属性档,下面示范如何取得连线:
Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");
org.logicalcobwebs.proxool.configuration.PropertyConfigurator.configure("proxool.properties");
Connection conn = DriverManager.getConnection("proxool.example");
网上搜集整理。
代码编辑美化:wallimn
博客:http://blog.csdn.net/wallimn
时间:2008-12-20
发表评论
-
gradle编译错误:Could not find method compile() for arguments
2020-09-19 10:50 18739编译(IDEA+Gradle)一个别人的工程,出现一个 ... -
netty心跳检查之UDP篇
2019-09-15 08:50 2551部分UDP通信场景中,需要客户端定期发送心跳信息,以获取终 ... -
解决tomcat部署两个SpringBoot应用提示InstanceAlreadyExistsException
2019-06-30 11:49 3576两个SpringBoot应用部署在一个Tomcat中,单独 ... -
Eclipse配置MyBatis代码自动化功能
2019-06-29 10:16 18981.安装插件 Eclipse中,Help->Ecli ... -
vue.js中使用qrcode生成二维码
2019-05-20 00:00 7722一、安装包 npm install qrcodejs2 --s ... -
MySQL插入数据报错: Incorrect string value: '\xFD\xDE'
2019-03-31 23:19 1302我MySQL数据库用的uft-8字符集,插入数据一直很正常 ... -
vue自定义组件并双向绑定属性
2019-03-08 22:46 3293做了两个子组件,原理基本一样,一个是使用原生的select ... -
vue-router简单示例
2019-03-05 00:32 1204写个基本完整、稍有借鉴意义的示例,防止自己忘记。 &l ... -
“联通充值系统繁忙”轻松应对
2019-02-06 11:03 4035大过年的,联通充个值一直报“充值系统繁忙”。昨天晚上试了几 ... -
electron.js数据库应用---导航菜单(element-ui+mysql)
2019-02-05 21:33 2424一、环境搭建 略, ... -
electron.js数据库应用---入门(mysql+element-ui)
2019-01-27 23:19 7595我的机器:Windows10,64 ... -
SpringMVC 在controller层中注入成员变量request,是否线程安全
2018-12-17 21:17 2816@RestController public class ... -
VueJS 组件参数名命名与组件属性转化
2018-12-03 00:00 2126转自:https://www.cnblogs.com/meiy ... -
vue-resource拦截器实现token发送及检验自动化
2018-11-16 22:38 3108用了很长时间vue-resource,最近思考$http发 ... -
element-ui试用手记
2018-10-29 20:25 1788element-ui、iviewui都以vue.js为基础 ... -
iviewui中表格控件中render的使用示例
2018-07-07 16:46 9823示例了如何在表格中显示按钮,如何将代码转化为文字。 i ... -
Tomcat错误“Alias name tomcat does not identify a key entry”解决
2018-07-05 21:39 6734申请到了阿里云的证书后,下载、按照说明生成jks格式证书、 ... -
阿里云免费证书“fileauth.txt内容配置错误”解决
2018-07-05 20:43 5376最近研究微信小程序开发,上阿里云申请了个证书,使用文件验证 ... -
springboot2.0跨域配置
2018-07-04 22:11 5316springboot2.0跨域配置: 一、代码 ... -
微信小程序使用code换openid的方法(JAVA、SpringBoot)
2018-07-01 21:52 10479微信小程序序的代码中提示,使用code换取openid,但 ...
相关推荐
本文将详细介绍Proxool数据库连接池及其监控功能,通过一个实际的实例来展示其工作原理和使用方法。 Proxool是Apache软件基金会的一个开源项目,它提供了一个轻量级、高性能的数据库连接池解决方案。Proxool与其他...
要使用Proxool进行数据库连接池管理,首先需要将Proxool的核心库`proxool-0.8.3.jar`以及相应的数据库驱动程序包放置到项目的`WEB-INF/lib`目录下。例如,如果项目使用的是MySQL数据库,则需要将`mysql-connector-...
Proxool是Apache软件基金会提供的一款开源的数据库连接池实现,它的主要功能是管理和复用数据库连接,避免了频繁创建和关闭数据库连接所导致的性能开销。在Java环境下,Proxool.jar是使用Proxool数据库连接池服务的...
### 数据库连接池-连接的关闭内幕 在深入探讨数据库连接池中连接关闭的问题之前,我们首先需要了解数据库连接池的基本概念以及它在现代应用程序中的重要性。数据库连接池是一种管理多个数据库连接的方法,旨在提高...
总结起来,Proxool是SSH框架下常用的数据库连接池,它的配置方式多样,易于集成,且具有良好的监控和性能。掌握Proxool的使用和配置,对于优化Java应用的数据库访问性能,提升系统效率具有重要意义。提供的压缩包...
Java数据库连接池(JDBC Connection Pool)是一种管理数据库连接的技术,它通过预先创建并维护一定数量的数据库连接,为应用程序提供高效、便捷的数据库访问方式。Proxool是Apache Software Foundation开发的一个...
Proxool是一个开源的、轻量级的Java数据库连接池实现,它提供了一种高效、灵活的方式来管理数据库连接。在某些场景下,为了保护敏感信息,如数据库的用户名和密码,我们需要对这些数据进行加密处理。"proxool连接池...
Proxool是一个开源的数据库连接池解决方案,它允许开发者在Java应用程序中高效地管理数据库连接。数据库连接池是一种在多线程、高并发环境下优化数据库访问性能的技术,通过预先创建并维护一定数量的数据库连接,...
Proxool是其中一个轻量级、开源的数据库连接池实现,它提供了灵活的配置和监控功能。 Proxool的工作原理: 1. 当应用程序需要数据库连接时,不再直接创建新的连接,而是从连接池中获取已经建立好的连接。 2. 如果...
-- 连接池的别名 --> <alias>DBPool</alias> - <!-- proxool只能管理由自己产生的连接 --> <driver-url>jdbc:sqlserver://localhost:1433;dataBaseName=books</driver-url> - <!-- JDBC驱动程序 --> ...
Proxool,全称为Proxy Connection Pool,是一个灵活、轻量级的数据库连接池。它的优点在于可以动态监控连接池状态,如活动连接数、等待连接数等,并且可以根据实际需求动态调整池的大小。Proxool通过代理的方式管理...
总结,使用Proxool配置MySQL数据库连接池,不仅可以解决8小时连接超时问题,还可以提升应用程序的性能和稳定性。通过详细配置Proxool,我们可以灵活地调整连接池参数以适应不同应用场景的需求,并通过集成到Tomcat,...
总结来说,Java中的Proxool数据库连接池是一个强大的工具,通过优化数据库连接的管理,提高了应用程序的运行效率。正确配置和使用Proxool,可以有效地降低系统资源消耗,同时保证数据库操作的稳定性和响应速度。
proxool数据库连接池jar2013-4月份的
Proxool是Apache软件基金会的一个开源项目,提供了一个轻量级、高性能的数据库连接池解决方案。本篇文章将深入探讨Proxool数据库连接池的配置及其重要性。 首先,理解Proxool的基本概念是必要的。Proxool是Proxy + ...
"proxool-0.9.1.jar"是Proxool的主要库文件,包含了Proxool的核心功能,用于创建和管理数据库连接池。而"proxool-cglib.jar"则可能包含了CGLIB(Code Generation Library),这是一个强大的代码生成库,常用于Java的...
总的来说,"proxool-0.6.jar" 和 "proxool-cglib.jar" 是构建高效数据库连接池的关键组件,它们结合使用能够为Java应用程序提供一个强大且易用的数据库连接管理方案。在项目中引入Proxool,可以提高系统的响应速度,...
本文将深入解析几种常用的数据库连接池——Apache DBCP、C3P0、Proxool、BoneCP的详细配置参数,帮助开发者更好地理解和应用这些技术。 ### Apache DBCP **dataSource**: 配置数据源,通常在应用服务器的配置文件...
Proxool是一个开源的数据库连接池实现,它提供了一种灵活的方式来管理和控制数据库连接。在使用Proxool时,理解其配置参数是至关重要的,这些参数可以调整连接池的行为,以适应不同应用场景的需求。以下是一些主要的...
"Proxool-0.9.1-source"是Proxool的一个特定版本的源代码包,主要用于数据库连接池管理。Proxool是一个开源的、基于Java的数据库连接池实现,它提供了一种灵活且可扩展的方式来管理和优化数据库连接。在这个0.9.1...