前のトピック: アプリケーション サーバ アプライアンス

次のトピック: JBOSS、JBOSS64: JBoss アプリケーション サーバ


TOMCAT、TOMCAT64: アプリケーション サーバ

最新バージョン: 2.0.2-1

Tomcat サーバ

早見表

カタログ

システム

カテゴリ

アプリケーション サーバ

ユーザ ボリューム

yes

最小 メモリ

160 MB

OS

Linux

制約

なし

質問/コメント

フォーラムで質問する

機能の概要

TOMCAT は、Sun Java マシンと Apache Tomcat、Java Servlet、および Apache License の下で開発された JavaServer Pages コンテナに基づく Web サーバ アプライアンスです。 Tomcat 用のメイン ドキュメントは tomcat.apache.org にあります。 Tomcat は、サーブレットと JSP の標準準拠サポートを提供します。 Tomcat はスタンドアロン Web サーバまたはアプリケーション サーバとして動作できます。

TOMCAT は静的な Web コンテンツに対応し、自動的に Web アプリケーションを展開します。また、ユーザ設定可能なコンテンツ ボリュームからサーブレットおよび JavaServer Pages を実行します。 ドキュメントへのパスは設定可能です。したがって、同じボリュームを異なるコンテンツに対応する複数の Web サーバおよび他のアプライアンスとの間で共有できます。

TOMCAT は Web クライアントの場合に HTTP/1.1 および HTTP/1.0 プロトコルに対応し、フロントエンド サーバからのリクエストでは AJP 1.3 に対応します(たとえば、mod_proxy_ajp を使用する Apache)。

WEBx サーバと同様、TOMCAT には、コンテンツ ボリューム上のスクリプトから外部サービスにアクセスするための汎用出力端子が 3 つあります。 db 端子はさまざまなデータベースへのアクセスに使用されます。fs 端子は共有ファイル ストレージ(NFS を使用)へのアクセスに使用されます。aux 端子は SMTP サーバへ電子メールメッセージを送信するために作成されています。

log 端子は、TOMCAT がログ ファイルを格納できる共有ファイルシステムに TOMCAT を接続するために使用します。

サーバの設定はさまざまなプロパティを使用して定義されます。 これらのプロパティは簡単な設定方法でさまざまな使用状況のほとんどに対応できるように設計されていて、通常は、デフォルト以外の値に設定する必要はほとんどありません。

名前

最新バージョン

OS

Java マシン バージョン

Apache Tomcat バージョン

TOMCAT

2.0.2-1

CentOS 5.5

JDK 1.6.0.22

6.0.29

TOMCAT64

2.0.2-1

CentOS 5.5 (64 ビット)

JDK 1.6.0.22

6.0.29

リソース

TOMCAT 用のリソース

リソース

最小

最大

デフォルト

CPU

0.1

16

0.3

メモリ

160 MB

4 G

512 MB

帯域幅

1 Mbps

2 Gbps

250 Mbps

TOMCAT64 用のリソース

リソース

最小

最大

デフォルト

CPU

0.1

16

0.3

メモリ

160 MB

64 G

512 MB

帯域幅

1 Mbps

2 Gbps

250 Mbps

以下の点に留意してください。

Java アプリケーション セッションを格納するためのメモリ要件

Java アプリケーション用のメモリに加えて、アプリケーション セッションを格納するために一定の量のメモリが使用可能である必要があります。 空のセッション(追加の格納されたデータなし)は、それぞれ 2KB に近いメモリを使用します。 このメモリはセッションの存続期間中(デフォルトのセッション存続期間は 30 分)に使用されます。 セッション存続期間は、アプリケーションの web.xml 環境設定ファイルを変更するか、セクションを追加することにより設定できます。 たとえば、以下に示すコードを含めるとセッション存続期間は 1 分になります。

  <session-config>
    <session-timeout>1</session-timeout>
  <session-config>

30 分以内に 1 万人の個別ユーザが訪問することが想定される場合、追加で 20MB のメモリが使用可能である必要があります。 一般: 必要なメモリ量 = 同時にアクティブなセッションの最大数 * セッションの平均サイズ。

