Правильная настройка схемы независимой проверки healtcheck для несвязанного LDAP SK

Мои коллеги, поддерживающие нашу инфраструктуру LDAP, обратились ко мне сегодня, потому что мое приложение на основе UnboundID LDAP SDK установило слишком много соединений, хотя я использовал пул соединений. Саму проблему было довольно легко решить, потому что я установил неверное значение для возраста соединения, теперь я установил его на бесконечность.

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

Я спросил себя, какая проверка здоровья запускает SDK и pool.getHealthCheck() сказал мне, что это com.unboundid.ldap.sdk.LDAPConnectionPoolHealthCheck которая - если я правильно понимаю документы - в основном является реализацией "по умолчанию", которая возвращает успех для всех проверок работоспособности.

Я видел, что SDK предлагает эти подклассы:

  • AggregateLDAPConnectionPoolHealthCheck
  • GetEntryLDAPConnectionPoolHealthCheck
  • PasswordExpirationLDAPConnectionPoolHealthCheck
  • PruneUnneededConnectionsLDAPConnectionPoolHealthCheck
  • ReportBindResultLDAPConnectionPoolHealthCheck

Но ни один из них, кажется, не делает низкого уровня и не выполняет общую проверку. Они либо специфичны для определенных серверов LDAP (ReportBindResultLDAPConnectionPoolHealthCheck), делать дополнительные вещи (PruneUnneededConnectionsLDAPConnectionPoolHealthCheck) или зависеть от определенной схемы LDAP (GetEntryLDAPConnectionPoolHealthCheck). Я ищу что-то общее SELECT 1 FROM DUAL будет делать на сервере Oracle SQL и работает на всех LDAP.

Я даже спросил себя, могу ли я придерживаться стандартной проверки работоспособности, увеличить интервал проверки работоспособности и полагаться исключительно на триггеры проверки SDK, когда он использует соединение в пуле.

0 ответов

Другие вопросы по тегам