0

我有一些代码需要知道最新的 ChangeToken,所以我写道:

session.Clear();
var token = session.RepositoryInfo.LatestChangeLogToken;

不幸的是,它并不总是返回最新的令牌。
例子:

  1. 开始会话
  2. 运行上面的代码,我得到72
  3. 在服务器上创建一个文件夹
  4. 启动CMIS Workbench,读取token,就是73
  5. 在同一会话中再次运行上面的代码,我得到72<-- 问题

有没有办法以某种方式“重置”会话,或者更好地清除缓存?
我宁愿不要每次都创建一个新会话。

4

2 回答 2

2

OpenCMIS 提供了Session.getLatestChangeLogToken()同样的方法。不需要清除缓存或获取存储库信息。

于 2015-03-03T10:27:14.627 回答
1

这有效:

session.Clear(); // Clear all caches.
session.Binding.GetRepositoryService().GetRepositoryInfos(null);

var token = session.Binding.GetRepositoryService().GetRepositoryInfo(
      this.session.RepositoryInfo.Id, null).LatestChangeLogToken;

令牌始终是最新的。
不太确定是否需要前两行。

于 2015-02-19T07:52:46.110 回答