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
本文详细描述了异步更新过程中,用户如何通过enqueueworkprocess锁定表并使用VB*表(如VBHDR、VBMOD等)暂存数据。更新操作完成后,通过COMMITWORK提交并由updateworkprocess处理数据库反馈,确保数据一致性。
779

被折叠的 条评论
为什么被折叠?



