[ 
https://issues.apache.org/jira/browse/CXF-4313?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Daniel Kulp resolved CXF-4313.
------------------------------

       Resolution: Fixed
    Fix Version/s: 2.3.11
                   2.4.8
                   2.5.4
                   2.6.1
         Assignee: Daniel Kulp


Added some flags/hooks in there to be able to turn off each hack (or turn off 
all of them).

                
> Hourly GC Caused by Framework - Unable to GC tune application if using 
> framework.
> ---------------------------------------------------------------------------------
>
>                 Key: CXF-4313
>                 URL: https://issues.apache.org/jira/browse/CXF-4313
>             Project: CXF
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 2.5
>            Reporter: Michael André Pearce
>            Assignee: Daniel Kulp
>             Fix For: 2.6.1, 2.5.4, 2.4.8, 2.3.11
>
>
> After looking into why our application GC tuning wasn't working/taking any 
> effect and full gc continued to occur every hour, and saw from the GC logs 
> that System.GC was being called, traced it down to our use of CXF framework, 
> where we are using it for HTTP WS-SOAP Service calls.
> Seems that the following is being set code-ally by the JDKBugHacks, looking 
> through the code history seems this got added on the 28th Feb 2011.
> From the comments it seems this has been added due to RMI. Not 100% sure why 
> you're wanting to codally override RMI setting this up (especially as in jdk 
> 6 + it by default is the same value 1 hour) and it is well documented for 
> developers who want to tweek their application (especially if they're on 
> earlier java versions) with regards to GC how to change this setting using 
> the following two jvm switches to change the interval anyhow.
>  
> -Dsun.rmi.dgc.server.gcInterval
> -Dsun.rmi.dgc.client.gcInterval
> And can actually turn off completely by setting it to 0x7ffffffffffffffe but 
> that is by the by.
> The issues i have is that as a user of the framework,  
> a) i am unable to turn off the hard coding by any feature flag, and this 
> affects my gc turning of my application.
> b) If a user is using CXF with no RMI why set this up? Only setup if using 
> RMI if it is really need so that it doesnt effect users of the framework 
> using it for http service calls.
> I take it that these "hacks" are influenced heavily from tomcat,  but this is 
> because of its servlet hot deployable class loading features.  Even so for 
> that tomcat do allow two options to disable this feature if you wish, i.e. u 
> don't want hot deploy to tomcat thus not worried about this leak prevention 
> with the class loader and you want to fine tune your applications gc for the 
> applications requirements and SLA. They provide the following nice features:
>  Configure to not add the gcDaemonProtection
> <Listener 
> className="org.apache.catalina.core.JreMemoryLeakPreventionListener" 
> gcDaemonProtection="false"/>
>  And the ability to Disable the listener altogether
> Code in question in the JDKBugHacks class.
>                // Several components end up calling:
>                // sun.misc.GC.requestLatency(long)
>                //
>                // Those libraries / components known to trigger memory leaks 
> due to
>                // eventual calls to requestLatency(long) are:
>                // - javax.management.remote.rmi.RMIConnectorServer.start()
>                try {
>                    Class<?> clazz = Class.forName("sun.misc.GC");
>                    Method method = clazz.getDeclaredMethod("requestLatency",
>                            new Class[] {Long.TYPE});
>                    method.invoke(null, Long.valueOf(3600000));
>                } catch (Throwable e) {
>                    //ignore
>                }

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira


Reply via email to