重要: 使用できるメモリが十分でない場合、Tomcat が正しく機能しない場合があります。 これは、Tomcat 内で実行中のユーザ アプリケーションに依存し、アプライアンス自身による制限ではありません。

端子

名前

方向

プロトコル

説明

in

in

HTTP

Web クライアントから送られる HTTP リクエストを処理します。 HTTP/1.1、HTTP/1.0 および AJP プロトコルをサポートします。

db

out

任意

データベース サーバへのアクセス。 使用状況は、コンテンツ ボリューム上の任意のスクリプト(存在する場合)によって定義されます。 使用しない場合、この端子は未接続のままにできます。

fs

out

NFS

NFS を介して読み取り/書き込みファイル アクセスを提供する、共有ファイル ストレージのネットワーク ファイルシステムへのアクセス。 使用状況は、コンテンツ ボリューム上の任意のスクリプト(存在する場合)によって定義されます。 コンテンツ ボリューム上のソフトウェアは、マウントされたリモート ファイルシステムを、アプライアンスのファイルシステム スペースの /mnt/fs であるとみなします。 使用しない場合、この端子は未接続のままにできます。 接続されたサーバには NFS の上にエクスポートされた /mnt/data という名前の読み取り/書き込み共有アクセス権が必要です。

log

out

CIFS

アクセスとエラー ログを格納するための、CIFS ベースのネットワーク ファイルシステムへのアクセス。 使用しない場合、この端子は未接続のままにできます。 接続されたサーバは、匿名のログインを許可し、share という名前の読み取り/書き込みエクスポート共有を持っている必要があります。

aux

out

任意

電子メールを送信するための SMTP サーバへのアクセス。
使用しない場合、この端子は未接続のままにできます。

net

out

任意

サブネット アクセス用のゲートウェイ出力です。
使用しない場合、この端子は未接続のままにできます。

mon

out

CCE

MON アプライアンスへパフォーマンスとリソースの使用状況統計を送信します。
使用しない場合、この端子は未接続のままにできます。

デフォルト インターフェースは有効です。 診断およびトラブルシューティング(SSH を介して)用です。 このアプライアンスの将来のバージョンでは SSH アクセスが無効になる可能性があります。

ユーザ ボリューム

ボリューム

説明

コンテンツ

Tomcat アプリケーション、アプリケーション データ、一時およびワーク ファイルのストレージ用のボリューム。 このボリュームは content_on_fs プロパティが off に設定されている場合にのみ使用されます。

プロパティ

プロパティ名

タイプ

説明

content_on_fs

文字列

コンテンツが fs 端子でファイルシステムを基準にするか、またはコンテンツ ボリューム上にあるかどうかを指定します。 デフォルト: off(コンテンツ ボリューム上)

hostname

文字列

Web サイトのホスト名。 デフォルト: localhost

tomcat_port

整数

Tomcat が受信 HTTP リクエストをリッスンするポート。 デフォルト: 8080

session_timeout

整数

TOMCAT がユーザ セッションに関連するすべてのデータをメモリに保持する、分単位のタイムアウト。 デフォルト: 30

max_connections

整数

許可される同時接続の最大数。 この数に到達すると、新しい接続は引き続き受け入れられますが、別の接続が閉じられるまでその処理は遅延されます。 デフォルト: 100

heap_size

整数

Java ヒープ(-Xmx Java オプション)に割り当てられた、メガバイト単位のメモリ。 0 に設定すると、この値は自動的に計算されます。 デフォルト: 0

perm_size

整数

Java パーマネント オブジェクト(-XX: PermSize Java オプション)に割り当てられた、メガバイト単位のメモリ。 0 に設定すると、この値は自動的に計算されます。 デフォルト: 0

app_base

文字列

ドキュメント、ワーク ファイルおよび一時ファイル用のルート ディレクトリ。 Tomcat の ${catalina.base} ディレクトリの一般的な構造はこのフォルダに作成され、すべての Java アプリケーションに共通のライブラリ、一時ファイルおよびワーク ファイルの temp および work、また ${catalina.base}/webapps の work_dir property - analogue で定義されるサブディレクトリで共有されます。 デフォルト: empty

work_dir

文字列

