JBoss 4.2.3:LDAP初始上下文加载缓慢

时间:2014-04-24 05:59:21

标签: java jboss ldap initial-context

我正在使用Jboss 4.2.3,我正在尝试连接到LDAP服务器并调用这段代码来创建初始上下文:

Hashtable<String, String> environment = new Hashtable<String, String>();
environment.put(Context.PROVIDER_URL, ldapUrl);
environment.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
environment.put(Context.SECURITY_AUTHENTICATION, "simple");
environment.put(Context.SECURITY_PROTOCOL, "ssl");
environment.put(Context.REFERRAL, "follow");
environment.put(Context.SECURITY_PRINCIPAL, principalName);
environment.put(Context.SECURITY_CREDENTIALS, plainPassword);
environment.put("com.sun.jndi.ldap.connect.pool", "true");
environment.put("com.sun.jndi.ldap.connect.timeout", "1500");


context = new InitialLdapContext(environment, null);

初始上下文创建需要12秒,这是不可接受的。但是,如果我在同一系统中将该程序作为独立的java程序运行,则会在1秒内执行。

如何分析JBoss服务器内部此延迟的原因?我该如何调试此问题?请帮助

1 个答案:

答案 0 :(得分:0)

显然,罪魁祸首是以下一段代码,这是造成延误的原因:

environment.put("com.sun.jndi.ldap.connect.timeout", "1500");

即使是调试日志也确认在尝试设置连接超时时发生了延迟。

显然,从以下链接可以看出,当使用ssl进行Ldap连接时,连接超时不起作用。

Link 1

Link 2

删除这行代码解决了这个问题。