10月28日 - JK-1.2.27 リリース
Apache Tomcat チームは、Tomcat コネクタ 1.2.27 が本日リリースされたことを発表いたします。 これは、多くの新機能といくつかのバグ修正を含む安定版リリースです。
変更点の完全なリストについては、変更履歴をご覧ください。
このリリースを使用中にバグを発見した場合は、Bugzilla バグレポートにご記入ください。
このバージョンで最も重要な新機能は次のとおりです
定期的なタスクのための監視スレッド
コネクタは、リクエスト処理とは無関係にいくつかの定期的なタスクを実行する必要があります。 例としては、プロービング、アイドル状態のバックエンド接続のクローズダウン、負荷数の調整、エラー状態からのワーカーの回復などがあります。
バージョン 1.2.27 より前は、これらのタスクはリクエスト処理ループ内で行われていました。 新しいリクエストが到着し、タスクの実行時期が来ると、リクエストを処理するスレッドは、最初に内部タスクを実行してからリクエストを処理しました。 リクエストが何も入ってこない場合、タスクは実行されません。 いずれかのタスクに予想以上に時間がかかった場合、タスクの完了を待機しているリクエストの応答時間が長くなりました。
今回のリリースから、Web サーバー内に個別の監視スレッドを構成して、これらのタスクをリクエスト処理とは独立して実行できます。 この新機能は、Apache httpd 2.x または Microsoft IIS でコネクタを使用する場合に利用できます。 新しいバージョンの動作を以前のリリースと一貫させるために、この機能はデフォルトでオフになっています。 監視スレッドを有効にするには、Apache の場合は JkWatchdogInterval
、IIS の場合は watchdog_interval
を使用します。
接続プロービング
以前のリリースでは、接続プロービング(接続がまだ機能しているかどうかの確認)は、新しい接続が確立された直後と、各リクエストを送信する直前にのみ実行できました。 監視スレッドが利用可能になったため、ワーカー属性 ping_mode
で有効にできる定期的なプロービング オプションも追加しました。 これは、悪名高いファイアウォールのアイドル接続ドロップに対する保護としても役立ちます。
以前の属性である connect_timeout
と prepost_timeout
は引き続き存在し、以前のリリースと同じように動作します。 現在、3 つの異なるプロービング オプションがあるため、構成を新しい属性である ping_mode
、ping_timeout
、connection_ping_interval
に移行することをお勧めします。
マウント拡張
通常、コネクタのワーカーとマウントを定義します。 ワーカーは、通信先のバックエンドと、通信の構成パラメータ、接続プールなどを定義します。 マウントは、どの URI をどのワーカーに転送するかを定義します(そのため、マウントを URI マップルールとも呼びます)。 バージョン 1.2.27 では、マウントごとに特定のワーカーパラメータを上書きできます。
わかりやすい例の 1 つは、応答タイムアウトです。 このリリースまでは、ワーカー全体に応答タイムアウトを指定する必要がありました。 しかし、応答時間はリクエストの種類に大きく依存します。 したがって、通常は一般的な応答タイムアウトを定義し、一部の特別な URL については、それらの URL の処理に時間がかかることがわかっているため(たとえば、レポートやその他の計算負荷の高いタスクなど)、応答タイムアウトを緩和する必要があります。
もう 1 つの考えられるケースは、アクティベーションステータスです。 ロードバランサーワーカーを使用して、Tomcat ノードのファーム内の特定の Web アプリへのリクエストを転送する場合があります。 あるノード上のいくつかの Web アプリを更新したい場合は、以前は、この Tomcat ノード上のすべての Web アプリへのリクエストの転送を停止する必要がありました。 これまで不可能だったのは、更新したい Web アプリとノードに限定されたリクエストの転送を停止することでした。
今回のリリースから、ルール拡張 を uriworkermap ファイルに追加して、マウントごとにワーカーパラメータに影響を与えることができます。 これは、すべての Apache バージョンと IIS で機能します。 uriworkermap ファイルは、Web サーバーを再起動しなくても、変更後に自動的に再読み込みされることを忘れないでください。
IIS サポートの改善
さまざまな方法で IIS サポートを改善しました。 ISAPI リダイレクタで複数の IIS 6 アプリケーションプールを使用できるようになりました。
さらに、いくつかの改善がコンパイル時の機能として追加されました。 最も注目すべきものの 1 つは、チャンクエンコーディングのサポートであり、これは主要なリファクタリングであり、したがってまだ実験的であると見なされています。 チャンクエンコーディングサポートの有無にかかわらずバイナリをダウンロードできます。 今後のバージョンでは、チャンクエンコーディングはすべてのビルドで利用できるようになる可能性があります。
もう 1 つの新機能は、エラーページのリダイレクトを構成するためのエレガントな方法です。 すべての新機能は、IIS の構成に関するドキュメントページに記載されています。
拡張されたステータスワーカー
ステータスワーカー は、ロードバランサーの一部ではない AJP ワーカーの統計情報を管理および表示できるようになりました。 その他の改善点としては、新しい dump
アクション、新しい構成属性の統合、最後の統計リセット以降の平均リクエストレートと転送レートの表示、およびロードバランサーの単一メンバーのみを表示する機能などがあります。
残念ながら、ステータスワーカーの update
アクションに使用される いくつかのリクエストパラメータを変更する必要がありました。
その他の改善点
その他の機能強化は次のとおりです。
- 構成可能なセッションスティッキーネスインジケータ:Cookie名とURLパスパラメータ名を、サーブレット仕様に準拠した
JSESSIONID
および;jsessionid
の代わりに自由に選択できます。 - すべてのワーカーを収容するために必要な共有メモリセグメントのサイズを自動的に決定します。
- 新しい接続確立タイムアウト
socket_connect_timeout
。 - プールから空き接続を取得するための新しいタイムアウト
connection_acquire_timeout
。 - AJP ワーカーおよびロードバランサーの属性
retries
の意味を調整し、新しいretry_interval
を追加することで、再試行処理を改善しました。 - Tomcatの代わりにWebサーバーがエラーページを提供できるようにします。