Alfresco CMIS ограничивает размер и время запроса

мы разрабатываем внешний интерфейс, интегрированный с Alfresco, мы используем протокол CMIS для выполнения запросов к различным узлам Alfresco, но мы хотели бы установить ограничение на максимальное время и максимальные результаты, которые может дать запрос. Достижимо ли это с помощью стандарта CMIS или только с разрешениями acl в alfresco.global.properties (блокировка lucene)? Мы бы не хотели трогать эти настройки в Alfresco. Спасибо


person Teqnology    schedule 11.02.2013    source источник


Ответы (3)


Если вы используете привязку AtomPub через HTTP напрямую и используете HTTP GET, вы можете добавить параметр URL maxItems к URL-адресу запроса.

Если вы используете HTTP POST для запроса, вы должны добавить параметры maxItems к полезной нагрузке. См.: http://docs.oasis-open.org/cmis/CMIS/v1.0/cs01/cmis-spec-v1.0.html#_Toc243905541

person Florian Müller    schedule 12.02.2013
comment
Большое спасибо, это решило нашу проблему, мы используем HTTP GET, нужно установить maxItems и все. Простое легкое. - person Teqnology; 13.02.2013
comment
Мы заметили, что maxItems считается только во второй раз подряд, когда он запускается, как и первый запрос GET не учитывает значение. Странно... Мы все еще что-то упускаем.. - person Teqnology; 15.02.2013

Спецификация CMIS не предусматривает ограничения максимального времени, необходимого для возврата результата запроса. Как и известная мне библиотека OpenCMIS.

Однако вы можете ограничить количество возвращаемых результатов поиска, установив maxItems. Если вы используете OpenCMIS, вы можете сделать это, передав OperationContext, для которого вы вызвали метод setMaxItemsPerPage.

person Jeff Potts    schedule 12.02.2013
comment
На самом деле мы не используем библиотеки Apache Chemistry, потому что у нас были трудности с получением запросов URL-адресов узлов к Alfresco. Если есть метод, мы были бы рады узнать. Спасибо - person Teqnology; 12.02.2013
comment
Ограничение набора результатов работает следующим образом: ItemIterable‹QueryResult› queryResult = session.query(query, false).getPage(maxItems); - person Florian Müller; 12.02.2013

Вам нужно всего лишь изменить пару параметров конфигурации в файле relay.properties, который находится в папке Alfresco\tomcat\webapps\alfresco\WEB-INF\classes\alfresco. Эти параметры:

system.acl.maxPermissionChecks system.readpermissions.bulkfetchsize

Вы можете установить для них желаемое значение. Значения по умолчанию установлены на 1000.

person Joaquín    schedule 05.08.2016