自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Hibernate 連接池的配置方式

開(kāi)發(fā) 后端
本文首先講到了Hibernate 連接池有三種配置方式,然后著重講述了其中最為常用的兩種,即CSP0配置和使用prixool。

本文主要內(nèi)容:Hibernate 連接池有三種配置方式:dbcp , c3p0 , proxool。URL的多種指定方式連接池監(jiān)控,上班第二天,看到公司的Hibernate連接池配置文件在寫(xiě)法上,跟我以前的不一樣,就去研究了哈,得出的結(jié)果如下。

在Hibernate3.0中,已經(jīng)不再支持dbcp了,Hibernate的作者在Hibernate.org中,明確指出在實(shí)踐中發(fā)現(xiàn)dbcp有BUG,在某些種情會(huì)產(chǎn)生很多空連接不能釋放,所以拋棄了對(duì)dbcp的支持。

一、Hibernate 連接池:C3P0 配置

  1. <?xml version="1.0" encoding="UTF-8"?> 
  2. <!DOCTYPE Hibernate-configuration PUBLIC  
  3. "-//Hibernate/Hibernate Configuration DTD 3.0//EN"  
  4. "http://Hibernate.sourceforge.net/Hibernate-configuration-3.0.dtd"> 
  5. <Hibernate-configuration> 
  6. <session-factory> 
  7. <!-- 配置事務(wù)實(shí)現(xiàn)方式 --> 
  8. <property name="transaction.factory_class"> 
  9. org.Hibernate.transaction.JDBCTransactionFactory  
  10. </property> 
  11. <!-- 配置JDBC里batch的大小 --> 
  12. <property name="jdbc.batch_size">50</property> 
  13. <property name="cache.use_second_level_cache">false</property> 
  14. <!-- 配置線程安全的session --> 
  15. <property name="current_session_context_class">thread</property> 
  16. <!-- 顯示SQL --> 
  17. <property name="show_sql">true</property> 
  18. <property name="format_sql">true</property> 
  19. <!-- 配置數(shù)據(jù)庫(kù)方言 --> 
  20. <property name="dialect">org.Hibernate.dialect.Oracle9Dialect</property> 
  21. <!-- 配置數(shù)據(jù)庫(kù)連接 --> 
  22. <property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property> 
  23. <property name="connection.username">0804</property> 
  24. <property name="connection.password">0804</property> 
  25. <property name="connection.url">jdbc:oracle:thin:@192.168.0.200:1521:orcl</property> 
  26. <!-- 配置連接池 --> 
  27. <property name="c3p0.max_size">2</property> 
  28. <property name="c3p0.min_size">2</property> 
  29. <property name="c3p0.timeout">5000</property> 
  30. <property name="c3p0.max_statements">100</property> 
  31. <property name="c3p0.idle_test_period">3000</property> 
  32. <property name="c3p0.acquire_increment">2</property> 
  33. <property name="c3p0.validate">false</property> 
  34. <!-- 指定Hibernate管理的映射文件 --> 
  35. <mapping resource="com/ket/ruan/so/entity/User.hbm.xml"/> 
  36. <mapping resource="com/ket/ruan/so/entity/Product.hbm.xml"/> 
  37. </session-factory> 
  38. </Hibernate-configuration> 

二、Hibernate 連接池:使用proxool

  1. <Hibernate-configuration> 
  2. <session-factory> 
  3. <property name="show_sql">true</property> 
  4. <property name="dialect"> 
  5. org.Hibernate.dialect.MySQLDialect  
  6. </property> 
  7. <!-- 配置proxool屬性 --> 
  8. <!--- 使用proxoolConf.xml中定義的別名 --> 
  9. <property name="proxool.pool_alias">pool1</property> 
  10. <!-- 指定使用的proxoolConf文件的位置(這里在SRC下)--> 
  11. <property name="proxool.xml">ProxoolConf.xml</property> 
  12. <property name="connection.provider_class"> 
  13. org.Hibernate.connection.ProxoolConnectionProvider  
  14. </property> 
  15. ....  
  16. <!-- 指定Hibernate管理的映射文件 --> 
  17. <mapping resource="com/ket/ruan/so/entity/User.hbm.xml"/> 
  18. ....  
  19. </Hibernate-configuration> 

