2019独角兽企业重金招聘Python工程师标准>>>

在hibernate3.0中,已经不再支持dbcp了,hibernate的作者在hibernate.org中,
明确指出在实践中发现dbcp有BUG,在某些种情会产生很多空连接不能释放,
所以抛弃了对dbcp的支持。

1 =================== C3P0 配置 =============================

Xml代码   
<?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">
<hibernate-configuration><session-factory><!-- 配置事务实现方式 --> <property name="transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory                             </property><!-- 配置JDBC里batch的大小 --><property name="jdbc.batch_size">50</property><property name="cache.use_second_level_cache">false</property><!-- 配置线程安全的session --><property name="current_session_context_class">thread</property><!-- 显示SQL --><property name="show_sql">true</property><property name="format_sql">true</property><!-- 配置数据库方言 --><property name="dialect">org.hibernate.dialect.Oracle9Dialect</property><!-- 配置数据库连接 --><property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property><property name="connection.username">0804</property><property name="connection.password">0804</property><property name="connection.url">jdbc:oracle:thin:@192.168.0.200:1521:orcl</property><!-- 配置连接池 --><property name="c3p0.max_size">2</property><property name="c3p0.min_size">2</property><property name="c3p0.timeout">5000</property><property name="c3p0.max_statements">100</property><property name="c3p0.idle_test_period">3000</property><property name="c3p0.acquire_increment">2</property><property name="c3p0.validate">false</property><!-- 指定hibernate管理的映射文件 --><mapping resource="com/ket/ruan/so/entity/User.hbm.xml"/> <mapping resource="com/ket/ruan/so/entity/Product.hbm.xml"/> 。。。。。</session-factory>
</hibernate-configuration>

2 ============= 使用 proxool =============================

Xml代码   
<hibernate-configuration>
<session-factory><property name="show_sql">true</property><property name="dialect">org.hibernate.dialect.MySQLDialect</property><!-- 配置proxool属性 --><!--- 使用proxoolConf.xml中定义的别名 --><property name="proxool.pool_alias">pool1</property><!-- 指定使用的proxoolConf文件的位置(这里在SRC下)--><property name="proxool.xml">ProxoolConf.xml</property><property name="connection.provider_class">org.hibernate.connection.ProxoolConnectionProvider</property>....<!-- 指定hibernate管理的映射文件 --><mapping resource="com/ket/ruan/so/entity/User.hbm.xml"/> ....
</hibernate-configuration>

------------ProxoolConf.xml--------------------

xml 文件放在同级目录中
  需要 proxool-0.8.3.jar

Xml代码   
<?xml version="1.0" encoding="gb2312"?>
<something-else-entirely>
<proxool>
<alias>pool1</alias>
<driver-url>jdbc:mysql://tpdb:3306/tpdb
</driver-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<driver-properties>
<property name="user" value="username"/>
<property name="password" value="password"/>
<property name="schema"  value="tpdb"/>  <!-- ???-->
<!-- 自动重连 -->
<property name="autoReconnect" value="true"/>
</driver-properties>
<!-- proxool自动侦察各个连接状态的时间间隔(毫秒),
侦察到空闲的连接就马上回收,超时的销毁-->
<house-keeping-sleep-time>90000</house-keeping-sleep-time>
<!-- 指因未有空闲连接可以分配而在队列中等候的最大请求数,超过这个请求数的
用户连接就不会被接受(正式库10,测试库1)-->
<maximum-new-connections>10</maximum-new-connections>
<!-- 最少保持的空闲连接数(正式库10,测试库1)-->
<prototype-count>10</prototype-count>
<!-- 连接池允许的最大连接数(正式库700,测试库10)-->
<maximum-connection-count>700</maximum-connection-count>
<!-- 连接池开启的最小连接数(正式库350,测试库5)-->
<minimum-connection-count>350</minimum-connection-count>
<!-- 一个活动连接的最长时间15分钟,单位毫秒 -->
<maximum-active-time>900000</maximum-active-time>
<!-- 一个连接的最长活动时间4小时,单位毫秒 -->
<maximum-connection-lifetime>14400000</maximum-connection-lifetime>
<!-- 自动检查连接是否断掉开关 -->
<test-before-use>true</test-before-use>
<!-- 自动检查连接是否断的测试sql语句 -->
<house-keeping-test-sql>select sysdate() from dual</house-keeping-test-sql>
</proxool>
</something-else-entirely>

============ 数据库名可以这样指定 ==============

Xml代码   
<property name="connection.url">jdbc:sqlserver://localhost:1433;DatabaseName=supermarket
</property>

==============URL 还可以传参数===================

Xml代码   
<property name="connection.driver_class">org.gjt.mm.mysql.Driver</property>
<property name="connection.url">
jdbc:mysql://localhost:3306/struts?useUnicode=true&characterEncoding=GBK
</property>

目前,proxool用法,被大部分人认为是最优秀的。

===========  连接池监控 ===================
1.在web.xml中加上下面这段

