FAQ

[Tomcat-users] OutOfMemory - Set Java Heap Size?

Max Hugen
Aug 25, 2001 at 3:04 am
I run Linux/Apache/Tomcat plus Oracle on a server with 512Mb of memory. I
have successfully implemented a couple of Internet applications using JSP,
Servlets (plus Oracle) etc.

For each application (and client) I start a new Tomcat session, using a
custom server.xml for each one. All was ok, until I tried increasing Tomcat
sessions from 6 to 7, then I received the java.lang.OutOfMemoryError when
starting the Tomcat sessions.

I've read through many of the posts on this subject, some of which suggest
to increase the "heap" size. Unfortunately, I'm a newbie to Java (and Linux
and JSP and Oracle <g>) so I don't know how to either check this heap size,
nor how to permanently set it to a value via a script using a switch
like -Xms256m.

The script I use to start Tomcat follows, plus the console output. Could
anyone advise how to set the heap please?


Many thanks,

Max Hugen maxhugen@hugen.com.au
Hugen Enterprises Pty Ltd, Sydney, Australia
www.hugen.com.au
Internet Application Developers
Script Start>>>>>>>>
echo "~~~~~~~~Tomcat Startup ~~~~~~~~~~~~~"
echo "Start an instance of Tomcat for hugen"
/usr/local/tomcat/bin/startup.sh -f /usr/local/tomcat/conf/server_he.xml
echo "Start an instance of Tomcat for yass3i"
/usr/local/tomcat/bin/startup.sh -f /usr/local/tomcat/conf/server_yass3i.xml
echo "Start an instance of Tomcat for isp"
/usr/local/tomcat/bin/startup.sh -f /usr/local/tomcat/conf/server_isp.xml
echo "Start an instance of Tomcat for im2000i"
/usr/local/tomcat/bin/startup.sh -f
/usr/local/tomcat/conf/server_im2000i.xml
echo "Start an instance of Tomcat for secure"
/usr/local/tomcat/bin/startup.sh -f /usr/local/tomcat/conf/server_secure.xml
echo "Start an instance of Tomcat for aedo"
/usr/local/tomcat/bin/startup.sh -f /usr/local/tomcat/conf/server_aedo.xml
echo "Start an instance of Tomcat for ncap"
/usr/local/tomcat/bin/startup.sh -f /usr/local/tomcat/conf/server_ncap.xml
# Give Tomcat time to start before restarting Apache.
echo "Waiting 45 secs..."
sleep 45
# Restart Apache to register Tomcat properly.
echo "Restart Apache"
/etc/rc.d/init.d/httpd stop
/etc/rc.d/init.d/httpd start
sleep 2
echo "Ok, we should be in business!"
Script End>>>>>>>>
Console Output Start>>>>>>>>
Starting tomcat. Check logs/tomcat.log for error messages
Starting tomcat. Check logs/tomcat.log for error messages
Starting tomcat. Check logs/tomcat.log for error messages
Starting tomcat. Check logs/tomcat.log for error messages
Starting tomcat. Check logs/tomcat.log for error messages
Starting tomcat. Check logs/tomcat.log for error messages
Starting tomcat. Check logs/tomcat.log for error messages

Restart Apache

Exception in thread "main" java.lang.OutOfMemoryError: unable to create new
native thread
at java.lang.Thread.start(Native Method)
at
org.apache.tomcat.util.ThreadPool$ControlRunnable.<init>(ThreadPool.java:465
)
at
org.apache.tomcat.util.ThreadPool.openThreads(ThreadPool.java:360)
at org.apache.tomcat.util.ThreadPool.start(ThreadPool.java:148)
at
org.apache.tomcat.service.PoolTcpEndpoint.startEndpoint(PoolTcpEndpoint.java
:245)
at
org.apache.tomcat.service.PoolTcpConnector.start(PoolTcpConnector.java:188)
at
org.apache.tomcat.core.ContextManager.start(ContextManager.java:527)
at org.apache.tomcat.startup.Tomcat.execute(Tomcat.java:202)
at org.apache.tomcat.startup.Tomcat.main(Tomcat.java:235)

Exception in thread "main" java.lang.OutOfMemoryError: unable to create new
native thread
at java.lang.Thread.start(Native Method)
at
org.apache.tomcat.util.ThreadPool$MonitorRunnable.<init>(ThreadPool.java:382
)
at org.apache.tomcat.util.ThreadPool.start(ThreadPool.java:149)
at
org.apache.tomcat.service.PoolTcpEndpoint.startEndpoint(PoolTcpEndpoint.java
:245)
at
org.apache.tomcat.service.PoolTcpConnector.start(PoolTcpConnector.java:188)
at
org.apache.tomcat.core.ContextManager.start(ContextManager.java:527)
at org.apache.tomcat.startup.Tomcat.execute(Tomcat.java:202)
at org.apache.tomcat.startup.Tomcat.main(Tomcat.java:235)

Shutting down Web Service: httpd

/etc/rc.d/init.d/httpd: fork: Resource temporarily unavailable
Web Service: /usr/sbin/httpd
Console Output End>>>>>>>>
reply

Search Discussions

9 responses

Related Discussions

Discussion Navigation
viewthread | post