Получите последний токен ChangeLog с помощью OpenCMIS/DotCMIS

У меня есть код, который должен знать последний ChangeToken, поэтому я написал:

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

К сожалению, он не всегда возвращает последний токен.
Пример:

  1. Начать сеанс
  2. Запустите код выше, я получаю 72
  3. Создать папку на сервере
  4. Запустите CMIS Workbench, прочитайте токен, это 73
  5. Запустите приведенный выше код еще раз в том же сеансе, я получаю 72 ‹-- Проблема

Есть ли способ как-то "сбросить" сеанс или лучше очистить кеш?
Я бы предпочел не создавать каждый раз новый сеанс.


person Nicolas Raoul    schedule 19.02.2015    source источник


Ответы (2)


В OpenCMIS для этого есть метод Session.getLatestChangeLogToken(), который делает то же самое. Очищать кэши или получать информацию о репозитории не нужно.

person Florian Müller    schedule 03.03.2015

Это работает:

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

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

Токен всегда актуален.
Не совсем уверен, нужны ли первые две строки или нет.

person Nicolas Raoul    schedule 19.02.2015