我正在使用Spring LDAP应用程序,我没有完成LDAP工作的设置,但现在我需要添加故障转移功能。
我们为ContextSource提供了两个空格分隔的URL:
String theseUrls = primaryLdapUrl + " " + secondaryLdapUrl;
environment.put("java.naming.provider.url", theseUrls);
ilc = new InitialLdapContext(environment, null);
如果主URL正常运行,则它会连接到该URL。如果没有,它连接到二级就好了。然后汇集连接,但是我无法弄清楚确切的机制。但是,实际上,如果已建立的连接断开,那么整个应用程序就会陷入困境。
有没有办法禁用池,或为它创建一个短暂的超时?我做了一些研究,但找不到对我有用的精确机制(包括尝试调用setPooled(false))。理想情况下,仅在第一个服务器关闭时才查询辅助服务器。当第一个恢复时,它将返回到那个。
注意:此网址(http://forum.spring.io/forum/spring-projects/data/ldap/34643-switching-ldap-contexts-for-failover)给了我很多想法,但我无法正常工作。