Получите последний токен ChangeLog с OpenCMIS/DotCMIS
У меня есть код, который должен знать последний ChangeToken, поэтому я написал:
session.Clear();
var token = session.RepositoryInfo.LatestChangeLogToken;
К сожалению, он не всегда возвращает последний токен.
Пример:
- Начать сеанс
- Запустите код выше, я получаю
72
- Создать папку на сервере
- Запустите CMIS Workbench, прочитайте токен, это
73
- Запустите приведенный выше код еще раз в то же время, я получаю
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;
Токен всегда актуален.
Не слишком уверен, нужны ли первые две строки или нет.