処理されるドキュメントが位置するディレクトリ。 自動展開を目的としても使用されます。 詳細情報は、Tomcat の Web サイト、Automatic Application Deployment から入手できます。 デフォルト: webapps

timezone

文字列

アプライアンスで使用されるタイムゾーンを指定します。 このプロパティが空の場合、タイムゾーンは変更されず、現状のものが使用されます。 サポートされているタイムゾーンのリストはここで参照できます。 デフォルト: empty

ロギング プロパティ

プロパティ名

タイプ

説明

logs_enabled

文字列

ログ記録を完全に有効または無効にします。 デフォルト: no

logs_base_dir

文字列

ログ ファイルが格納されるディレクトリ。 デフォルト: 空。ログはマウントされた NAS ボリュームのルート内に置かれます。

error_log_filename

文字列

エラー ログ用のファイル名プレフィックス。 デフォルト: catalina

log_level

文字列

ロギング レベル。 値は、冗長性の低い順に、SEVERE、WARNING、INFO、CONFIG、FINE、FINER、FINEST、ALL となります。 ログ レベルの詳細情報は Tomcat ドキュメントから入手できます。 既定値: INFO

enable_access_log

文字列

アクセス ログを有効または無効にします。 デフォルト: no

access_log_filename

文字列

アクセス ログ用のファイル名プレフィックス。 デフォルト: access.log

カスタム カウンタ

TOMCAT アプライアンスは mon 端子を介して以下のカスタム カウンタをレポートします。 これらのカウンタは、TOMCAT カウンタ グループ(TOMCAT64 の場合は TOMCAT64)に属します。

カウンタ名

説明

Classes loaded

ロードされたクラスの数

Classes loaded bytes

ロードされたキロバイト数

Classes unloaded

アンロードされたクラスの数

Classes unloaded bytes

アンロードされたキロバイト数

Classes load/unload execution time

クラスのロードおよびアンロード操作実行にかかった時間

Compiler compiled

実行されたコンパイル タスクの数

Compiler failed

失敗したコンパイル タスクの数

Compiler invalid

無効にされたコンパイル タスクの数

Compiler execution time

コンパイル タスクの実行に費やされた時間

Heap s0 space capacity

現在のサバイバ スペース 0 の容量

Heap s1 space capacity

現在のサバイバ スペース 1 の容量

Heap s0 space utilization

サバイバ スペース 0 の使用率

Heap s1 space utilization

サバイバ スペース 1 の使用率

Heap eden space capacity

現在のエデン スペースの容量

Heap eden space utilization

エデン スペースの使用率

Heap old space capacity

現在の古いスペースの容量

Heap old space utilization

古いスペースの使用率

Heap permanent space capacity

現在の永続スペースの容量

Heap permanent space utilization

永続スペースの使用率

Heap young generation GC events

新しい世代の GC イベント(GC - Garbage Collection)数

Heap young generation GC time

新しい世代のガベージ コレクション時間

Heap number of GC events

Full の GC イベントの数

Heap full GC time

Full のガベージ コレクション時間

Heap total GC time

ガベージ コレクション時間の合計

Pool current new generation

現在の新世代の容量

Pool min new generation

新世代の最小容量

Pool max new generation

新世代の最大容量

Pool current old generation

現在の古い世代の容量

Pool min old generation

古い世代の最小容量

Pool max old generation

古い世代の最大容量

Pool current permanent generation

現在の永続的世代の容量

Pool min permanent generation

永続的世代の最小容量

Pool max permanent generation

永続的世代の最大容量

New generation tenuring threshold

殿堂入りしきい値

New generation max tenuring threshold

最大殿堂入りしきい値

Desired survivor size

推奨されるサバイバ サイズ

Compiler tasks

実行されたコンパイル タスクの数

発生した可能性がある起動時エラー

アプライアンスの起動に失敗した場合、以下の内容のエラーがシステム ログに記録される場合があります。

エラー メッセージ

説明

エラー: ログは有効ですが、log 端子は接続されていません。

log 端子は接続されていませんが、 logs_enabled または enable_access_log が yes に設定されています。

エラー: content_on_fs は「off」ですが、ローカルのコンテンツ ボリュームがありません。

