论坛首页> 三共建设

bo对象创建失败一例分析及解决方案

问题描述:

在使用时遇到以下情况:数据库中的一个井数据,它包含多个分层数据,启动了两个进程,这两个进程都要访问同一个分层数据,设它为topA,进程A打开了该井数据对象,然后在界面中查看访问它的分层数据topA,查看完成后关闭操作界面;进程B同样打开了该井数据对象,然后调用eraseChild接口删除了它的分层topA并保存。此时,在B进程删除分层后,到进程A中执行创建分层操作,命名新创建的分层名仍为topA,结果创建失败。

问题分析及解决方案:

在A程序原代码中,创建新的分层前为了验证分层数据是否有效已经调用了refresh接口,然后再使用井对象调用createChild来创建分层数据。事实上,在数据库bo层为数据对象增加了缓存,数据在获取和创建后会放入缓存,调用refresh并不能从缓存中移除该对象。所以,在判断refresh状态后还应当将分层对象从缓存中移除。修改该部分代码后创建成功,问题解决。

全部回复

暂无更多回复内容