SECTION 01 为何需要 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 的项目来说, 是一套非常完整的解决方案.
下载区, 目前版本 0.7.2
http://sourceforge.net/projects/proxool/
SECTION 02 设置 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>
SECTION 03 通过 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");
%>
SECTION 04 检视 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)
|
SECTION 05 使用 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");
%>
|
相关推荐
总结,使用Proxool配置MySQL数据库连接池,不仅可以解决8小时连接超时问题,还可以提升应用程序的性能和稳定性。通过详细配置Proxool,我们可以灵活地调整连接池参数以适应不同应用场景的需求,并通过集成到Tomcat,...
Proxool是其中一个轻量级、开源的数据库连接池实现,它提供了灵活的配置和监控功能。 Proxool的工作原理: 1. 当应用程序需要数据库连接时,不再直接创建新的连接,而是从连接池中获取已经建立好的连接。 2. 如果...
使用Proxool时,开发者需要配置一个XML配置文件,定义连接池的参数,如最大连接数、最小连接数、连接空闲超时时间等。例如: ```xml <proxool> <driver-url>jdbc:mysql://localhost:3306/mydb <driver-class>...
Proxool是Apache软件基金会开发的一个开源数据库连接池实现,它提供了一种灵活且可配置的方式来管理数据库连接资源。 首先,让我们深入理解什么是Java连接池。在Java编程中,JDBC(Java Database Connectivity)...
项目实用的proxool连接池配置文件,每个标签都有注释,可以直接拿来使用
Proxool是SSH框架中常用的数据库连接池之一,以其轻量级、灵活配置和优秀的性能表现而受到青睐。 数据库连接池的基本原理是预先在内存中创建一定数量的数据库连接,应用程序在需要时可以从池中获取连接,使用完毕后...
### Proxool连接池配置详解 #### 一、概述 Proxool是一个开源的轻量级Java数据库连接池实现,其主要目标是替代常见的数据库连接池解决方案,如C3P0或DBCP,并且提供了更加灵活和易于配置的特性。在实际应用中,...
本篇文章将深入探讨Proxool数据库连接池的配置及其重要性。 首先,理解Proxool的基本概念是必要的。Proxool是Proxy + Pool的组合,它通过代理(Proxy)机制来管理数据库连接,使得应用程序可以透明地使用连接池。...
在上述配置中,我们通过`hibernate.proxool.properties`指定了Proxool的配置文件路径,`hibernate.proxool.pool_alias`设置了连接池的别名,这个别名需要与Proxool配置文件中的alias一致。 接下来,我们需要创建...
-- 连接池的别名 --> <alias>DBPool</alias> - <!-- proxool只能管理由自己产生的连接 --> <driver-url>jdbc:sqlserver://localhost:1433;dataBaseName=books</driver-url> - <!-- JDBC驱动程序 --> ...
下面我们将深入探讨基于SSH的Proxool连接池配置。 首先,配置环境:MyEclipse5.5,Windows 2003操作系统,Oracle和MySQL数据库。在这样的环境中,Proxool连接池可以帮助我们更高效地管理数据库连接,提高应用程序的...
这里,`pool_alias`定义了连接池的别名,`hibernate.proxool.xml`指定了Proxool配置文件的位置,`connection.provider_class`则指明使用Proxool作为连接提供者。 **(3)Proxool配置文件** 创建`ProxoolConf.xml`...
Proxool是一个开源的、轻量级的Java数据库连接池实现,它提供了一种高效、灵活的方式来管理数据库连接。在某些场景下,为了保护敏感信息,如数据库的用户名和密码,我们需要对这些数据进行加密处理。"proxool连接池...
Proxool与其他连接池如C3P0、DBCP等相比,具有配置灵活、监控能力强的特点。在Java应用中,Proxool能够与JDBC无缝集成,为应用程序提供高效的数据访问服务。 **Proxool的基本工作原理:** Proxool维护一个连接池,...
- **init-param**: 设置proxool配置文件的位置。 - **load-on-startup**: 设置此servlet在服务器启动时的加载优先级,数字越小优先级越高。 此外,还可以配置一个用于查看数据库连接信息的Servlet,即`AdminServlet...
总的来说,Proxool连接池提供了一种有效管理数据库连接的方法,通过合理的配置和使用,能显著提升应用程序的性能和稳定性。不过,随着技术的发展,可能需要考虑采用更现代、更活跃维护的连接池解决方案。
标题与描述均聚焦于“Proxool连接池配置”,这一主题是Java开发中数据库连接管理的重要环节。Proxool作为一款轻量级的开源数据库连接池实现,它提供了高效的数据库连接管理和复用机制,旨在减少应用程序创建和销毁...
3. 初始化连接池:在应用启动时加载配置,并初始化Proxool连接池。 4. 获取和释放连接:在需要访问数据库时,从连接池中获取连接;完成操作后,记得释放回连接池,而不是直接关闭。 5. 监控和诊断:定期检查Proxool...
Proxool是Apache软件基金会提供的一款开源的数据库连接池实现,它的主要功能是管理和复用数据库连接,避免了频繁创建和关闭数据库连接所导致的性能开销。在Java环境下,Proxool.jar是使用Proxool数据库连接池服务的...
博文链接:https://log-cd.iteye.com/blog/199482