proxool配置详解

合集下载

KSOA配置文件说明

KSOA配置文件说明

配置文件proxool.xml和shikong.properties参数说明1、:\tomcat\webapps\ROOT\WEB-INF\classes\proxool.xml参数介绍alias :后台调数据库连接配置时使用的别名,默认为defaultdriver-url:数据库连接字符串,服务器名+端口号,数据库名;tds根据数据库的不同版本使用不同的版本,其中SQL2000和2005都用8.0,sybase用5.0;lastupdatecount是否返回执行update语句的数量driver-class:数据库驱动user:数据库用户名password:数据库用户密码house-keeping-sleep-time:保留线程睡眠状态的最长时间,单位ms,超过时间线程自动关闭prototype-count:连接池中可用的连接数量,如果在下边设置了最小连接数量,此处的设置不生效。

maximum-connection-count:最大的数据库连接数minimum-connection-count:最小的数据库连接数2、:\tomcat\webapps\ROOT\WEB-INF\classes\shikong.propertiesdebug=控制表单打开时是否显示调试信息,为true时显示,为false时不显示Debug=falseDebug= truemailhome=d:/mailroot \\邮件服务器存放邮件的默认路径smtpserver=127.0.0.1 \\邮件服务器地址smtpport=25 \\邮件服务器端口号pagesize=15 \\每页显示的邮件数server.skmaster=skmaster \\系统控制台使用远程连接时连接的数据库服务器上的数据库server.dbserver=localhost \\系统控制台使用远程连接时连接的数据库服务器系统控制台WEB服务器数据库服务器当要进行远程连接时,系统控制台通过访问WEB服务器获得以上两个参数的值,访问数据库服务器的用户名和密码就是WEB服务器访问数据库服务器的用户名和密码(即系统控制台访问WEB服务器的用户名和密码)。

proxool链接池源码分析

proxool链接池源码分析

Proxool链接池框架下的事务控制初探文本从源码层面进行proxool链接池的主要操作及事务控制方面的跟踪分析,对于直接使用JDBC操作数据库而又要用proxool做链接池及事务操作的场景也许会有所帮助。

一、Proxool注册链接池ProxoolFacade是proxool框架对外的外观,类似某个设计模式,通过这里暴露proxool的各种操作及属性,这里会把外来个各种各样的Connection pool注册到ConnectionPoolManager,同时会注册listener及jmx等。

代码调用路径:ProxoolDriver -> ProxoolFacade.registerConnectionPool -> ConnectionPoolManager部分图释:图1图2二、向链接池获取Connection首次注册完成,以后调用通过动态代理进行调用,即实现connection的动态管理。

代码调用路径:ProxoolDriver.connect -> ConnectionPoolManager.getConnectionPool -> connectionPool.getConnection-> ProxyConnection = prototyper.buildConnection -> proxyConnection.open();-> ProxyFactory.getWrappedConnection(proxyConnection)-> WrappedConnection部分图释:图3图4图5三、框架中关闭“Connection”真正的操作代码调用路径:WrappedConnection -> close -> proxyConnection.close()-> openStatements.close -> connectionPool.removeProxy部分图释:通过断点调试可以看到,当我们CC系统里执行下面的代码时候图6其真正执行的是下面的操作,即关闭所有的statement,重置connection的代理,并修改状态“active”成“available”,并没有执行真正的java.sql.connection接口实现的close方法。

Proxool-0.9.0RC3连接池的使用

Proxool-0.9.0RC3连接池的使用

Proxool-0.9.0RC3连接池的使用创建proxool.xml,内容如下:1.xml version="1.0" encoding="UTF-8"?>2.<something-else-entirely>3.<proxool>4.<alias>liferayalias>5.<driver-url>jdbc:oracle:thin:@localhost:1521:orcldriver-url>6.<driver-class>oracle.jdbc.driver.OracleDriverdriver-class>7.<driver-properties>8.<property name="user" value="kook"/>9.<property name="password" value="kook"/>10.driver-properties>11.<maximum-connection-count>500maximum-connection-count>12.<minimum-connection-count>5minimum-connection-count>13.proxool>14.something-else-entirely>alias是连接的别名,需要在其他部分引用。

