Carlo Hamalainen

Another Intersystems Caché WTF


I stumbled across this remark in some documentation for Intersystems Caché ObjectScript.

You use the Lock command to prevent multiple processes from updating the same record at the same time. But it only works by convention: all the code throughout an application that updates a given global must try to Lock the record that is to be updated, and unLock it when finished. If one routine uses Lock, but another doesn't, nothing prevents the second routine from updating the record while the first routine has it locked.