Se produce MaxResultsExceededException durante la búsqueda en el depósito LDAP

Siga los pasos que se indican aquí para resolver el problema cuando se produce una excepción MaxResultsExceededException.

Problema

Se produce la excepción MaxResultsExceededException siguiente o similar cuando se recuperan los resultados de búsqueda del servidor LDAP:

com.ibm.websphere.wim.exception.MaxResultsExceededException: 
CWWIM1018E search results exceeds the 4500 maximum search limit. 

Esta excepción se emite cuando el número de entradas de los resultados de búsqueda recuperados desde el servidor LDAP supera el valor del parámetro maxSearchResults que se especifica en el archivo wimconfig.xml.

Solución

Cuando la aplicación llame al método search() de virtual member manager, utilice el parámetro countLimit para pasar un valor para truncar los resultados de búsqueda cuando se alcance dicho valor. En el gráfico de datos de ejemplo siguiente, countLimit se ha establecido en 4, lo que significa que los resultados se truncan cuando se recuperan 4 entradas del servidor LDAP.

<sdo:datagraph xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:sdo="commonj.sdo" xmlns:wim="http://www.ibm.com/websphere/wim">
  <wim:Root>
    <wim:controls xsi:type="wim:SearchControl" countLimit="4" expression="//entities[@xsi:type='PersonAccount' and uid='*']">
      <wim:properties>uid</wim:properties>
      <wim:properties>cn</wim:properties>
      <wim:properties>sn</wim:properties>
      <wim:properties>mail</wim:properties>
    </wim:controls>
  </wim:Root>
</sdo:datagraph>

Si no se establece el parámetro countLimit cuando la aplicación llama al método search(), se recuperan todas las entradas del servidor LDAP. Si el número de entradas recuperadas del servidor LDAP supera el valor de maxSearchResults, se produce la excepción MaxResultsExceededException.

Para asegurarse de que no se emita esta excepción, establezca el valor de countLimit para que sea inferior al valor de maxSearchResults.

Nota: Las propiedades maxSearchResults y searchTimeOut establece los límites para las búsquedas que realiza el método search(). Las propiedades searchCountLimit y searchTimeLimit establecen los límites para las búsquedas de grupos, ascendientes o descendientes en un depósito LDAP.
A continuación se proporcionan valores de ejemplo para estas propiedades:
  • maxSearchResults=”110000”
  • searchTimeOut=”600000”
  • searchCountLimit=”500”
  • searchTimeLimit”120000”

No puede establecer el valor de maxSearchResults utilizando la consola administrativa o la interfaz de línea de mandatos. Puede establecerlo manualmente editando el archivo wimconfig.xml. El valor predeterminado es 4500.

Temas relacionados

SearchControl DataObject

Valores de rendimiento de Lightweight Directory Access Protocol

Grupo de mandatos IdMgrRepositoryConfig para el objeto AdminTask



Condiciones de uso | Comentarios