Was there a heapdump generated? If so, did you look at it to see what is
taking up all of the memory?

On Mon, May 3, 2010 at 6:42 PM, ssso <[email protected]> wrote:

>
> I have a very simple spring web app, inserting an order into the database.
>
> After pounding 500+ threads or so, I got an OutOfMemoryError:
>
> java.lang.OutOfMemoryError: unable to create new native thread
>        at java.lang.Thread.start0(Native Method)
>        at java.lang.Thread.start(Thread.java:597)
>        at
>
> java.util.concurrent.ThreadPoolExecutor.addIfUnderCorePoolSize(ThreadPoolExecutor.java:703)
>        at
>
> java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:652)
>        at
>
> java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:92)
>        at
>
> org.apache.openjpa.slice.jdbc.DistributedJDBCStoreManager.flush(DistributedJDBCStoreManager.java:290)
>        at
>
> org.apache.openjpa.kernel.DelegatingStoreManager.flush(DelegatingStoreManager.java:131)
>        at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:2139)
>        at
> org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:2037)
>        at
> org.apache.openjpa.kernel.BrokerImpl.beforeCompletion(BrokerImpl.java:1955)
>        at
>
> org.apache.openjpa.kernel.LocalManagedRuntime.commit(LocalManagedRuntime.java:81)
>        at org.apache.openjpa.kernel.BrokerImpl.commit(BrokerImpl.java:1479)
>        at
>
> org.apache.openjpa.kernel.DelegatingBroker.commit(DelegatingBroker.java:925)
>        at
>
> org.apache.openjpa.persistence.EntityManagerImpl.commit(EntityManagerImpl.java:559)
>        at
>
> org.springframework.orm.jpa.JpaTransactionManager.doCommit(JpaTransactionManager.java:467)
>        at
>
> org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:754)
>        at
>
> org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:723)
>        at
>
> org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:375)
>        at
>
> org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:120)
>        at
>
> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
>        at
>
> org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
>        at $Proxy17.merge(Unknown Source)
>        at
>
> com.shutterfly.sfweb.InsertController.handleRequest(InsertController.java:45)
>        at
>
> org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
>        at
>
> org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:771)
>        at
>
> org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:716)
>        at
>
> org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
>        at
>
> org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549)
>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
>        at
>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>
>
> My question about the DistributedJDBCStoreManager.flush().  Does it really
> have to create a thread pool every single time a row is committed?  Also,
> from the profiler it seems like the threads in the pool are not necessarily
> used.
>
> Thanks,
> Simon
>
> --
> View this message in context:
> http://openjpa.208410.n2.nabble.com/Slice-OutOfMemoryError-shortly-after-pounding-1000-threads-to-the-system-tp5000822p5000822.html
> Sent from the OpenJPA Users mailing list archive at Nabble.com.
>



-- 
Thanks,
Rick

Reply via email to