MDA/MDD/TDD/DDD/DDDDDDD
          posts - 536, comments - 111, trackbacks - 0, articles - 0
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          公告

          一些零碎的筆記,希望能對你有用處。


          搜索

          •  

          積分與排名

          • 積分 - 598017
          • 排名 - 80

          最新評論

          閱讀排行榜

          一個事務(wù)的問題

          Posted on 2008-06-26 11:24 leekiang 閱讀(408) 評論(0)  編輯  收藏 所屬分類: jdbc、事務(wù)、并發(fā)
          我單位物資系統(tǒng):庫存表kcb,庫存明細(xì)kcmx?

          當(dāng)發(fā)生一筆動態(tài)的時候,先查詢庫存表中的庫存數(shù)量,然后加上增減數(shù)量,得到新庫存,update,commit;?

          接著把庫存數(shù)量,增減數(shù)量,更改時間分別插入到庫存明細(xì):前次數(shù)量,增減數(shù)量,更改時間。?

          問 題:現(xiàn)在有兩條數(shù)據(jù)更改時間很接近? a? 10:51:47:01b? 10:51:46:25? .也就是說兩條數(shù)據(jù)先后更新,而且更新的是同樣一筆物資。于是,a? 條記錄得到的前存數(shù)量和b條記錄得到的前存數(shù)量一樣,(好像叫讀臟數(shù)?)于是記錄b的更新就被當(dāng)作不存在了!?

          系統(tǒng)在隨后的更新中查到的是記錄a更新候的數(shù)據(jù),一切正常,唯有記錄b? 被忽略了;(于是庫存錯了,領(lǐng)導(dǎo)批了)?

          ?

          還有一個奇怪的問題,就是庫存明細(xì)的查詢是用存儲過程作的,為什么select到pb的數(shù)據(jù)窗口之后別的數(shù)據(jù)都是按時間順序排列,唯有上面兩條,a在b之前!時間也會錯?相差太近??

          我以后怎么辦?高人教我

          http://blog.csdn.net/qiume/archive/2009/02/26/3938382.aspx
          對數(shù)據(jù)庫中的數(shù)據(jù)修改都是在內(nèi)存中完成的,這些修改的結(jié)果可能已經(jīng)寫到硬盤也可能沒有寫到硬盤,如果在操作過程中,發(fā)生斷電或系統(tǒng)錯誤等故障,數(shù)據(jù)庫可以 保證未結(jié)束的事務(wù)對數(shù)據(jù)庫的數(shù)據(jù)修改結(jié)果即使已經(jīng)寫入磁盤,在下次數(shù)據(jù)庫啟動后也會被全部撤銷;而對于結(jié)束的事務(wù),即使其修改的結(jié)果還未寫入磁盤,在數(shù)據(jù) 庫下次啟動后會通過事務(wù)日志中的記錄進(jìn)行“重做”,即把丟失的數(shù)據(jù)修改結(jié)果重新生成,并寫入磁盤,從而保證結(jié)束事務(wù)對數(shù)據(jù)修改的永久化。這樣也保證了事務(wù) 中的操作要么全部完成,要么全部撤銷。
          主站蜘蛛池模板: 商丘市| 克拉玛依市| 旌德县| 大英县| 盐池县| 永安市| 开阳县| 海伦市| 郑州市| 陆川县| 桓仁| 介休市| 封丘县| 连州市| 葵青区| 阿合奇县| 邯郸市| 卢龙县| 博湖县| 庆阳市| 甘肃省| 全州县| 乐至县| 麻城市| 乌审旗| 揭西县| 西乌珠穆沁旗| 阿勒泰市| 都江堰市| 栖霞市| 武威市| 浦北县| 山阴县| 崇州市| 克什克腾旗| 遂宁市| 安平县| 池州市| 怀宁县| 开平市| 镇远县|