- 浏览: 1070438 次
- 性别:
- 来自: 长沙
文章分类
- 全部博客 (639)
- 服务器配置篇 (58)
- hibernate篇 (14)
- spring篇 (33)
- struts篇 (28)
- JS篇 (46)
- 其他技术篇 (46)
- 数据库集群配置 (6)
- JAVA基础相关 (48)
- 分布式框架HadHoop的应用 (2)
- FLEX篇 (8)
- SQLSERVER技术 (32)
- Android学习 (13)
- amchart学习笔记 (1)
- openfire+smark搭建即时通讯 (9)
- Linux学习 (18)
- Oracle数据库 (15)
- 网站优化技术 (12)
- mysql数据库 (2)
- 项目学习总结 (18)
- 工具类(JAVA) (12)
- 工具类(JS) (2)
- 设计模式 (10)
- Lucene学习 (24)
- EJB3学习 (6)
- Sphinx搜索引擎 (3)
- 工作中用到的软件小工具 (5)
- .NET (49)
- JAVA 连接SQLSERVER2008步骤 (1)
- MongoDB (19)
- Android手机开发 (3)
- Maven (6)
- vue (9)
- Shiro (4)
- mybatis (3)
- netty框架 (1)
- SpringCloud (3)
- spring-cloud (7)
- Git (1)
- dubbo (2)
- springboot (13)
- rocketmq (1)
- git学习 (2)
- kafka服务器 (2)
- linux (10)
- WEB系统辅助项目 (1)
- jenkins (2)
- docker (4)
- influxdb (3)
- python (2)
- nginx (1)
最新评论
-
jiangfuofu555:
这样数据量大,效率怎么样?
sqlserver 实现分页的前台代码 以及后台的sqlserver语句 -
w156445045:
博主请问下,如何做到实时的刷新呢,
另外我后台是Java 谢谢 ...
web 版本的汽车仪表盘,非常好看。还有各种图形 -
jackyin5918:
<transportConnector name=&qu ...
ActiveMQ的activemq.xml详细配置讲解 -
握着橄榄枝的人:
你这个不是spring1.x的吧
spring1.x使用AOP实例 -
xiaophai:
全乱套了!
openfire+spark搭建完美的及时通讯
1.首先要得到proxool.jar包配置到你的工程中去。
2.配置你的web工程的web.xml文件
加入如下代码:
<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>2</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>
3.因为你在web.xml中配置加载了一个文件proxool.xml而且他的路径是在WEB-INF文件夹的下面,所以你就加入一个proxool.xml文件。文件内容如下:(我连接的是mysql数据库)
<?xml version="1.0" encoding="gbk"?>
<!-- the proxool configuration can be embedded within your own application's.
Anything outside the "proxool" tag is ignored. utf-8 ISO8859_1 -->
<something-else-entirely>
<proxool>
<alias>mydb</alias>
<!--该名字表示连接你的mydb数据库,下面代码红色的部分表示你的数据库的链接采用的字符编码集为utf-8,如果不配置,会造成字符的乱码-->
<driver-url>jdbc:mysql://localhost:3306/mydb?useUnicode=true&characterEncoding=utf-8</driver-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<driver-properties>
<property name="user" value="root"/>
<property name="password" value="root"/>
</driver-properties>
<maximum-connection-count>10</maximum-connection-count><!-- pool max number -->
<minimum-connection-count>5 </minimum-connection-count><!-- pool min number -->
<house-keeping-test-sql>select * from kindergarden_message</house-keeping-test-sql>
</proxool>
</something-else-entirely>
4.写连接数据库的代码
红色的部分为连接的主方法,其他的类是直接调用getPoolConnection这个方法。
public Connection getPoolConnection(String poolName)
{
DataSource ds = null;
Connection conn = null;
try {
if((conn=connectjdbcpool(poolName))==null){
System.out.println("数据库:"+poolName+"连接池无法获取,将关闭连接池!");
ProxoolFacade.removeConnectionPool(poolName);
System.out.println("数据库:"+poolName+"连接池即将建立...");
registerjdbcpool(poolName,"2","1");
System.out.println("数据库:"+poolName+"连接池建立!");
return connectregister(poolName);
}
} catch (Exception e) {
conn = getConnection();
}
return conn;
}
public Connection connectregister(String database) throws SQLException {
try {
return connectjdbcpool(database);
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
public Connection connectjdbcpool(String database) throws SQLException {
try {
//Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
return DriverManager.getConnection("proxool."+database);
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
public void registerjdbcpool(String database,String max,String min) {
try {
Class.forName("net.sourceforge.jtds.jdbc.Driver");
// Class.forName("com.mysql.jdbc.Driver");
Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");
properties_Base.setProperty("proxool.maximum-connection-count",max);
properties_Base.setProperty("proxool.minimum-connection-count", min);
properties_Base.setProperty("proxool.house-keeping-test-sql","SELECT top 1 id from kindergarden_mp3 ");
properties_Base.setProperty("user", "root");
properties_Base.setProperty("password", "root");
alias_Base = database;
driverClass_Base = "net.sourceforge.jtds.jdbc.Driver";
if(database.equals("mydb")){
driverUrl_Base = "jdbc:mysql://localhost:3306/"+database+";";
}
url_Base = "proxool." + alias_Base + ":" + driverClass_Base+ ":" + driverUrl_Base;
ProxoolFacade.registerConnectionPool(url_Base, properties_Base);
//return DriverManager.getConnection("proxool." + database);
} catch (Exception e) {
e.printStackTrace();
//return null;
}
}
5.proxool.xml文件的配置参数
Properties
下面是全部的属性列表:
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-count是4,那么数据库连接池将试图建立另外2个连接.这和 minimum-connection-count不同. minimum-connection-count把活动的连接也计算在内.prototype-count 是spare connections 的数量.
recently-started-threshold: 略
simultaneous-build-throttle: 略
statistics: 略
statistics-log-level: 略
test-before-use: 略
test-after-use: 略
trace: 如果为true,那么每个被执行的SQL语句将会在执行期被log记录(DEBUG LEVEL).你也可以注册一个ConnectionListener (参看ProxoolFacade)得到这些信息.
verbose: 略.
alias -〉数据库连接别名(程序中需要使用的名称)
driver-url -〉数据库驱动
driver-class -〉驱动程序类
driver-properties -〉联机数据库的用户和密码
minimum-connection-count -〉最小连接数量,建议设置0以上,保证第一次连接时间
maximum-connection-count -〉最大连接数量,如果超过最大连接数量则会抛出异常。连接数设置过多,服务器CPU和内存性能消耗很大。
simultaneous-build-throttle -〉同时最大连接数
prototype-count -〉一次产生连接的数量。
例:如果现在prototype-count设置为4个,但是现在已经有2个可以获得的连接,那么将会试图再创建2个连接。
但不能超过最大连接数。
maximum-active-time -〉连接最大时间活动 默认5分钟
maximum-connection-lifetime -〉连接最大生命时间 默认4小时
发表评论
-
java spring整合websocket教程
2018-03-30 14:30 687在javaweb项目开发中,我们经常可能需要websocke ... -
myeclipse 项目之间类进行引用
2014-11-19 15:54 965相关解决方案: eclipse的Web项目引用方式:(其实相 ... -
myeclipse8 每次启动内存都不够用的解决方案
2014-11-11 15:34 771最近可能由于公司项目大了,启动MyEclipse后经常提示 ... -
web项目集成log4j
2014-11-06 12:39 723Log4j基本使用方法 Log4j由三个重要的组件构成:日 ... -
使用 Jersey 和 Apache Tomcat 构建 RESTful Web 服务
2011-10-25 14:09 1528RESTful Web 服务简介 REST 在 2000 年 ... -
确定操作系统位计数(64位还是32位(X86))
2011-09-30 08:36 1248在此部分查找计算机 ... -
解决“无法删除 指定的文件名无效或太长”的问题
2011-09-16 14:07 2524解决“无法删除 指定的文件名无效或太长”的问题 ... -
网站应用通过139邮箱发送短信做到日志提醒功能
2011-09-15 09:36 1824首先在139注册一个邮箱,然后再邮箱设置中设置收到邮件通过短信 ... -
javamail发送邮件遇到的问题
2011-09-15 09:32 1206今天在用myeclipse写mial功能的时候,想调试一下程序 ... -
http协议的学习笔记
2011-03-01 10:56 1688HTTP请求行 格式:请求 ... -
Logback用户手册中文版.pdf
2011-02-14 16:57 2029Logback用户手册中文版.pdf -
JAVA编写的预警系统
2011-02-10 11:00 6340预警系统 <!-- start content --& ... -
Mediawiki 简明架设指南
2011-02-10 10:03 4654在 Debian/Linux 下 1. 安装程序 sh ... -
xsl 常用.jsp
2011-02-10 09:28 1624现在用的都是有规分律数据, 特殊的数据用XSL. DOM4J ... -
SVN 入门指南
2011-01-14 11:17 1003SVN 入门指南 -
FreeMaker中文手册
2011-01-14 11:15 1050FreeMaker中文手册 -
查看某个网段具体哪些IP没有被使用的命令
2010-11-29 09:01 2907通过运行cmd然后在DOS命令下运行下面程序,表示查看192. ... -
xsl 取数据的时候,当用for-each循环取得数据,怎么取第一行的数据
2010-11-08 11:35 2358需求,打印表格的时候,用for-each 来取得数据,当取到第 ... -
项目过程中,对于绝对路径和相对路径的总结
2010-09-11 09:20 12441.基本概念的理解 绝对路径:绝对路径就是你的主页上的文 ... -
mysql经典语句
2010-09-09 18:18 1255show databases;show tables from ...
相关推荐
### Proxool数据库连接池配置详解 #### 一、引言 Proxool是一个轻量级的Java数据库连接池管理工具,它可以帮助开发者更高效地管理和利用数据库连接资源。通过Proxool,可以显著减少数据库连接创建和关闭的开销,...
本文将详细介绍Proxool数据库连接池及其监控功能,通过一个实际的实例来展示其工作原理和使用方法。 Proxool是Apache软件基金会的一个开源项目,它提供了一个轻量级、高性能的数据库连接池解决方案。Proxool与其他...
本篇文章将深入探讨Proxool数据库连接池的配置及其重要性。 首先,理解Proxool的基本概念是必要的。Proxool是Proxy + Pool的组合,它通过代理(Proxy)机制来管理数据库连接,使得应用程序可以透明地使用连接池。...
在Java环境下,Proxool.jar是使用Proxool数据库连接池服务的必备库文件。 首先,我们需要理解数据库连接池的工作原理。数据库连接池在初始化时会创建一定数量的数据库连接并保存在池中,当应用程序需要访问数据库时...
在Java中,有多种数据库连接池实现,包括C3P0、DBCP和Proxool等。 **C3P0连接池配置参数详解** 1. `acquireIncrement`:当连接池中的连接耗尽时,一次同时尝试获取的连接数。默认值为3,意味着如果连接池为空,它...
`Proxool数据库连接池配置.doc`应详细介绍了如何配置和使用Proxool,包括关键的配置参数及其作用。最后,`FCKeditor在线编译器.doc`可能会涵盖FCKeditor的安装、使用方法,以及如何集成自定义函数的教程。 总的来说...
Proxool是一个开源的、轻量级的Java数据库连接池实现,它提供了一种高效、灵活的方式来管理数据库连接。在某些场景下,为了保护敏感信息,如数据库的用户名和密码,我们需要对这些数据进行加密处理。"proxool连接池...
总结,使用Proxool配置MySQL数据库连接池,不仅可以解决8小时连接超时问题,还可以提升应用程序的性能和稳定性。通过详细配置Proxool,我们可以灵活地调整连接池参数以适应不同应用场景的需求,并通过集成到Tomcat,...
### 数据库连接池-连接的关闭内幕 在深入探讨数据库连接池中连接关闭的问题之前,我们首先需要了解数据库连接池的基本概念以及它在现代应用程序中的重要性。数据库连接池是一种管理多个数据库连接的方法,旨在提高...
Proxool是SSH框架中常用的数据库连接池之一,以其轻量级、灵活配置和优秀的性能表现而受到青睐。 数据库连接池的基本原理是预先在内存中创建一定数量的数据库连接,应用程序在需要时可以从池中获取连接,使用完毕后...
Proxool是一个开源的轻量级Java数据库连接池实现,其主要目标是替代常见的数据库连接池解决方案,如C3P0或DBCP,并且提供了更加灵活和易于配置的特性。在实际应用中,合理配置Proxool可以显著提高系统的性能和稳定性...
本文将深入解析几种常用的数据库连接池——Apache DBCP、C3P0、Proxool、BoneCP的详细配置参数,帮助开发者更好地理解和应用这些技术。 ### Apache DBCP **dataSource**: 配置数据源,通常在应用服务器的配置文件...
Proxool是其中一个轻量级、开源的数据库连接池实现,它提供了灵活的配置和监控功能。 Proxool的工作原理: 1. 当应用程序需要数据库连接时,不再直接创建新的连接,而是从连接池中获取已经建立好的连接。 2. 如果...
**Hibernate Proxool连接池配置详解** 在Java应用程序中,数据库连接池是管理数据库连接的一种高效方式,它可以显著提升系统性能,减少数据库资源的浪费。本文将深入探讨Hibernate与Proxool连接池的配置,以及在...
-- 连接池的别名 --> <alias>DBPool</alias> - <!-- proxool只能管理由自己产生的连接 --> <driver-url>jdbc:sqlserver://localhost:1433;dataBaseName=books</driver-url> - <!-- JDBC驱动程序 --> ...
Proxool是一个轻量级的数据库连接池,它通过SSH(Spring、Struts、Hibernate)框架进行集成,可以有效地管理和优化数据库连接。下面我们将深入探讨基于SSH的Proxool连接池配置。 首先,配置环境:MyEclipse5.5,...
proxool-0.9.1(my).jar 包是我修改了proxool-0.9.1后的jar包,修改后可以完全支持spring配置,并添加了charSet配置属性,用于配置数据库链接的设置默认字符集,并且解决了proxool数据库连接池报如下错误的问题:...
Proxool是Apache Software Foundation开发的一个开源数据库连接池实现,它在Java环境中广泛使用,以提升应用的性能和资源利用率。 在传统的JDBC编程中,每次需要与数据库交互时,都需要创建一个新的连接,执行完SQL...
Proxool是Apache的一个开源项目,它提供了一个轻量级的数据库连接池实现。本篇将详细介绍如何在Hibernate中配置Proxool连接池。 首先,我们需要在Spring的配置文件`applicationContext.xml`中设置SessionFactory ...