quick tutorial: more memory for tomcat/railo-server

Here’s a short howto for upping tomcat/railo-server’s memory:

The secret’s in tomcat’s JAVA_OPTS variable (java runtime options), which is defined in the catalina-startup-script.
You should be able to find this catalina.sh named script in /<tomcat-install-dir>/bin/catalina.sh
Have a look at the file and grep for JAVA_OPTS, you’ll find the following line:

JAVA_OPTS="$JAVA_OPTS -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager"

Now you can add some startup-parameters like this:

JAVA_OPTS="$JAVA_OPTS -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Xms128m -Xmx512m"

Look for more detailed information at this wiki-section at apache.org

Hier geht es zur deutschen Version dieser Anleitung.

Tutorial: Tomcat und Railo 3.1 mehr Speicher zuweisen

Fix gemacht, hier eine kleine Anleitung, wie man Railo/Tomcat mehr Speicher spendiert:

Das Geheimnis liegt in der JAVA_OPTS Variable (Java runtime options) vom Tomcat-Server. Diese wird in definiert im Catalina Startup-Script, das man normalerweise unter dem Pfad /<Tomcat-Installationsverzeichnis>/bin/catalina.sh finden können sollte. Sucht man in der Datei nun nach JAVA_OPTS, findet man schnell die richtige Stelle:

JAVA_OPTS="$JAVA_OPTS -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager"

Diese Zeile kann jetzt durch Start-Parameter erweitert werden:

JAVA_OPTS="$JAVA_OPTS -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Xms128m -Xmx512m"

Für alle Interessierten gibt’s hier bei apache.org noch detaillierte Informationen.

Here’s the english version of this post.

Installation von Railo mit Tomcat und Apache unter Debian Linux (Teil 1)

Folgende Anleitung soll Euch helfen, Websites mit der kostenlosen Alernative zu Adobe Coldfusion Railo unter Debian zusammen mit Tomcat und Apache zu servieren. 

Als erstes wird ein Java benötigt, falls das noch nicht zur Verfügung steht. Dies sollte problemlos mittels folgendem Befehle machbar sein:

sudo apt-get install sun-java6-jdk

Als nächstes holen wir den Tomcat und entpacken ihn, bei mir aktuell war die Version 6.0.20 (die neueste Version solltet Ihr jeweils unter http://tomcat.apache.org/download-60.cgi finden)

wget http://apache.mirror.digionline.de/tomcat/tomcat-6/v6.0.20/bin/
apache-tomcat-6.0.20.tar.gz
tar zfvx apache-tomcat-6.0.20.tar.gz

Nach dem Download per wget wird der Tomcat in ein permanentes Verzeichnis verschoben, zum Beispiel so:

mv apache-tomcat-6.0.20 /usr/local/tomcat

Dann dafür sorgen, dass sich der Tomcat automatisch mitstartet bei Server-Start, dazu wird die Datei /etc/init.d/tomcat editiert, hier kommen folgenden Zeilen rein:

# Tomcat auto-start
#
# description: Auto-starts tomcat
# processname: tomcat
# pidfile: /var/run/tomcat.pid

export JAVA_HOME=/usr/lib/jvm/java-6-sun

case $1 in
start)
sh /usr/local/tomcat/bin/startup.sh
;;
stop)
sh /usr/local/tomcat/bin/shutdown.sh
;;
restart)
sh /usr/local/tomcat/bin/shutdown.sh
sh /usr/local/tomcat/bin/startup.sh
;;
esac
exit 0

Das Script muss ausführbar sein und beim Serverstart ausgeführt werden. Deswegen noch diese Anpassungen:

chmod 755 /etc/init.d/tomcat
vi /etc/init.d/tomcat
ln -s /etc/init.d/tomcat /etc/rc1.d/K99tomcat
ln -s /etc/init.d/tomcat /etc/rc2.d/S99tomcat

Gut, soweit fertig, der Tomcat sollte nun laufen. Gestoppt/Gestartet wird mit

/etc/init.d/tomcat start

Nun das Railo holen, entpacken und ins lib-Verzeichnis vom Tomcat legen:

wget http://www.getrailo.org/down.cfm?item=/railo/remote/download/
3.1.2.001/custom/all/railo-3.1.2.001-jars.tar.gz

tar zxvf railo-3.1.2.001-jars.tar.gz
mv railo-3.0.1.000-jars/ /usr/local/tomcat/lib

Nun muss die Konfigurationsdatei /usr/local/tomcat/conf/web.xml bearbeitet werden, da muss noch zusätzlich rein:

<servlet>
<servlet-name>CFMLServlet</servlet-name>
<servlet-class>railo.loader.servlet.CFMLServlet</servlet-class>
   <init-param>
      <param-name>configuration</param-name>

      <param-value>{web-root-directory}/WEB-INF/railo/</param-value>
      <description>Configuraton directory</description>
   </init-param>
   <load-on-startup>1</load-on-startup>

</servlet>
<servlet-mapping>
   <servlet-name>CFMLServlet</servlet-name>
   <url-pattern>*.cfm</url-pattern>
</servlet-mapping>
<servlet-mapping>

   <servlet-name>CFMLServlet</servlet-name>
   <url-pattern>*.cfml</url-pattern>
</servlet-mapping>
<servlet-mapping>
   <servlet-name>CFMLServlet</servlet-name>

   <url-pattern>*.cfc</url-pattern>
</servlet-mapping>

Im Element <welcome-file-list> muss noch folgende Ergänzung gemacht werden:

<welcome-file>index.cfm</welcome-file>
<welcome-file>index.cfml</welcome-file>

Unter Port 8080 sollte nun bereits das Railo mit dem Tomcat zusammenarbeiten, wir können cfml ausliefern.

Wie cfml auch über Port 80 mittels mod_proxy und mod_ajp ausgeliefert werden kann, werde ich einem seperaten Teil beschrieben