将proxool.xml拷贝到WEB-INF目录下,打开web.xml,新增如下部分1.<servlet>2.<servlet-name>proxoolServletConfiguratorservlet-name>3.<servlet-class>org.logicalcobwebs.proxool.configuration.ServletConfiguratorservlet-class>4.<init-param>5.<param-name>xmlFileparam-name>6.<param-value>WEB-INF/proxool.xmlparam-value>7.init-param>8.<load-on-startup>1load-on-startup>9.servlet>10.<servlet>11.<servlet-name>Adminservlet-name>12.<servlet-class>org.logicalcobwebs.proxool.admin.servlet.AdminServletservlet-class>13.servlet>14.<servlet>15.<servlet-mapping>16.<servlet-name>Adminservlet-name>17.<url-pattern>/proxoolurl-pattern>18.servlet-mapping>拷贝proxool-0.9.0RC3.jar和相关的数据库驱动到项目的lib目录中,配置完成Proxool的使用,只需要如下简单的代码即可java 代码2.Connection con = DriverManager.getConnection("proxool:liferay");//参数为proxool.xml中的alias元素的值这样即可获得一个连接。

proxool配置详解

proxool配置详解

proxool配置详解1.官网下载地址:/projects/proxool/files/2.说明一下配置环境JRE1.6, tomcat6.0,hibernate3.1, proxool-0.9.0RC3数据库为MSSQL2005 JDBC驱动为sqljdbc.jar3.配置步聚(1) 建立proxool.xml文件,路径为根目录src下即与hibernate.cfg.xml同目录,内容如下:<?xml version="1.0" encoding="UTF-8"?><!--the proxool configuration can be embedded within your own application's.Anything outside the "proxool" tag is ignored.--><something-else-entirely><proxool><alias>mssqlProxool</alias><driver-url>jdbc:sqlserver://XXX.XXX.XXX.XX:1433;databaseName=XXX</driver-url> <driver-class>com.microsoft.sqlserver.jdbc.SQLServerDriver</driver-class><driver-properties><property name="user" value="sa" /><property name="password" value="XXX" /></driver-properties><house-keeping-test-sql>select CURRENT_DATE</house-keeping-test-sql><house-keeping-sleep-time>90000</house-keeping-sleep-time><simultaneous-build-throttle>20</simultaneous-build-throttle><maximum-connection-count>100</maximum-connection-count><minimum-connection-count>10</minimum-connection-count><maximum-connection-lifetime>3600000</maximum-connection-lifetime></proxool></something-else-entirely>属性列表说明: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 将会用这个语句来测试.这个语句最好非常快的被执行.如果没有定义,测试过程将会被忽略。

proxool简单使用

proxool简单使用

proxool简单使用首先从 http://下载proxool-0.9.0RC2.zip解压后,把proxool-0.9.0RC2.jar放到工程的lib文件夹里面。

proxool是一个非常强大的连接池工具包,我觉得相比dbcp、c3p0这两个连接池包都要好用,我用loadrunner测试过,这三个连接池的从性能上排名如下:proxool>c3p0>dbcp,特别是dbcp在大并发的情况下总是出现各种异常。

详细关于dbcp的介绍请参考dbcp 用户指南,dbcp实现参考。

下面是实现proxool的几种方式:JDBC连接方法:首先建一个proxool的配置文件proxool.xmlproxool.xml 代码xml 代码1.xml version="1.0" encoding="UTF-8"?>2.3.4.5.<something-else-entirely>6.<proxool>7.8.<alias>DBPoolalias>9.10.<driver-url>jdbc:oracle:thin:@192.168.0.40:1521:drcomdriver-url>11.12.<driver-class>oracle.jdbc.driver.OracleDriverdriver-class>13.<driver-properties>14.<property name="user" value="drcom"/>15.<property name="password" value="drcom"/>16.driver-properties>17.18.<house-keeping-sleep-time>90000house-keeping-sleep-time>19.20.<maximum-new-connections>150maximum-new-connections>21.22.<prototype-count>3prototype-count>23.24.<maximum-connection-count>100maximum-connection-count>25.26.<minimum-connection-count>3minimum-connection-count>27.proxool>28.something-else-entirely>再在web.xml中进行配置,其中的ServletConfigurator是装载WEB-INF目录下的proxool.xml,并设置为T omcat启动时就加载。

proxool连接池原理

proxool连接池原理

