|
|
このドキュメントは、Tomcat サーブレット・コンテナの紹介です。 だれでもTomcatをインストール、設定、配置するのに十分である必要があります。 また、新規ユーザに対する共通の多くの質問に答えます。また全てのユーザが Tomcat FAQ やこのドキュメントに存在しないような質問と答えを加える ことを薦めます。 もしこの文書についてコメントや提案があるならば、 mailing listsに 参加するのをためらわないで下さい。
この文書は Gal Shachoによって、Tomcat: A Minimalistic User's Guide として作成され、その他大勢の人によって修正さました。 これはまだ作業中と思ってください。Tomcatソースツリーが絶えず変わって いるので、ここでの情報は古いかもしれません。 唯一のもっとも信頼できる参照元は ソースコード です。
"???" の意味は、それが本当にふさわしければ、加筆しなければ ならないことか、あるいは、それがどこか別のところで言及しなければならない ことなのか私にはわからないことを意味します。 その他の編集コメントは、[ 正方形の括弧 ] で囲まれます。
その他の重要な文書:
Tomcat は、 Java Servlet 2.2 と JavaServer Pages 1.1 技術の公式リファレンスの実装です。 Apacheライセンスの下で開発され 開かれた、個人参加方式での環境で、世界中からの best-of-breed な開発者の協力により 開発されています。
At the Jakarta download page!
これは共通の誤解です。 JServ は、 Apacheと使われるために作成されたServlet API 2.0 に準拠したコンテナです。 Tomcat は、完全なリライトで、Servlet API 2.2 と JSP 1.1 に準拠したコンテナです。 Tomcatは、JServ(特にJServのApacheサーバー・アダプター)のために書かれる コードの一部を使用します、しかし、これは類似が終わるとこるです。
ナッツシェルによれば、サーブレットは、メモリ常駐Javaプログラムで、 サーブレット・コンテナ(たとえばTomcat!)内部で実行されます。これらは CGIベースのスクリプト(たとえばperlとか)とは異なり、プロセス生成と 以後のクリーンアップのオーバーヘッドが必要ないので、より早く要求に 応答することができます。
Sun's servlet siteによれば:
"JavaTM Servlet API は、ウェブ開発者にウェブ・サーバーの、そして、既存のビジネス・システムに アクセスするための機能性を広げる単純な、一貫した仕組みを提供する。 サーブレットは、ほとんどサーバー上で動作し、faceは無い。"
...そしてJSP(JavaServer Pages)については, 再び Sun's servlet siteから:
"JSP 技術はHTMLとXMLページを書くことをサポートするために作成される サーブレット技術の拡張である。それは固定もしくは静的テンプレート・データを 動的な内容と組み合わせることをより簡単にする。"
JSP は、PHPとASPのような他の技術に相当します。そしてそれは、プログラミング/ スクリプティングをHTMLのようなマークアップ言語と組み合わせます。 プログラミング言語選択の重要な違い。 例えば、PHPは、C/C++/Javaハイブリッド、ASPは、VBScriptを使用します。 そしてJSPはJavaプログラミング言語の最大限のパワーを利用します。 これらの技術の多くの類似があり、これらは機敏な開発者の道具箱に 入っている。
これらの全ての情報は、 Sun's Java websiteにあり、ここからJSP, サーブレット、などをたどることが できる。 もし、徹底的に最初に JavaServer Pages と サーブレット 仕様書!を読み込めば、これらの技術で費やされる時間は有意義でしょう。
お願いです! Jakartaプロジェクトの貢献ページを見てください、それはここにあります。 tomcat-devメーリングリストに 参加。
わたしたちは、多くの共通の問題を満足させることを希望するが、疑う余地無くいくつか みのがした。より多くのヘルプを得るために、試してください(この順番で):
- Download に 適切なjakarta-tomcat [.zip | .gz | .Z] ファイルがあります。
- ファイルを何処かのディレクトリ(/usr/local または C:\)に解凍する。 新しい名前のサブディレクトリを "tomcat"を作成する。 [ まだ "jakarta-tomcat" を作成する? ならば、"tomcat"と名前を変更しなさい。]
- "tomcat" ディレトクリに移動して 新しく環境変数 (TOMCAT_HOME) を Tomcat階層のrootディレクトリを指すように設定します。 正確なディレクリはシステムごとに変わるかもしれません
- Win32 システムでは、以下のようにタイプする:
set TOMCAT_HOME=c:\tomcat- UNIX (bash/sh 使用) では:
TOMCAT_HOME=/usr/local/tomcat ; export TOMCAT_HOME- UNIX (tcsh 使用) では:
setenv TOMCAT_HOME=/usr/local/tomcat- 環境変数 JAVA_HOMEを JDK階層のrootディレクトリに設定し、 PATH環境変数にJavaインタプリタを通す。これはシステムによって 異なるかもしれない。Javaがインストールされたローカルファイルシステムを チェックすること。
- Win32:
set JAVA_HOME=c:/jdk1.2
set PATH=%PATH%;%JAVA_HOME%\bin- Unix (bash/sh):
set JAVA_HOME=/user/local/java/jdk1.2; export JAVA_HOME
set PATH=$PATH:$JAVA_HOME/bin; export PATH
- Unix (tcsh):
setenv JAVA_HOME=/user/local/java/jdk1.2
setenv PATH=$PATH:$JAVA_HOME/bin
これだけ! Tomcat の実行 とそれは スタンドアロン サーブレット・コンテナとしての実行が可能です。
いったん、正しく動作するとわかったら、これらの環境変数は設定ファイルで セットしておいたほうがよい。 設定ファイルは: Windowsでは、C:/AUTOEXEC.BAT, ~/bash_profile または ~/[ tcshの場合には何? ]
Tomcatの開始と停止ではTOMCAT_HOME以下の binディレクトリにあるスクリプトを使用します。
Tomcastの実行を開始するためには:
UNIX: bin/startup.sh
Win32: bin\startup
Tomcastの実行を停止するには:
UNIX: bin/shutdown.sh
Win32: bin\shutdown
次のセクションで説明している、Tomcat の ディレクトリ構成, と Tomcatの設定 を読むまでこの章は たくさんの意味をなさないかもしれない。それらの後でここに戻ってくるのが 良いかもしれない。
デフォルトでは、Tomcatは、設定として TOMCAT_HOME/conf/server.xml を使用する> デフォルトとしてTOMCAT_HOMEは、そのベースとして使用される。 "-f /path/to/server.xml" オプションを使用することで変更することが可能で、 異なるサーバー設定ファイルで ContextManager 要素を 指定できる。homeの中で必要とされる設定ファイルは:
- webapps/ - 全ての war ファイルは、拡張とコンテキストの全てのサブディレクトリが含まれる
- conf/ - 特別な web.xmlとその他の設定ファイル。
- logs/ - メインの TOMCAT_HOME/logs/ ディレクトリの変わりに全ての ログがこのディレクトリに記録される。
- work/ -コンテキストで使用されるワークディレクトリ
server.xmlでのContextManager要素のホームでの属性が関連しているならば、 それは現在のワークディレクトリと関連している。
Tomcatバイナリ配布を展開したとすると、以下のディレクトリ構成が TOMCAT_HOME以下にある:
ディレトクリ 内容 bin Startup/shutdown スクリプトとその他の便利ファイル conf 設定ファイルで server.xml を含む。(Tomcatの メイン設定ファイル) と web.xml (Tomcatに配置される様様なウェブ・アプリケーションのためのデフォルト値。 doc Tomcatに関する様様な文書 lib Tomcastによって使用される様様な jar ファイル。 このディレクトリのどんなファイルでもTomcatのクラスパスに追加される。 logs これはデフォルトのTomcatのログファイルが置かれる場所 src サーブレット API ソースファイル。しかし、喜んではいけない、 これらは、空のインタフェースでabstractクラスなので、サーブレットコンテナで 実装しなけれはならならい。 webapps ウェブ・アプリケーションのサンプル。 ここに置かれる どんな .war ファイルでも自動的に広げられる。 WAR ファイルの配置を参照。 これに加えて、、Tomcaltまたはあなたよって以下のディレクトリが作成される。
work Tomcatが中間ファイル(JSPファイルのコンパイルされたものなど)を 動作中に置く場所です。もしこのディレクリをTomcatの動作中に削除すると JSPページの実行ができなくなります。 classes Tomcatのクラスパスの場所で見つけたいクラスを何でも追加することができる。
前記のスタートアップとシャットダウン・スクリプトによって提供されるデフォルト の機能が大部分のTomcatを開始するためのユーザーに十分であるので、このセクションは 読む必要はない。すべてがこれまでに動作しているならば、 Tomcatの設定 にスキップしてください。あなたが、疑う余地無くスクリプトに関するより多くの 情報が必要ならば、このセクションに戻ってきてください。
Tomcat はJavaプログラムです。したがって、いくつかの環境変数をセットした後に、 コマンドラインからそれを実行することが可能です。しかしそれぞれ環境変数を コマンドラインパラメータで指定して設定することは、エラーを起こしやすく 退屈なことです。その代わりに Tomcat開発チームは、Tomcatの開始、停止を簡単に するために、いくつかのスクリプトを提供しています。
注: スクリプトは、開始/停止への便利な方法だけです。 Tomcatのために正しいコマンドラインを生成するためにするかぎり 環境変数の CLASSPATH, PATH, LD_LIBRARY_PAHTなどを修正することができます。
以下の表は、普通のユーザにとって最も重要なスクリプトを提示しています。
スクリプト名 説明 tomcat メイン・スクリプト。CLASSPATH, TOMCAT_HOME, JAVA_HOMEを含んだ適当な環境をセットして、適当なコマンドラインパラメータ でTomcatを開始します。 startup tomcatをバックグラウンドで開始します。"tomcat start"のショートカット shutdown tomcatを停止(シャットダウン)します。"tomcat stop"のショートカット ユーザのために最も重要性を持つスクリプトは tomcat(tomcat.sh/tomcat.bat)です。 その他のTomcat関連のスクリプトは、単純化されたひとつの作業を行うためのエントリを tomcatスクリプトに対して行うために用意されています(異なるパラメータをセットして)
tomcat.sh/tomcat.batの動作の詳細は以下のとおり:
これらの振る舞いは、(特にCLASSPATH設定)は、Tomcat 3.2で変更された。 一番よいのは、直接スクリプトを見て変数設定と何のクラスのが読み込まれるか確かめることです。 [??? -再テストが終わるまでに全セクション削除? ]
OS 動作 Unix
- TOMCAT_HOMEが指定されてなければ、推測する
- JAVA_HOMEが指定されていなければ、推測する
- それらを含むCLASSPATHを設定する -
- ${TOMCAT_HOME}/classes ディレクトリ (もしあれば).
- ${TOMCAT_HOME}/lib の全ての内容.
- ${JAVA_HOME}/lib/tools.jar (この jar ファイルは、 toolの javac を含んでおり、jsp ファイルのために javacが必要).
- java をコマンドライン引数を指定して実行し、javaシステム環境を tomcat.homeを呼び出し、org.apache.tomcat.startup.Tomcat を スタートアップクラスとして呼び出す。また、コマンドライン引数を org.apache.tomcat.startup.Tomcatに渡す:
- 実施する操作 start/stop/run/etc.
- このTomcatプロセスよって使用される server.xml へのパス
例えば、server.xmlが、/etc/server_1.xmlに存在して、 ユーザーが、apacheをバックグラウンドで開始したい場合には 以下のコマンドラインを提供する:
bin/tomcat.sh start -f /etc/server_1.xmlWin32
- 以下を含んだCLASSPATHを設定する -
- %TOMCAT_HOME%\lib ディレクトリの servlet.jar, webserver.jar, jasper.jar, xml.jar
- %TOMCAT_HOME%\classes (存在しなくても),
- %JAVA_HOME%\lib\tools.jar (この jar ファイルにはjavacツールが含まれており jspファイルのために javacが必要).
- コマンドライン引数を伴って、PATHの中にあるはずの javaを実行し、 tomcat.homeを呼び出し、org.apache.tomcat.startup.Tomcatを呼び出し、 ます。またコマンドライン引数をorg.apache.tomcat.startup.Tomcatに 渡します。
- 動作させる操作 start/stop/run/etc.
- このTomcatプロセスで使用するserver.xmlへのパス
例えば、server.xmlがconf\server_1.xmlに有るとして、apacheを バックグラウンドで動作させたい場合には、次のようなコマンドに なります。
bin\tomcat.bat start -f conf\server_1.xmlWin32版のtomcat.batは、Unixのそれと比較することができるので見たい場合には見れる。 特にも、TOMCAT_HOMEとJAVA_HOMEの値を推測しないこと全ての .jarファイルをclasspathに 持っていくわけではない。
Tomcatの場合、3つ異なるの実行モードをサポートします。
Tomcatは、(主として開発とデバッグ用に)スタンドアロン・コンテナとしても 既存のウェブ・サーバ(現在は、Apache, IIS, Netscape サーバー)のアドオン としても使用できます。この意味は、Tomcatを配置するときには、それを使う 方法を決定しなければならないことであり、またオプション2,3を選択する 場合には、ウェブ・サーバー・アダプターを設置する必要があります。
もし Tomcatを最初に設定して、そのうちウェブ・サーバーに統合する 場合にはスタントアロン型で分離して実行したほうが良いでしょう。将来的に 統合したときに、エラーの切り分けができます - " エラーが Tomcatのせいなのかウェブ・サーバーのせいなのか ? "
Tomcatは、2つのファイルから設定されます。:
server.xml (TOMCAT_HOME の下の conf サブディレクトリにある) の要素は、 以下に説明されています。もうひとつのウインドウでデフォルトのserver.xml とともにつづくことは役に立つ。デフォルト server.xmlファイルは、下のコメント に取って代わるかもしれない多くのコメントがあります。 これは、how-toより多くのリファレンス・セクションです。
<Server> The topmost element. <Server> ひとつの Tomcat サーバーを定義する。 通常そのことを気にしてはならない
<xmlmapper:debug> server.xmlファイルの内容をどのように Tomcatが登録するかを心配しない限り、たぶんこれに決して触る必要がない。 たとえ心配するとしても、Tomcatのメイン・ログ・ファイルにおいて見つけられる 最初の出力が通常この目的には十分である。 属性:
- level. "0" の意味は "何も出力しない". "9" の意味は "ほとんど何でも".
<Logger> この要素は、Loggerオブジェクト(ログ・ファイルに等しい)を定義します。現在、 loggersがサーブレット(ServletContext.log()が行くところ)とtomcat実行時の ためにあります。 属性:
- name. loggerの識別子。 "tc_log", "servlet_log", or "JASPER_LOG"のうちのひとつ.
- path. TOMCAT_HOMEと関連した出力ファイル "path"の値を省略すると標準エラー出力と標準出力が使用される。
- verbosityLevel. 冗長出力の順番; "FATAL", "ERROR", "WARNING", "INFORMATION", or "DEBUG"のうちのひとつ.
<ContextManager> ContextManagerは、ContextInterceptors、RequestInterceptors、Contextと 彼らのコネクタの集合のために、設定と構造を指定する 属性:
- debug. "0" 意味は "何も出力しない". "9" の意味は "何でも出力する".
- home. すべてコンテキストで定義されたすべての webapps, conf, logs ディレクトリのベース位置。 TOMCAT_HOME以外のディレクトリからTomcatを開始するときに使用される。 この属性のデフォルト値は、TOMCAT_HOME
- workDir. working directoryの名前、上記のhome属性に関連
<ContextInterceptor>
<RequestInterceptor>これらのインターセプターは、 ContextManagerで発生する特定のイベントに聞き耳を立てる。例えば、 ContextInterceptorは、Tomcatの開始とシャットダウン・イベントに聞き耳を立てる、 そして、RequestInterceptorはユーザ要求がそのサービスの間、通過する必要がある いろいろなフェーズを見る。Tomcatの管理者は、インターセプターについて多くを 知る必要はない。一方、開発者は、これがどのように操作の「グローパル」なタイプ (例えば、リクエスト記録やセキュリティ)で実装 される方法であることをしっていなければならならい。
<Connector> Connector は、ユーザー(ウェブ・サーバーまたは ユーザーのブラウザへの直接接続( スタンドアロン型 設定の場合)とのつながりを表します。 Connector オブジェクトは、ワーカー・スレッド管理のために、そして様様な クライアントからのソケット接続によるread/write 要求/応答 のために責任 があります。 属性:
このConnectorの設定についてはこのドキュメントのあとで説明します。
- className. どのコネクタを使用するか
<Parameter> Connector 初期化パラメータ。 各Connectorの下で、必要に応じてこれらの要素をさらに同じだけ持つかもしれない。 属性:
- name. "handler", "port", "socketFactory"のどれか.
- value. 適切な値.
<Context> ぞれぞれの Context は、ウェブ・アプリケーションを置くTomcat階層を代表します。 属性:
- path. どのContextがこの要求を処理するために使われなければ ならないのかについて、Tomcatに要求を伝えるためのURIのプレフィックスで ある特定のウェブアプリケーションのための context path 。 この属性は、必須で、スラッシュからはじめなければならない ('/') 文字
- docBase. ウェブ・アプリケーションのroot。 関連する ContextManager のホームまたはフルパスが指定できる。 これは Apacheの "DocumentRoot" 指示の Tomcat版です。
- reloadable. servletを開発するとき、自動的にTomcatにそれを再ロードさせることは非常に便利である。 そして、バグを修正して、Tomcatにコンテナを再開する必要なしで、新しいコードをテストすることが できるようになります。サーブレット再読み込みをONにするには、reloadableフラグをtureにします。 しかしながら、変更を見つけることは、時間がかかります。 さらに、新しいサーブレットが新しいclass-loaderオブジェクトでロードされるときに、この クラスを再ロードしているのをトリガーとしてエラーを投げる場合があります。 これらの問題を避けるために、reloadableフラグをfalseにセットすることができます。
- trusted. FacadeManagerと内部オブジェクトにTomcatがアクセスすることを全て信頼する
- debug. "0" は "出力しない". "9" は "なんでも出力する".
<Host> <Context> 要素に含まれる. <Host> 要素は、pre-virtual ホスト Contextsの設定のために使用される 属性:
- name: 仮想ホストの完全修飾ホスト名または、IPアドレス
</ContextManager> </Server>
web.xmlとウェブ・アプリケーション構造(ディレクトリ構造と設定を含む)の 詳細な記述は Servlet API Spec の9,10,13章において確認できます。これについては記述するつもりはない。 Tomcatでのアプリケーション開発 では、Tomcatでのウェブ・アプリケーションと配置をカバーしている。 時間を取って通しでServlet API Spec! を読んでいないならば、それは必要なことです。
web.xmlに関連した小さな「機能」がTomcatにある。 Tomcatは、ユーザーにデフォルトのweb.xmlファイルをTOMCAT_HOMEの confサブディレクトリに置くことによって全てのコンテキストのため にデフォルトのweb.xml値を定義させる。 新規にConextを作成するときに、Tomcatは、ベース設定としての デフォルトのweb.xmlファイルを使用して、それからアプリケーション特性 web.xml(アプリケーションの WEB-INF/web.xmlファイル)設定を適用する。 これはTomcatで、あなたが空のweb.xmlファイルを持っていけることを 意味すま。そして、要素 <web-app/>, や (もっと現実的に)必要とする要素だけ(例えば、マッピングとmime-type) だけ含める。 しかし、これはあなたのwebappのポータビリティを制限するので 、それは完全なweb.xmlファイルを使用すると勧められる。 あなたは、その代わりにTOMCAT_HOME/conf/web.xmlをコピー したいかもしれなくて、それを修正するかもしれない。
我々は以降のセクションにおいてweb.xmlの特定の面をカバーする、 そこで、それはTomcatでアプリケーション配置と相互作用に付随する。
ウェブ・アプリケーション (または "webapp") は、 Servlet Specification version 2.2. [2.1?] で紹介された概念です。 あなたは、明確に仕様を読まなければならない。 仕様(9章)から:
ウェブ・アプリケーションは、servlets、htmlページ、クラスと 束になることができて、複数のベンダーから複数のコンテナで 動くことができる他のリソースのコレクションである。 ウェブ・アプリケーションは、ウェブ・サーバーの範囲内で特定 のパスで根づく。 例えば、カタログ・アプリケーションは、http://www.mycorp.com/ カタログに位置することができた。 カタログ・アプリケーションを表すServletContextに、この接頭辞 から始める全ての要求は、経由する。
servletコンテナは、また、ウェブ・アプリケーションの自動生成に対する 規則を確立することができる。 例えば、 ~user/ マッピングをウェブ・アプリケーションの /home/user/public_html/ へとマップできる。
[...]
ウェブ・アプリケーションは、ディレクトリの階層構造として存在する。 この階層のルートは、このコンテキストの一部であるファイルを 対応するためのドキュメントルートとして役に立つ。 例えば、ウェブ・アプリケーションでウェブサーバー上で /catalog としていつづけられるときに、index.htmlファイルは、ウェブ・アプリケーション 階層のベースの位置は、/catalog/index.htmlへの要求を満たすために 提供される。
「WEB-INF」と名前の付けられた特別なディレクトリがアプリケーション階層内に存在する。 このディレクトリは、アプリケーションのドキュメントルートに存在しない アプリケーションに関連するすべてのものが含まれる。 WEB-INFノードがアプリケーションの publicドキュメントツリーの一部でない点に注意する ことは重要である。 WEB-INFディレクトリ内に含まれるファイルは、直接クライアントに提供されないかもしれない。
WEB-INFディレクトリの内容は:
- /WEB-INF/web.xml 配置記述
- /WEB-INF/classes/* ディレクトリは、sevletとユーティリティクラス用。 The classes in this directory are used by the application class loader to load classes from.
- /WEB-INF/lib/*.jar area for Java ARchive files which contain servlets, beans, and other utility classes useful to the web application. All such archive files are used by the web application class loader to load classes from.
サンプル・ウェブ・アプリケーション・ディレクトリ構造
サンプル・ウェブ・アプリケーションの全てのファイルのリストの図示:
/index.html /howto.jsp /feedback.jsp /images/banner.gif /images/jumping.gif /WEB-INF/web.xml /WEB-INF/lib/jspbean.jar /WEB-INF/classes/com/mycorp/servlets/MyServlet.class /WEB-INF/classes/com/mycorp/util/MyUtils.class
TOMCAT_HOME/conf/server.xmlに <Context> タグを追加することによって ローカルファイルシステム上にあるWARファイルを配置することができます。 例えば、
<Context path="/mywebapp" docBase="/home/alex/webapps/mywebapp" reloadable="true" > </Context>
"WAR. へぇ! それは何にいいんだい?" - Edwin Starr
WAR (または "web archive") ファイルは、単純にパッケージ化された webappディレクトリです。それは標準 Java jarツール によって作成されます。 例えば:
cd /home/alex/webapps/mywebapp jar cf mywebapp.war *
現在 (バージョン3.2)では、新しいWARファイルを配置するための手順は:
- Tomcatを停止する.
- 存在する配置を削除する 以前に TOMCAT_HOME/webappsに "foo.war" を配置していた場合には、 webapps/foo/.... に展開されています。このディレクトリと中身を全て削除 しなければなりません。Unixでは、
rm -r $TOMCAT_HOME/webapps/fooとします。- WARファイルを TOMCAT_HOME/webapps/ にコピーする.
- Tomcat を開始する.
この手順は、将来的にもっと簡単になる予定です。 "deploy tool" は、Tomcatの "to-do" リストにあります。
注意: あなたがこのようにWARファイルを展開するならば、 あなたがserver.xmlにいかなる変更も する必要がない−サーバーが動き出すとき、それは自動的に 認識されて、活性化される。 しかし、あなたがこのwebappのために非デフォルト・オプションを 指定したいならば、あなたは<Context docBase="webapps/foo&quo ...
How do I deploy a WAR file in Tomcat? jGuru FAQ参照のこと.
これらのチュートリアルは、Tomcatが独立型コンテナとして働 いているという仮定で動く。我々が前に言ったように、あなたが 使っている特定のウェブ・サーバーにかかわりなく、Tomcatの 機能性がわかることは役に立つことがありえる。二と追うものは 一兎も得ずだ。統合は、以降のセクションの後でカバーされる。
[注: なにかのチュートリアルをここに追加しとく :-) ]デフォルトでTomcatの配布では、ネイティブ設定でやってくるため 本当の目的は、最初の時間でユーザ経験を促進することにある。 そして「out of the box」操作.... この構成は、しかし本当のサイトでTomcatを展開する最高の方法ではない。 例えば、本当のサイトは、いくらかのパフォーマンス・チューニングと サイトに特有の設定(例えば、追加のパス要素)を必要とするかもしれない。 このセクションでは、Tomcatベースのサイトで発表する前に行わなければ ならない最初のステップについて方向づけようとしている。
前のセクションで、起動スクリプトは便利なものであると述べました。しかし、 しかし、時によって配置のために必要とされるスクリプトは修正されなければ ならなものです。
tomcatスクリプトのデフォルトJVM設定は、とてもna・eです。 なにもかもがデフォルトの残されます。 Tomcatのパフォーマンスを向上させるために考慮しなければならないものが 2,3あります。
Tomcatのデフォルトで構成される server.xml には、次のserver.xml断片 の場合のように構成される2つのConnectorを含みます。
<!-- (1) HTTP Connector for stand-alone operation -->
<Connector className="org.apache.tomcat.service.SimpleTcpConnector">
<Parameter
name="handler"
value="org.apache.tomcat.service.http.HttpConnectionHandler"/>
<Parameter
name="port"
value="8080"/>
</Connector>
<!-- (2) AJPV12 Connector for out-of-process operation -->
<Connector className="org.apache.tomcat.service.SimpleTcpConnector">
<Parameter
name="handler"
value="org.apache.tomcat.service.connector.Ajp12ConnectionHandler"/>
<Parameter
name="port"
value="8007"/>
</Connector>
|
Tomcatは、マルチスレッド・サーブレット・コンテナです。これは、各 要求がいくつかのスレッドによって実行される必要があることを意味しています。 デフォルトでは、要求が到着するとTomcatは新しいスレッドを作成して 開始して、要求を処理します。この振る舞いはロードしたサイトでは 問題を含みます。
Tomcatでのスレッド・プールの使用は簡単な変更で済みます。<Connector> 設定で、PoolTcpConnectorを使用するだけです。例えば、以下のserver.xml の断片では、ajpv12でプールされたコネクタを定義しています。
<!-- A pooled AJPV12 Connector for out-of-process operation -->
<Connector className="org.apache.tomcat.service.PoolTcpConnector">
<Parameter
name="handler"
value="org.apache.tomcat.service.connector.Ajp12ConnectionHandler"/>
<Parameter
name="port"
value="8007"/>
</Connector>
|
<!-- A pooled AJPV12 Connector for out-of-process operation -->
<Connector className="org.apache.tomcat.service.PoolTcpConnector">
<Parameter
name="handler"
value="org.apache.tomcat.service.connector.Ajp12ConnectionHandler"/>
<Parameter
name="port"
value="8007"/>
<Parameter
name="max_threads"
value="30"/>
<Parameter
name="max_spare_threads"
value="20"/>
<Parameter
name="min_spare_threads"
value="5" />
</Connector>
|
サーブレットの自動再読み込みは、開発時には本当に便利です。 しかし、特定のクラスローダーによってロードされたクラスが現在の クラスローダーによってロードされるクラスと協力することができない とき、それは非常に高価(パフォーマンス低下用語)で、アプリケーション を奇妙な対立にしてしまうかもしれない。
それで、クラスの本当の必要がない限り、展開の間、再ロードすることは コンテキストにおいてreloadableフラグをオフにしなければならない。
残念なことに、Apache(または他のサーバーでも)のために開発される アダプターは、まだTomcatの開始ができない。しかし、UNIX上では マシンスタートアップ時に自動的にTomcatを開始させるためにinitテーブルを 使用することができます。 FIXME:
Tomcat は、オリジナルは、サン・マイクロシステムズによって書かれ、cast of thousands によって改善されている(希望).
本ドキュメントの作成は:
|
Copyright ©1999 The Apache Software Foundation |