系统运维.缓存.清除数据库级
【缓存体系介绍】
金蝶云星空的元数据缓存的整体层级结构如下:
客户端元数据缓存->服务端元数据缓存->数据库元数据缓存
客户端元数据缓存:在客户端电脑上,以临时文件的方式存储,如下图所示。
C:\Users\Admin\Documents\Kingdee\K3Cloud\FormMetadataCacheManager
服务端元数据缓存:在服务端的应用服务器上,以内存的方式存储。
数据库元数据缓存:在数据库服务器上,数据中心对应的数据库实例,存储在表T_META_OBJECTTYPECACHE中,如下图所示。
---------------------------------------------------------------------------------------------------------
【清除元数据的数据库级缓存】
【为什么要清?】
系统由于某些无法解释或者无法言说的原因,数据库级的元数据缓存损坏了,然后产生一些类似下图的错误信息。
去BOSIDE查询这些业务对象,控件其实都是在的,但运行时就是不行,这时候,基本可以判断是数据库级的元数据缓存损坏了。系统又没提供清理数据库级的元数据缓存的功能入口,那怎么办呢?目前主要有两种方案:
<1>直接数据库删表(要求有数据库执行权限)。
<2>借助BOSIDE刷新缓存(扩展业务对象再删除,业务对象的主版本号会变化,从而可以使得数据库级的元数据缓存失效)。
---------------------------------------------------------------------------------------------------------
【直接数据库删表】
数据库执行以下SQL:
DELETE FROM T_META_OBJECTTYPECACHE
【注意】为避免一些不必要的麻烦,请备份数据中心后再执行SQL脚本。
此表数据可以按业务对象删,或者全删都是可以的。
例如,只删采购订单的元数据缓存,SQL如下:
DELETE FROM T_META_OBJECTTYPECACHE WHERE FID='PUR_PurchaseOrder'
---------------------------------------------------------------------------------------------------------
【借助BOSIDE刷新缓存的操作步骤】
<1>定位出问题的业务对象的标识。
<2>登录BOSIDE,查找并打开该业务对象。
<3>先扩展该业务对象,不做任何修改,保存扩展,然后再删除此扩展(操作这么多,只是为了刷下业务对象的主版本号)。
到此,该业务对象的所有缓存都失效啦。
---------------------------------------------------------------------------------------------------------
【参考知识】
【系统运维.元数据缓存.如何彻底清除元数据缓存?】https://vip.kingdee.com/article/238989648603560960
---------------------------------------------------------------------------------------------------------
【金蝶云星空BOS二次开发案例演示】https://vip.kingdee.com/article/94751030918525696
系统运维.缓存.清除数据库级
本文2024-09-23 04:18:58发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-164523.html