| « | October 2025 | » | | 日 | 一 | 二 | 三 | 四 | 五 | 六 | | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | | |
| 公告 |
|
| Blog信息 |
|
blog名称:流浪狗 日志总数:44 评论数量:19 留言数量:-2 访问次数:192974 建立时间:2008年3月13日 |

| |
|
[Hibernate]Hibernate + Proxool 配置 软件技术
流浪狗 发表于 2008/4/16 17:56:42 |
|
弄了弄连接池,看网上的口碑说Proxool优点的比较多,所以就尝试着弄一下,下面就是劳动成果了
从官网http://proxool.sourceforge.net/download.html下载proxool.zip,今天是2008/04/16我下的版本是proxool-0.9.0RC3.zip下载后把proxool-0.9.0RC3.zip解压缩,里面有个proxool-0.9.0RC3.jar,将这个JAR包放到你的WEB-INF/lib下
修改hibernate.cfg.xml文件,绿字部分为与proxool配置所用
<?xml version='1.0' encoding='UTF-8'?><!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<!-- Generated by MyEclipse Hibernate Tools. --><hibernate-configuration>
<session-factory> <!-- 连接池提供者为proxool --> <property name="hibernate.connection.provider_class"> org.hibernate.connection.ProxoolConnectionProvider </property> <!-- 连接池的别名 --> <property name="hibernate.proxool.pool_alias">DBPool</property> <!-- 连接池配置文件 --> <property name="hibernate.proxool.xml">proxool.xml</property>
<!-- dialect,每个数据库都有其对应的Dialet以匹配其平台特性 --> <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- 是否将运行期生成的SQL输出到日志以供调试 --> <property name="hibernate.show_sql">true</property>
<!-- 是否使用数据库外连接 --> <property name="hibernate.use_outer_join">true</property>
<!-- 事务管理类型,这里我们使用JDBC Transaction --> <property name="hibernate.transaction.factory_class"> org.hibernate.transaction.JDBCTransactionFactory </property>
<!-- 映射文件配置,注意配置文件名必须包含其相对于根的全路径 --> <property name="myeclipse.connection.profile">MySQL</property> <mapping resource="org/cool/hibernate/demo01/Person.hbm.xml" />
</session-factory>
</hibernate-configuration>
在和hibernate.cfg.xml相同目录下创建proxool.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>DBPool</alias> <!-- 数据库URL --> <driver-url>jdbc:mysql://localhost:3306/mydatabase</driver-url> <!-- 数据库JDBC驱动 --> <driver-class>com.mysql.jdbc.Driver</driver-class> <!-- 数据库用户名,密码 --> <driver-properties> <property name="user" value="root" /> <property name="password" value="245437" /> </driver-properties> <!-- 侦察空闲连接,空闲回收,超时废弃 --> <house-keeping-sleep-time>90000</house-keeping-sleep-time> <!-- 等待空闲连接的请求数,超过则不接受 --> <!-- 已经废除 --> <!-- <maximum-new-connections>20</maximum-new-connections> --> <proxool.simultaneous-build-throttle>20</proxool.simultaneous-build-throttle> <!-- 最少保持的空闲连接数 --> <prototype-count>5</prototype-count> <!-- 最大连接数,超过请求则进入等待,最大的等待请求数由proxool.simultaneous-build-throttle决定--> <maximum-connection-count>100</maximum-connection-count> <minimum-connection-count>10</minimum-connection-count> </proxool></something-else-entirely>
这样就完成了,但是运行的时候会有错误,一般就是下面这样17:56:05,656 ERROR ShutdownHook:62 - Problem calling "get cause" on IllegalStateException.java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.logicalcobwebs.proxool.ShutdownHook.remove(ShutdownHook.java:40) at org.logicalcobwebs.proxool.ProxoolFacade.shutdown(ProxoolFacade.java:238) at org.logicalcobwebs.proxool.ProxoolFacade.shutdown(ProxoolFacade.java:220) at org.logicalcobwebs.proxool.ShutdownHook.run(ShutdownHook.java:99) at java.lang.Thread.run(Thread.java:619)Caused by: java.lang.IllegalStateException: Shutdown in progress at java.lang.ApplicationShutdownHooks.remove(ApplicationShutdownHooks.java:55) at java.lang.Runtime.removeShutdownHook(Runtime.java:220) ... 9 more
原因是因为在使用完连接的时候需要关闭
导入import org.logicalcobwebs.proxool.ProxoolFacade;包,在你关闭session.close()的后面加上ProxoolFacade.shutdown(0);
这样就OK了 |
|
|
回复:Hibernate + Proxool 配置 软件技术
feitianxia(游客)发表评论于2009/4/24 10:47:20 |
|
|
交流 软件技术
zrkkfc(游客)发表评论于2009/3/8 20:50:57 |
| 好文,收藏了!
document.write("");
ringsignaler
document.write("");
|
|
|
回复:Hibernate + Proxool 配置 软件技术
炽冰(游客)发表评论于2008/5/15 19:42:43 |
|
唉~今天碰见个怪问题,就是跟这个HIBERNATE、PROXOOL配置有关的——session关不掉。
从百度上搜相关问题,居然搜到你这里来了……
以下为blog主人的回复:
呵呵 |
|
» 1 »
|