Звучит как проблема с пулом соединений.Предполагая, что у вашей службы есть выделенный принципал, который использует постоянное соединение (например, для поиска пользователей), тогда он может пытаться выполнить запросы на устаревшем соединении.Если пул не был настроен для регулярной проверки этих соединений, то он может полагаться исключительно на тайм-ауты для определения необходимости восстановления соединения.
Spring LDAP поддерживает пул Apache Commons Pool, который имеет встроенное соединениепараметры конфигурации проверки и обслуживания (см. раздел 9.1 в справочных документах).Включение опций testOnBorrow
и testWhileIdle
в пулированном ContextSource, как правило, помогает избавиться от устаревших соединений с минимальной конфигурацией.Если вы используете пул, рассмотрите возможность обновления до весеннего ldap 2.1+, если это возможно, что вводит поддержку Apache Commons Pool 2 .
Сервер LDAP также будет иметь свои собственные настройки времени ожидания, в которых онсбрасывает свой конец соединения после определенного периода простоя.Любые соединения, созданные вашей службой, должны иметь время простоя, которое меньше времени простоя на стороне сервера LDAP.Это упреждающе прервет незанятые соединения перед истечением времени ожидания сервера LDAP, заставив установить новое соединение в следующий раз, когда соответствующему участнику потребуется установить связь с сервером LDAP.