proxool连接池原理
proxool连接池原理
Proxool是一个用来管理连接的代理,它将数据库连接弱化为JDBC API,并对连接池的使用、释放和管理进行了自动化,提供了性能监视,可以对数据库连接进行设置,可以使用预热,以及超时和故障检测等功能,使用者无需关心真正的数据库连接,可以将精力放在应用程序上。

Proxool的核心是一个叫做连接池的抽象容器,这个连接池可以为多个应用程序提供抽象的数据库连接,其中的每一个连接都由一个连接池来管理,每个应用程序可以从连接池取出一个永久性的连接,然后该连接可以被它们共享,并且应用程序可以在一个连接处理完一个任务之后再将该连接返回给连接池,而连接池中其他的应用程序也可以获得该连接。

Proxool的另一个重要功能是监视。

Proxool可以定期检查连接中的数据库活动,并将该活动的概要信息记录在日志中,以便对应用程序的性能进行监控。

除此之外,Proxool还可以记录连接池的使用情况,比如处理任务的速率等。

Proxool还提供了其他功能,比如可以在连接池中的连接数量达到一定水平时启动一个新的线程,或者在没有任何应用程序的情况下关闭连接池,以及在线程的运行中限制连接的数量等。

这些功能都有助于保证连接的健康,提高系统的可用性和性能。

- 1 -。

【个人总结系列-43】连接池Proxool学习总结-概述-配置-使用

【个人总结系列-43】连接池Proxool学习总结-概述-配置-使用

连接池Proxool学习总结-概述-配置-使用2.2 连接池Proxool学习总结2.2.1 连接池概述在需要频繁连接数据库的应用场景,连接的建立和销毁都是一个十分消耗资源的过程,因此这时可以通过使用连接池技术来提高效率。

连接池技术的核心思想是连接复用,通过建立一个数据库连接池以及一套连接使用、分配、管理策略,使得该连接池中的连接可以得到高效、安全的复用,避免了数据库连接频繁建立、关闭的开销。

Proxool是一种Java数据库连接池技术,是sourceforge下的一个开源项目,这个项目提供一个健壮、易用的连接池,最为关键的是这个连接池提供监控的功能,方便易用,便于发现连接泄漏的情况。

Proxool在工程中的使用流程为:1.在工程中导入并引用Proxool所需的jar包,proxool-0.9.1.jar、proxool-cglib.jar和commons-logging-1.1.3.jar2.在工程中添加文件配置Proxool的相关属性3.在工程中加载配置文件和驱动类4.在程序中从连接池里获取数据库连接,使用完成后释放连接(没有真正释放连接,而是放回容器中)2.2.2 Proxool连接池配置在Proxool连接池配置配置时,通常有如下一些常用的配置项,各项的含义解释如下:•alias:连接池的别名•driver-url:是数据库驱动的url,就是连接的url•driver-class:数据库驱动类,不同的数据库驱动类不同•driver-properties:驱动的属性,可以设置登陆数据库的用户名和密码•house-keeping-sleep-time:保留线程处于睡眠状态的最长时间(house keeper 的职责是检查各个连接的状态,并判断是否需要销毁或者创建)•maximum-active-time:如果house keeper检测到某个线程的活动时间大于这个数值,它将会杀掉这个线程,默认是5分钟•maximum-connection-count:最大的数据库连接数•minimum-connection-count:最小的数据库连接数•maximum-connection-lifetime:一个线程的最大寿命•prototype-count:连接池中可用的连接数量.如果当前的连接池中的连接少于这个数值.新的连接将被建立Proxool可以应用在Java Web环境下,也可以应用在Java Application中,网上大部分的例子讲解的都是运用在Web环境的情形。

poxool配置详细

poxool配置详细
</servlet>
<servlet>
<servlet-name>datasource_situation</servlet-name>
<servlet-class>
org.logicalcobwebs.proxool.admin.servlet.AdminServlet
目前市面上三个主流连接池从性能上排名如下:proxool>c3p0>dbcp,proxool还提供了可视化的连接池实时监控工具,所以既稳定又方便,配置也是非常容易的事情。下面我来讲讲我如何配置proxool连接池的。
1、下载相关资源。
从/站点上下载我们需要的资源,proxool-0.9.1是最新版本,解压后从lib下copy里面的2个JAR包 proxool-0.9.1.jar和
<maximum-new-connections>20</maximum-new-connections>
<prototype-count>5</prototype-count>
<maximum-connection-count>1000</maximum-connection-count>
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>datasource_situation</servlet-name>
<url-pattern>/datasource_situation</url-pattern>

