I have been looking at a situation where most of our webMethod Integration Servers are performing a full GC every hour. While most are doing this, some are not. I have identical IS servers in the same IS cluster, sharing the same workload, and 1 may be doing the full GCs every hour, the other is not. This is happening on webMethods 9.6 with java 1.7 and webMethods 9.9 with Java 1.8.
These GC’s are happening every hour, and are in no way related to load on the system or memory available. It can happen on idle servers, along with production servers with high utilization.
If the hourly GCs are happening, I can prevent them with this option:
wrapper.java.additional.214=-Xdisableexplicitgc
If the hourly GCs are happening, I can control the interval with with these options:
wrapper.java.additional.214=-Dsun.rmi.dgc.client.gcInterval=360000
wrapper.java.additional.215=-Dsun.rmi.dgc.server.gcInterval=360000
If the hourly GCs are NOT happening, I can not force them to happen.
My Integration Servers are running on AIX 6.1 and 7.1. SoftwareAG has seen the hourly GC’s on their test systems running on Windows.
My question here is why is the full GC’s which are related to RMI not consistent. We can’t be having production IS servers behaving differently in this regard. Anyone have any information on this, or want to share their own research, I would appreciate it.
Here are some articles on the topic.
https://www.jclarity.com/2015/01/27/rmi-system-gc-unplugged/
https://coderanch.com/t/507068/java/Forcing-Full-GC
http://www-01.ibm.com/support/docview.wss?uid=swg21173431
Thanks,
Dave
#webMethods#Integration-Server-and-ESB