It's a bit unusual to run out of PermGen space after a while like this, but
if you're very close to the limit to start with, it's still within the realm
of the possible.   Try increasing the PermGen space limit by, say, 25-50%
and see if the problem reoccurs.   There's no dynamic class loading in Ode
so I'd be surprised if there was a class leak, although even the use of
regular Java Strings have been known to cause
leaks<http://bugs.sun.com/bugdatabase/view_bug.do;jsessionid=1cf84381aec1d4c1375a060ca38b?bug_id=4513622>too.

alex


On Wed, Mar 18, 2009 at 6:20 PM, Andi Abes <[email protected]> wrote:

> I got a bunch of these out of memory exceptions (ODE 1.2, tomcat, Linux,
> Hiberate, Oracle). The surprising part is that these occurred only after
> ther server was running happily for a while.As far as I know, PermGen
> space is only used for the actual class definitions, and I'd expect that
> after some stabilization time after startup (and I'm not deploying
> anything new into the engine), then PermGen usage should be stable.
>
> Are there dynamic classes being generated?
>
>
>
>
>
> FATAL - GeronimoLog.fatal(120) | InternalError: BpelEvent serialization
> failed.
>
> java.lang.OutOfMemoryError: PermGen space
>
>        at java.lang.Class.getDeclaredMethods0(Native Method)
>
>        at java.lang.Class.privateGetDeclaredMethods(Class.java:2395)
>
>        at java.lang.Class.getDeclaredMethod(Class.java:1907)
>
>        at
> java.io.ObjectStreamClass.getPrivateMethod(ObjectStreamClass.java:1354)
>
>        at
> java.io.ObjectStreamClass.access$1700(ObjectStreamClass.java:52)
>
>        at java.io.ObjectStreamClass$2.run(ObjectStreamClass.java:421)
>
>        at java.security.AccessController.doPrivileged(Native Method)
>
>        at java.io.ObjectStreamClass.<init>(ObjectStreamClass.java:400)
>
>        at java.io.ObjectStreamClass.lookup(ObjectStreamClass.java:297)
>
>        at java.io.ObjectStreamClass.<init>(ObjectStreamClass.java:396)
>
>        at java.io.ObjectStreamClass.lookup(ObjectStreamClass.java:297)
>
>        at java.io.ObjectStreamClass.<init>(ObjectStreamClass.java:396)
>
>        at java.io.ObjectStreamClass.lookup(ObjectStreamClass.java:297)
>
>        at
> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1035)
>
>        at
> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:13
> 75)
>
>        at
> java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:39
> 1)
>
>        at org.apache.xerces.dom.NodeImpl.writeObject(Unknown Source)
>
>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>
>        at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.jav
> a:39)
>
>        at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor
> Impl.java:25)
>
>        at java.lang.reflect.Method.invoke(Method.java:585)
>
>        at
> java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:917)
>
>        at
> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1339)
>
>        at
> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1
> 290)
>
>        at
> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079)
>
>        at
> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:13
> 75)
>
>        at
> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1347)
>
>        at
> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1
> 290)
>
>        at
> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079)
>
>        at
> java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:302)
>
>        at
> org.apache.ode.daohib.bpel.BpelDAOConnectionImpl._insertBpelEvent(BpelDA
> OConnectionImpl.java:179)
>
>        at
> org.apache.ode.daohib.bpel.ProcessInstanceDaoImpl.insertBpelEvent(Proces
> sInstanceDaoImpl.java:306)
>
>
>
>
>
> ERROR - GeronimoLog.error(108) | Error while processing transaction,
> retrying.
>
> org.apache.ode.bpel.iapi.Scheduler$JobProcessorException:
> java.lang.RuntimeException: java.lang.OutOfMemoryError: PermGen space
>
>        at
> org.apache.ode.bpel.engine.BpelEngineImpl.onScheduledJob(BpelEngineImpl.
> java:336)
>
>        at
> org.apache.ode.bpel.engine.BpelServerImpl.onScheduledJob(BpelServerImpl.
> java:373)
>
>        at
> org.apache.ode.scheduler.simple.SimpleScheduler$4$1.call(SimpleScheduler
> .java:337)
>
>        at
> org.apache.ode.scheduler.simple.SimpleScheduler$4$1.call(SimpleScheduler
> .java:336)
>
>        at
> org.apache.ode.scheduler.simple.SimpleScheduler.execTransaction(SimpleSc
> heduler.java:174)
>
>        at
> org.apache.ode.scheduler.simple.SimpleScheduler$4.call(SimpleScheduler.j
> ava:335)
>
>        at
> org.apache.ode.scheduler.simple.SimpleScheduler$4.call(SimpleScheduler.j
> ava:332)
>
>        at
> java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:269)
>
>        at java.util.concurrent.FutureTask.run(FutureTask.java:123)
>
>        at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecuto
> r.java:650)
>
>        at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.ja
> va:675)
>
>        at java.lang.Thread.run(Thread.java:595)
>
> Caused by: java.lang.RuntimeException: java.lang.OutOfMemoryError:
> PermGen space
>
>        at
> org.apache.ode.jacob.vpu.JacobVPU$JacobThreadImpl.run(JacobVPU.java:464)
>
>        at org.apache.ode.jacob.vpu.JacobVPU.execute(JacobVPU.java:139)
>
>        at
> org.apache.ode.bpel.engine.BpelRuntimeContextImpl.execute(BpelRuntimeCon
> textImpl.java:835)
>
>        at
> org.apache.ode.bpel.engine.PartnerLinkMyRoleImpl.invokeNewInstance(Partn
> erLinkMyRoleImpl.java:197)
>
>        at
> org.apache.ode.bpel.engine.BpelProcess.invokeProcess(BpelProcess.java:20
> 4)
>
>        at
> org.apache.ode.bpel.engine.BpelProcess.handleWorkEvent(BpelProcess.java:
> 372)
>
>        at
> org.apache.ode.bpel.engine.BpelEngineImpl.onScheduledJob(BpelEngineImpl.
> java:326)
>
>        ... 11 more
>
> Caused by: java.lang.OutOfMemoryError: PermGen space
>
>        at java.lang.ClassLoader.defineClass1(Native Method)
>
>        at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
>
>        at
> java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
>
>        at
> org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappCla
> ssLoader.java:1847)
>
>        at
> org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader
> .java:890)
>
>        at
> org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader
> .java:1354)
>
>        at
> org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader
> .java:1233)
>
>        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
>
>        at
> org.hibernate.exception.NestableDelegate.printStackTrace(NestableDelegat
> e.java:325)
>
>        at
> org.hibernate.exception.NestableRuntimeException.printStackTrace(Nestabl
> eRuntimeException.java:195)
>
>        at
> org.apache.log4j.spi.ThrowableInformation.getThrowableStrRep(ThrowableIn
> formation.java:59)
>
>        at
> org.apache.log4j.spi.LoggingEvent.getThrowableStrRep(LoggingEvent.java:3
> 42)
>
>        at
> org.apache.log4j.WriterAppender.subAppend(WriterAppender.java:304)
>
>        at
> org.apache.log4j.WriterAppender.append(WriterAppender.java:159)
>
>        at
> org.apache.log4j.AppenderSkeleton.doAppend(AppenderSkeleton.java:230)
>
>        at
> org.apache.log4j.helpers.AppenderAttachableImpl.appendLoopOnAppenders(Ap
> penderAttachableImpl.java:65)
>
>        at org.apache.log4j.Category.callAppenders(Category.java:203)
>
>        at org.apache.log4j.Category.forcedLog(Category.java:388)
>
>        at org.apache.log4j.Category.log(Category.java:853)
>
>        at
> org.apache.commons.logging.impl.Log4JLogger.error(Log4JLogger.java:251)
>
>        at
> org.apache.geronimo.kernel.log.GeronimoLog.error(GeronimoLog.java:108)
>
>        at
> org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(
> AbstractFlushingEventListener.java:301)
>
>        at
> org.hibernate.event.def.DefaultAutoFlushEventListener.onAutoFlush(Defaul
> tAutoFlushEventListener.java:41)
>
>        at
> org.hibernate.impl.SessionImpl.autoFlushIfRequired(SessionImpl.java:969)
>
>        at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1114)
>
>        at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
>
>        at
> org.apache.ode.daohib.bpel.ScopeDaoImpl.getVariable(ScopeDaoImpl.java:13
> 1)
>
>        at
> org.apache.ode.bpel.engine.BpelRuntimeContextImpl.readVariable(BpelRunti
> meContextImpl.java:487)
>
>        at
> org.apache.ode.bpel.runtime.ScopeFrame.fetchVariableData(ScopeFrame.java
> :198)
>
>        at
> org.apache.ode.bpel.runtime.ACTIVITY.fetchVariableData(ACTIVITY.java:154
> )
>
>        at
> org.apache.ode.bpel.runtime.INVOKE.setupOutbound(INVOKE.java:211)
>
>        at org.apache.ode.bpel.runtime.INVOKE.run(INVOKE.java:72)
>
>
>
>

Reply via email to