Fts processQueue() не обрабатывает записи из sys$FtsQueue

Здравствуйте,
Такая проблема с полнотекстовым поиском. Делаю reindexAll() говорит проиндексировано 12 объектов
Потом делаю processQueue() пишет done 0. В таблице sys$FtsQueue ровно 12 записей, никуда не пропадают. Хотя каждые 30 сек запускается назначенное задание cuba_FtsManager.processQueue. Не могу понять почему не обрабатывается очередь.

Здравствуйте! Приложите, пожалуйста, демо-проект, на котором воспроизводится проблема.

Проблема исчезла после удаления папки ftsindex и перезапуска приложения. На тестовом проекте такое не могу воспроизвести. Единственное, что успел посмотреть пока проблема присутствовала так это то, что метод processQueue завершался вот здесь

if (!reindexEntitiesQueue.isEmpty()) {
    log.warn("Unable to process queue: there are entities that are waiting for reindex");
    return 0;
}

Что означает данная проверка и что значит “есть сущности, которые ждут переиндексации”?

1 симпатия

Это значит, что вы до этого вызвали метод asyncReindexAll(). Этот метод прездназначен для индексации большого объёма данных, когда синхнронно переиндексировать все данные невозможно. В этом случае сущности помечаются как подлежащие индексации, а сама индексации осуществляется методом FtsManager.reindexNextBatch(), который должен периодически вызваться шедулером (немного про это тут). Пока асинхронная индексация всех сущностей не завершена, обработка очереди (processQueue) не будет выполняться.

1 симпатия