I have a production issue. On each of my 4 servers I have 40 applications with between 40 and 100 calls. The RAM used by Tomcat is growing and reach 1 GB. I disable activity log. I have answer from the TAC to look into my code. I try to analyse heap dump from Tomcat and
the class com.audium.server.controller.AudiumServerConfiguration is at the top of dominator tree. I think that my code is not optimized. I never release variables with [name of the variable] = null to help the garbage collector. Is it a good things to do ? Or other things to do ?
The number of calls is not much, but likely that that there is an application issue. You may want to run Jprofiler on your code. What are your jvm setting ? Also one option if possible is to split the apps between 4 servers and provide vxml treatment on 2 servers for one set of apps and on other 2 servers for another set of apps. This may help isolate which set of apps are giving issues. This of course may need some config changes. You can still do the call server treatment on all 4 vxml servers.
Another option might be to just increase the memory allocation for tomcat. Cisco TAC detailed this for me previously when a simpfic application was using a lot of memory and there is lots of info on the internet on how to do this. Since you have a TAC case open, its best to go with the Cisco route as its more supported.
i.e. increase memory to 1.5 and see how you go, but that does not mean you should not also review and profile your app as detailed above.
(As it turned out my memory issue's the root cause was not the application, (which didn't use custom java) but was caused by the CVP VXML SOAP node, which caused a memory leak and would kill the server after X calls. Cisco eventually fixed it.