There are two environment variables - CATALINA_OPTS and JAVA_OPTS - which are both used in the
catalina.sh startup and shutdown script for Tomcat. They are described in comments within that file as:
(optional) Java runtime options used when the "start", "stop" or "run" command is executed [JAVA_OPTS]
and
(optional) Java runtime options used when the "start" or "run" command is executed [CATALINA_OPTS]
So why are there
two different variables? And what's the difference?
Firstly, anything specified in EITHER variable is passed, identically, to the command that starts up Tomcat - the "start" or "run" command - but only values set in JAVA_OPTS are passed to the "stop" command. That probably doesn't make any difference to how Tomcat runs in practise as it only effects the end of a run, not the start.
The second difference is more subtle. Other applications may also use JAVA_OPTS, but only Tomcat will use CATALINA_OPTS. So if you're setting environment variables for use only by Tomcat, you'll be best advised to use CATALINA_OPTS, whereas if you're setting environment variables to be used by other java applications as well, such as by JBoss, you should put your settings in JAVA_OPTS.
"OK - so that's the difference. Give me some examples of what can go in there!"
You can increase heap memory available to the JVM - see
here
You can open remote monitoring ports so that Jconsole on another system can watch how your Tomcat is running - see
here
You can add in a
-server to switch from the client (quicker start, slower running) JVM to the server (slower starting, quicker running) JVM.
You can increase java thread stack size using the
-Xss option (same way to specify amount of memory as in
-Xms and
-Xmx as described in the "increase heap memory" link above.
(written 2009-05-09 16:52:19)
Associated topics are indexed under
A654 - Web Application Deployment - Configuring and Controlling Tomcat [2652] Reading and writing cookies in Java Servlets and JSPs - (2010-02-26)
[2061] Tomcat 6 - Annotated Sample Configuration Files - (2009-03-01)
[2039] The Invoker - (2009-02-13)
[1994] tomcat-users.xml; what a difference a space made - (2009-01-16)
[1943] Port and Glasses - (2008-12-14)
[1762] WEB-INF (Tomcat) and .htaccess (httpd) - (2008-08-20)
[1553] Automatic startup and shutdown of Tomcat - (2008-02-24)
[1503] Web page (http) error status 405 - (2008-01-12)
[1370] Apache Tomcat Performance Tuning - (2007-09-29)
[1351] Compressing web pages sent out from server. Is it worth it? - (2007-09-14)
[914] A practical example of roles - (2006-11-04)
[907] Browser -> httpd -> Tomcat -> MySQL. Restarting. - (2006-10-28)
[837] Tomcat - Shutdown port - (2006-08-18)
Some other Articles
Watching the teleCrossrefering documents with uniqueness and inconsistency issues - PHP proof of concept demoMaking Regular Expressions easy to read and maintainUpdating my public profile - Graham EllisCATALINA_OPTS v JAVA_OPTS - What is the difference?Admins thoughts on banning a member from a forumGet it right ... if it goes wrong, it takes so much effort to sort out!PHP - getclass v instanceofA long day to guess whereOn the roof of a Melksham Spa House