Active directory LDAP连接池中是否需要明确关闭上下文

Active directory LDAP连接池中是否需要明确关闭上下文,active-directory,ldap,jndi,Active Directory,Ldap,Jndi,我们正在为LDAP JNDI连接池使用以下设置: DirContext ctx = null; try { Hashtable<String, String> env = new Hashtable<String, String>(); env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory"); env

我们正在为LDAP JNDI连接池使用以下设置:

    DirContext ctx = null;
    try 
    {
        Hashtable<String, String> env = new Hashtable<String, String>();

        env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
        env.put(Context.PROVIDER_URL, "ldaps://" + server + ":" + serverPort);
        env.put(Context.SECURITY_AUTHENTICATION, "simple");
        env.put(Context.SECURITY_PRINCIPAL, pUserName);
        env.put(Context.SECURITY_CREDENTIALS, pPassword);
        env.put(LdapContext.CONTROL_FACTORIES, "com.sun.jndi.ldap.ControlFactory");
        env.put(Context.SECURITY_PROTOCOL, "ssl");
        env.put("com.sun.jndi.ldap.read.timeout", "300000");

        Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());

        // load the location of keystore that holds trusted root certificates from web.xml
        ServletContext context = ApplicationServlet.getApplication().getServlet().getServletContext();
        String certificatePath = context.getInitParameter("AD_CERTIFICATE_PATH");

        System.setProperty("javax.net.ssl.trustStore",  certificatePath);
        //          System.setProperty("javax.net.debug", "all");

        // For connection pooling
        env.put("com.sun.jndi.ldap.connect.pool", "true");
        System.setProperty("com.sun.jndi.ldap.connect.pool.protocol", "plain ssl");
        System.setProperty("com.sun.jndi.ldap.connect.pool.maxsize", poolMaxSize);
        System.setProperty("com.sun.jndi.ldap.connect.pool.prefsize", poolPrefSize);
        System.setProperty("com.sun.jndi.ldap.connect.pool.timeout", poolTimeOut);
        System.setProperty("com.sun.jndi.ldap.connect.pool.debug", "fine");

        ctx = new InitialDirContext(env);
        return (DirContext) ctx;

是的,您不仅必须关闭所有
上下文
,还必须关闭所有
namingumerations
。这就是连接返回池的方式


日志中没有证据表明连接正在关闭。正在关闭的是
com.sun.jndi.ldap.LdapClients。

是的,不仅要关闭所有
上下文
,还要关闭所有
namingumerations
。这就是连接返回池的方式


日志中没有证据表明连接正在关闭。正在关闭的是
com.sun.jndi.ldap.LdapClients。

是的,不仅要关闭所有
上下文
,还要关闭所有
namingumerations
。这就是连接返回池的方式


日志中没有证据表明连接正在关闭。正在关闭的是
com.sun.jndi.ldap.LdapClients。

是的,不仅要关闭所有
上下文
,还要关闭所有
namingumerations
。这就是连接返回池的方式



日志中没有证据表明连接正在关闭。关闭的是
com.sun.jndi.ldap.LdapClients。

可能是重复的事实上,我在同一代码上问了不同的问题。在这里,我面临的问题是连接立即关闭。大家好,我已经检查,并没有在互联网上得到太多。根据oracle文档,需要关闭上下文才能将其返回池中。但在我们的案例中,在关闭连接后,我们会看到没有连接达到最大限制“20”。在创建和使用后,连接会立即关闭。在1秒内。。。我分享了上面的日志…可能是重复的事实上,我在同一代码上问了不同的问题。在这里,我面临的问题是连接立即关闭。大家好,我已经检查,并没有在互联网上得到太多。根据oracle文档,需要关闭上下文才能将其返回池中。但在我们的案例中,在关闭连接后,我们会看到没有连接达到最大限制“20”。在创建和使用后,连接会立即关闭。在1秒内。。。我分享了上面的日志…可能是重复的事实上,我在同一代码上问了不同的问题。在这里,我面临的问题是连接立即关闭。大家好,我已经检查,并没有在互联网上得到太多。根据oracle文档,需要关闭上下文才能将其返回池中。但在我们的案例中,在关闭连接后,我们会看到没有连接达到最大限制“20”。在创建和使用后,连接会立即关闭。在1秒内。。。我分享了上面的日志…可能是重复的事实上,我在同一代码上问了不同的问题。在这里,我面临的问题是连接立即关闭。大家好,我已经检查,并没有在互联网上得到太多。根据oracle文档,需要关闭上下文才能将其返回池中。但在我们的案例中,在关闭连接后,我们会看到没有连接达到最大限制“20”。在创建和使用后,连接会立即关闭。在1秒内。。。我分享了上面的日志…谢谢EJP,我明白你的意思了。我将关闭所有NamingUMeriments。还有一点需要澄清,我们正在NamingUMeriments上调用HasMoreElements(),如果我错了,请纠正我,如果NamingUMeriments没有更多的元素要返回,那么HasMoreElements()方法负责隐式关闭NamingEnumeration。支持引用:@RavinderKadian这是正确的。谢谢我可以通过明确关闭所有NamingeumeRationalHanks EJP来解决这个问题,我明白你们的意思了。我将关闭所有NamingUMeriments。还有一点需要澄清,我们正在NamingUMeriments上调用HasMoreElements(),如果我错了,请纠正我,如果NamingUMeriments没有更多的元素要返回,那么HasMoreElements()方法负责隐式关闭NamingEnumeration。支持引用:@RavinderKadian这是正确的。谢谢我可以通过明确关闭所有NamingeumeRationalHanks EJP来解决这个问题,我明白你们的意思了。我将关闭所有NamingUMeriments。还有一点需要澄清,我们正在NamingUMeriments上调用HasMoreElements(),如果我错了,请纠正我,如果NamingUMeriments没有更多的元素要返回,那么HasMoreElements()方法负责隐式关闭NamingEnumeration。支持引用:@RavinderKadian这是正确的。谢谢我可以通过明确关闭所有NamingeumeRationalHanks EJP来解决这个问题,我明白你们的意思了。我将关闭所有NamingUMeriments。还有一点需要澄清,我们正在NamingUMeriments上调用HasMoreElements(),如果我错了,请纠正我,如果NamingUMeriments没有更多的元素要返回,那么HasMoreElements()方法负责隐式关闭NamingEnumeration。支持引用:@RavinderKadian这是正确的。谢谢我可以通过明确关闭所有NamingEnumerations来解决问题
12:06:14,837 ERROR [stderr] (http-eul151.sgp.st.com-10.75.32.13-10080-22) Create and use com.sun.jndi.ldap.LdapClient@26a2a0eb[eun1p3-be.stp-prod.st.com:636]
12:06:16,855 ERROR [stderr] (http-eul151.sgp.st.com-10.75.32.13-10080-22) Close com.sun.jndi.ldap.LdapClient@26a2a0eb
12:06:18,301 ERROR [stderr] (http-eul151.sgp.st.com-10.75.32.13-10080-23) Create and use com.sun.jndi.ldap.LdapClient@76e26d4a[eun1p3-be.stp-prod.st.com:636]
12:06:20,353 ERROR [stderr] (http-eul151.sgp.st.com-10.75.32.13-10080-23) Close com.sun.jndi.ldap.LdapClient@76e26d4a
12:06:21,713 ERROR [stderr] (http-eul151.sgp.st.com-10.75.32.13-10080-19) Create and use com.sun.jndi.ldap.LdapClient@4bb50913[eun1p3-be.stp-prod.st.com:636]
12:06:23,746 ERROR [stderr] (http-eul151.sgp.st.com-10.75.32.13-10080-19) Close com.sun.jndi.ldap.LdapClient@4bb50913
12:06:25,366 ERROR [stderr] (http-eul151.sgp.st.com-10.75.32.13-10080-6) Create and use com.sun.jndi.ldap.LdapClient@2a2eecb7[eun1p3-be.stp-prod.st.com:636]
12:06:27,473 ERROR [stderr] (http-eul151.sgp.st.com-10.75.32.13-10080-6) Close com.sun.jndi.ldap.LdapClient@2a2eecb7
12:06:28,757 ERROR [stderr] (http-eul151.sgp.st.com-10.75.32.13-10080-25) Create and use com.sun.jndi.ldap.LdapClient@3c34b0d[eun1p3-be.stp-prod.st.com:636]
12:06:30,855 ERROR [stderr] (http-eul151.sgp.st.com-10.75.32.13-10080-25) Close com.sun.jndi.ldap.LdapClient@3c34b0d
12:06:32,214 ERROR [stderr] (http-eul151.sgp.st.com-10.75.32.13-10080-22) Create and use com.sun.jndi.ldap.LdapClient@6d9ca028[eun1p3-be.stp-prod.st.com:636]
12:06:34,294 ERROR [stderr] (http-eul151.sgp.st.com-10.75.32.13-10080-22) Close com.sun.jndi.ldap.LdapClient@6d9ca028
12:06:35,730 ERROR [stderr] (http-eul151.sgp.st.com-10.75.32.13-10080-23) Create and use com.sun.jndi.ldap.LdapClient@72ed6bb2[eun1p3-be.stp-prod.st.com:636]
12:06:37,753 ERROR [stderr] (http-eul151.sgp.st.com-10.75.32.13-10080-23) Close com.sun.jndi.ldap.LdapClient@72ed6bb2
12:06:39,184 ERROR [stderr] (http-eul151.sgp.st.com-10.75.32.13-10080-19) Create and use com.sun.jndi.ldap.LdapClient@e87ce30[eun1p3-be.stp-prod.st.com:636]
12:06:41,266 ERROR [stderr] (http-eul151.sgp.st.com-10.75.32.13-10080-19) Close com.sun.jndi.ldap.LdapClient@e87ce30