web-dev-qa-db-fra.com

Comment résoudre javax.naming.PartialResultException?

Nous voyons ces messages d'avertissement dans nos journaux

javax.naming.PartialResultException: Unprocessed Continuation Reference(s); remaining name 'dc=global,dc=com'

Il apparaît chaque fois que les utilisateurs se connectent à notre application.

Selon this SO post , il peut être résolu en définissant Context.REFERRAL à follow. Mais cela augmente le temps de recherche de 1 seconde à 4 secondes.

En fait, vous pouvez faire référence this SO post , il est dit que l'utilisation de follow ralentit la recherche.

Ma question est donc la suivante: quelle est la meilleure façon de supprimer cette exception de nos journaux sans affecter les performances?.

33
Karthik Bose

D'ACCORD. Vous verrez cette exception lorsque votre recherche renverra une référence et que vous définissez d'ignorer la référence.

[Parrainage: Lorsque vous effectuez une recherche dans AD, si AD pense qu'il y a plus d'informations disponibles dans un autre endroit, il renvoie un filleul [endroit pour trouver plus d'informations] avec vos résultats de recherche.]

Vous pouvez éviter cette exception en définissant Context.REFERRAL à follow. Ensuite, il rechercherait également dans la référence [C'est pourquoi il faut plus de temps pour renvoyer le résultat].

Mais dans mon cas, la référence n'est pas valide et a renvoyé une autre exception.

J'ai résolu ce problème en modifiant le baseDN (base de recherche) pour être plus spécifique. Par exemple. ou=users,dc=mydomain,dc=com. Maintenant, je ne vois pas cette exception, car elle ne renvoie aucun renvoi.

45
Karthik Bose

Une autre solution possible qui peut fonctionner est de changer le numéro de port (en supposant qu'il s'agit d'un serveur GC):

Si vous utilisiez le port 389, remplacez-le par 3268

Si vous utilisiez le port 636, remplacez-le par 3269

Cela peut fonctionner parce que (et je cite):

Un serveur GC (catalogue global) renvoie des références sur 389 pour faire référence à la plus grande "forêt" AD, mais agit comme un serveur LDAP standard sur 3268 (et 3269 pour LDAPS)

Ça a marché pour moi.

J'ai trouvé cette solution dans la liste des utilisateurs de Shibboleth, répondu par Paul Caskey (tout le crédit à lui).

Vous pouvez consulter la conversation sur ce lien:

https://lists.internet2.edu/sympa/arc/shibboleth-users/2008-06/msg00039.html

57
Edenshaw