获取对象存储属性而无需额外的往返

时间:2013-08-14 05:06:33

标签: filenet-p8 filenet filenet-content-engine

我正在使用IBM FileNet CE API 5.1并面临性能问题,因为循环中有额外的刷新,迭代量很大(25000+)。这是代码示例:

for (Document document : documents) {
       ObjectStore objectStore = document.getObjectStore();
       objectStore.refresh(); //round-trip
       String symbolicName = objectStore.get_SymbolicName();

       ...
 }

问题是,在刷新之前的objectStore对象根本没有任何缓存属性,甚至是对象标识(如果我有,我可以创建对象存储缓存以避免在每次迭代中刷新)。

文档可能有不同的对象库(我正在搜索多个对象库)。

2 个答案:

答案 0 :(得分:3)

您可以从对象引用中获取对象存储的id:

document.getObjectReference().getObjectStoreIdentity()

答案 1 :(得分:0)

有一种方法可以通过EngineObjectImpl.getObjectStoreReference()获取对象库ID:

GlobalIdentity objectStoreReference = ((EngineObjectImpl)object).getObjectStoreReference();
Id objectId = objectStoreReference.getObjectId();