proxool连接池的使用方法心得

proxool连接池的使用方法心得

Proxool连接池的使用方法、心得Proxool连接池的使用方法、心得[原创]公司里用的连接池都是自己写好了,封装起来的,做大型项目的时候,非常有用,但近段时间总是发现数据库连接过多,造成数据库连接压力过大,网站无法访问等严重后果,我们做的网站主要是用于移动公司的后台,经常会处理很大"群集任务",找了很长时间,发现是程序里有很多打开的连接没有关闭,放回到连接池里去,造成连接数不够的问题.后来上网上找了这个PROXOOL连接池插件,发现有自动KILL不活动的连接的功能.而且有VIEW方式查看连接情况,而且很多数据都是配置完成。

决定在项目中试验一下。

官方网址:/ 当前版本:proxool-0.9.0RC2 1、下载proxool 地址:2、解压缩proxool-0.9.0RC2.zip,拷贝lib/proxool-0.9.0RC2.jar到web-info/lib 拷贝jdbc驱动到web-info/lib3、在web-info下建立文件:proxool.xml&lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;something-else-entirely&gt;&lt;proxool&gt;&lt;alias&gt;Test&lt;/alias&gt;&lt;driver-url&gt;jdbc:oracle:thin:@192.168.10.160:1521:or c1&lt;/driver-url&gt;&lt;driver-class&gt;oracle.jdbc.driver.OracleDriver&lt;/drive r-class&gt;&lt;driver-properties&gt;&lt;property name="user" value="test"/&gt;&lt;property name="password"value="testpass"/&gt;&lt;/driver-properties&gt;&lt;maximum-connection-count&gt;10&lt;/maximum-conne ction-count&gt;&lt;house-keeping-test-sql&gt;selectCURRENT_DATE&lt;/house-keeping-test-sql&gt;&lt;/proxool&gt;&lt;/something-else-entirely&gt;4、在web.xml里新增如下:&lt;servlet&gt;&lt;servlet-name&gt;proxoolServletConfigurator&lt;/servlet-name&gt;&lt;servlet-class&gt;org.logicalcobwebs.proxool.configurati on.ServletConfigurator&lt;/servlet-class&gt;&lt;init-param&gt;&lt;param-name&gt;xmlFile&lt;/param-name&gt;&lt;param-value&gt;WEB-INF/config/proxool.xml&lt;/param -value&gt;&lt;/init-param&gt;&lt;load-on-startup&gt;1&lt;/load-on-startup&gt;&lt;/servlet&gt;&lt;!-- proxool提供的管理监控工具,可查看当前数据库连接情况。

c3p0,dbcp和proxool三种数据库连接池

c3p0,dbcp和proxool三种数据库连接池

现在常用的开源数据连接池主要有c3p0,dbcp和proxool三种,其中:¨ hibernate开发组推荐使用c3p0;¨ spring开发组推荐使用dbcp (dbcp连接池有weblogic连接池同样的问题,就是强行关闭连接或数据库重启后,无法reconnect ,告诉连接被重置,这个设置可以解决);¨ hibernate in action推荐使用c3p0和proxool;下面具体就每种连接池的调研结果进行说明:1. Apache-DBCPØ BasicDataSource 相关的参数说明dataSource: 要连接的datasource (通常我们不会定义在server.xml) defaultAutoCommit: 对于事务是否autoCommit, 默认值为truedefaultReadOnly: 对于数据库是否只能读取, 默认值为falsedriverClassName:连接数据库所用的JDBC Driver Class,maxActive: 可以从对象池中取出的对象最大个数,为0则表示没有限制,默认为8 maxIdle: 最大等待连接中的数量,设0 为没有限制(对象池中对象最大个数)minIdle:对象池中对象最小个数maxWait: 最大等待秒数, 单位为ms, 超过时间会丟出错误信息password: 登陆数据库所用的密码url: 连接数据库的URLusername: 登陆数据库所用的帐号validationQuery: 验证连接是否成功, SQL SELECT 指令至少要返回一行removeAbandoned: 是否自我中断, 默认是falseremoveAbandonedTimeout: 几秒后会自我中断, removeAbandoned 必须为true logAbandoned: 是否记录中断事件, 默认为falseminEvictableIdleTimeMillis:大于0 ,进行连接空闲时间判断,或为0,对空闲的连接不进行验证;默认30分钟timeBetweenEvictionRunsMillis:失效检查线程运行时间间隔,如果小于等于0,不会启动检查线程,默认-1testOnBorrow:取得对象时是否进行验证,检查对象是否有效,默认为false testOnReturn:返回对象时是否进行验证,检查对象是否有效,默认为false testWhileIdle:空闲时是否进行验证,检查对象是否有效,默认为falseØ在使用DBCP的时候,如果使用默认值,则数据库连接因为某种原因断掉后,再从连接池中取得连接又不进行验证,这时取得的连接实际上就会是无效的数据库连接。

