【问题标题】:JBoss 4.2.3: LDAP Initial Context loading slowJBoss 4.2.3:LDAP 初始上下文加载缓慢
【发布时间】:2014-04-24 05:59:21
【问题描述】:

我正在使用 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 服务器内部延迟的原因?我该如何调试这个问题?请帮忙

【问题讨论】:

    标签: java jboss ldap initial-context


    【解决方案1】:

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

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

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

    显然,从以下链接看来,当使用 ssl 建立 Ldap 连接时,连接超时不起作用。

    Link 1

    Link 2

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

    【讨论】:

      猜你喜欢
      • 2014-02-04
      • 2012-11-03
      • 1970-01-01
      • 2016-07-18
      • 2016-04-25
      • 1970-01-01
      • 2012-05-23
      • 1970-01-01
      • 2017-03-01
      相关资源
      最近更新 更多