そんなゲッターロボみたいな話があるんでしょうか?
あるーんです。
JNIチャンネルを使うと、Apacheの内部プロセス(in process)としてTomcatが起動され、
Tomcat単独での起動が不要になります。
この場合JK2は、API呼び出しによってTomcatと会話を行うので、
ソケットチャンネルに比べて性能が上がります
(Apache付属のabコマンドで試してみるとわかります)。
その反面、可用性は減ります。
★JNIワーカを使った動作は、私のLinux環境(RedHat8)ではうまくいきませんでした。
「うまく動いてるよー」という方がもしいらっしゃれば、
メールいただけると幸いです。★
[vm:]の部分でJVMに関する設定を行います。
tools.jarへのクラスパスが必要なのは、JSPをコンパイルするjavacコマンドのためです。
JVMへのパスを指定する行は無くても動く場合もありますが、
もしうまく動作せず、"jvm.so not found"
というようなメッセージがログに出ていた場合にはこの行を追加してみて下さい。
[worker.jni:onStartup]と[worker.jni:onShutdown]は起動・終了に関する設定です。
使用するクラスはいずれもTomcatStarterですが、ARGに渡すパラメータが異なります。
[uri:xxxx]以下は、前節と同じです。
|
workers2.properties |
# ${APACHE2_HOME}/conf/workers2.properties
# JNIワーカによるApache内部起動
# ログファイルの設定
[logger.file:0]
level=ERROR
file=${serverRoot}/logs/jk2.log
# JNI通信チャンネルの定義
[channel.jni:jni]
info=The jni channel.
# Javaバーチャルマシンのパラメータの定義
[vm:]
info=JVM parameters in the server process
JVM=C:/j2sdk1.4.1/jre/bin/server/jvm.dll
OPT=-Djava.class.path=C:/Tomcat/bin/tomcat-jni.jar;
C:/j2sdk1.4.1/lib/tools.jar ★実際は1行
OPT=-Dtomcat.home=C:/Tomcat
OPT=-Dcatalina.home=C:/Tomcat
OPT=-Xms80m
OPT=-Xmx80m
# JNIワーカの起動時ハンドラ
[worker.jni:onStartup]
info=JVM startup
class=org/apache/jk/apr/TomcatStarter
ARG=start
stdout=${serverRoot}/logs/stdout.log
stderr=${serverRoot}/logs/stderr.log
# JNIワーカの終了時ハンドラ
[worker.jni:onShutdown]
info=JVM shutdown
class=org/apache/jk/apr/TomcatStarter
ARG=stop
# examplesコンテキスト
[uri:/examples/*]
info=Map the Tomcat examples
## group=lb
# ステータス監視ワーカの設定
[status:]
[uri:/jkstatus/*]
group=status:
# 共有メモリ
[shm:]
# 使わない
disabled=1
|
|