I wonder if it might be better to have a KARAF_OPTS environment variable just like there is a CATALINA_OPTS one for the below memory settings for Tomcat. That would have the benefit of allowing the user to specify default memory values for Karaf specifically without needing to set them at the JVM level (affecting everything else) in order for karaf.bat to pick them up--same benefit Tomcat users have with CATALINA_OPTS.

Definition of CATALINA_OPTS (in catalina.bat):
rem   CATALINA_OPTS   (Optional) Java runtime options used when the "start",
rem                   "run" or "debug" command is executed.
rem Include here and not in JAVA_OPTS all options, that should rem only be used by Tomcat itself, not by the stop process,
rem                   the version command etc.
rem                   Examples are heap size, GC logging, JMX ports etc.

How it's implemented:
%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION%
goto end

Regards,
Glen

On 8/17/2011 1:30 PM, [email protected] wrote:
Author: pieber
Date: Wed Aug 17 17:30:01 2011
New Revision: 1158844

URL: http://svn.apache.org/viewvc?rev=1158844&view=rev
Log:
[KARAF-818] Allow JAVA_MAX_MEM, JAVA_PERM_MEM, JAVA_MIN_MEM, JAVA_MAX_PERM_MEM 
for karaf.bat

(cherry picked from commit 0eba443be8758cf0b025dd34b09ecbf1f11ae354)

Signed-off-by: Andreas Pieber<[email protected]>

Modified:
     
karaf/trunk/assemblies/apache-karaf/src/main/distribution/windows-text/bin/karaf.bat

Modified: 
karaf/trunk/assemblies/apache-karaf/src/main/distribution/windows-text/bin/karaf.bat
URL: 
http://svn.apache.org/viewvc/karaf/trunk/assemblies/apache-karaf/src/main/distribution/windows-text/bin/karaf.bat?rev=1158844&r1=1158843&r2=1158844&view=diff
==============================================================================
--- 
karaf/trunk/assemblies/apache-karaf/src/main/distribution/windows-text/bin/karaf.bat
 (original)
+++ 
karaf/trunk/assemblies/apache-karaf/src/main/distribution/windows-text/bin/karaf.bat
 Wed Aug 17 17:30:01 2011
@@ -33,6 +33,24 @@ if not "%KARAF_TITLE%" == "" (
      title Karaf
  )

+rem Check/Set up some easily accessible MIN/MAX params for JVM mem usage
+
+if "%JAVA_MIN_MEM%" == "" (
+    set JAVA_MIN_MEM=128M
+)
+
+if "%JAVA_MAX_MEM%" == "" (
+    set JAVA_MAX_MEM=512M
+)
+
+if "%JAVA_PERM_MEM%" == "" (
+    set JAVA_PERM_MEM=16M
+)
+
+if "%JAVA_MAX_PERM_MEM%" == "" (
+    set JAVA_MAX_PERM_MEM=64M
+)
+
  goto BEGIN

  :warn
@@ -73,7 +91,7 @@ if "%KARAF_DATA%" == "" (
  )

  set LOCAL_CLASSPATH=%CLASSPATH%
-set DEFAULT_JAVA_OPTS=-server -Xmx512M 
-Dderby.system.home="%KARAF_DATA%\derby" 
-Dderby.storage.fileSyncTransactionLog=true -Dcom.sun.management.jmxremote
+set DEFAULT_JAVA_OPTS=-server -Xms%JAVA_MIN_MEM% -Xmx%JAVA_MAX_MEM% 
-XX:PermSize=%JAVA_PERM_MEM% -XX:MaxPermSize=%JAVA_MAX_PERM_MEM% 
-Dderby.system.home="%KARAF_DATA%\derby" 
-Dderby.storage.fileSyncTransactionLog=true -Dcom.sun.management.jmxremote
  set CLASSPATH=%LOCAL_CLASSPATH%;%KARAF_BASE%\conf
  set DEFAULT_JAVA_DEBUG_OPTS=-Xdebug -Xnoagent -Djava.compiler=NONE 
-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005





--
Glen Mazza
Software Engineer, Talend (http://www.talend.com)
blog: http://www.jroller.com/gmazza


Reply via email to