从AutoPDMS软件的架构来讲,我们把协同的最小单位规定为单个节点,而在这些节点中,我们又将节点分成管理节点(例SITE,ZONE等等)与非管理节点(NOZZ,TEE等等)(这点在协同操作手册中有所说明);而管理节点,才真正的成为协同的最小单位。协同操作要实现的功能就是多个用户能同时对于一个工程进行设计。所以对用户的每一个操作,都要进行判断,当前要操作的节点,是不是被其它用户正在操作(我们称之为加锁),因为为了确保数据库的一致性,我们必须确保同一个节点同一时刻只被一个用户操作;考虑到我们软件结构,在对每一个节点进行真正的属性改变的时候(只有在内存中的属性改变后,才能保存到数据库中),我们必然要调用节点属性对应的SETXXX函数,所以,决定在每一个域节点的SETXXX函数中,做加锁检查,以及后来的权限检查;真正进行加锁的是在APDOMAINFRAME工程中的PersistAccessor类中的LockNode函数; 我们开始把加锁的类型定义成为CREATE、MODIFY和DELETE锁,但由于声明列表的需要,我们又加了一种类型CLAIMCE,所以,在LOCKNODE函数中,我们就必需对这四种加锁动作进行判断和相应的转锁类型操作;
200933013414968110.rar
(10 KB, 下载次数: 1680)
[此贴子已经被作者于2009-3-30 14:03:52编辑过] |