2013-05-07 51 views
27

Wir sehen diese Warnmeldungen in unseren ProtokollenWie löst man javax.naming.PartialResultException?

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

Es erscheint immer dann, wenn Nutzer einloggen für unsere Anwendung.

Gemäß this SO post kann es aufgelöst werden, indem Context.REFERRAL auf follow eingestellt wird. Aber es erhöht die Suchzeit von 1 Sekunde auf 4 Sekunden.

In der Tat können Sie beziehen this SO post, sagt es mit follow verlangsamt die Suche.

Also meine Frage ist, was ist der beste Weg, um diese Ausnahme von unseren Protokollen loszuwerden, ohne die Leistung zu beeinträchtigen ?.

Antwort

32

OK. Sie sehen diese Ausnahme, wenn Ihre Suche den Verweis zurückgibt und Sie den Verweis ignorieren.

[Referral. Wenn Sie in AD suchen, wenn AD denken, dass es weitere Informationen an einem anderen Ort sind, gibt sie eine Überweisung [Ort, um weitere Informationen zu finden] zusammen mit Ihren Suchergebnissen]

Sie könnten vermeiden diese Ausnahme durch Setzen von Context.REFERRAL auf follow. Dann würde es in der Empfehlung auch suchen [Deshalb braucht es mehr Zeit, um das Ergebnis zurückzugeben].

Aber in meinem Fall ist der Verweis ungültig und gab eine weitere Ausnahme zurück.

Ich habe dieses Problem behoben, indem ich die BaseDN (Suchbasis) geändert habe, um genauer zu sein. Für Beispiel: "ou = Benutzer, dc = mydomain, dc = com". Jetzt sehe ich diese Ausnahme nicht, weil sie keinen Verweis zurückgibt.

+0

Wenn Befassung Einstellung, müssen Sie in der Lage sein, die Domänen root-Adresse aufzulösen. (ex .: mydomain.com) – olivervbk

35

Eine andere mögliche Lösung, die (dies ist ein GC-Server vorausgesetzt) ​​können funktionieren, ist die Portnummer zu ändern:

Wenn Sie den Port 389 ändern, es zu 3268 wurden unter Verwendung

Wenn Sie verwendet haben, der Port 636 ändern, es zu 3269

Dies kann funktionieren, weil (und ich zitiere):

A GC (globaler Katalog) Server liefern Verweise auf 389 zum größer AD "Wald" beziehen, sondern wirken wie ein normaler LDAP-Server auf 3268 (und 3269 für LDAPS)

Es ist für mich gearbeitet.

Ich fand diese Lösung in der Shibboleth-Benutzerliste, beantwortet von Paul Caskey (der ganze Kredit zu ihm).

Sie können das Gespräch auf diesen Link überprüfen:

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

+1

Der Wechsel zu Port 3268/9 funktioniert super. Leider scheinen Suchen und Suchen nur einen Teilsatz von Attributen zurückzugeben.Beispielsweise wird das Attribut employeeID nie zurückgegeben, auch wenn es explizit abgefragt wurde. – Jeshurun

+0

Globaler Katalog hat nicht alle Attribute (enthält nur Teilmenge). Es ist also keine Lösung für alle. – jsosnowski