Tomcat の server.xml の <Context> タグの中の reloadable="true" サーブレットに変更が加えられた場合に自動的に変更済みのサーブレットをコンテナにロードする機能(自動再ロード機能)について
falseにするとよいこと 1.事項更新されないので、シングルトンのクラスであってもこの機能により複数のインスタンスが生成される危険性が防げる trueにするとよいこと 1.servlet、jsp共に変更が加えられた場合、両方のファイルが更新される (falseにしておくとjspのみが更新されてしまい、classファイルは更新されないのでエラーが出る可能性がある)
要するにコンテンツの更新の際はtomcatをstopさせてから行うのがよいのです。
CATALINA_OPTSについて
ヒープメモリの設定ファイルは、setenv.shという名前で作成します。/usr/local/tomcat-5.5.20/bin/setenv.shにファイルが存在しない場合には、新たにファイルを作成してください。
ヒープメモリ最大使用量(-Xmx)を指定する(サーバーメモリの半分程度)
ヒープメモリ初期使用量(-Xms)を指定する(Xmxの半分程度)
スレッドスタックサイズ(-Xss)256K
サーブレットで画像を動的に生成する際にウィンドウシステム非依存にする
#!/bin/sh
XMS="512M"
XMX="1024M"
XSS="256k"
PERMSIZE="128M"
MAXPERMSIZE="128M"
NEWSIZE="320M"
MAXNEWSIZE="320M"
SURVIVORRATIO="2"
TARGETSURVIVORRATIO=80
JAVAENV="java.awt.headless=true"
JVM_OPT="-d64" 32ビットマシンでは、-d32とします
export CATALINA_OPTS="-server -Xms${XMS} -Xmx${XMX} -Xss${XSS}
-XX:PermSize=${PERMSIZE} -XX:MaxPermSize=${MAXPERMSIZE}
-XX:NewSize=${NEWSIZE} -XX:MaxNewSize=${MAXNEWSIZE}
-XX:SurvivorRatio=${SURVIVORRATIO}
-XX:TargetSurvivorRatio=${TARGETSURVIVORRATIO} -D${JAVAENV} ${JVM_OPT}"
(*) CPU:Intel(R) Xeon(TM) CPU 3.20GHz 64bit / メモリ:2.0GBでの参考値となります。
指定したオプションで起動しているか確認
# ps auxfwww | egrep -e "-server -Xmx128M -Xms128M -Xss256k -Djava.awt.headless=true" root 4831 0.0 0.0 3148 468 pts/0 S+ 14:17 0:00 | \_ egrep -e -server -Xmx128M -Xms128M -Xss256k -Djava.awt.headless=true nobody 4775 11.6 3.2 358112 66884 pts/0 Sl 14:15 0:13 /usr/local/java/bin/java -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -server -Xmx128M -Xms128M -Xss256k -Djava.awt.headless=true -Djava.endorsed.dirs=/usr/local/tomcat/common/endorsed -classpath :/usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/commons-logging-api.jar -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start