OTO无线服务平台部署使用手册

OTO无线服务平台部署使用手册

属性名称 customer.id
值 102733
说明 卷商 ID,是由部署工程师根据上面的 MAC 地址 到港澳中心去申请的账号。
sample.smscat.number
18900010005
采样点号码 , 在拥有短信猫设备的基础上,使 用短信采样的号码。
customer.macaddress
00-24-8C-F8-C0-8D
One2one URL One2one 驱动类 One2one 用户名
One2one 密码
自动重连(MySQL)
位置 2:apache… /Webapps/ROOT/WEB-INF/dao/manager_proxool.cfg.xml 节点名称 driver-class driver-url user password 值 jdbc:jtds:sqlserver://172.17.230.11:1433/one2one net.sourceforge.jtds.jdbc.Driver oto oto 说明 One2one 连接 URL One2one 驱动类 One2one 用户名 One2one 密码
OTO 无线服务平台部署使用手册
研发部门:
产品中心
联 系 人:
明 秀 君
联系方式:
021-60871119


1. 服务器配置 ............................................................................... 3 1.1 系统及软件要求.................................................................... 3 1.2 环境搭建................................................................................ 3 2. POSTOFFICE ................................................................................ 5 3. MONITOR ................................................................................... 5 4. VIEWER ...................................................................................... 6 5. WEB 服务器 ............................................................................... 6 6. 发送服务 ................................................................................... 7 7. SAMPLING-POINT ...................................................................... 9 8. RECEIVER .................................................................................. 10 9. BILL ........................................................................................... 11 10. 后台服务启动顺序 .............................................................. 12 11. 自定义增加通道 .................................................................. 13

proxool开源的数据库连接池用包使用说明

proxool开源的数据库连接池用包使用说明

proxool是一个开源的数据库连接池。

官方网站是:/要使用这个连接池需要倒入两个Jar包,proxool-0.9.1.jar和proxool-cglib.jar。

可以从官网下载最新的包。

以前一直使用tomcat原配的那个连接池,好象叫作dbcp,效率怎么样没有深究,关键是配置比较方便,也不用额外下载jar包。

最近听说Proxool可能、也许、好象比较好一点。

就决定拿来研究一下。

我比较喜欢使用JSTL的SQL标签,因此本文介绍一下JSTL与Proxool结合使用的方法。

共分三个步骤,应用服务器选用tomcat,其它应用服务器应该也是一样的,不过我没有研究过。

一、proxool的配置,网上讲得比较多。

无外乎两种方式,一种使用properties文件,一种使用xml文件。

两处方式其实差不多。

我一般偏爱properties文件,觉得比较简洁。

因此本文就以属性文件为例,可仿照下面的方式来配制。

jdbc-0.proxool.alias=proxool-pooljdbc-0.proxool.driver-url=jdbc:oracle:thin:@127.0.0.1:1521:oradbjdbc-0.proxool.driver-class=oracle.jdbc.driver.OracleDriverer=hrjdbc-0.password=hrjdbc-0.proxool.house-keeping-sleep-time=400000jdbc-0.proxool.house-keeping-test-sql=select sysdate from dualjdbc-0.proxool.maximum-connection-count=10jdbc-0.proxool.minimum-connection-count=5jdbc-0.proxool.maximum-connection-lifetime=18000000jdbc-0.proxool.simultaneous-build-throttle=5jdbc-0.proxool.recently-started-threshold=40000jdbc-0.proxool.overload-without-refusal-lifetime=50000jdbc-0.proxool.maximum-active-time=60000jdbc-0.proxool.verbose=truejdbc-0.proxool.trace=truejdbc-0.proxool.fatal-sql-exception=Fatalerrorjdbc-0.proxool.prototype-count=2将文件保存为proxool.properties,目录:WEB-INF/classes,这个文件名下文会用的。

