如何解决javax.naming.PartialResultException?

问题描述 投票:31回答:2

我们在日志中看到此警告消息

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

每当用户登录我们的应用程序时,它就会出现。

根据this SO post,可以通过将Context.REFERRAL设置为follow来解决。但它将搜索时间从1秒增加到4秒。

实际上你可以参考this SO post,它说使用follow减慢搜索速度。

所以我的问题是,在不影响性能的情况下,从日志中删除此异常的最佳方法是什么?

ldap
2个回答
57
投票

另一种可能的解决方案是更改端口号(假设这是一个GC服务器):

如果您使用的是端口389,请将其更改为3268

如果您使用的是端口636,请将其更改为3269

这可能有效,因为(我引用):

GC(全局编录)服务器返回389上的引用以引用更大的AD“林”,但其作用类似于3268上的常规LDAP服务器(对于LDAPS,则为3269)

它对我有用。

我在Shibboleth用户列表中找到了这个解决方案,Paul Caskey回答了他的所有信息。

您可以在此链接上查看对话:

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


44
投票

好。当您的搜索返回引荐并且您设置为忽略引荐时,您将看到此异常。

[推荐:当您在AD中搜索时,如果AD认为在其他地方有更多可用信息,则会返回推荐[地点以查找更多信息]以及您的搜索结果。]

您可以通过将Context.REFERRAL设置为follow来避免此异常。然后它也会在推荐中搜索[这就是为什么返回结果需要更多时间]。

但在我的情况下,推荐无效并返回另一个例外。

我通过将baseDN(搜索库)更改为更具体来解决此问题。例如。 ou=users,dc=mydomain,dc=com。现在我没有看到这个异常,因为它没有返回任何引用。

© www.soinside.com 2019 - 2024. All rights reserved.