close

  壓力測試過程發現程式仍有Bug。OGG的Update有兩種DO_UPDATE_FILECOMP和DO_UPDATE_FILECOMP_PK(另兩種和Tandem有關,不予討論)。參考前一篇:http://tsaijemmy.spaces.live.com/blog/cns!4AD532D0CD18A21D!1693.entry。假設Table Foo的是複合key:ID、Name,而非key欄位叫CDate。這時好玩的地方就在下表DsColumn的method:

當執行Update Foo set CDate=sysdate where ID=? and Name=?,則觸發DO_UPDATE_FILECOMP。

欄位 \ method isMissing isChanged isValueNull
ID false true false
Name false true false
CDate false true false

而Update PK欄位值:Update Foo set Name=? where ID=?,則觸發DO_UPDATE_FILECOMP_PK。

欄位 \ method isMissing isChanged isValueNull
ID false true 待補上
Name false false 掛了
CDate true false 待補上

當時令我驚訝的是,被Update的PK欄位,isChanged回傳竟是false,而該欄位若呼叫isValueNull,會莫名其妙中斷Thread也不丟出Exception。

此外DO_UPDATE_FILECOMP_PK裡,每個PK欄位都會回傳有beforeValue和afterValue,即便前後都是一樣的值,不會Missing。反觀DO_UPDATE_FILECOMP,PK欄位值只會回傳afterValue。

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 Jemmy 的頭像
    Jemmy

    Jemmy Walker

    Jemmy 發表在 痞客邦 留言(0) 人氣()