content_on_fs は off に設定されます。このことは、データ ボリュームをローカルにマウントする必要があるが、TOMCAT はコンテンツ ボリュームをマウントできないことを示しています。 最も可能性の高い原因は、コンテンツ ボリュームがフォーマットされないか、TOMCAT プロパティ内に定義されていないことです。

エラー: nfs 共有のマウントに失敗しました。

TOMCAT が nfs 共有をマウントできません。 最も可能性が高い原因は、fs が接続されていないか、TOMCAT が NAS(または fs 端子へ接続される任意のアプライアンス)の前に開始されたことです。

ダッシュボード メッセージ

メッセージ

説明

データ ストレージのディスク空き容量が 5% 未満です。

fs 端子を介してアクセスされたデータ ボリュームのディスク空き容量が 5% 未満です。 ボリュームのサイズを拡張することをお勧めします。

データ ストレージのディスク空き容量が 1% 未満です。

fs 端子を介してアクセスされたデータ ボリュームのディスク空き容量が 1% 未満です。 すぐに対応する必要があります。データ損失が発生する可能性があります。

コンテンツ ボリュームのディスク空き容量が 5% 未満です。

アプライアンス上のコンテンツ ボリュームのディスク空き容量が5% 未満です。 ボリュームのサイズを拡張することをお勧めします。

コンテンツ ボリュームのディスク空き容量が 1% 未満です。

アプライアンス上のコンテンツ ボリュームのディスク空き容量が1% 未満です。 すぐに対応する必要があります。データ損失が発生する可能性があります。

パフォーマンス

ログ記録をオンにすると TOMCAT のパフォーマンスが低下する場合があります(logs_enabled を yes に設定してエラー ログ記録をオンにした場合、または enable_access_log を yes に設定してアクセス ログ記録をオンにした場合)。 以下の表は、Apache Web サーバのバージョン 2.0 および 2.2 に付随する Apache Benchmark ユーティリティでログが無効の場合に実行されるベンチマーク結果(rps、requests per second の単位で指定)を示しています。 Apache Benchmark の詳細は Apache の Web サイトを参照してください。 次の設定がベンチマークに使用されました。"bw 500M mem=2G cpu=2"。

一致

rps

1 クライアント一致

2800~3200 rps

10 クライアント一致

7500~7900 rps

100 クライアント一致

7700-8100 rps

典型的な使用状況

シンプルな Java 対応 Web サイト

TOMCAT は、コンテンツ ボリュームからのアプリケーションを処理します。

使用中のアプライアンス:

プロパティ名

ノート

hostname

www.mysite.org

サイトのホスト名。

app_base

MyApp

 

content_on_fs

off

TOMCAT は、すべてのコンテンツにユーザ ボリューム コンテンツを使用します。

timezone

EST

EST タイム ゾーン。

tomcat_port

80

HTTP プロトコル用の標準的なポート。

クライアント リクエストは IN ゲートウェイ上に送られます。 ゲートウェイは TOMCAT サーバへリクエストを転送し、このサーバでリクエストが処理されます。

データベース、ログ、モニタリングを使用する 2 層アプリケーション

使用中のアプライアンス:

プロパティ設定の例:

プロパティ名

ノート

hostname

www.mysite.org

サイトのホスト名。

app_base

MyApp

 

content_on_fs

on

TOMCAT はすべてのコンテンツに fs 端子を通じてリモート ストレージを使用します。

timezone

EST

EST タイム ゾーン

tomcat_port

80

HTTP プロトコル用の標準的なポート。

max_connections

200

同時ユーザは最大 200 です。

logs_enabled

yes

エラー ログを有効にします。

logs_base_dir

MyApp_Log_Dir

 

log_level

INFO

 

error_log_filename

error_log

エラー ログ名です。

enable_access_log

yes

アクセス ログを有効にします。

access_log_filename

myapp_access

アクセス ログ名。

クライアント リクエストは IN ゲートウェイ上に送られます。 ゲートウェイは TOMCAT サーバへリクエストを転送し、このサーバでリクエストが処理されます。 コンテンツとログはストレージ アプライアンス上にあります。 カウンタは mon アプライアンスにレポートされます。

