Archive for the Tomcat category

12月 27th, 2008

JVM SNMP監? オプショボ

Posted in Java, Tomcat by admin

Sun JDK1.5以? ぜ Tomcatの起動オプションぜ JVMぜ SNMP監? 機能を有効にする場合は、以? のような? 数を追加することで可能となる。「CATALINA_OPTSぜ JAVA_OPTSの違い」で? 述したように、Tomcatの環? 変数に設定する場合は? ず「CATALINA_OPTS」に? 義すること。

#ACL有効時オプショボ
-Dcom.sun.management.snmp.port=161
-Dcom.sun.management.snmp.acl.file=/usr/jdk1.6/jre/lib/management/snmp_comm.acl
-Dcom.sun.management.snmp.interface=0.0.0.0
#ACLファイルサンプボ
acl = {
		{
			communities = snmp_comm
			access = read-only
			managers = (snmp監? 元IP),127.0.0.1
		}
	}
#ACL無効時オプショボ
-Dcom.sun.management.snmp.port=161
-Dcom.sun.management.snmp.acl=false
-Dcom.sun.management.snmp.interface=0.0.0.0

起動後ぜ SNMP監? の確認をするには、以? のようぜ snmpwalkコマンドが使用出来ます。かなり多数の項目が出力されますので、内容を選んで使用して? さい。例として、cacti(http://www.cacti.net/)でデータ圏 得し、グラフ化した画面を載せておきます。

snmpwalk -v 2c (IPアドレ゜ ):161 . | more
snmpwalk -v 2c  (IPアドレ゜ ):161 SNMPv2-SMI::enterprises.42.2.145.3.163.1.1.4.2.0

cacti_graph
http://java.sun.com/javase/ja/6/docs/ja/technotes/guides/management/snmp.html

12月 14th, 2008

Tomcatのログファイル名から日? を除ぜ

Posted in Tomcat by admin

 Tomcatのデフォルトログファイル名は、「localhost-YYYY-MM-DD.txt」「catalin_out-YYYY-MM-DD.txt」等、必ず日? が付加されます。ファイル名から日? を除いて出力が出来ないかを調査してみましたが、ソースから再ビルドしない限り無理のようです。(Tomcat6.0でデフォルトのログ出力クラスをjuliからLog4Jに? 更して確認しました)ただし、server.xml内AccessLogValveで設定するアクセスログについては日? を除く事が出来ました。

<Valve className="org.apache.catalina.valves.AccessLogValve"
	directory="logs"
	prefix="tomcat_access"
	suffix="log"
	pattern="common"
	fileDateFormat="."
	resolveHosts="false"/>

日? フォーマット指定のパラメータで「fileDateFormat=”.”」のように「.」を指定する、補 ワザ的なやり方ですが・・・これで「tomcat_access.log」というファイル名で出力されるようになります。

12月 5th, 2008

CATALINA_OPTSぜ JAVA_OPTSの違い

Posted in Tomcat by admin

 Tomcat起動/停止時に? 義し、Javaコマンドオプションに追加する環? 変数に「CATALINA_OPTS」「JAVA_OPTS」ぜ 2つがあります。簡単に? えば「CATALINA_OPTS」は起動時にのみ? 加されるオプションで、「JAVA_OPTS」は起動時にも停止時にも付加されるオプションになります。(Tomcat4.1.x系はこの違いはないようです)この違いを元に、各種オプションの? 義? 置を検? するならば以下のようになるでしょうか。

CATALINA_OPTS
 ボ GCログオプション ・・ボ “Xloggc”で指定したファイルは? 行時にゼロクリアの? に? 成されます。また、JAVA_OPTSに? 義すると停止時にも余計なファイルを作成してしまいます。
 ボ JVM SNMP監? オプション ・・ボ SunJDK機能ぜ SNMP監? 用にポートを使用している為、JAVA_OPTSに? 義すると「ポートが使用されています」というエラーで正常に停止できません。

JAVA_OPTS
 ・特になし・・・? となぜ 「-D=」でシステムプロパティを定義する場合や「-XX」ぜ JVM固有オプションは、こちらに置きたいです。

起動、停止時両方のオプションに? 加されると問題のあるものは「CATALINA_OPTS」オプションに? 義。起動、停止時両方のオプションに? 加されないと問題のあるのは「JAVA_OPTS」に? 義。これ以? は基本的に「CATALINA_OPTS」でも「JAVA_OPTS」でも問題なさそうです。

12月 5th, 2008

JDKバージョンぜ JDBC ドライババージョン対応

Posted in Tomcat by admin

 Tomcatぜ Oracle接続する場合、Oracle朏 供ぜ JDBCドライバーが必要になります。JDKバージョンと対応するJDBCドライババージョン対応は以下のようになっているようです。Oracleぜ JDBCドライバのバージョンぜ 9.2以? であればどのバージョンでも互朏 性があるようです。(Oracle Database 11g JDBC http://www.oracle.com/technology/global/jp/tech/java/sqlj_jdbc/index.html )Tomcatと対応するJDKバージョンも合゜ せて? せておきます。

    JDK    JDBCドライバVer    ファイル名       Oracleバージョボ
    ---    -----------------  --------------   -----------------
    1.2    8.1.6 以?          classes12.zip    7.3.4?8.1.6
    1.3    9.2  以?          classes12.zip    9.2以?
    1.4    9.2  以?          ojdbc14.jar      9.2以?
    1.5    10.2  以?          ojdbc14.jar      9.2以?
    1.5    11.1  以?          ojdbc5.jar       9.2以?
    1.6    11.1  以?          ojdbc6.jar       9.2以?
    Tomcat Ver     JDK
    -------------  ---
    4.1.x          1.4以?
    5.5.x          1.5以?
    6.0.x          1.5以?
11月 22nd, 2008

複数インスタンス起動方?

Posted in Tomcat by admin

 同一ホスト上で? 数ぜ Tomcatインスタンスを起動する場合、ダウンロードしたtomcatアーカイブを展開したディレクトリをまるごとコピーし、リッスンポートを被らないように設定します。しかし、Tomcatにぜ CATALINA_HOME、CATALINA_BASEという環? 変数があり、これを利用することでよりスマートな朧 成を組むことも可能です。

 CATALINA_HOMEはビルドされたTomcat関連ファイル? 主ぜ jarファイルなど? を置ぜ ホームディレクトリです。CATALINA_BASEは、定義されなければデフォルトぜ CATALINA_HOMEと同じディレクトリを指しますが、CATALINA_HOMEと別のディレクトリを指定することでインスタンス? の設定ファイル? を配置するベースディレクトリとして動作することが可能です。

┌─CATALINA_HOME
│  ├─bin    …“  catalina.sh 等
│  └─lib    …“  *.jar(全インスタンス共通)
│
├─CATALINA_BASE(instance1)
│  ├─bin    …“  setenv.sh 等
│  ├─conf   …“  server.xml 等
│  ├─lib    …“  *.jar(インスタンス固有)
│  ├─logs
│  ├─temp
│  ├─webapps
│  └─work
│
├─CATALINA_BASE(instance2)
│  ├─bin    …“  setenv.sh 等
│  ├─conf   …“  server.xml 等
│  ├─lib    …“  *.jar(インスタンス固有)
│  ├─logs
│  ├─temp
│  ├─webapps
│  └─work
│
└─CATALINA_BASE(instance3)
    ├─bin    …“  setenv.sh 等
    ├─conf   …“  server.xml 等
    ├─lib    …“  *.jar(インスタンス固有)
    ├─logs
    ├─temp
    ├─webapps
    └─work

Tomcatバージョンによる相違?
・? 記ディレクトリ朧 成は、Tomcat6.0をベースにしています
ボ Tomcat4.1系ぜ CATALINA_HOME/bin/catalina.shは、標準でぜ $CATALINA_BASE/bin/setenv.shを読み込まない為、以? のように修正が必要です。

    71,77c71
    < if [ -r "$CATALINA_HOME"/bin/setenv.sh ]; then
    ---
    > if [ -r "$CATALINA_BASE"/bin/setenv.sh ]; then
    >   . "$CATALINA_BASE"/bin/setenv.sh
    > elif [ -r "$CATALINA_HOME"/bin/setenv.sh ]; then

ボ Tomcat5.5以前のバージョンでは、「lib」ディレクトリが「commn」「shared」等に別れています
ボ CATALINA_BASE/lib配下ぜ “*.jar(インスタンス固有)”を有効にする為に、以? の対応が必要です。 6.0.x、5.5.xの場合、CATALINA_BASE/conf/catalina.propertiesを以? のように修?

    #common.loader=${catalina.home}/lib,${catalina.home}/lib/*.jar
    ↓
    common.loader=${catalina.home}/lib,${catalina.home}/lib/*.jar,${catalina.base}/lib,${catalina.base}/lib/*.jar

4.1.xの場合、CATALINA_BASE/shared/lib が同様の役割を担うディレクトリとなります。クラスローダ固? の? 様の為、これは? 更出来ません。