正确设置无边界LDAP SK的与方案无关的healtcheck,

时间:2019-01-03 16:40:26

标签: ldap unboundid-ldap-sdk unboundid

我支持我们LDAP基础结构的同事今天来找我,因为尽管我使用了连接池,但基于UnboundID LDAP SDK的应用程序建立了太多的连接。该问题本身很容易解决,因为我为连接期限设置了错误的值,现在我将其设置为无限。

pool.setMaxConnectionAgeMillis(0);
pool.setMaxDefunctReplacementConnectionAgeMillis(null);
pool.setMaxWaitTimeMillis(3000L);
pool.setHealthCheckIntervalMillis(10000L);

我问自己,SDK触发了哪些运行状况检查,pool.getHealthCheck()告诉我com.unboundid.ldap.sdk.LDAPConnectionPoolHealthCheck,如果我正确理解docs,基本上是“默认为true”实现返回所有健康检查的成功。

我已经看到SDK提供了以下子类:

  • AggregateLDAPConnectionPoolHealthCheck
  • GetEntryLDAPConnectionPoolHealthCheck
  • PasswordExpirationLDAPConnectionPoolHealthCheck
  • PruneUnneededConnectionsLDAPConnectionPoolHealthCheck
  • ReportBindResultLDAPConnectionPoolHealthCheck

但是它们似乎都没有进行低级通用检查。它们要么特定于某些LDAP服务器(ReportBindResultLDAPConnectionPoolHealthCheck),要么做其他事情(PruneUnneededConnectionsLDAPConnectionPoolHealthCheck),要么依赖于特定的LDAP方案(GetEntryLDAPConnectionPoolHealthCheck)。 我正在寻找的是一种类似SELECT 1 FROM DUAL的通用名称,它将在Oracle SQL服务器上执行并且可在所有LDAP上使用。

我什至问我自己是否可以坚持默认的运行状况检查,延长运行状况检查间隔并仅依靠SDK使用池化连接时触发的检查。

0 个答案:

没有答案