1.ProxoolConf.xml:xml文件放在同級(jí)目錄中,需要 proxool-0.8.3.jar。

  1. <?xml version="1.0" encoding="gb2312"?> 
  2. <something-else-entirely> 
  3. <proxool> 
  4. <alias>pool1</alias> 
  5. <driver-url> 
  6. jdbc:mysql://tpdb:3306/tpdb  
  7. </driver-url> 
  8. <driver-class>com.mysql.jdbc.Driver</driver-class> 
  9. <driver-properties> 
  10. <property name="user" value="username"/> 
  11. <property name="password" value="password"/> 
  12. <property name="schema" value="tpdb"/> <!-- ???--> 
  13. <!-- 自動(dòng)重連 --> 
  14. <property name="autoReconnect" value="true"/> 
  15. </driver-properties> 
  16. <!-- proxool自動(dòng)偵察各個(gè)連接狀態(tài)的時(shí)間間隔(毫秒),  
  17. 偵察到空閑的連接就馬上回收,超時(shí)的銷毀--> 
  18. <house-keeping-sleep-time>90000</house-keeping-sleep-time> 
  19. <!-- 指因未有空閑連接可以分配而在隊(duì)列中等候的***請(qǐng)求數(shù),超過(guò)這個(gè)請(qǐng)求數(shù)的  
  20. 用戶連接就不會(huì)被接受(正式庫(kù)10,測(cè)試庫(kù)1)--> 
  21. <maximum-new-connections>10</maximum-new-connections> 
  22. <!-- 最少保持的空閑連接數(shù)(正式庫(kù)10,測(cè)試庫(kù)1)--> 
  23. <prototype-count>10</prototype-count> 
  24. <!-- 連接池允許的***連接數(shù)(正式庫(kù)700,測(cè)試庫(kù)10)--> 
  25. <maximum-connection-count>700</maximum-connection-count> 
  26. <!-- 連接池開(kāi)啟的最小連接數(shù)(正式庫(kù)350,測(cè)試庫(kù)5)--> 
  27. <minimum-connection-count>350</minimum-connection-count> 
  28. <!-- 一個(gè)活動(dòng)連接的最長(zhǎng)時(shí)間15分鐘,單位毫秒 --> 
  29. <maximum-active-time>900000</maximum-active-time> 
  30. <!-- 一個(gè)連接的最長(zhǎng)活動(dòng)時(shí)間4小時(shí),單位毫秒 --> 
  31. <maximum-connection-lifetime>14400000</maximum-connection-lifetime> 
  32. <!-- 自動(dòng)檢查連接是否斷掉開(kāi)關(guān) --> 
  33. <test-before-use>true</test-before-use> 
  34. <!-- 自動(dòng)檢查連接是否斷的測(cè)試sql語(yǔ)句 --> 
  35. <house-keeping-test-sql>select sysdate() from dual</house-keeping-test-sql> 
  36. </proxool> 
  37. </something-else-entirely> 

2.數(shù)據(jù)庫(kù)名可以這樣指定

  1. <property name="connection.url"> 
  2. jdbc:sqlserver://localhost:1433;DatabaseName=supermarket 
  3. </property> 

3.URL 還可以傳參數(shù)

  1. <property name="connection.driver_class">org.gjt.mm.mysql.Driver</property> 
  2. <property name="connection.url"> 
  3. jdbc:mysql://localhost:3306/struts?useUnicode=true&characterEncoding=GBK 
  4. </property> 

目前,proxool用法,被大部分人認(rèn)為是***秀的。

4.連接池監(jiān)控

1).在web.xml中加上下面這段

  1. <servlet> 
  2. <servlet-name> proxool </servlet-name> 
  3. <servlet-class> org.logicalcobwebs.proxool.admin.servlet.AdminServlet  
  4. </servlet-class> 
  5. </servlet> 
  6. <servlet-mapping> 
  7. <servlet-name> proxool </servlet-name> 
  8. <url-pattern> /Admin/proxool/ </url-pattern> 
  9. </servlet-mapping> 

2).http://localhost:8080/testHibernate/Admin/proxool
就可以監(jiān)控到連接池的狀況了!

 

【編輯推薦】

  1. 初學(xué)者適用的Hibernate學(xué)習(xí)方法
  2. Hibernate實(shí)戰(zhàn)(第2版)讀書(shū)筆記
  3. Hibernate一對(duì)多關(guān)系的處理
  4. 十五道Hibernate面試題及答案
  5. Hibernate的性能優(yōu)化
責(zé)任編輯:仲衡 來(lái)源: 百度博客
相關(guān)推薦

2009-09-22 16:04:50

Hibernate連接

2009-06-17 16:22:45

Hibernate連接

2009-09-22 14:52:55

Hibernate p

2015-04-27 09:50:45

Java Hibern連接池詳解

2009-06-24 07:53:47

Hibernate數(shù)據(jù)

2009-06-17 09:34:31

Hibernate3Hibernate2連接池

2009-09-22 14:57:34

Hibernate d

2010-05-17 16:38:08

MySQL 連接池

2011-05-13 09:34:51

TomcatMysql連接池

2019-12-30 15:30:13

連接池請(qǐng)求PHP

2010-11-08 16:46:57

2009-07-09 17:36:44

JDBC連接池配置

2009-06-16 09:25:31

JBoss配置

2010-06-25 10:36:27

Java連接池

2020-02-03 15:15:27

Druid連接池性能超出競(jìng)品

2011-06-01 13:54:10

MySQL

2025-01-10 00:00:10

2018-02-07 16:23:58

連接池內(nèi)存池AI

2009-09-22 14:44:18

Hibernate.c

2022-11-11 09:41:04

連接池微服務(wù)數(shù)據(jù)庫(kù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)