Asynchronous Updates(异步更新)步骤:
- 用户通过enqueue work process锁住要修改的表,信息存放于lock table,如果已被他人锁住,则返回无法修改该表的信息;
- 锁表成功,用户可以修改目标数据;
- 如果程序调用了FUNCTION...INUPDATE TASK这种函数,更新数据会被临时存放在VB*表(一种存放要更新的数据的表,因为都是VB开头的,所以统称为VB*表)中;(表簇VBLOG,透明表VBHDR,VBDATA,VBMOD,VBERROR)
- 操作结束时(比如"保存"),程序提交COMMIT WORK,update work process被激活;
- update work process读取VB*表中的log records
- update work process进行更新操作并等待database反馈,如果成功则删除VB*表中的临时数据,如果失败则保留VB*表中的临时数据并标注为defective(有缺陷的)
- the lock entries in lock table are reset
常用的VB*表:
- VBHDR: update headers
- VBMOD: update modules
- VBDATA: update data
- VBERROR: possible error information