Link to home
Start Free TrialLog in
Avatar of askJava
askJava

asked on

Java heap size error

I have created a servlet to upload file. I am running tomcat 4.1.
When I upload the file which is about 100 mb, I got a Java heap space error which I believe created by execute jsp that trigger the servlet.

Can anyone help me where to increase the java heap size? Within the servlet or the tomcat?

Thanks


2006-05-18 07:43:12 WebappLoader[]: Deploying class repositories to work directory C:\Tomcat\work\Standalone\localhost\_
2006-05-18 07:43:12 WebappLoader[]: Deploy class files /WEB-INF/classes to c:\Tomcat\bin\..\webapps\abc\WEB-INF\classes
2006-05-18 07:43:12 WebappLoader[]: Deploy JAR /WEB-INF/lib/jt400Native.jar to c:\Tomcat\bin\..\webapps\abc\WEB-INF\lib\jt400Native.jar
2006-05-18 07:43:12 WebappLoader[]: Deploy JAR /WEB-INF/lib/mail.jar to c:\Tomcat\bin\..\webapps\abc\WEB-INF\lib\mail.jar
2006-05-18 07:43:12 WebappLoader[]: Deploy JAR /WEB-INF/lib/ojdbc14.jar to c:\Tomcat\bin\..\webapps\abc\WEB-INF\lib\ojdbc14.jar
2006-05-18 07:43:12 WebappLoader[]: Deploy JAR /WEB-INF/lib/abc.jar to c:\Tomcat\bin\..\webapps\abc\WEB-INF\lib\abc.jar
2006-05-18 07:43:12 WebappLoader[]: Reloading checks are enabled for this Context
2006-05-18 07:43:13 StandardManager[]: Seeding random number generator class java.security.SecureRandom
2006-05-18 07:43:13 StandardManager[]: Seeding of random number generator has been completed
2006-05-18 07:43:13 StandardWrapper[:default]: Loading container servlet default
2006-05-18 07:43:13 StandardWrapper[:invoker]: Loading container servlet invoker
2006-05-18 07:44:06 StandardWrapperValve[MyMediaServlet]: Servlet.service() for servlet MyServlet threw exception
javax.servlet.ServletException: Servlet execution threw an exception
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:222)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:146)
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:209)
      at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
      at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
      at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:144)
      at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
      at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
      at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
      at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2358)
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:133)
      at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
      at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:118)
      at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:116)
      at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
      at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
      at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:127)
      at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
      at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
      at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
      at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:152)
      at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
      at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
      at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
      at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
      at java.lang.Thread.run(Thread.java:595)
----- Root Cause -----
java.lang.OutOfMemoryError: Java heap space

2006-05-18 07:45:25 WebappLoader[]: Deploying class repositories to work directory C:\Tomcat\work\Standalone\localhost\_
2006-05-18 07:45:25 WebappLoader[]: Deploy class files /WEB-INF/classes to c:\Tomcat\bin\..\webapps\abc\WEB-INF\classes
2006-05-18 07:45:25 WebappLoader[]: Deploy JAR /WEB-INF/lib/jt400Native.jar to c:\Tomcat\bin\..\webapps\abc\WEB-INF\lib\jt400Native.jar
2006-05-18 07:45:25 WebappLoader[]: Deploy JAR /WEB-INF/lib/mail.jar to c:\Tomcat\bin\..\webapps\abc\WEB-INF\lib\mail.jar
2006-05-18 07:45:25 WebappLoader[]: Deploy JAR /WEB-INF/lib/ojdbc14.jar to c:\Tomcat\bin\..\webapps\abc\WEB-INF\lib\ojdbc14.jar
2006-05-18 07:45:25 WebappLoader[]: Deploy JAR /WEB-INF/lib/abc.jar to c:\Tomcat\bin\..\webapps\abc\WEB-INF\lib\abc.jar
2006-05-18 07:45:25 WebappLoader[]: Reloading checks are enabled for this Context
2006-05-18 07:45:26 StandardManager[]: Seeding random number generator class java.security.SecureRandom
2006-05-18 07:45:26 StandardManager[]: Seeding of random number generator has been completed
2006-05-18 07:45:26 StandardWrapper[:default]: Loading container servlet default
2006-05-18 07:45:26 StandardWrapper[:invoker]: Loading container servlet invoker
2006-05-18 07:46:07 StandardWrapperValve[MyServlet]: Servlet.service() for servlet MyServlet threw exception
Avatar of hoomanv
hoomanv
Flag of Canada image

http://web.bvu.edu/staff/david/index.jsp?section=software&subsection=tcservcfg&page=detailed_howto
this program claims to be able to set init heap size for tomcat
ASKER CERTIFIED SOLUTION
Avatar of hoomanv
hoomanv
Flag of Canada image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of askJava
askJava

ASKER

Yes I did that b4 the posting. But it didn't fix the problem. I am upload 100mb of ASCI data file to process on the server. I tested the program on Windows b4 moving to UNIX box. On the Windows, I notice the PF usage went all the way up to 1.3 Gig for IE. But when I use Firefox to trigger the program, it only stay around 800 mb. The memory usuage is about 700 mb. To transfer 100mb of data, it needs about 700 mb of memory and 1.3 Gig of PF (Page file)? Also, I notice, the PF stay unchange until I kill the tomcat. Why?

The problem is the data file we receive might be 100 mb or can be 300 mb. It seems like we might have to increase the tomcat heap size to like 1024 or more just to make sure we are on the safe side? It doesn't make any sense?

Thanks.