Java数据库连接池之proxool

Java数据库连接池之proxool

28. </proxool-config> web.xml 文件中的代码: 1. 2. <?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="/xml/ns/javaee" 4/6
Java 数据库连接池之 proxool
Proxool 是一种 Java 数据库连接池技术。sourceforge 下的一个开源项目,这个项目提供一个健壮、易用的连接池,最 为关键的是这个连接池提供监控的功能,方便易用,便于发现连接泄漏的情况。 目前是和 DBCP 以及 C3P0 一起,最为常见的三种 JDBC 连接池技术。 日前,Hibernate 官方宣布由于 Bug 太多不再支持 DBCP,而推荐使用 Proxool 或 C3P0。 下面通过一个 Demo 说明一下如何使用: 项目结构如下:
resultSet = preparedStatement.executeQuery(); ResultSetMetaData rsmd = resultSet.getMetaData(); int columnCount = rsmd.getColumnCount(); while(resultSet.next()){ Map<String, Object> map = new HashMap<String, Object>(); for(int i =1; i<=columnCount;i++){ String columnName = rsmd.getColumnName(i); Object obj = null; if(rsmd.getColumnTypeName(i).equals("DATE")){ obj = resultSet.getString(columnName); }else{ obj = resultSet.getObject(columnName); } map.put(columnName, obj); } list.add(map); } }catch(SQLException e){ e.printStackTrace(); }finally{ close(); return list;

Java中常用的数据库连接池

Java中常用的数据库连接池

Java中常用的数据库连接池定义数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。

对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标。

数据库连接池正是针对这个问题提出来的。

数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。

这项技术能明显提高对数据库操作的性能。

参考资料DBCP下载地址:/proper/commons-dbcp/download_dbcp.cgi相关属性说明: /proper/commons-dbcp/configuration.htmlc3p0下载地址:/projects/c3p0/相关属性说明: /projects/c3p0/Druid下载地址:/maven2/com/alibaba/druid/相关属性说明: https:///alibaba/druid/wikiProxool下载地址:/相关属性说明:https:///proxool/proxool2. 数据库连接池2.1 原理连接池基本的思想是在系统初始化的时候,将数据库连接作为对象存储在内存中,当用户需要访问数据库时,并非建立一个新的连接,而是从连接池中取出一个已建立的空闲连接对象。

使用完毕后,用户也并非将连接关闭,而是将连接放回连接池中,以供下一个请求访问使用。

而连接的建立、断开都由连接池自身来管理。

同时,还可以通过设置连接池的参数来控制连接池中的初始连接数、连接的上下限数以及每个连接的最大使用次数、最大空闲时间等等,也可以通过其自身的管理机制来监视数据库连接的数量、使用情况等。

2.2 常见数据库连接池及其特点在Java中开源的常用的数据库连接池有以下几种:1)DBCPDBCP是一个依赖Jakarta commons-pool对象池机制的数据库连接池.DBCP可以直接的在应用程序中使用,Tomcat的数据源使用的就是DBCP。

proxool使用说明

proxool使用说明

Proxool使用说明1.配置有如下几种配置方式:1.1当建立连接的时候传递一个java.util.Properties对象给数据库驱动。

Properties info = new Properties();info.setProperty("proxool.maximum-connection-count", "20");info.setProperty("proxool.house-keeping-test-sql", "select CURRENT_DA TE");info.setProperty("user", "sa");info.setProperty("password", "");String alias = "test";String driverClass = "org.hsqldb.jdbcDriver";String driverUrl = "jdbc:hsqldb:test";String url = "proxool." + alias + ":" + driverClass + ":" + driverUrl;connection = DriverManager.getConnection(url, info);1.2使用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:hsqldb:.</driver-url><driver-class>org.hsqldb.jdbcDriver</driver-class><driver-properties><property name="user" value="sa"/><property name="password" value=""/></driver-properties><maximum-connection-count>10</maximum-connection-count><house-keeping-test-sql>select CURRENT_DA TE</house-keeping-test-sql> </proxool></something-else-entirely>然后在你的启动代码中简单的调用xml configurator(JAXPConfigurator):JAXPConfigurator.configure("src/java-test/org/logicalcobwebs/proxool/configuration/test-no -ns.xml", false);//false意味着没有验证也可以使用一个servlet来装载配置文件:<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>建立连接非常简单("xml-test"是上面我们用的别名)connection = DriverManager.getConnection("proxool.xml-test");注意:需要include一个JAXP xml解析器,比如Crimson或Xerces。