注: Java アプリケーションは、さまざまなタイプのデータベースを使用できます。 これはアプリケーション内に適切な JDBC ドライバがあるかどうかにのみ依存します。 TOMCAT では、どのデータベース アプライアンスでも db 端子へ接続することができます。

TOMCAT のフロントエンドとしての WEB5

以下の図は、アプリケーション サーバとしての TOMCAT アプライアンスと、フロントエンドとしての WEB5 の使用状況を示しています。 WEB5 は静的コンテンツを処理し、サーバ側での処理が必要なすべてのリクエストを AJP プロトコルを使用して TOMCAT へリダイレクトします。

アプリケーション サーバとしての TOMCAT アプライアンスおよびフロントエンドとしての WEB5

注: このモードには、WEB5 内で(mod_proxy と mod_proxy_ajp を有効にして)AJP サポートを有効にすることが必要です。

使用中のアプライアンス:

プロパティ設定の例:

プロパティ名

ノート

content_on_fs

off

TOMCAT は、すべてのコンテンツにユーザ ボリューム コンテンツを使用

timezone

EST

EST タイム ゾーン

他の設定にはそれぞれデフォルト値があります。

フロントエンドとして動作し、かつ AJP プロトコルを使用して TOMCAT と通信するように正しく WEB5 を構成する必要があります。

mod_proxy および mod_proxy_ajp は、Apache の設定に以下の行を含めることで有効にする必要があります。

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so 

TOMCAT によって処理するためには、たとえば以下のような url スペースのパスを指定する必要があります。

ProxyPass /path-that-served-by-tomcat ajp://aux:8009/some-servlet
ProxyPassReverse /path-that-served-by-tomcat ajp://aux:8009/some-servlet

例:

パス

コンテンツ

処理元

/index.html

静的な html ドキュメント

WEB5 によって処理

/images/*

静的なグラフィカル ファイル

WEB5 によって処理

/scripts/*.php

php スクリプトによって生成された動的なコンテンツ

WEB5 によって処理

/path-that-served-by-tomcat

jsp によって生成された動的なコンテンツ

TOMCAT によって処理

クライアント リクエストは IN ゲートウェイ上に送られます。 ゲートウェイはフロントエンド Web サーバへリクエストを転送します。このサーバは静的な HTML ページ、グラフィカル ファイルおよび php スクリプトのリクエストを処理します。 jsp ページまたはサーブレット ページのリクエストは AppServer へ転送され、AppServer によって処理されます。

拡張性のある Java 対応 Web サイト

使用中のアプライアンス:

AppServer1 と AppServer2 の両方に対するプロパティ設定の例:

プロパティ名

ノート

content_on_fs

off

TOMCAT は、すべてのコンテンツにユーザ ボリューム コンテンツを使用

timezone

EST

EST タイム ゾーン

他の設定にはそれぞれデフォルト値があります。

クライアント リクエストは IN ゲートウェイ上に送られます。 ゲートウェイは lb ロード バランサへリクエストを転送します。これは AppServer1 と AppServer2 のいずれかにリクエストを転送します。

ノート

アプライアンス内で使用されるオープン ソース/サードパーティ ソフトウェア

TOMCAT および TOMCAT64 では、それぞれにベース クラス LUX5 および LUX64 によって使用されるサードパーティのオープン ソース パッケージに加えて、以下のサードパーティ オープン ソース パッケージを使用します。

TOMCAT

ソフトウェア

バージョン

変更

ライセンス

ノート

Apache Tomcat

5.5.28

はい

Apache License v2.0

ホームページ

JDK

1.6.0.18

いいえ

SunBCL

Sun Web サイトで利用可能

samba-client

3.0.28-0.el5.8

いいえ

GPLv2

該当なし

samba-common

3.0.28-0.el5.8

いいえ

GPLv2

該当なし

TOMCAT64

ソフトウェア

バージョン

変更

ライセンス

ノート

Apache Tomcat

5.5.28

はい

Apache License v2.0

ホームページ

JDK

1.6.0.18

いいえ

SunBCL

Sun Web サイトで利用可能

samba-client

3.0.28-1.el5_2.1

いいえ

GPLv2

該当なし

samba-common

3.0.28-1.el5_2.1

いいえ

GPLv2

該当なし