瘋狂
STANDING ON THE SHOULDERS OF GIANTS
posts - 481, comments - 486, trackbacks - 0, articles - 1
BlogJava
::
首頁
::
新隨筆
::
聯(lián)系
::
聚合
::
管理
hibernate,spring管理事務(wù)中(transaction,JDBC connection,Hibernate Session的使用研究)(一)
Posted on 2011-11-18 11:25
瘋狂
閱讀(18922)
評(píng)論(0)
編輯
收藏
所屬分類:
database
、
spring
、
hibernate
、
方法論
、
架構(gòu)
、
讀代碼
如果單獨(dú)使用hibernate可參考上一篇文章
http://www.tkk7.com/freeman1984/archive/2011/08/04/355808.html
首先hibernate的Connection release mode有以下幾種:
1 after_statement 2 after_transaction 3 on_close 其中after_statement 用在jta中 ,
on_close 是3.1之前遺留的(也許是為spring留的-_-),也就是3.1之前默認(rèn)是on_close ,但3.1之后默認(rèn)如果單獨(dú)使用hibernate是after_transaction,
如果有第三方事務(wù)管理,就用第三方提供的默認(rèn)值,spring就是默認(rèn)使用了on_close。
在spring管理事務(wù)中我們看看系統(tǒng)啟動(dòng)后默認(rèn)使用的配置:
1,ransaction strategy: org.springframework.orm.hibernate3.SpringTransactionFactory使用spring事務(wù)策略
2,hibernate內(nèi)部 Automatic session close at end of transaction: disabled 因?yàn)橐呀?jīng)交給spring了
3 Connection release mode: auto 默認(rèn),也就是沒有配置hibernate.connection.release_mode的時(shí)候,但是這里有地方需要注意:也就是前面提到的使用第三方策略時(shí)的問題:看一下代碼:
String releaseModeName
=
PropertiesHelper.getString( Environment.RELEASE_CONNECTIONS, properties,
"
auto
"
);
log.info(
"
Connection release mode:
"
+
releaseModeName );
ConnectionReleaseMode releaseMode;
if
(
"
auto
"
.equals(releaseModeName) )
{
releaseMode
=
transactionFactory.getDefaultReleaseMode(); }
else
{
releaseMode
=
ConnectionReleaseMode.parse( releaseModeName );
if
( releaseMode
==
ConnectionReleaseMode.AFTER_STATEMENT
&&
!
connections.supportsAggressiveRelease() )
{
log.warn(
"
Overriding release mode as connection provider does not support 'after_statement'
"
);
releaseMode
=
ConnectionReleaseMode.AFTER_TRANSACTION;
}
}
其中紅色部分就是調(diào)用了spring提供的默認(rèn)值,而spring的默認(rèn)值:在jta和cmt中都默認(rèn)使用的是after_statement
/** */
/**
* Sets connection release mode "on_close" as default.
* <p>This was the case for Hibernate 3.0; Hibernate 3.1 changed
* it to "auto" (i.e. "after_statement" or "after_transaction").
* However, for Spring's resource management (in particular for
* HibernateTransactionManager), "on_close" is the better default.
*/
public
ConnectionReleaseMode getDefaultReleaseMode()
{
return
ConnectionReleaseMode.ON_CLOSE;
}
而spring為什么要使用on_close ,而不是用after_transaction ,我們想想opensessioninview的原理也許能明白,session在view成還要使用,所以不能再transactio
n使用完后關(guān)閉JDBC connection,必須要在session之后,所以要使用on
_close
(
也就是在on session(flush.auto,或者flush.Eagerly) 關(guān)閉)。這種情況hibernate內(nèi)部還會(huì)在spring關(guān)閉JDBC connection后提示(費(fèi)解,因?yàn)閍fter transaction之后session沒有關(guān)閉,但是 Connection release mode配置的是on_close,session的關(guān)閉和 Connection 的關(guān)閉都由spring來管理,hibernate就不知道了),所以hibernate有好的提示如下(其實(shí)session,已經(jīng)關(guān)閉。當(dāng)然隨著session的關(guān)閉jdbc鏈接釋放回連接池):
transaction completed on session with on_close connection release mode; be sure to cl
ose the session to release JDBC resources!,
。當(dāng)然我們也可以使用after_transaction ,這種情況對(duì)使用編程式事務(wù)非常適用。
新用戶注冊
刷新評(píng)論列表
只有注冊用戶
登錄
后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
相關(guān)文章:
oracle 索引字段包含date類型,使用spring jdbc更新時(shí)不走索引,而是走table access full的問題
(轉(zhuǎn))Oracle數(shù)據(jù)庫如何授權(quán)收費(fèi)(Database Licensing)
ORA-06548錯(cuò)誤
ora-01031:insufficient privileges
dbcp重連(轉(zhuǎn))
11g oracle 用戶密碼過期問題
ERROR 1049 (42000): Unknown database 'root' 處理
mysql 1130 錯(cuò)誤 處理
oracle ORA-39212異常
Spring jdbc(java類型和oracle類型的轉(zhuǎn)換)
Powered by:
BlogJava
Copyright © 瘋狂
日歷
<
2011年11月
>
日
一
二
三
四
五
六
30
31
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
1
2
3
4
5
6
7
8
9
10
公告
公眾號(hào):
QQjava交流群:
51374316
留言簿
(11)
給我留言
查看公開留言
查看私人留言
隨筆分類
all 生活雜談(16)
android(18)
apache項(xiàng)目(20)
chart(1)
concurrent(5)
database(70)
dwr(3)
flex(6)
hibernate(25)
java (135)
javafx(2)
javascript
java安全(8)
java性能(19)
jbpm(1)
jquery(4)
linux(17)
lucene(1)
netty(3)
nginx(1)
others(2)
questions(31)
questions_hander(28)
spring(32)
struts(9)
swing
UML(2)
unix(13)
web(45)
webservice(9)
xml(5)
敏捷(6)
方法論(28)
架構(gòu)(21)
測試(1)
緩存
網(wǎng)絡(luò)通訊(9)
讀代碼(6)
項(xiàng)目管理(19)
相冊
我的相冊
搜索
積分與排名
積分 - 2840194
排名 - 2
最新隨筆
1.? 后續(xù)內(nèi)容請(qǐng)移步公眾號(hào)“duomi88”
2.?Netty百萬級(jí)推送服務(wù)(轉(zhuǎn))
3.?Netty 概述(轉(zhuǎn))
4.?Netty優(yōu)雅退出機(jī)制和原理(轉(zhuǎn))
5.?使用JavaMail SearchTerm 收取郵件
6.?JAVA Thread Dump 分析綜述
7.?oracle 索引字段包含date類型,使用spring jdbc更新時(shí)不走索引,而是走table access full的問題
8.?FTP主動(dòng)模式和被動(dòng)模式的比較(轉(zhuǎn)載)
9.?關(guān)于java RMI在多網(wǎng)卡下(或者啟動(dòng)360,百度,騰訊等wifi共享下)無法連接問題(java.rmi.ConnectException: Connection refused to host: xx)
10.?(轉(zhuǎn))Oracle數(shù)據(jù)庫如何授權(quán)收費(fèi)(Database Licensing)
11.? 成功的 Web 應(yīng)用系統(tǒng)性能測試 (轉(zhuǎn)載)
12.?It is indirectly referenced from required .class file異常
13.?(轉(zhuǎn))svn cleanup failed–previous operation has not finished; run cleanup if it was interrupted
14.?automation服務(wù)器不能創(chuàng)建對(duì)象 解決辦法
15.?ERROR: transport error 202: gethostbyname: unknown host 解決辦法
16.?JavaScript 跨瀏覽器事件處理(轉(zhuǎn))
17.?函數(shù)聲明 VS 函數(shù)表達(dá)式(轉(zhuǎn))
18.?ORA-06548錯(cuò)誤
19.?項(xiàng)目規(guī)劃與管理記錄2
20.?tmpFile.renameTo(classFile) failed
21.?redhat6.4 64位安裝rlwrap
22.?ora-01031:insufficient privileges
23.?mysql遠(yuǎn)程連接問題 Access denied for user 'root'@' ip ' (using password: YES)
24.?dbcp重連(轉(zhuǎn))
25.?解決Vmware Workstation上安裝Linux系統(tǒng)不能SSH遠(yuǎn)程連接的問題
26.?URL最大長度限制(轉(zhuǎn))
27.?用MyEclipse測試發(fā)送email時(shí)報(bào)java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream
28.?我應(yīng)該采用哪一種 WSDL 樣式?(轉(zhuǎn)載)
29.?linux 掛載ntfs usb 出現(xiàn)mount: unknown filesystem type 'ntfs'
30.?11g oracle 用戶密碼過期問題
最新評(píng)論
1.?re: Oracle物化視圖創(chuàng)建全過程(轉(zhuǎn))
評(píng)論內(nèi)容較長,點(diǎn)擊標(biāo)題查看
--ya
2.?re: Oracle物化視圖創(chuàng)建全過程(轉(zhuǎn))
評(píng)論內(nèi)容較長,點(diǎn)擊標(biāo)題查看
--ya
3.?re: 11g oracle 用戶密碼過期問題
問問
--是是是
4.?re: mysql遠(yuǎn)程連接問題 Access denied for user 'root'@' ip ' (using password: YES)
asdfsadf
--asdf
5.?re: struts(il8n)實(shí)現(xiàn)國際化的一個(gè)例子
在啥地方
--正常
主站蜘蛛池模板:
免费v片视频在线观看视频
|
岛国大片免费在线观看
|
亚洲韩国精品无码一区二区三区
|
又黄又爽又成人免费视频
|
亚洲成在人天堂在线
|
四虎影视成人永久免费观看视频
|
国产亚洲人成网站在线观看不卡
|
中文字幕成人免费高清在线
|
亚洲无人区午夜福利码高清完整版
|
aa在线免费观看
|
久久精品国产亚洲
|
最新黄色免费网站
|
丁香婷婷亚洲六月综合色
|
在线精品免费视频
|
免费一级毛片在线播放视频免费观看永久
|
97在线线免费观看视频在线观看
|
亚洲日韩中文字幕天堂不卡
|
西西大胆无码视频免费
|
亚洲αⅴ无码乱码在线观看性色
|
免费**毛片在线播放直播
|
一区二区三区在线免费观看视频
|
日批视频网址免费观看
|
亚洲一区二区中文
|
国产精品成人免费一区二区
|
亚洲日韩国产欧美一区二区三区
|
麻豆va在线精品免费播放
|
国产亚洲精品成人a v小说
|
一级毛片免费观看
|
亚洲第一男人天堂
|
亚洲乱码中文字幕手机在线
|
亚洲国产综合专区电影在线
|
av无码免费一区二区三区
|
亚洲av无码有乱码在线观看
|
伊人久久综在合线亚洲91
|
久久久久久精品免费看SSS
|
MM1313亚洲精品无码久久
|
亚洲va久久久噜噜噜久久男同
|
成人免费无码大片A毛片抽搐
|
亚洲春黄在线观看
|
亚洲国产人成中文幕一级二级
|
久久不见久久见免费视频7
|