Websphere应用程序服务器LDAP连接池

时间:2017-06-09 15:07:22

标签: ldap websphere connection-pooling websphere-8

我们正在使用websphere应用服务器8.5.0.0。我们有一个要求,我们必须查询LDAP服务器以获取客户详细信息。我尝试按照herehere所述配置连接池。

我传递了以下JVM参数

-Dcom.sun.jndi.ldap.connect.pool.maxsize=5
-Dcom.sun.jndi.ldap.connect.pool.timeout=60000
-Dcom.sun.jndi.ldap.connect.pool.debug=all

以下是示例代码段

Hashtable<String,String> env = new Hashtable<String,String>();
...
...
env.put("com.sun.jndi.ldap.connect.pool", "true");
env.put("com.sun.jndi.ldap.connect.timeout", "5000");
InitialDirContext c = new InitialDirContext(env);
...
...
c.close();

我这里有两个问题

  1. 当我第6次调用该服务时,我收到javax.naming.ConnectionException:等待连接时超时超时:5000ms。我检查了连接池调试日志,我注意到尽管在finally块中安全地关闭了上下文,但连接并没有立即返回到池中。连接在一段时间后释放,并在发布后的某个时间后过期。如果我再次调用该服务,它将连接到LDAP服务器,但正在创建新连接。

  2. 我尝试执行代码,我能够看到连接池调试日志。但是日志记录在System.Err日志中。这是一个问题吗?我可以忽略它吗?

  3. 但是当我将代码作为独立应用程序运行(多线程循环50次)时,会立即返回/释放连接。

    任何人都可以让我知道我做错了什么?

0 个答案:

没有答案