hello,
I have 2 RHEL 5.11 servers that run
tomcat application. Both of them are running the application but only one of them is acting as the "live" server.
There is a firewall responsible to redirect the user connections depending on which server is the active one. When the firewall decides that something is wrong with the active server (ex. timeout in network communication) then redirects the packages to the other server which is now acting as the "live" one.
The problem is that when this failover occurs even though in the firewall all connections are cleared from the first server, i can see that when i login to the linux server connections are still "established" on the application port. These connections are only cleared when i stop and start tomcat.
When i stop tomcat i can see these messages in catalina.out:
Dec 15, 2015 2:14:46 PM org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks
SEVERE: The web application [/xxxapp] created a ThreadLocal with key of type [org.apache.xmlbeans.XmlBeans$1] (value [org.apache.xmlbeans.XmlBeans$1@1584b8d]) and a value of type [java.lang.ref.SoftReference] (value [java.lang.ref.SoftReference@1f8183b]) but failed to remove it when the web application was stopped. This is very likely to create a memory leak.
Dec 15, 2015 2:14:46 PM org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks
SEVERE: The web application [/xxxapp] created a ThreadLocal with key of type [com.arcot.core.util.PerfCountersPerThread$2] (value [com.arcot.core.util.PerfCountersPerThread$2@2d2d8c]) and a value of type [java.util.HashMap] (value [{authentication.=com.arcot.core.util.PerfCounters@fee424, issuance.=com.arcot.core.util.PerfCounters@342b49}]) but failed to remove it when the web application was stopped. This is very likely to create a memory leak.
Is there a way to clear these connections without restarting tomcat application?
Thank you.