使用OpenCMIS / DotCMIS获取最新的ChangeLog令牌

时间:2015-02-19 06:36:55

标签: cmis opencmis dotcmis

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

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

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

  1. 开始会话
  2. 运行上面的代码,我得到72
  3. 在服务器上创建一个文件夹
  4. 启动CMIS Workbench,阅读令牌,73
  5. 在同一会话中再次运行上面的代码,我得到72< - 问题
  6. 有没有办法以某种方式"重置"会话,还是更好地清除缓存? 我宁愿不每次都创建一个新的会话。

2 个答案:

答案 0 :(得分:2)

OpenCMIS具有Session.getLatestChangeLogToken()方法,它也是如此。 无需清除缓存或获取存储库信息。

答案 1 :(得分:1)

这有效:

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

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

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