On Jan 27, 2014, at 9:21 AM, Арсений Зинченко <setev...@gmail.com> wrote:

> Hi.
> 
> I'm sorry for so kindly question - but needs experts advice...
> 
> We have a little dispute with my colleague about using this variables.
> 
> So: have Windows-box machine. On it - runing few different
> Java-application, including Tomcat.
> 
> Needs to set memory for Tomcat other, than for all other Java-applications.
> 
> My proposal is set to System variables:
> 
> JAVA_OPTS "-Xmx1024M -Xms512M -XX:MaxPermSize512M"
> CATALINA_OPTS "-Xmx4096M -Xms2048M -XX:MaxPermSize=1024M”

Don’t set these as system variables.  You’d want to define them in setenv.bat 
if you’re running from the command prompt or with the Windows Service utility 
(either [1] or [2]), if you’re running as a service.

> 
> But, as he asserts - this is not correct way:
> 
> 
>   - CATALINA_OPTS must NOT contain memory limits like "Xmx", "Xms" etc;

There are no restrictions to what you can set in CATALINA_OPTS.  You could put 
your memory setting there if you wanted.  Having said that, if you’re running 
as a Windows service then you wouldn’t.  You'd set your heap memory settings 
through the service wrapper (either [1] or [2]).

If you’re running from the console (not likely) or on Linux / Unix then you’d 
set your heap settings in the setenv.sh|bat script.  Again, you could put 
memory settings in CATALINA_OPTS or in JAVA_OPTS.  Setting them in 
CATALINA_OPTS is generally a better choice though because settings in 
CATALINA_OPTS are only applied when Tomcat is started.  If you set them in 
JAVA_OPTS then they’ll be applied when you start and stop the instance, 
something you probably don’t want for your heap settings.

>   - Java Garbage collector will work differently because JAVA_OPTS have
>   another opts for memory then CATALINA_OPTS, so - this will worse Tomcat
>   performance;

I’m not sure I follow your logic here.  The JVM is only going to accept one 
value for Xmx and Xms.  Specifying the same options in JAVA_OPTS and 
CATALINA_OPTS would just be confusing.

>   - and so on
> 
> His suggestion is to set JAVA_OPTS with memory limits exactly to Tomcat
> startup script (not as system variable at all).

Again, don’t set system variables for these.  There’s no reason to set them 
system wide.

> 
> So, my question is: is it correct to set memory limits for Tomcat via
> CATALINA_OPTS variable?

Generally, but it depends on how you are starting Tomcat.  Since you’re on 
Windows, you’re probably running as a service and that’s going to be a bit 
different.  See above comments.

> If in system also present JAVA_OPTS - will it have influence on to Tomcat's 
> performance?

I think I answered this above.  If it’s not clear, let me know.

> 
> Thanks.

Dan

[1] - 
http://tomcat.apache.org/tomcat-7.0-doc/windows-service-howto.html#Command_line_parameters
[2] - 
http://tomcat.apache.org/tomcat-7.0-doc/windows-service-howto.html#Tomcat7w_monitor_application


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to