Ever wondered why you get the below error sporadically on loading Dekho..
Usually, refreshing the page once or twice makes the problem go away. But what causes this? Let me explain.
If you happen to look in the Dekho.log file, you will notice an error similar to –
ERROR au.com.esriau.dekho.auth.LdapAuthoriser – Exception while retrieving roles for user
org.springframework.ldap.ServiceUnavailableException: <LDAP Domain Name>:389; socket closed; nested exception is javax.naming.ServiceUnavailableException: <LDAP Domain Name>:389; socket closed; remaining name ‘/’
Research suggested that sometimes there can be issues with specific applications and LDAP. Here the issue seems to be how Tomcat and LDAP communicate.
This error only seems to arrive if there has been no traffic (i.e. login attempts to the LDAP Server) for some time. And is very difficult to trouble shoot as once it’s happened it won’t occur again for hours, maybe even a full day.
Further investigation showed that adding the below mentioned Tomcat Java parameters solves the issue.
Here is an example that sets the maximum pool size to 20, the preferred pool size to 10, and the idle timeout to 5 minutes for pooled connections.
Please note that this is just an example, and might require different values for different environments.