<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 262,  comments - 221,  trackbacks - 0

    【一】事務傳播的級別:按照對事務要求的程度,從低--->高可以分成下面7個級別

    PROPAGATION_NEVER

      總是非事務地執行,如果存在一個活動事務,則拋出異常

    PROPAGATION_NOT_SUPPORTED
     總是非事務地執行,并掛起任何存在的事務。


    PROPAGATION_SUPPORTS

     如果沒有事務,則非事務的執行。如果存在一個事務,則加入當前事務。

    PROPAGATION_REQUIRED

     如果沒有事務,則開啟一個新的事務。如果存在一個事務,則加入當前事務。

    PROPAGATION_NESTED
     
    如果沒有活動事務, 則按PROPAGATION_REQUIRED 屬性執行,如果一個活動的事務存在,則運行在一個嵌套的事務中.

    PROPAGATION_REQUIRES_NEW
     總是開啟一個新的事務。如果一個事務已經存在,則將這個存在的事務掛起。


    PROPAGATION_MANDATORY
     如果已經存在一個事務,支持當前事務。如果沒有一個活動的事務,則拋出異常。


    【二】PROPAGATION_NESTED 與PROPAGATION_REQUIRES_NEW的區別:

    PROPAGATION_REQUIRES_NEW每次開啟一個新的事務,同時掛起前一個正在運行的事務,開啟的新事務會獨立提交/回滾。之后被掛起的前一個事務繼續運行,在結束時提交或回滾。

    由此看來,當使用PROPAGATION_REQUIRES_NEW時,服務層的內部其實是由多個獨立的小事務組成的一個大的事務。每個小事務彼此獨立,互不影響。一旦內層事務進行了提交,外層事務不能對其進行回滾。而且它需要JTA事務管理器的支持。

    PROPAGATION_NESTED并不開啟新的事務,它使用save point來代替事務,它可以選擇在自己的邏輯內回滾,但它不能在自己的邏輯內提交,而必須等到外層的邏輯提交時一并提交。

    由此看來,當使用PROPAGATION_NESTED時,服務層的內部只有一個事務存在,內嵌的事務回滾不會引起外層的事務回滾(如同上面說的,它可以在自己的邏輯內回滾),但外層的事務回滾會引起內嵌的事務回滾(因為內嵌的事務必須等到外層事務提交時才一并提交)。需要JDBC 3.0以上驅動及1.4以上的JDK版本支持。

    【三】PROPAGATION_XXX的設置和性能優化

    一般來說,PROPAGATION_REQUIRED的傳播級別就已經夠了。對于長時間、可分段的任務,如果也采用一個大的事務一次性提交,則一旦失敗代價太大了。最典型的例子就是:大批量的數據導入,你總不能因為一條數據錯了而將其它插入全部回滾吧!

    這時可以考慮劃分為小段的PROPAGATION_REQUIRED事務進行,多次獨立提交事務。

    也考慮考慮設置為PROPAGATION_NESTED,因為JDBC 3.0提供了save point機制,可以在事務未提交的情況下保存事務中間的狀態,一旦回滾不會回滾全部,而是只回滾到save point點(根據時間)。那么我們可以把大的事務劃分成多個小的內嵌事務,每個內嵌事務執行成功后刷新save point,如果全部成功則一次性提交,如果中間失敗了則回滾則上一個save point,同時繼續下一個內嵌事務,不怕將前面尚未提交的其它事務操作全部回滾。

    和PROPAGATION_REQUIRED相比,好處就是事務提交的次數少了,可以一次性寫入



    -------------------------------------------------------------
    生活就像打牌,不是要抓一手好牌,而是要盡力打好一手爛牌。
    posted on 2010-03-15 11:09 Paul Lin 閱讀(2628) 評論(0)  編輯  收藏 所屬分類: J2EE 框架
    <2010年3月>
    28123456
    78910111213
    14151617181920
    21222324252627
    28293031123
    45678910

    常用鏈接

    留言簿(21)

    隨筆分類

    隨筆檔案

    BlogJava熱點博客

    好友博客

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲日本在线免费观看| 成人免费视频一区二区| 最近免费中文字幕mv在线电影| 亚洲精品无码专区2| 国产亚洲精品欧洲在线观看| 精品久久洲久久久久护士免费| 亚洲香蕉在线观看| 国产一卡2卡3卡4卡2021免费观看| 亚洲女人初试黑人巨高清| 91九色精品国产免费| 国产亚洲精品VA片在线播放| 无码一区二区三区免费视频| 亚洲精品天堂无码中文字幕| 热99re久久精品精品免费| 国产亚洲精品国产福利在线观看| 免费一级毛片在播放视频| 日韩在线一区二区三区免费视频| 亚洲中文字幕成人在线| 久久久久久久99精品免费观看 | 99精品视频免费观看| 久久久久亚洲av无码专区| 人成午夜免费视频在线观看| 亚洲精品久久久久无码AV片软件| 免费一级特黄特色大片在线观看| 免费无码一区二区| 亚洲av中文无码乱人伦在线r▽| 日韩免费无码一区二区三区 | 亚洲一本之道高清乱码| 日本免费电影一区| 九九热久久免费视频| 久久丫精品国产亚洲av不卡| 成人免费男女视频网站慢动作| 成年免费大片黄在线观看com| 亚洲AV无码不卡在线播放| 日韩吃奶摸下AA片免费观看| 日本高清免费中文在线看| 亚洲AV乱码久久精品蜜桃| 成人毛片18女人毛片免费| 一日本道a高清免费播放| 亚洲色成人网一二三区| 免费少妇a级毛片人成网|