Xml代码   
<servlet><servlet-name> proxool </servlet-name><servlet-class> org.logicalcobwebs.proxool.admin.servlet.AdminServlet     </servlet-class>
</servlet><servlet-mapping><servlet-name> proxool </servlet-name><url-pattern>/Admin/proxool/ </url-pattern></servlet-mapping>         

2.http://localhost:8080/testhibernate/Admin/proxool
就可以监控到连接池的状况了!

转载于:https://my.oschina.net/u/853145/blog/92334

Hibernate 连接池的三种配置方式相关推荐

  1. mybatis连接池的3种配置方式(POOLED,UNPOOLED,JNDI)

    mybatis连接池的3种配置方式 1,POOLED 采用传统的javax. sql. DataSource规范中的连接池.一旦数据库操作完成,mybaties会将此连接返回给连接池.mybatis有 ...

  2. Nhibernate 三种配置方式

    Nhibernate 三种配置方式 Posted on 2010-06-15 11:47 linFen 阅读(153) 评论(0) 编辑 收藏 1 App.config 的配置: <?xml v ...

  3. Spring Bean的三种配置方式

    目录 一.传统的XML配置方式 二.基于java注解的配置 三.基于类的Java Config 正文 Spring Bean有三种配置方式: 传统的XML配置方式 基于注解的配置 基于类的Java C ...

  4. MyEclipse网站服务器,MyEclipse中web服务器的三种配置方式

    初学Javaweb开发的人们都会遇到一个问题,就是服务器环境的搭建配置问题.下面介绍三种服务器的搭建方式. 直接修改server.xml文件 当你写了一个web应用程序(jsp/servlet),想通 ...

  5. java jndi tomcat_tomcat下jndi的三种配置方式

    Java命名和目录接口(the Java naming and directory interface,JNDI)是一组在Java应用中访问命名和目录服务的API.命名服务将名称和对象联系起来,使得读 ...

  6. tomcat下jndi的三种配置方式

    jndi(Java Naming and Directory Interface,Java命名和目录接口)是一组在Java应用中访问命名和目录服务的API.命名服务将名称和对象联系起来,使得我们可以用 ...

  7. 今日说“法”:FPGA的三种配置方式

    今日说"法":FPGA的三种配置方式 欢迎大侠来到FPGA技术江湖新栏目今日说"法",当然,在这里我们肯定不是去研究讨论法律法规知识,那我们讨论什么呢,在这里我 ...

  8. java c3p0 配置文件_【c3p0】 C3P0的三种配置方式以及基本配置项详解

    数据库连接池C3P0框架是个非常优异的开源jar,高性能的管理着数据源,这里只讨论程序本身负责数据源,不讨论容器管理. ---------------------------------------- ...

  9. c3p0三种配置方式(automaticTestTable)

    c3p0的配置方式分为三种,分别是http://my.oschina.net/lyzg/blog/55133 1.setters一个个地设置各个配置项 2.类路径下提供一个c3p0.propertie ...

最新文章

  1. libnet apply method
  2. 阿里云移动测试平台MQC移动测试沙龙第3期【北京站】
  3. bulk of the 用法_代词的用法详解:第三部分(不定代词)
  4. Activiti 流程实例、任务、执行对象及相关的表
  5. 灭屏取消过温减流功能
  6. 什么是VXLAN?VXLAN技术细节及应用案例
  7. nessus网页下载组件失败后处理方法
  8. python3基础知识复习 -- 进程,线程,多任务讲解
  9. java 全双工串口,Java实现全双工串口通信
  10. 谷歌驱动的下载和配置
  11. CDN是什么?一分钟带你了解CDN
  12. java el if_EL 表达式中条件运算符用于执行某种条件判断,它类似于 Java 语言中的 if-else 语句 。 ( )_学小易找答案...
  13. j90度度复数运算_虚数i的运算公式及实际意义
  14. sublime搭建基于GoSublime+gocode+MarGo的下载SublimeGO开发环境
  15. 揭秘腾讯研究院:三分之二精力打造免费产品
  16. oracle 与赛门铁克,赛门铁克Oracle启动Veritas数据中心认证
  17. 新浪码农因加班错失年会77万特等奖,当事人称:心态崩了,想离职
  18. 图形推理1000题pdf_【3分钟模考】图形推理06组
  19. VC2012下MFC程序各控件的常用方法
  20. ELISPOT酶联免疫斑点技术

热门文章

  1. 你们网购遇到过这种店铺吗?我吓得第二天就退货了
  2. 设计模式(四)简单工厂模式
  3. mongodb 安装部署说明
  4. C#Winform窗体中传值
  5. 快速增强路由器安全的十个小技巧
  6. [转]Android蓝牙开发浅谈
  7. ie 6 对注释标记的一个不稳定的错误
  8. 比特币Cash Hard Fork辩论在压力测试后重新召开
  9. python word转pdf
  10. 以太坊和EOS的DApps数量飙升但用户量滞后