基于ssh的proxool连接池配置
转自 http://wt8414.javaeye.com/blog/242628 收藏参考
基于ssh的proxool连接池配置
环境:MyEclipse6.0,win xp,oracle,mysql
配置文件
1:applicationContext.xml
Xml代码
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <context-param> <param-name>contextConfigLocation</param-name> <param-value> /WEB-INF/classes/applicationContext.xml </param-value> </context-param> <servlet> <servlet-name>proxoolServletConfigurator</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> <!-- 由于proxool要先加载,所以启动优先级要比spring高,否则在spring加载时会报错 --> <load-on-startup>1</load-on-startup> </servlet> <servlet> <servlet-name>context</servlet-name> <servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class> <load-on-startup>2</load-on-startup> </servlet> <servlet> <!-- 数据库连接监控器 --> <servlet-name>proxoolAdmin</servlet-name> <servlet-class>org.logicalcobwebs.proxool.admin.servlet.AdminServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>proxoolAdmin</servlet-name> <url-pattern>/proxoolAdmin</url-pattern> </servlet-mapping> <servlet> <servlet-name>action</servlet-name> <servlet-class> org.apache.struts.action.ActionServlet </servlet-class> <init-param> <param-name>config</param-name> <param-value>/WEB-INF/struts-config.xml</param-value> </init-param> <init-param> <param-name>debug</param-name> <param-value>3</param-value> </init-param> <init-param> <param-name>detail</param-name> <param-value>3</param-value> </init-param> <load-on-startup>0</load-on-startup> </servlet> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
基本配置就这些,以前在根据网上所说的很多利用spring直接管理proxool的方法来实现,这种方法也可以,但有几点问题,1.mysql 连接的URL:jdbc:mysql://localhost:3306/mysql?useUnicode=true& characterEncoding=GBK中间的&符号,在xml中使用&来代替,但我在做测试时发现这样做不 行,spring在启动时会报没有这样的驱动,还有些根本就是错误的估计是在网上转来转去,没经过测试就发表的.
关于连接释放,在applicationContext.xml中绝对有必要增加 hibernate.connection.release_mode这一参数,而且比较的好的设置应该是after_statement,另一种是 after_transaction,而使用after_statement优于after_transaction原因是避免了在一个事务结束后连接就 释放,大家可以试一下先将这个参数去掉,运几次数据库操作,会发现产了生很多连接没有释放,大概大30秒至15秒之间可以释放有时会更长,然后在加上这个 参数测试.
基于ssh的proxool连接池配置
环境:MyEclipse6.0,win xp,oracle,mysql
配置文件
1:applicationContext.xml
Xml代码
![复制代码](http://walsh.javaeye.com/images/icon_copy.gif)
基本配置就这些,以前在根据网上所说的很多利用spring直接管理proxool的方法来实现,这种方法也可以,但有几点问题,1.mysql 连接的URL:jdbc:mysql://localhost:3306/mysql?useUnicode=true& characterEncoding=GBK中间的&符号,在xml中使用&来代替,但我在做测试时发现这样做不 行,spring在启动时会报没有这样的驱动,还有些根本就是错误的估计是在网上转来转去,没经过测试就发表的.
关于连接释放,在applicationContext.xml中绝对有必要增加 hibernate.connection.release_mode这一参数,而且比较的好的设置应该是after_statement,另一种是 after_transaction,而使用after_statement优于after_transaction原因是避免了在一个事务结束后连接就 释放,大家可以试一下先将这个参数去掉,运几次数据库操作,会发现产了生很多连接没有释放,大概大30秒至15秒之间可以释放有时会更长,然后在加上这个 参数测试.