Proxool数据库连接池解析

Proxool数据库连接池解析

Proxool数据库连接池解析Proxool数据库连接池解析一、简介proxool与c3p0及dbcp数据库具有大致相同的性能,但是在处理连接泄漏的等边界问题上,具有很强的处理能力。

它能够很好的管理连接,并且它还有一个监控平台,能够对连接进行一些简单的监控。

context.xml的配置情况:在tomcat6下使用放在META-INF文件夹下。

WEB-INF/web.xml<="" name="jdbc/tdjPool" p="">auth="Container"type="javax.sql.DataSource"factory="org.logicalcobwebs.proxool.ProxoolDataSource"proxool.alias="testDB"user="hyf"password="hyf"delegateProperties="foo=1,bar=true"proxool.jndi-name="mysqljndi"proxool.driver-url="jdbc:oracle:thin:@192.168.1.230:1521:sryx"proxool.driver-class="oracle.jdbc.OracleDriver"proxool.house-keeping-sleep-time="900000"proxool.maximum-active-time="5"proxool.prototype-count="3"proxool.statistics="1m,15m,1d"proxool.simultaneous-build-throttle="10"proxool.minimum-connection-count="5"proxool.maximum-connection-count="15"proxool.house-keeping-test-sql="select CURRENT_DATEfrom dual"proxool.test-before-use="true"/>。

JAVA_OPTS设置详解及Tomcat配置参数配置

JAVA_OPTS设置详解及Tomcat配置参数配置

JAVA_OPTS设置详解及Tomcat配置参数配置1、⽂件位置打开bin/catalina.bat⽂件⽰例:JAVA_OPTS="-Xms256m -Xmx512m -Xss256K -Djava.security.egd=file:/dev/./urandom -Dspring.profiles.active=test"1)给出了对内存的配置。

2)以及spring boot 使⽤spring.profiles.active来分区配置。

项⽬的部署,开发环境、测试环境、预发布环境、⽣产环境的环境配置是不同的;⽐如,数据库配置,在开发的时候,我们⼀般⽤测试数据库,⽽在⽣产环境的时候,我们是⽤正式的数据,这时候,我们可以利⽤profile在不同的环境下配置⽤不同的配置⽂件或者不同的配置.Spring boot允许你通过命名约定按照⼀定的格式(application-{profile}.properties)来定义多个配置⽂件,然后通过在application.properyies通过spring.profiles.active来具体激活⼀个或者多个配置⽂件,如果没有没有指定任何profile的配置⽂件的话,spring boot默认会启动application-default.properties。

2、JAVA_OPTS设置2.1、JAVA_OPTS ,顾名思义,是⽤来设置JVM相关运⾏参数的变量。

JVM:JAVA_OPTS="-server -Xms2048m -Xmx2048m -Xss512k"-server: ⼀定要作为第⼀个参数,在多个CPU时性能佳*。

-Xms:初始Heap⼤⼩,使⽤的最⼩内存,cpu性能⾼时此值应设的⼤⼀些。

-Xmx:java heap最⼤值,使⽤的最⼤内存。

上⾯两个值是分配JVM的最⼩和最⼤内存,取决于硬件物理内存的⼤⼩,建议均设为物理内存的⼀半。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

proxool详细配置proxool一个数据库连接池框架,提供了对你选择的其它类型的驱动程序的连接池封装。

可以非常简单的移植到现存的代码中。

完全可配置。

快速,成熟,健壮。

可以透明地为你现存的JDBC驱动程序增加连接池功能。

