我有一个使用 LDAP 功能的代码实现。为了获得值,我最初生成了一个 InitialDirContext。我为建立连接设置了 2 秒的超时值。但我可以看到线程等待大约 20 分钟以生成上下文。下面是代码:
设置超时-
env.put("com.sun.jndi.ldap.read.timeout", String.valueOf(2000));
env.put("com.sun.jndi.ldap.connect.timeout", String.valueOf(2000));
创建上下文的方法-
DirContext getInitialDirContext(final Hashtable<String, Object> env) throws NamingException {
final long timeinMillis = System.currentTimeMillis();
try {
return new InitialDirContext(env);
} finally {
LOGGER.info("Total time taken for creating the LDAP Initial Context in Millis [{}]",
System.currentTimeMillis() - timeinMillis);
}
}
谁能告诉我为什么超时不起作用。作为一种解决方法,我想一旦时间超过超时限制,我将手动停止执行。有没有人有更好的主意来处理这种情况。