java.lang.OutOfMemoryError:GC overhead limit exceeded

Error log:
java.lang.OutOfMemoryError:GC overhead limit exceeded
at java.lang.String.replace(String.java:2021)
at weblogic.utils.classloaders.CodeGenClassFinder.getClassSource(CodeGenClassFinder.java:24)
at weblogic.utils.classloaders.ChangeAwareClassLoader.upToDate(ChangeAwareClassLoader.java:107)
at weblogic.servlet.internal.FilterWrapper.needToReload(FilterWrapper.java:120)
at weblogic.servlet.internal.FilterWrapper.checkForReload(FilterWrapper.java:101)
at weblogic.servlet.internal.FilterWrapper.getFilter(FilterWrapper.java:41)
at weblogic.servlet.internal.FilterChainImpl.add(FilterChainImpl.java:35)
at weblogic.servlet.internal.FilterManager.getFilterChain(FilterManager.java:255)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3727)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3696)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2273)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2179)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1490)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)
 SUBSYSTEM = HTTP USERID = SEVERITY = Error THREAD = [ACTIVE] ExecuteThread: '11' for queue: 'weblogic.kernel.Default (self-tuning)' MSGID = BEA-101020 MACHINE = cdcjp62.**.oracle.** TXID =  CONTEXTID = 0124868f65b997e9:-6942af24:13fadf1d49d:-8000-0000000000001714 TIMESTAMP = 1373067991979
WatchAlarmType: AutomaticReset
WatchAlarmResetPeriod: 30000

Root Cause:
This issue is seen with all version of WLS 10.3 and above when running with JDK1.6 with all fix packs.
java.lang.OutOfMemoryError:GC overhead limit exceeded -
Indicates that due to some reasons the garbage collection is taking an excesive amount of time.
Parallel collector will throw java.lang.OutOfMemory if much time is spent on GC. If more than 98% of time is spend in GC and less than 2% of hep is recovered an java.lang.OutOfMemoryError is thrown

Solution: (Workaround)
This java.lang.OutOfMemoryError:GC overhead limit exceeded can be avoided  by diadabling  the GC overhed feature in JDK 1.6 by using this argument to start scripts
-XX:-UseGCOverheadLimit.

转载于:https://www.cnblogs.com/lzhairs/p/3322073.html

你可能感兴趣的:(java)