到目前为止最新版本是proxool 0.9.1,可从官网下载最新版本一、配置proxool.xml文件Xml代码<?xml version="1.0" encoding="UTF-8"?><!--the proxool configuration can be embedded within your ownapplication's. Anything outside the "proxool" tag is ignored.--><something-else-entirely><proxool><alias>dbname</alias> <!--数据源的别名--><driver-url>jdbc:oracle:thin:@127.0.0.1:1521:testdb</driver-url><!--url连接串--><driver-class>oracle.jdbc.driver.OracleDriver</driver-class> <!--驱动类--><driver-properties><property name="user" value="username" /> <!--用户名--><property name="password" value="password" /><!--密码--></driver-properties><!--最大连接数(默认5个),超过了这个连接数,再有请求时,就排在队列中等候,最大的等待请求数由maximum-new-connections决定--><maximum-connection-count>100</maximum-connection-count><!--最小连接数(默认2个)--><minimum-connection-count>10</minimum-connection-count><!--proxool自动侦察各个连接状态的时间间隔(毫秒),侦察到空闲的连接就马上回收,超时的销毁默认30秒--><house-keeping-sleep-time>90000</house-keeping-sleep-time><!--没有空闲连接可以分配而在队列中等候的最大请求数,超过这个请求数的用户连接就不会被接受--><maximum-new-connections>10</maximum-new-connections><!--最少保持的空闲连接数(默认2个)--><prototype-count>5</prototype-count><!--在使用之前测试--><test-before-use>true</test-before-use><!--用于保持连接的测试语句--><house-keeping-test-sql>select sysdate from dual</house-keeping-test-sql> </proxool></something-else-entirely><?xml version="1.0" encoding="UTF-8"?><!--the proxool configuration can be embedded within your ownapplication's. Anything outside the "proxool" tag is ignored.--><something-else-entirely><proxool><alias>dbname</alias> <!--数据源的别名--><driver-url>jdbc:oracle:thin:@127.0.0.1:1521:testdb</driver-url><!--url连接串--><driver-class>oracle.jdbc.driver.OracleDriver</driver-class> <!--驱动类--><driver-properties><property name="user" value="username" /> <!--用户名--><property name="password" value="password" /><!--密码--></driver-properties><!--最大连接数(默认5个),超过了这个连接数,再有请求时,就排在队列中等候,最大的等待请求数由maximum-new-connections决定--><maximum-connection-count>100</maximum-connection-count><!--最小连接数(默认2个)--><minimum-connection-count>10</minimum-connection-count><!--proxool自动侦察各个连接状态的时间间隔(毫秒),侦察到空闲的连接就马上回收,超时的销毁默认30秒--><house-keeping-sleep-time>90000</house-keeping-sleep-time><!--没有空闲连接可以分配而在队列中等候的最大请求数,超过这个请求数的用户连接就不会被接受--><maximum-new-connections>10</maximum-new-connections><!--最少保持的空闲连接数(默认2个)--><prototype-count>5</prototype-count><!--在使用之前测试--><test-before-use>true</test-before-use><!--用于保持连接的测试语句--><house-keeping-test-sql>select sysdate from dual</house-keeping-test-sql> </proxool></something-else-entirely>二、配置web.xmlXml代码<?xml version="1.0" encoding="UTF-8"?><web-app version="2.4" xmlns="/xml/ns/j2ee"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/xml/ns/j2ee/xml/ns/j2ee/web-app_2_4.xsd"><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><!-- 配置受保护域,只有Tomcat管理员才能察看连接池的信息--><security-constraint><web-resource-collection><web-resource-name>proxool</web-resource-name><url-pattern>/admin</url-pattern></web-resource-collection><auth-constraint><role-name>manager</role-name></auth-constraint></security-constraint><login-config><auth-method>BASIC</auth-method><realm-name>proxool manager Application</realm-name></login-config><security-role><description>The role that is required to log in to the Manager Application</description> <role-name>manager</role-name></security-role><error-page><error-code>401</error-code><location>/401.jsp</location></error-page></web-app><?xml version="1.0" encoding="UTF-8"?><web-app version="2.4" xmlns="/xml/ns/j2ee"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/xml/ns/j2ee/xml/ns/j2ee/web-app_2_4.xsd"><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><!-- 配置受保护域,只有Tomcat管理员才能察看连接池的信息--><security-constraint><web-resource-collection><web-resource-name>proxool</web-resource-name><url-pattern>/admin</url-pattern></web-resource-collection><auth-constraint><role-name>manager</role-name></auth-constraint></security-constraint><login-config><auth-method>BASIC</auth-method><realm-name>proxool manager Application</realm-name></login-config><security-role><description>The role that is required to log in to the Manager Application</description> <role-name>manager</role-name></security-role><error-page><error-code>401</error-code><location>/401.jsp</location></error-page></web-app>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页面。

相关文档
最新文档