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

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

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

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

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

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

2 ответа

Решение

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

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

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

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

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

Другие вопросы по тегам