Ticket #1185 (closed defeito: fixed)

Opened 11 years ago

Last modified 11 years ago

Erro ao listar OU com muitos objetos dentro do Catálogo Geral

Reported by: niltonneto Owned by: niltonneto
Priority: normal Milestone: Expresso 2.0.9
Component: ContactCenter Version: branch 2.0
Severity: grave Keywords: exhausted memory ldap_search
Cc: WorkGroup:

Description

O problema acontece devido à implementação atual, que utiliza a função nativa PHP "ldap_search" para listar objetos de uma OU, bem como pesquisar objetos dentro de uma determinada OU.

Se há organizações com subníveis e milhares de objetos no resultado final, o servidor PHP acusa o erro "exausthed memory", na hora de executar o "get_entries", logo após o "ldap_search".

Infelizmente, a implementação atual precisa retornar todos os CNs e DNs para efetuar a ordenação (ldap_sort) e depois a paginação. Não adianta limitar o "size_limit" pois a ordenação via "ldap_sort" só funciona corretamente se no resultado houver todos os objetos.

Change History

comment:1 Changed 11 years ago by niltonneto

Para corrigir o problema na versão atual (2.0), será alterado o comportamento de listar uma OU. Serão retornados apenas os objetos do seu nível (ldap_list). Já com a pesquisa, permanece o funcionamento atual (ldap_search).

Será adicionado um parâmetro (boolean) na assinatura do método find(), que define a recursividade na busca. Para uma próxima versão, podemos implementar uma melhoria para tornar esse parâmetro configurável, tanto na parte de administração do módulo, quanto em uma "busca avançada" feita pelo usuário.

comment:2 Changed 11 years ago by niltonneto

  • Status changed from new to closed
  • Resolution set to fixed

Corrigido nos Branch 2.0 [3210] e 2.2 [3211].

Note: See TracTickets for help on using tickets.