これはApache Tomcat Connectorsの変更ログです。この変更ログには、Tomcatコネクタのすべての更新と修正が含まれているわけではありません(まだ)。これは、JKの新しいドキュメントプロジェクトが開始された2004年11月10日以降に行われた修正のみを含むべきです。
変更ログ
序文
1.2.49 から 1.2.50 までの変更点
Apache
68117: 1.2.49 で導入されたシンボル可視性を減らすための新しい libtool フラグのタイプミスを修正。Makefileでのエスケープ処理も改善。lzsiga@freemail.c3.hu よりパッチ提供。(rjung)
非Windows環境での共有メモリ処理を改善。(rjung)
IIS
ISAPI リダイレクターにバンドルされている PCRE を 8.45 に更新。(rjung)
共通
#8: musl でのコンパイルを修正。conrad+github@kostecki.com よりパッチ提供。(rjung)
config.guess および config.sub を https://git.savannah.gnu.org/git/config.git から更新。(rjung)
1.2.48 から 1.2.49 までの変更点
Apache
mod_unique_id からデフォルトのリクエストIDを取得。「JkRequestIdIndicator」を設定することで、任意の環境変数から取得することも可能。(rjung)
65901: リクエストがHEADメソッドを使用した場合、ステータスコードがエラーを示す際に、レスポンスボディの生成をhttpdに委譲しない。(markt)
66005: メインモジュールのシンボルのみをエクスポート。モジュール内部シンボルの可視性がライブラリシンボルと競合した際にクラッシュを引き起こしていた。Josef Čejka より提供されたパッチに基づく。(rjung)
ワーカーへのリクエストの暗黙的なマッピングのサポートを削除。すべてのマッピングは明示的である必要がある。(rjung)
IIS
デフォルトのリクエストIDをGUIDとして設定。「request_id_header」を設定することで、任意のリクエストヘッダーから取得することも可能。(rjung)
Translate ヘッダーの非空チェックを修正。(rjung)
共通
ドキュメント
Netscape / Sun ONE / Oracle iPlanet Web Server が製品として終了したため、そのサポートを削除。(markt)
古い JK2 ドキュメントへのリンクを削除。JK2 ドキュメントは引き続き利用可能ですが、現在の JK ドキュメントからはリンクされていません。(markt)
バージョン 1.2.45 からの変更ログのサブセクションを再構成。(rjung)
1.2.47 から 1.2.48 までの変更点
IIS
サポートされなくなったWindowsバージョンを削除し、Windows Server 2019 を追加するよう、インストール方法のドキュメントを更新。(markt)
1.2.46 から 1.2.47 までの変更点
Apache
リクエストマッピングの問題のデバッグを支援するため、メソッドのエントリ/終了のトレースレベルロギングを拡張。(markt)
SSIファイルインクルードなどのファイルベースのリクエストが処理されないようにしていた正規化チェックのバグを修正。(markt)
63214:
JkAutoAlias
を使用する際、名前にスペースが含まれるファイルにアクセス可能であることを保証。(markt)
共通
Apache Tomcat Connectors のソースコードが Subversion から Git に移行したことを反映するよう、ドキュメントを更新。(markt)
64051:
set_session_cookie
を使用する際、ロードバランサーが別のワーカーにフェイルオーバーする必要がある場合に、更新されたセッションクッキーが発行されるようにする。(markt)config.guess および config.sub を https://git.savannah.gnu.org/git/config.git から更新しました。(markt)
gitへの移行のため、リリーススクリプトを更新しました。(rjung)
1.2.45 と 1.2.46 の間の変更点
Apache
62751: poll() を提供するプラットフォームで、socket_connect_timeout がミリ秒ではなく秒単位で解釈されるという1.2.44でのリグレッションを修正しました。(rjung)
1.2.44 と 1.2.45 の間の変更点
Apache
JkAutoAlias ディレクティブの追加の制限事項を記載するようドキュメントを更新しました。(markt)
パスパラメータの処理を改善し、
JkStripSession
がURIの最終セグメントだけでなく、任意のセグメントのパスパラメータで指定されたセッションIDを削除できるようにしました。(markt)
IIS
パスパラメータの処理を改善し、
strip_session
がURIの最終セグメントだけでなく、任意のセグメントのパスパラメータで指定されたセッションIDを削除できるようにしました。(markt)
共通
62689:
OPTIONS *
リクエストの処理が壊れていた1.2.44でのリグレッションを修正しました。(rjung)パスパラメータの処理を最適化しました。(rjung)
ロードバランスされたワーカーのために
session_path
ワーカープロパティによって指定されたセッションIDが、URIの最終セグメントからだけでなく、任意のセグメントのパスパラメータから抽出されるようにパスパラメータの解析を改善しました。(markt)
1.2.43 と 1.2.44 の間の変更点
ネイティブ
Novell Netware の make ファイルと Netware 固有のソースコードを削除しました。これは、5年以上サポートされているバージョンの Netware が存在しないためです。(markt)
57946: Apache: httpd 2.4.x スタイルのアクセス制御ディレクティブを使用するようにドキュメントを更新しました。(markt)
58287: Common: マルチユーザー環境をより適切にサポートするため、Windowsでグローバルではなくローカルのmutexを使用するようにしました。(markt)
59897: Apache: select の制限により httpd クラッシュが引き起こされるのを避けるため、select ではなく poll を使用するようにしました。Koen Wilde 氏によるパッチです。(markt)
60745: ISAPI: WEB-INF または META-INF に一致するパスセグメントを含むリクエストを拒否するチェックを削除しました。これはTomcatが実行するチェックと重複しており、ISAPIが現在のコンテキストパスを認識できないため、有効なリクエストが拒否されることなくこのチェックを実装することは不可能です。(markt)
すべてのajp13ワーカーが失敗した場合のlbワーカーの動作を、特に retries 属性の役割に関して明確にしました。(markt)
62408: リトライ回数の制御を改善するため、新しいロードバランサーワーカープロパティ lb_retries を追加しました。Frederik Nosi 氏によるパッチに基づいています。(markt)
リクエストURIの正規化を共通の場所にリファクタリングし、mod_jk の正規化実装をTomcatで実装されているものと合わせました。(markt)
正規化をTomcatで実装されているものに合わせる変更により、CollapseSlashes オプションが事実上 CollpaseSlashesAll にハードコードされたことをドキュメントに追記しました。(markt)
ISAPIリダイレクタにバンドルされているPCREを8.42に更新しました。(rjung)
config.guess および config.sub を https://git.savannah.gnu.org/git/config.git から更新。(rjung)
1.2.42 と 1.2.43 の間の変更点
ネイティブ
61733: LB: ステータスワーカーによって適用された負荷係数の変更が、ロードバランサーのサブワーカーに正しくすべてのプロセスに伝播されるようにしました。Jonathan Oddy 氏によるパッチに基づいています。(rjung)
ISAPI: 32ビットビルドと64ビットビルドのmakeファイルを調整しました。(markt)
config.guess および config.sub を http://git.savannah.gnu.org/cgit/config.git から更新しました。(rjung)
ISAPIリダイレクタにバンドルされているPCREを8.41に更新しました。(rjung)
現在サポートされているWindowsのバージョンを反映するようにISAPIリダイレクタのインストールに関するドキュメントを更新しました。(markt)
ISAPIリダイレクタによって実行される正規化をTomcatで実装されているものと合わせました。(markt)
1.2.41 と 1.2.42 の間の変更点
ネイティブ
Status: ロードバランサーワーカーを使用せずにAJPワーカーを使用した場合に、バックエンドから読み取られたバイト数とバックエンドに書き込まれたバイト数の表示が正しくない問題を修正しました。(rjung)
Apache: 以前の処理フェーズでクライアントからのリクエストボディの読み取りが既に失敗している場合、クリーンアップ中に残りのリクエストボディ部分を読み取ろうとしないようにしました。(rjung)
57485: Apache: クライアントからのリクエストボディの読み取りエラーをmod_jkに伝播させ、Tomcatが切り捨てられたボディではなくエラーを認識するようにしました。(markt)
57836: ISAPI: 空のREMOTE_USERを""に変換しないようにしました。(rjung)
58249: max_packet_size が1024の倍数でない値で指定された場合、次に近い1024の倍数に調整されることをドキュメントに追記しました。(markt)
58309: ISAPI: バンドルされているpcreをバージョン5.0から8.38に更新しました。(rjung)
58286: mod_jk および ISAPI リダイレクタでのクラッシュを修正しました。このクラッシュは、HTML形式 (デフォルト形式) の jk-status を取得する際にWindowsでのみ発生します。このリグレッションは 54177 の修正によって導入されました。(rjung)
58285: GCCがアトミック実装を提供していないプラットフォームでは、GCCアトミックを使用しないようにしました。このリグレッションは 44454 と 56703 の修正によって導入されました。(rjung)
58425: AJP 1.2 ワーカーの初期化を妨げていた1.2.41でのリグレッションを修正しました。AJP 1.2 プロトコルは非推奨であることに注意してください。yagisita 氏によるパッチです。(markt)
58504: ワーカーのメンテナンスを行うためにバックグラウンドスレッドを使用する場合、メンテナンス実行がスキップされないようにしました。清水 裕人 氏によるパッチです。(markt)
58608: ISAPI: IIS7+ のフラッシュ動作を制御できる新しいレジストリオプション "flush_packets" を追加しました。デフォルトではフラッシュしません。このオプションを "true" に設定すると、IISはAJPパケットを受信するたびにクライアントにデータを書き込むようになります。(markt)
58813: ISAPI: mutex を正しく解放し、プラグインが初期化を完了できるようにしました。この修正以前は、初期化が不完全なためにシャットダウン時にハングアップが発生していました。Matthew Reiter 氏によるパッチです。(markt)
58895: バックエンドサーバーとの通信試行回数のログメッセージにおける off-by-one エラーを修正しました。清水 裕人 氏によるパッチです。(markt)
59164: ワーカーにIPアドレスに解決できないホスト名が指定された場合の最初の接続でのクラッシュを修正しました。(markt)
59184: HTTPD: JkShmFile に無効な値が設定されている場合にmod_jkがセグメンテーションフォルトを起こすのを回避しました。これによりサーバーの起動が失敗します。(markt)
細かいコードのクリーンアップと最適化を行いました。(markt)
1.2.40 と 1.2.41 の間の変更点
ネイティブ
AJP, LB: メンテナンス機能中のロック競合を軽減しました。これは、特にApache httpd prefork MPMと組み合わせて、多数のAJP13およびLBワーカーを使用している場合に観測されていました。(rjung)
57060: ソースツリーの外部からのビルドを許可しました。Petr Sumbera 氏が寄稿したパッチです。(rjung)
56703: Status: 特にバックエンドで接続タイムアウトが発生した場合の、バックエンド接続の現在の数のカウントが肥大化する問題を修正しました。(rjung)
56661: Servlet API getLocalAddr() の問題を修正しました。Tomcat 6.0.42、7.0.55、8.0.11、ApacheおよびISAPIプラグインで動作します。(rjung)
Status: ワーカー属性を変更する際に、古い値と新しい値をログに記録するようにしました。(rjung)
56667: Status: 全メンバーのアクティベーション状態を変更する際のログメッセージを修正しました。(rjung)
56565: 非デュアルネットワークスタックでのIPV6アドレス解決を修正しました。(mturk)
50511: "OPTIONS *" リクエストのログレベルを警告からデバッグに下げました。(rjung)
Apache: クローズされたプールからのメモリへのアクセスを防ぐため、ログノートを参照ではなくコピーするようにしました。(rjung)
マウントおよびアンマウントで隣接する複数のスラッシュの処理を制御するオプションを追加しました。新しいデフォルトでは、アンマウントでのみスラッシュを折りたたみます。Apache の新しい JkOption ("CollapseSlashesAll", "CollapseSlashesNone" または "CollapseSlashesUnmount") と、IIS のプロパティ "collapse_slashes" (値 "all", "none", "unmount") を介して設定できます。これは CVE-2014-8111 の修正です。(rjung)
共有メモリ割り当てのチェックを追加しました。(rjung)
56869: Status: ステータスワーカーにオープンなバックエンド接続の最大数を追加しました。Martin Knoblauch 氏が寄稿したパッチです。(rjung)
56770: AJP: すべてのログメッセージにワーカー名を追加しました。Martin Knoblauch 氏が寄稿したパッチです。(rjung)
50186: Docs: Tomcat AJPコネクタ設定における "connection_pool_timeout" と "keepAliveTimeout" または "connectionTimeout" の関係を明確にしました。(rjung)
52334: LB: 最初の回復試行後、ワーカーの回復時間を元のエラー時間ではなく、最後の回復試行時間に基づいて計算するようにしました。(rjung)
54596 その1: IIS: 設定から ".." ディレクトリコンポーネントのない相対ファイル名を解析する際に、最後の文字が欠落する問題を修正しました。(rjung)
54596 その2: IIS: 相対ファイル名の開始点よりもディレクトリ階層を上位に移動する ".." パスセグメントを含む設定で相対ファイル名を使用する問題を修正しました。(rjung)
Status: バッファサイズ不足によりステータスワーカーの出力がドロップされた場合にログを記録するようにしました。(rjung)
ログバッファを8KBから1KBに減らしました。ログ記録が失敗した場合のログ記録を追加し、切り詰められた可能性のある行に末尾の "..." を追加しました。(rjung)
fail_on_status の32エントリの固定割り当てを動的割り当てに置き換えました。(rjung)
ワーカー属性 "name", "host", "route", "domain", "redirect", "session_cookie", "session_path", "set_session_cookie" の最大長 "60" の実装制限を強制しました。設定ファイル処理とステータスワーカー経由での設定更新にチェックが追加されました。(rjung)
52483: Apache: JkOptions 設定処理の結果のデバッグログを追加しました。(rjung)
54177: Status: 不適切なXML出力にならないように、テキスト形式のタイムスタンプではなく数値形式のタイムスタンプを使用するようにしました。テキスト形式のタイムスタンプはロケール設定に従ってフォーマットされ、それをUTF-8に再エンコードするのは煩雑です。(rjung)
56618: Status: クエリ文字列パラメータを読み取る際にパーセントデコードを使用するようにしました。例えば、クライアントが ":" を "%3A" とエンコードした場合にステータスワーカーを介してIPv6アドレスを編集できるようになります。Christopher Schultz 氏が寄稿したパッチです。(rjung)
56452: IPv6アドレスのデバッグログでのクラッシュを修正しました。Christopher Schultz 氏が寄稿したパッチです。(rjung)
34526: Apache: mod_deflate のリクエストボディインフレーションとの互換性を改善しました。mod_deflate インフレーションの自動検出は実装されていません。代わりに新しいApache環境変数 JK_IGNORE_CL を使用して、mod_jk が既存の Content-Length リクエストヘッダーを無視するようにしてください。(rjung)
44454: LB: "busyness" ロードバランシングメソッドの問題に関する警告をドキュメントに追加しました。(rjung)
44454: アトミックを使用してビジーカウンターを改善しました。(rjung)
56703: Status: 接続済みカウンターを改善しました。アトミックを使用し、mod_jk (Apache) の場合は停止中の子プロセスによって閉じられた接続を正しくカウントダウンするようにしました。(rjung)
44571: ワーカーのエンドポイントを取得できない場合、ステータス503を返すようにしました。(rjung)
Apache: グレースフルまたは通常の再起動中のログ処理を改善しました。(rjung)
CPingを使用したアイドル接続のオプションチェック中に、ワーカー接続の最終アクセス時間を更新しないようにしました。タイムスタンプを更新するとアイドル接続のクローズが妨げられます。(rjung)
接続シャットダウン中に使用されるリンガーパラメータを調整しました。(rjung)
configureベースのビルド中にautoconf PACKAGE 定義で発生する厄介な再定義警告を修正しました。(rjung)
Status: 複数行のテーブルヘッダーを使用し、不正なXML出力を修正しました。(rjung)
44571: ワーカーに許可される同時リクエストのオプションの制限 ("busy_limit" 属性) を実装しました。元のパッチは zealot0630 at gmail dot com 氏が寄稿しました。(rjung)
ログメッセージ "all endpoints are disconnected" を "no usable connection found, will create a new one" に修正しました。一般的なケースでは、情報ログレベルからデバッグログレベルにトーンを落としました。(rjung)
57536: AJP: 接続元のIPアドレスを設定できるようにしました。これはマルチホームホストでのみ使用すべきです。この機能は実験的なものです。(rjung)
57540: AJP: リクエスト処理に使用されたSSLプロトコル (SSLv3, TLSv1, TLSv1.1, TLSv1.2) の名前を転送するようにしました。(rjung)
1.2.39 と 1.2.40 の間の変更点
ネイティブ
バージョン1.2.39で壊れていたチャンク化されたリクエストの転送を修正しました。(rjung)
56352: メモリ解放でのリグレッションを修正しました。(mturk)
名前またはポートが変更された後のワーカーのIPアドレスのステータスワーカー表示を修正しました。(rjung)
56297: キーハッシュ関数を改善しました。APRからコピーしました。(rjung)
55683: 引用符付きセッションクッキーから引用符を削除しました。(rjung)
53542: ISAPI: 503エラーページの文法を修正しました。(rjung)
55696: Mac OS X 10.9での設定解析中のクラッシュを修正しました。(rjung)
1.2.37 と 1.2.39 の間の変更点
ネイティブ
Apache Tomcat Connectors から nt_service を非推奨にしました。(mturk)
56133: リクエストボディ転送中にリクエストが失敗し、reply_timeout が設定されていた場合に発生する可能性のあるクラッシュを修正しました。清水 裕人 氏が寄稿したパッチです。(rjung)
ステータスワーカーがすべてのメンバーのパラメータを更新しない問題を修正しました。(mturk)
55853: HTTPD: Content-Length を設定する正しいAPIを使用するようにしました。areese yahoo-inc.com 氏が寄稿したパッチです。(rjung)
ウェブサーバーへの接続のためのIPV6サポートを追加しました。ホスト名解決を制御し、後方互換性を維持するために新しいディレクティブ prefer_ipv6 が追加されました。(mturk)
SOCK_CLOEXEC の使用を無効にするために configure に --disable-sock-cloexec を追加しました(代わりに FD_CLOEXEC + fnctl を使用)。これにより、ビルドされたモジュールがLinuxカーネル2.6.27より前のバージョンでも動作するようになります。(timw)
設定ファイルの解析をクリーンアップしました。ワーカー名は60バイトに制限されました。(rjung)
ウェブフレームワークがTomcatのルーティングIDをJSESSIONIDクッキーの末尾に追加するのを妨げる場合に、スティッキネス・クッキーを設定できるようにしました。(rjung)
リクエストボディ転送にも max_packet_size を使用するようにしました。(rjung)
Apache 2.4: デフォルトで mod_remoteip によって提供される論理クライアントアドレスを転送するようにしました。JkOptions ForwardPhysicalAddress を設定すると、mod_jk は代わりに物理ピアアドレスを転送します。(rjung)
細かいドキュメントの改善を行いました。(rjung)
1.2.36 と 1.2.37 の間の変更点
ネイティブ
ワーカーがロードバランサーのメンバーとして、またスタンドアロンワーカーとして両方定義されている場合にウェブサーバーがクラッシュする可能性のあるリグレッションを修正しました。(mturk)
デバッグログレベルが指定されていてセッション識別子が存在しない場合にコアダンプが発生する問題を修正しました。(mturk)
1.2.35 と 1.2.36 の間の変更点
ネイティブ
ランタイム設定されたデータを子プロセスが作成されるたびにリセットするのではなく、名前付き共有メモリオブジェクトを使用するようにしました。(mturk)
クローズ時にmutexを解放しないことによって引き起こされるデッドロックを修正しました。(mturk)
HTTPD 1.3 用 mod_jk のコンパイルを修正しました。(rjung)
46893: HTTPD 1.3: HTTPD 1.3 に修正を適用しました。HTTPD 2.x についてはバージョン1.2.30で既に修正済みでした。(rjung)
HTTPD 1.3: JkStripSession を実行する際に使用されるパスパラメータを設定できるようにしました。これは mod_jk 1.2.27 以降 HTTPD 2.x で既に利用可能でした。(rjung)
1.2.33 と 1.2.35 の間の変更点
1.2.32 と 1.2.33 の間の変更点
ネイティブ
52793: AJP: 転送されたワーカーのアクティベーション状態のデフォルト値を修正しました。福山 佳仁 氏が寄稿しました。(rjung)
HTTPD: remote_* 変数ではなく client_* 変数を使用することで、HTTPD 2.4 のサポートを改善しました。(rjung)
52564: フォーマットチェックを行うgccセキュリティ強化cflagsでのビルドを修正しました。Tony Mancill 氏が寄稿しました。(rjung)
52567: リカバリ状態のバランサーメンバーがアイドル状態になるとエラー状態に戻る可能性がある問題を修正しました。(rjung)
URI workermap ファイルをロードできない場合にエラーをログに記録し、IIS で読み取り不能なワーカーファイルのログ記録を改善しました。(timw)
非推奨のJNIワーカーとJava SDKへのビルド依存を削除しました。(mturk)
51253: サーバー生成エラーページを使用する際に WWW-Authenticate ヘッダーを転送するようにしました。(rjung, mturk)
46406: IIS: 設定での相対パスをサポートしました。パスは isapi_redirect.dll からの相対パスと見なされます。(mturk)
50233: URIサイズにハードリミットを設けないようにしました。(mturk)
IIS: Windows Server 2003 SP1, Windows XP SP2 をサポートされる最小バージョンとしました。(mturk)
47038: configureで --enable-flock を使用した際のコンパイラの警告を修正しました。(rjung)
51326: URI Map: "session_cookie" と "session_path" ルール拡張を追加しました。高橋 栄治 氏が寄稿しました。(rjung)
51333: IIS: 64ビット環境での設定要件をドキュメント化しました。(rjung)
51743: HTTPD: 環境変数 (例: JK_WORKER_NAME) でリクエストワーカーを定義する際にルール拡張をサポートしました。(rjung)
51769: IIS: URI のパスコンポーネントでなければ "META-INF" または "WEB-INF" を含むURIを許可するようにしました。(rjung)
52056: HTTPD: JK リクエストログが常に正しい応答ステータスをログに記録しない問題を修正しました。JK リクエストログを標準のリクエストログフックを使用するようにリファクタリングすることで修正しました。(rjung)
HTTPD: 環境変数 JK_ROUTE を使用してスティッキーワーカーを選択できるようにしました。これはセッションとルートが非標準的な方法でリクエストとともに送信される場合に役立ちます。(rjung)
URI Map: uriワーカーマップに "sticky_ignore" 拡張属性を追加しました。これにより、個々のマウントに対するスティッキネスを無効にできます。(rjung)
HTTPD: 環境変数 JK_STICKY_IGNORE を使用してスティッキネスを動的に無効にできるようにしました。これはログインフォームのような非スティッキーなリクエストに対してクッキースティッキネスを解除するのに役立ちます。(rjung)
LB: セッションをラウンドロビン方式で分散する新しいバランシングメソッド "Next" を追加しました。(rjung)
LB: ステータスワーカーとHTTPDノートに作成されたセッションのカウンターを追加しました。これは実際にセッションIDを持たないリクエストの数をカウントします。(rjung)
URI Map: uriワーカーマップに "stateless" 拡張属性を追加しました。これによりセッションロードバランシングを改善できます。(rjung)
HTTPD: 環境変数 JK_STATELESS を使用してリクエストを "stateless" に動的に切り替えられるようにしました。(rjung)
AJP: リクエストがAJPパケットに収まらない場合のログ記録を改善しました。(rjung)
1.2.31 と 1.2.32 の間の変更点
ネイティブ
51417: ワーカーエンドポイントをクエリすることで、ワーカーのビジー状態検出を修正しました。放棄された接続により、ビジーカウンターが減少しないままワーカーがビジー状態になる可能性がありました。(mturk)
50339: 属性リストを解析する際の空白トリミングを修正しました。(rjung)
41263: Servlet API getRemotePort() をサポートしました。Tomcat 5.5.28, 6.0.20, 7.0.0 および Apache/ISAPI プラグインで動作します。(rjung)
41923: AJP: recovery_options 4 が指定されている場合にクライアント書き込みエラーが発生した場合、Tomcat側での応答書き込みを中止し、TomcatへのAJP接続をクローズするようにしました。(timw)
AJP: AJPソケットをシャットダウンする際に読み取られるリンガーバイトを32kに制限し、クライアントが大きな応答ボディで中止した場合にウェブサーバーでのCPUスパイクを防ぐようにしました。また、総リンガー時間を2秒に短縮しました。(timw)
50839: AJP: クライアントが応答書き込み中に接続を中止した場合に、リンガーバイトの誤ったカウントがビジーループを引き起こし、30秒間のCPUスパイクが発生する問題を修正しました。1.2.31でのリグレッションを修正します。(timw)
LB: ワーカーのアクティベーション状態をリクエスト属性 "JK_LB_ACTIVATION" として転送するようにしました。可能な値は "ACT" (active), "DIS" (disabled), "STP" (stopped) です。(rjung)
HTTPD: ステータスが401でサーバー生成エラーページが使用されている場合に、バックエンドから WWW-Authenticate を転送するようにしました。(rjung)
50363: IIS: 204, 205, 304応答で空のメッセージボディのチャンクエンコーディングを防止するようにしました。(timw)
50975: IIS: Content-Length ヘッダーもリクエストに存在する場合に、Transfer-Encoding: chunked リクエストがハングする問題を修正しました。また、元のリクエストに存在しなかった小さなチャンクエンコードされたリクエストに対してIISがContent-Lengthヘッダーを作成するように見える状況にも対処しました。(timw)
47679: IIS: 対応するフィルタがインストールされていない状態でISAPIリダイレクタが拡張機能として使用された場合に、リクエストヘッダーが切り捨てられるのを停止するようにしました。(timw)
NSAPI: 応答のヘッダー名を小文字を使用するようにしました。そうしないと、ウェブサーバーがコンテンツ長ヘッダーに加えてチャンク転送エンコーディングヘッダーを追加する可能性があります。
Docs: ロードバランサーのドキュメントを改善しました。(rjung)
1.2.30 と 1.2.31 の間の変更点
ネイティブ
49413: AJP13: 応答が完了した後にバックエンドから送信されるフラッシュパケットを破棄するようにしました。(rjung)
AJP: ローカルとリモートのソケットアドレスをログに記録するようにしました。(mturk)
Watchdog: メンテナンス中に他のスレッドがコネクションプールを使用できるように、ワーカーの維持をクリティカルセクションの外に移動しました。(mturk)
Common: initログメッセージにsvnリビジョンを追加しました。(rjung)
Common: トレースログ中にerrnoを破壊しないようにしました。(rjung)
Apache: Apache 2.3/2.4 のサポートを追加しました。(rjung)
Apache: Windows上のmod_jk.so にバージョン番号リソースを追加しました。(timw)
48501: IIS: ISAPI Redirector に rotatelogs スタイルのログローテーションを追加しました。(timw)
38895: IIS: ヘッダー名でのアンダースコア '_' からハイフン '-' への変換を防ぐため、デフォルトでCGIヘッダーではなくRAWヘッダーを使用するようにしました。古い動作は USE_CGI_HEADERS を定義することで有効にできます。(timw)
49511: IIS: Keep-Alive 接続での後続のリクエストがISAPI Redirector にマップされない場合に、IIS のログ情報を上書きしないようにしました。(timw)
Docs: SSL情報転送に必要なSSLOptionsをドキュメント化しました。(rjung)
Docs: 文法とスタイルの改善、IISによる静的コンテンツの提供に関する明確化を行いました。André Warnier 氏によるパッチです。(rjung)
Docs: ドキュメントで使用されているサブバージョンパスを更新しました。(rjung)
1.2.28 と 1.2.30 の間の変更点
ネイティブ
Apache: Apache 2.3 との互換性を改善しました。(rjung)
46632: Apache: プールの子クリーンアップを登録しないようにしました。(mturk)
46893: Apache: JkShmSize が実際に設定で設定されている場合にのみ警告をログに記録するようにしました。(mturk)
IIS: オプションのチャンキングサポートを含めました。デフォルトではオフです。(mturk)
48763: IIS: チャンクエンコーディングを使用している場合、または長さが4GBを超える場合にContent-Lengthを送信しないようにしました。(mturk)
48223: IIS: 正しいバックエンドエラーコードをIISに伝播するようにしました。(rjung)
47867: IIS: VS2008でコンパイルされ、workers.propertiesにサポートされていないプロパティが含まれている場合の起動時のクラッシュを修正しました。Indrek Juhani 氏が寄稿したパッチです。(rjung)
47628: IIS: クリティカルセクションロックを解放しないことによって引き起こされる、アプリケーションプール再起動時のデッドロックを修正しました。Bret Prucha 氏が寄稿したパッチです。(mturk)
IIS/NSAPI: 各行の後のログファイルフラッシングを修正しました。(mturk)
NSAPI: Microsoft Visual C++ Makefile を追加しました。(mturk)
AJP: ソケットシャットダウン処理を改善しました。(mturk)
AJP: 再利用できないソケットを再利用しないようにしました。(mturk)
AJP: cpong を待機する際に、単一の余分なパケットを許容するようにしました。(mturk)
AJP: プロトコルの正確性をより厳密にチェックするようにしました。(mturk)
48410: AJP: 1024以上のソケットで動作できるように、select ではなく poll を使用するようにしました。(mturk)
46503: AJP/Status: ワーカーのドメインとルートにガベージデータが含まれる問題を修正しました。(mturk)
48276: AJP: ワーカーの接続先を解決できない場合、サーバーの起動を失敗させるのではなく、ワーカーを無効とマークするようにしました。(mturk)
48169: AJP: EXEC 中にすべてのソケットをクローズすることで、CGI の相互運用性を改善しました。(mturk)
Status: ステータスワーカーにオープンなバックエンド接続の数を追加しました。この機能は実験的なものであり、表示される値は正確ではない可能性があります。(mturk)
47224: Status: アドレスが変更された場合、エンドポイントキャッシュ内の開いているすべてのソケットを無効にするようにしました。これにより、新しいバックエンド接続が新しいアドレスを使用して開かれるようになります。(mturk)
48305: Status: ダンプ時に "secret" プロパティを表示しないようにしました。(mturk)
45610: Status: サブワーカーパラメータが空の値のリクエストを受け付けないようにしました。(rjung)
45610: Status: ステータスワーカーを介して他のロードバランサー属性を更新する際に、sticky_session および sticky_session_force が誤って解除される問題を修正しました。(rjung)
47222: Status: ping_timeout を共有メモリに追加し、動的設定を可能にしました。(mturk)
Status: ロードバランサーの一部であるAJP13ワーカーのプロパティビューで、重複する "errors" 行を削除しました。(rjung)
LB: ルートのログ記録を修正しました。(rjung)
Logging: ログ記録のためのスレッドIDのサイズを自動的に検出するようにしました。(rjung)
Logging: JK_LOG_LOCKING を定義した場合に、Windowsでのオプションのログファイルロックを追加しました。(mturk)
Configuration: 設定例を更新しました。(rjung)
Docs: リリース作成に必要なツールに関する情報を更新しました。(rjung)
47983: Docs: 起動を妨げる設定例のタイプミスを修正しました。(rjung)
Build: automakeファイルのコピーを強制するようにしました。(rjung)
Build: Tomcatコードリポジトリ構造のクリーンアップがドキュメントとビルドスクリプトに反映されました。(rjung, mturk)
1.2.27 と 1.2.28 の間の変更点
ネイティブ
Apache: リクエスト情報を上書きするための環境変数を追加しました。これはApacheの前にプロキシがあり、カスタムヘッダーなどを介して元のリクエスト情報を送信する場合に役立ちます。(rjung)
Apache: JKリクエストログのエントリの事前割り当てを行わないようにしました。(rjung)
46352: Apache: JkMount がない VHost で SetHandler jakarta-servlet を使用した場合のクラッシュを修正しました。これはマウント拡張機能の不正確な初期化によるものです。(rjung)
Apache: JkWatchdogInterval の間隔計算が間違っており、設定された値の10倍のウォッチドッグ間隔が発生していました。(mturk)
Apache: SSLキーサイズの転送をデフォルトで有効にしました。(rjung)
46169: Apache 1.3: use_server_errors マウント拡張機能をバックポートしました。(rjung)
46763: Apache 2.0: グレースフルリスタート中にログmutexを維持するようにしました。高橋 栄治 氏が寄稿したパッチです。(mturk)
46416: Windows上のApache 2.0: APRが含んでいなくても mstcipip.h を含めるようにしました。(mturk)
IIS: uriworkermap.properties ファイルを定期的に更新するようにしました。これには worker_mount_reload と watchdog_interval の両方が定義されている必要があります。(mturk)
IIS: レジストリファイルから古いエントリを削除しました。(mturk)
46579: IIS: JKISAPI_PATH および JKISAPI_NAME を設定するために環境変数ではなくローカル環境テーブルを使用するようにしました。(mturk)
LB: ローカルエラーからグローバルエラーへのエスカレーションを細かく調整するための新しいプロパティ error_escalation_time を追加しました。(rjung)
LB: スティッキーセッションアフィニティマークにドットが含まれている場合、ドットより前の部分をドメイン名として扱うようにしました。これにより、ドメインフェイルオーバーを伴うフルノードセッションアフィニティが可能になります。(mturk)
LB: ローカルエラー状態での強制リカバリが機能するようにしました。(rjung)
LB: 実際に新しい状態がある場合にのみ、エラー状態とエラー時間を更新するようにしました。(rjung)
LB: max_reply_timeouts に達した場合、または fail_on_status がハードエラーを引き起こした場合、グローバルワーカー状態をエラーに設定するようにしました。(rjung)
AJP: 新しいエラータイプ JK_AJP_PROTOCOL_ERROR を追加しました。(mturk)
AJP: ワーカーポートを1024以下も許可するようにしました。(rjung)
AJP: いくつかのAJPエラーログメッセージを改善しました。(mturk)
Status: AJPワーカーのワーカーアドレスとポートの変更を許可するようにしました。アドレスは、そのワーカーに対する次のリクエストで解決されます。(mturk)
Status: 更新アクションで結果ページにエラーメッセージを表示できるようにしました。(rjung)
Status: 更新アクションをリファクタリングしました。(rjung)
Status: アクション中にエラーが発生した場合、showまたはlistページにリダイレクトしないようにしました。(rjung)
Status: 表示にエラー時間を含めるようにしました。(rjung)
Status: ワーカー表示から冗長なポート情報を削除しました。アドレス列の名前を変更し、凡例からの説明を削除しました。(rjung)
Status: 強制的な uriworkermap.properties の再読み込みを最適化しました。(mturk)
Status: テキスト表示でのクラッシュを修正しました。(rjung)
Status: Show - Edit - Show は、すべてのメンバーのlb showから開始しても、常に単一のlbメンバー show で終わる問題を修正しました。(rjung)
Status: サブワーカー名にワイルドカードを使用した場合、更新アクションが壊れる問題を修正しました。(rjung)
Status: マップ表示に use_server_errors を追加しました。(rjung)
SHM: ロッキングをデータプルおよびプッシュメソッドに移動しました。(rjung)
JNI: JNIワーカーを非推奨にしました。(rjung)
Netware: MAX_PATH の定義が不足している問題を修正しました。Guenter Knauf 氏によるパッチです。(rjung)
Docs: リバースプロキシに関する新しいHowToページを追加しました。(rjung)
Docs: タイムアウトのドキュメントにローカルエラー状態の説明を追加しました。(rjung)
Docs: socket_timeout と socket_connect_timeout の関係を明確にしました。(rjung)
Docs: IIS URL書き換え機能を明確にしました。(rjung)
46834,46734: Docs: いくつかの欠落または壊れたリンクを修正しました。(markt,rjung)
Docs: 2008年のニュースをメインページとメニューに追加しました。(mturk, rjung)
1.2.26 と 1.2.27 の間の変更点
ネイティブ
46109: lbメソッドがbusynessの場合でも reply_timeouts を減衰させるようにしました。また、強制リカバリ中に reply_timeouts をリセットするようにしました。(rjung)
AJP13: 以前のリクエストが完了しなかった場合、接続を再利用するようにしました。(mturk)
maintain が複数回並列で実行されないようにしました。(mturk)
Apache: 再起動中の小さなメモリリークを修正しました。(mturk)
ソケットシャットダウン中のシグナル処理を改善しました。(mturk)
URI Map: uriワーカーマップのデバッグダンプ機能を追加しました。(rjung)
非リリースビルドのバージョン情報にリビジョン番号を追加しました。(rjung)
IIS: 応答にチャンクエンコーディングをオプションで許可するようにしました。現時点では ISAPI_ALLOW_CHUNKING が定義されてビルドされている場合にのみ使用可能です。Tim Whittington 氏によるパッチに基づいています。(rjung)
IIS: CGIヘッダーの代わりにRAWヘッダーをオプションで使用するようにしました。ヘッダー名での「アンダースコア=ダッシュ」問題を修正します。現時点では USE_RAW_HEADERS が定義されてビルドされている場合にのみ使用可能です。(rjung)
IIS: IIS 5.1 との互換性をオプションで改善しました。現時点では AUTOMATIC_AUTH_NOTIFICATION が定義されてビルドされている場合にのみ使用可能です。Tim Whittington 氏によるパッチに基づいています。(rjung)
IIS: 複数のスレッドによる並列初期化によるメモリ破損を修正しました。(rjung)
Windows: 非デフォルトのソケットキープアライブ間隔を使用するようにしました。(mturk)
IIS: 環境変数 JKISAPI_PATH および JKISAPI_NAME を追加しました。(mturk)
ソケットの接続タイムアウトを設定するための socket_connect_timeout ディレクティブを追加しました。これにより、低い接続タイムアウトと高い操作タイムアウトの両方を持つことができます。(mturk)
AJP13: [CVE-2008-5519] クライアントがリクエストを送信した後、POSTデータを提供する前に切断した場合でも、常に最初のPOSTパケットを送信するようにしました。その場合、またはクライアントが読み取り中に接続を切断した場合、コンテナに切断されたクライアント接続を知らせるゼロサイズパケットを送信するようにしました。(mturk)
AJP13: ワーカーが空きエンドポイントを待機する絶対タイムアウトを設定するための connection_acquire_timeout ディレクティブを追加しました。(mturk)
Apache: JkStripSession を実行する際に使用されるパスパラメータを設定できるようにしました。(mturk)
retries の実装をリファクタリングし、retries 属性のセマンティクスを変更しました。(mturk)
Status: ロードバランサーの単一メンバーのみを表示できるようにしました。(rjung)
Status: 最後の統計リセットからの秒数、およびアクセスレートと転送レートの表示を追加しました。(rjung)
AJP13: 設定可能な retry_interval 時間を追加しました。(rjung)
Documentation: connection_pool_size の説明を強化しました。(rjung)
IIS: エラーページ生成をリファクタリングしました。(mturk)
IIS: リクエストがip:portの組み合わせで処理される場合、SERVER_NAME変数が複数の異なるサーバーインスタンスで同じになる可能性があります。代わりに、リクエストが属するINSTANCE_ID変数を使用するようにしました。(mturk)
サーバーエラーページの転送を許可するようにしました。これは、新しい use_server_errors 拡張機能を使用してURIごとに実行できます。(mturk)
デフォルトのセッション識別子を設定するための session_cookie および session_path を追加しました。(mturk)
max_packet_size をTCP送受信バッファサイズとしても使用するようにしました。(mturk)
Apache: mod_jk がシングルスレッドサーバー (prefork) 用にのみビルドされている場合、Apacheがマルチスレッドモードで起動するのを許可しないようにしました。(mturk)
45812: Apache httpd 2.x 用に EOS バケットを送信する done() サービスメソッドを追加しました。これにより、フィルタチェーンが適切に動作するようになります。(mturk)
connection_ping_interval, ping_timeout, ping_mode ディレクティブを追加しました。(mturk)
Apache: モジュールをビルドする際にapxsによって提供される正しいldフラグを使用するようにしました。これにより、httpd 1.3モジュールのAIXでの一部のクラッシュを防ぎます。(rjung)
Documentation: ステータスワーカーの "val" 属性の番号付けが1ではなく0から始まる必要があることを修正しました。(rjung)
Documentation: workers common howto のサンプル設定からJNIパラメータを削除しました。(rjung)
45026: Apache httpd 2.x の場合、バックエンドから空の理由フレーズを受け取った場合に "Unknown Reason" を理由フレーズとして追加するようにしました。そうしないと httpd 2.x がステータス500を返します。(rjung)
Build: Cygwinビルドを修正しました。(rjung)
Documentation: JkEnvVar 経由で送信された変数が request.getAttributeNames() にリストされないことをドキュメントに追加しました。(rjung)
Apache 2.x および IIS 用に、内部メンテナンス (アイドル接続チェック、バックエンドプローブ) を行うウォッチドッグバックグラウンドスレッドを追加しました。JkWatchdogInternal (Apache) と watchdog_interval (IIS) を参照してください。(mturk)
いくつかのメッセージのログレベルをエラーから情報に変更しました。(mturk)
Documentation: ワーカー属性 "secret" のドキュメントを修正しました。(rjung)
追加のプリプロセッサ定義を介して、さまざまなウェブサーバーの正しいプラグイン名を検出するようにしました。(rjung)
LB: 開いているチャネルがある場合、ロードバランサーノードをエラー状態にしないようにしました。これにより、ビジー状態のために新しい接続が失敗し、開いている接続がスティッキネスに失敗するバグが修正されます。これにより、ノードごとのビジーカウンターと各リクエストのプライベート状態配列が元に戻ります。開いている動作中の接続がある場合でも、ノードがOKと報告されている間は、フェイルオーバーが機能するように状態をエラーとマークできます。(mturk)
44738: 仮想ホスト間の JkOption ForwardURI* のマージを修正しました。笹島 敏広 氏が寄稿したパッチです。(rjung)
URI Map: uriワーカーマップに拡張属性を追加しました。reply_timeout, active/disabled/stopped および fail_on_status が許可されます。現時点ではhttpdとIISでのみ使用が実装されています。(rjung+mturk)
URI Map: 動的再読み込みをアトミックにし、不要になったメモリを解放するようにしました。(rjung)
Configure: 新しい --enable-api-compatibility configure スイッチでビルドする際に、httpd 2.2.0 以降のAPI関数を使用しないようにしました。(rjung)
Apache: 仮想ホストにJkMountが存在しない場合、JkAutoAlias が JkMountCopy と組み合わせて機能しない問題を修正しました。(rjung)
LB: 性能を改善するため、状態マクロを最適化しました。(rjung)
Apache: 環境変数 JK_REPLY_TIMEOUT を使用して、応答タイムアウトを動的に設定できるようにしました。(rjung)
Status: ajpワーカーとajp lbメンバーのajpパラメータの管理機能を追加しました。(rjung)
Status: 他のパラメータと区別しやすくするため、更新アクションのパラメータ名を変更しました。(rjung)
Status: lbメンバーではないワーカーについてもajpワーカー統計を追加しました。(rjung)
AJP: ファクトリをリファクタリングし、ajp13/ajp14 の共通部分をajp_factoryに移動しました。(rjung)
Status: 値を変更したワーカーのみのshmワーカー設定値を同期するようにしました。(rjung)
Status: distance ではなく lb_factor を設定するようにしました。(rjung)
Status: 細かいレイアウト変更を行い、複数のテキストリンクの代わりにドロップダウンを使用するようにしました。(rjung)
SHM: lbとステータスワーカーのlbサブワーカーの読み取り専用属性のローカルコピーを使用するようにしました。(rjung)
Status: 初期設定をダンプする "dump" アクションを追加しました。(rjung)
Status: どのcmdアクションがどの出力要素を使用するかを決定するためにプロパティテーブルを使用するようにしました。(rjung)
Common: オリジナル設定マップを worker_env に含め、ワーカー(例:ステータスワーカー)が利用できるようにしました。(rjung)
LB: httpdノートの "route" 戻り値をリファクタリングしました。worker_recordのメンバーを使用しないようにしました。これはスレッドセーフではないためです。(rjung)
Common: "retries" をリファクタリングし、service と jk_worker から削除し、ajpワーカーに移動しました。(rjung)
SHM: shm で lb と ajp13 に異なる構造体を使用するようにしました。これによりタイプセーフティが向上し、数バイト節約されます。(rjung)
SHM: 未使用の属性を削除しました。(rjung)
SHM: すべてのウェブサーバーでshmサイズを自動的に決定するようにしました。(rjung)
SHM: すべてのウェブサーバーでopen/attachログを統一しました。(rjung)
Status: 出力にサーバーローカル時間を含めるようにしました。(rjung)
44116: 複数のJSESSIONIDクッキーの処理を修正しました。(rjung)
37850: 適切な箇所でスレッドセーフな localtime_r を使用するようにしました。(rjung)
特にAIXなど、より多くのプラットフォームでスレッドセーフな strtok_r を使用するようにしました。(rjung)
Status: XSS対策を強化しました。(rjung)
35303: サービスメンバーのデフォルト値による初期化を、ウェブサーバー固有のコードから汎用的な jk_init_ws_service() 関数に移動しました。(rjung)
36385: prepost CPing を使用しているが connect CPing を使用していない場合に、接続直後に prepost CPing/CPong が不足する問題を修正しました。(rjung)
37322: Apache: jk_error_exit() のメッセージフォーマットの堅牢性を強化しました。(rjung)
44147: 複数のロードバランシングワーカーの問題を修正しました。(rjung)
1.2.25 と 1.2.26 の間の変更点
ネイティブ
42003: スタックから固定サイズを使用するのではなく、メモリを割り当てるようにしました。(mturk)
43229: ロードバランサーが応答タイムアウト後にフェイルオーバーを行わない問題を修正しました。(rjung)
JKStatus: 詳細なApache httpdバージョン表示を修正しました。これはhttpdバージョン2.2.4+で壊れていました。(rjung)
LB/AJP: jk_connect.c, jk_ajp_common.c, jk_lb_worker.c のリファクタリングを行いました。(rjung)
Configure: 壊れていたapxsの自動検出を修正しました。(rjung)
Configure: 新しい --disable-trace configure スイッチにより、コンパイル済みコードからトレースログを削除するようにしました。(rjung)
Common: アイドル接続を降順 (LRU) のスロット順で維持するようにしました。(rjung)
Apache: JkRequestLogFormat が設定されていない場合でも、アクセスログ用に JK_WORKER_ROUTE および JK_REQUEST_DURATION ノートを作成するようにしました。(rjung)
JKStatus: Apache httpd のURIからワーカーへのマップリストを強化しました。JKStatus自体が呼び出された仮想サーバーだけでなく、すべての仮想サーバーのマップをリストするようになりました。(rjung)
JKStatus: URIからワーカーへのマップリストを強化しました。古い uriworkermap.properties をすぐに更新するようにしました。(rjung)
43873: httpd 再起動中に発生する小さなメモリリークを修正しました。(rjung)
Common: 排除ルール(resp. JkUnMount)でワーカー名に '*' を許可し、すべてのワーカーを上書きするようにしました。(rjung)
42038: IIS のマウントとアンマウントのオーバーレイを修正しました。(rjung)
43684: uriworkermap.properties のドキュメントで JkMountFile を JkMountFileReload に置き換えました。(rjung)
Apache: JkMountCopy に新しい値 "All" を追加しました。(rjung)
43516: 各再起動後、JK ディレクティブのないすべての仮想ホストで8KBのApache httpdモジュールのメモリリークが発生する問題を修正しました。(rjung)
Apache: サーバー設定の初期化と破棄をクリーンアップしました。(rjung)
Apache: グローバル設定項目をサーバーごとの設定から削除しました。(rjung)
Apache: 未使用の属性 secret_key および automount/JkAutoMount を削除しました。(rjung)
jk_uri_worker_map のクリーンアップを行いました。(rjung)
Documentation: JkShmFile ドキュメントに小さな追加を行いました。Gerhardus Geldenhuis 氏が寄稿しました。(rjung)
AJP13: 応答ヘッダーを受信する前のフラッシュパケットを無視するようにしました。(rjung)
ワーカー設定継承 (属性 "reference") とログレベルがデバッグの場合の起動時のクラッシュを修正しました。(rjung)
AJP13: ヘッダー名を事前定義された定数と厳密に一致させるようにしました。標準ヘッダー名をプレフィックスとして使用するカスタムヘッダー名との混同の可能性を回避します。(rjung)
jkstatus: JkStatusUpdateTask および JkStatusUpdateLoadbalancerTask ant タスクでの正しいパラメータ検証を修正しました。Christian Mittendorf 氏が報告しました。(pero)
1.2.24 と 1.2.25 の間の変更点
ネイティブ
IIS: shm シャットダウン動作を修正しました。(rjung)
General: ロードバランサーで使用される fail_on_status は、オプションで失敗したワーカーをエラー状態にせずにフェイルオーバーを実行できるようにしました。(rjung)
NSAPI: Unix 用のビルド説明を改善しました。(rjung)
NSAPI: JKバージョンを含む初期化起動メッセージを追加しました。(rjung)
General: 静的関数を static として宣言しました。(jim)
Documentation: fail_on_status の動作を明確にしました。(rjung)
General: 応答ヘッダーを返す前に fail_on_status を実行するようにしました。(rjung)
NSAPI: shm シャットダウン動作を修正しました。(rjung)
NSAPI: リクエストがエラーで終了した場合でも戻りステータスを設定するようにしました。(rjung)
NSAPI: WIN32 および Netware で shm_file なしで使用できるようにしました。(rjung)
NSAPI: ログレベルがデバッグで refect_unsafe が設定されていない場合のnsapiのクラッシュを修正しました。(rjung)
NSAPI: Solaris および Linux の nsapi ビルド用 Makefile を改善しました。(rjung)
Build: Solaris での configure 中の pid_t 型検出を修正しました。(rjung)
Build: WIN32 および Netware 上の gcc の実験的なビルドサポートを追加しました。(fuankg)
Build: Apache httpd 1.3/Netware 用のMakefile最適化を行いました。(fuankg)
General: 1.2.24で導入されたフラッシュ不足のバグを修正しました。(rjung)
1.2.23 と 1.2.24 の間の変更点
ネイティブ
Documentation: リファレンスガイドの workers.properties の説明を改善しました。(rjung)
Documentation: さまざまなタイムアウトに関するHowToを追加しました。(rjung)
Logging: gettimeofday() がある場合、デフォルトのタイムスタンプ形式にミリ秒を追加するようにしました。(rjung)
Apache: ミリ秒 (%Q) とマイクロ秒 (%q) をJkLogStampFormat変換指定子として追加しました。これは strftime() を使用しませんが、gettimeofday() が必要です。(rjung)
IIS & Sun: サービス失敗も、戻りコードが負の場合にログに記録するようにしました。(rjung)
42849: mod_jk の初期化が失敗した場合、Apache httpd 1.3 の起動を中止するようにしました。Apache httpd 2.x では既に同様の処理を行っています。(rjung)
42849: 初期化に失敗した場合、IIS での動作を拒否するようにしました。isapi_redirect.dll を要求する代わりに、ユーザーには500が返されます。これは、致命的な初期化エラーの場合にサーバーの起動を拒否するApache Httpdに最も近い動作です。(mturk)
Load Balancer: スレッド化されたApache MPMs のSolaris上で発生したlbワーカーのデッドロックを修正しました。(rjung)
Logging: LWP ID を32ビット符号なしとして処理するようにしました。pthread ID は不透明ですが、動作するように試みました。(rjung)
JkStatus: max_reply_timeouts の操作を追加しました。(rjung)
LB, Status: lb が時折長時間実行されるリクエストに対して耐性を持つように、max_reply_timeouts 機能を追加しました。(rjung)
JkStatus: N/A の後継として OK/IDLE を追加しました。(rjung)
Status worker: ランタイム状態の名前を変更しました。すべての状態は主要な状態 (OK または ERR) とサブ状態を持ちます。N/A の名前を OK/IDLE に変更しました。リファレンスガイドのステータスワーカーページに状態の意味に関するドキュメントを追加しました。コードには新しい状態は追加されていません。(rjung)
Common: 冪等なhttpメソッド HEAD および GET を回復するための回復オプションを追加しました。(rjung)
ワーカー属性 retries および recovery_options のドキュメントを修正しました。(rjung)
ログ行と行末の書き込みをよりアトミックにしました。(rjung)
Common: jk_map_read_prop* および jk_map_load_prop* をすべてのユースケースでリファクタリングおよび統合しました。(rjung)
Common/Apache/IIS/Netscape: デコードされたURLについて、潜在的に悪意のある構築がないかチェックするオプションを追加しました。(rjung)
IIS: auth_complete と uri_select をドキュメント化しました。(rjung)
Apache/IIS/Netscape: デフォルトの転送エンコーディングを新しいプロキシメソッドに変更しました。(jfclere, rjung)
Common: バックエンドに転送する前にURIを再エンコードするオプションを追加しました。httpd mod_proxy で行われるURI再エンコードに基づいています。(jfclere, rjung)
Common: pid_t の正しい印刷形式を自動検出するようにしました。これにより、少なくともSolarisでのコンパイラ警告が修正されます。(rjung)
42608: 大規模なアップロードおよびダウンロードを可能にするため、Content-length を符号なし64ビットとして処理するようにしました。(rjung)
Apache: 転送URIをデバッグログに追加しました。(rjung)
Docs: ワーカー名とJVMルートのロードバランシングの関係を明確にしました。(rjung)
jk_is_socket_connected に初期ゼロタイムアウトを使用するようにしました。これにより検出結果は同じですが、mod_jk の性能が大幅に向上します。ほとんどの場合、オペレーティングシステムは1マイクロ秒のタイムアウトを優先せず、それをはるかに高い値 (ほとんどのシステムで100Hzにデフォルト設定されている割り込みタイマーの周波数) に丸めるためです。David McLaughlin 氏が寄稿したパッチです。(mturk)
NSAPI: 起動中に正しいログファイルとshmファイルの設定をチェックするようにしました。(rjung)
NSAPI: リトライ、フラッシング、接続永続性に関する一般的なオプションのサポートを追加しました。(rjung)
NSAPI: workers.properties でマウント属性を使用することによるクラッシュを修正しました。初期化順序を変更しました。(rjung)
libtool と、CC 環境変数と configure スクリプトでapacheビルド中に使用されるCCとの間の不一致の処理を改善しました。(rjung)
configure で --enable-prefork フラグが設定されていない限り、常にスレッドサポートでビルドするようにしました。(rjung)
Windows以外のプラットフォームで、Apache httpd 2.x/APR 用にビルドされていない場合(例:Sub Web Server)または configure を使用していない場合に snprintf/vsnprintf の実装が不足している可能性があるため、ap_snprintf.c から snprintf/vsnprintf を使用するようにしました。(fuankg)
Apache 1.3 から ap_snprintf() をインポートしました。(fuankg)
起動時の不適切なログオブジェクトクリーンアップを修正しました。これにより、少なくともiSeriesでクラッシュが発生していました。(rjung)
jk_stat() および jk_file_exists() をラッパー関数として追加しました。i5/OS V5R4では、fopenではファイル名をASCIIで、stat()ではEBCDICで指定する必要があります。(hgomez)
i5/OS (AS/400) V5R4への移植で、Apache 2.0モジュールがUTF8を使用するようになりました。(hgomez)
ドキュメント: i5/OS V5R4およびそれ以前のリリース用のビルドに関するコメントを追加しました。(hgomez)
1.2.22と1.2.23間の変更点
ネイティブ
[CVE-2007-0450] および [CVE-2007-1860]: JkOptionsのデフォルト値をForwardURICompatUnparsedに変更しました。以前のデフォルト値はForwardURICompatでした。これにより、Apache httpdとTomcat間でのURL解釈が一貫し(二重デコードの問題を防ぎます)、ます。(rjung)
1.2.21と1.2.22間の変更点
ネイティブ
改行のログ記録をリファクタリングし、すべてのプラットフォームとウェブサーバーで正しく動作するようにしました。(mturk)
コマンドラインWindowsメイクファイルを追加しました。(mturk)
fail_on_statusディレクティブが複数行にできるよう変更しました。(mturk)
42076: 新しいオプション名「ForwardCertChain」を、ドキュメント通り「ForwardSSLCertChain」に修正しました。(rjung)
ドキュメント: いくつかのタイプミスを修正し、いくつかのテーブルの書式を変更し、ニュースページへのリンクを修正しました。(rjung)
新しいIIS rewrite.properties設定例ファイルにおけるTC 6の例の正しいURLを修正しました。(rjung)
いくつかのファイルにsvnプロパティを追加しました。(rjung)
設定例のuriworkermap.propertiesにTC 6の例を追加しました。(rjung)
fail_on_statusディレクティブに複数のステータスコードを許可しました。ステータスコードはスペースまたはコンマで区切ることができます。(mturk)
IIS。URL書き換えルールにpcreのような正規表現を追加しました。(mturk)
41922: Apache 1.3。JkEnvVarを有効化しました。(mturk)
Apache。flock()システムコールをサポートするOS向けに、より高速なflock()システムコールを明示的にコンパイルするための--enable-flock設定パラメータを追加しました。デフォルトでは、ロックにはfcntlシステムコールが使用されます。これは少し遅いですが、NFSマウントされたボリュームでも動作します。(mturk)
41562: ISAPIリダイレクターでのクライアントからの読み取りにデバッグログを追加しました。Tim Whittington氏の貢献です。(mturk)
Apache。ForwardSSLCertChain JkOptionを追加しました。Patrik Schnellmann氏の貢献です。(mturk)
IIS。マッピングされたワーカーがない場合、web-inf または meta-inf へのアクセスを禁止しないように変更しました。これにより、マッピングされたコンテキスト外にこれらの名前を持つリソースを持つことが可能になります。(mturk)
Apache。共有メモリ名の作成にプロセスIDを使用し、終了時に共有メモリおよび共有メモリロックファイルを削除するように変更しました。(mturk)
IIS。1.2.21で導入されたKeep-Aliveの退行を修正しました。(mturk)
起動時の空のinit_mapに対する未使用のチェックを削除しました。(rjung)
41770: JkWorkersFileが使用されていない場合の起動エラーを修正しました。(rjung)
init_jk()の戻り値として、OK/!OKの代わりにJK_TRUE/JK_FALSEを使用するように変更しました。(rjung)
Apache起動ログメッセージの微調整(STDERRを使用するタイミング、非推奨のNOERRNOフラグの削除、shm警告、デフォルトファイル使用に関する警告)。(rjung)
APRプリコンパイラディレクティブをhttpd mpm_queryに置き換え、MPMスレッドを検出するように変更しました。自動検出されたプールサイズに関するデバッグログメッセージを追加しました。(rjung)
MMNチェックをより理解しやすく、より正確にするように変更しました(新しいap_get_server_banner()/ap_get_server_description()用)。新しいAPIはApache httpd 2.3のみで使用します。これにより、バイナリがマイナーな2.0バージョンに強く結合されず、またap_get_server_banner()は使用しません。(rjung)
ap_get_server_banner()からの切り詰められた情報ではなく、ap_get_server_description()からの完全な説明文字列を使用するように変更しました。この情報は内部的に使用され(ステータスワーカーの表示とajp14バックエンド通信)、通常のユーザーには送信されないためです。(rjung)
41757: configureの「--enable-prefork」フラグをドキュメント化しました。(rjung)
属性マップの解析に失敗した場合のログメッセージを改善しました。(rjung)
ワーカー初期化時のログメッセージを修正しました。リモートホストが解決できなかった場合、設定されたホスト名ではなくデフォルトのホスト名「localhost」がログに記録されていました。(rjung)
41770: バグの後半部分を修正しました: local_workerとlocal_worker_onlyが非推奨属性リストから欠落しており(また、サポートもされていない)、これによりウェブサーバーの起動が妨げられていました。(rjung)
1.2.20と1.2.21間の変更点
ネイティブ
[CVE-2007-0774]: サービス拒否および深刻なリモートコード実行の脆弱性。URLが4095バイトより長かった場合にmap_uri_to_worker()でバッファオーバーフローが発生することによるものです。ZDI (www.zerodayintiative.com) によって報告されました。この問題は、Apache Tomcat JK Web Server Connectorのバージョン1.2.19および1.2.20にのみ影響し、以前のバージョンには影響しませんでした。Tomcat 5.5.20とTomcat 4.1.34は、ソースパッケージに脆弱なバージョンが含まれていました。その他のTomcatバージョンは影響を受けませんでした。
worker.パラメータをチェックし、有効なパラメータでない場合は起動しないように変更しました。(jfclere)
41439: JkStripSessionディレクティブ(vhostごとに設定可能)を追加することで、Apacheの静的コンテンツのURLからセッションIDを削除できるように変更しました。(mturk)
JkEnvVar変数の空のデフォルトのセマンティクスを変更しました。1.2.19までは許可されていませんでした。1.2.20では、設定で空でない値に設定されていない場合も、実行時に空の文字列として変数を送信します。1.2.21以降: 設定に2番目の引数がない場合、実行時に変数が設定されていれば(空の文字列に設定されている場合でも)のみ送信します。Tomcatアクセスログの条件属性との良い組み合わせを可能にします。(rjung)
41610: Content-Lengthヘッダーの欠落の誤検出を修正し、重複ヘッダーにつながる問題を解消しました。Boris Maras氏の貢献です。(rjung)
SunONE (Netscape/iPlanet) ウェブサーバーのビルドサポートを改善しました。(jim)
重複するマップキーが読み取られ、許可されていない場合に警告を追加しました(例:uriworkermap.propertiesの解析時)。(rjung)
uriworkermap.propertiesに重複パターンがある場合、ワーカー名を連結せず、ワーカーを上書きするように変更しました。(rjung)
重複の場合でも非推奨メッセージをログに記録するように変更しました。(rjung)
uriworkermap.properties:uriworkermap.propertiesのリロード中にURLマッピングを削除する際のオフバイワン問題を修正しました。(rjung)
41439: IISの静的コンテンツのURLからセッションIDを削除できるように変更しました(設定可能)。(rjung)
41333: isapi_pluginの設定読み込みをリファクタリングしました。(rjung)
41332: より多くのerrnoログを追加し、フォーマットを統一しました。(rjung)
JkStatus: メッセージにステータスワーカー名を追加してログを改善しました。リカバリワーカーアクションにメッセージを追加しました。(rjung)
JkStatus: ワーカーおよびサブワーカーの検索をリファクタリングしました。(rjung)
41318: ステータスワーカーのユーザー名チェックを大文字小文字を区別しないようにする設定を追加しました。(rjung)
JkStatus: 次のグローバルメンテナンスまでの推定時間を他のMIMEタイプに追加し、jkstatus antタスクに適用しました。(rjung)
JkStatus: 次のグローバルメンテナンスまでの推定時間を表示するようにしました。次のリカバリまでの表示時間を最小/最大ペアに変更しました。(rjung)
JkStatus: 読み書き可能なステータスワーカーのユーザーが、一時的に読み取り専用モードに切り替えたり元に戻したりできるように変更しました。(rjung)
JkStatus: 読み取り専用ステータスワーカーでは読み書きコマンドを表示しないように変更しました。(rjung)
JkStatus: エラー状態のLBサブワーカーを、ステータスワーカーから管理上リカバリ対象としてマークできるように変更しました。(rjung)
ロードバランサー: 並行して複数回リカバリを試行しないように変更しました。追加の実行時状態「PROBE」と「FORCED」を使用します。(rjung)
JkStatus: 異なるプロセス間のデータ同期を改善しました。(rjung)
41381: fail_on_status機能でのセグメンテーション違反を修正しました(ログ引数の順序が誤っていたため)。Juri Haberland氏によるパッチです。(rjung)
WIN32プラットフォームのログファイルに正しいWindowsの改行を使用するように変更しました。(rjung)
1.2.19と1.2.20間の変更点
ネイティブ
JkStatus Antタスクのドキュメントページを追加しました。(pero/rjung)
JkStatus Antタスク: 更新とリセットのための新しいタスクを追加しました。(pero)
JkStatus Antタスク: 新しいXMLステータス形式に対応する更新を行いました。(pero)
ステータスワーカーの更新アクションを介して列挙型/ブール型属性を設定する際に、整数値と文字列値を許可しました。(rjung)
ドキュメント: ステータスワーカーの新しいリファレンスガイドページを追加しました。(rjung)
ドキュメント: 設定ディレクトリをreferenceに名称変更し、ドキュメント内で「Reference Guide」というタイトルを使用するように変更しました。(rjung)
workerディレクティブにretry_on_statusを追加しました。(mturk)
ステータスワーカー: プロパティプレフィックスとgood/badルールを設定可能にするディレクティブを追加しました。(rjung)
ステータスワーカー: att=noswの場合、LBメンバーを省略するように変更しました。(rjung)
ステータスワーカー: 短いバージョン出力のための新しいコマンド cmd=version を追加しました。(rjung)
ステータスワーカー: 新しい出力形式 mime=prop がプロパティリストを生成するように変更しました。(rjung)
Apache: JkEnvVarが複数回設定された場合の誤った処理を修正しました。(rjung)
jvm_routeをrouteに改名しました。jvm_routeは非推奨となりましたが、ワーカー設定を解析する際にはフォールバックとして引き続き使用されます。(rjung)
IIS: uriworkermapファイルのリロードチェック間隔を設定可能にしました。(mturk)
Apache: uriworkermapファイルのリロードチェック間隔を設定可能にしました。(rjung)
ステータスワーカー: XML出力をカスタマイズするためのディレクティブ(ns、xmlns、doctype)を追加しました。(mturk)
ドキュメント: uriworkermapの説明を含む新しいページを追加しました。(rjung)
ドキュメント: ワーカーリファレンスにmax_packet_sizeの短い説明を追加しました。(rjung)
ステータスワーカー: 全ての機能がxmlおよびtxt MIMEタイプでもアクセス可能にしました(リスト、表示、更新、リセット)。(rjung)
ステータスワーカー: ロードバランサーの新しいグローバルヘルスインジケーターとして、bad(エラー、回復中、または停止)、degraded(ビジーまたは無効)、good(その他、アクティブでOKまたはN/A)を追加しました。(rjung)
ステータスワーカー: ロードバランサーの全メンバーの単一属性を変更するための新しい編集ページを追加しました。(rjung)
ステータスワーカー: ステータスワーカーの標準ログ記録を追加しました。(rjung)
ステータスワーカー: コードリファクタリングを行いました。(rjung)
ステータスワーカー: 新しい属性 user (リスト) を追加しました。remote_user の意味でのリクエストユーザーがこのリストにない場合、アクセスを拒否します。空のリスト = 拒否なし (rjung)
ステータスワーカー: 新しい属性 read_only は、状態と構成を変更するステータスワーカーの部分を無効化します。(rjung)
36121: mod_jkがインクルードされたURIを処理する際に、メインURIを変更しないように変更しました。(markt)
Apache仮想ホスト: JkOptions +base - -base + +vhost - -vhost をマージしました。(rjung)
Apacheドキュメント: Apache設定ドキュメントに要件、コンテキスト情報、デフォルト値、継承ルールを追加しました。(rjung)
ステータスワーカー: ステータスワーカーにソースタイプを追加し、マップリストの冗長な「context」列(context=uri)を削除しました。(rjung)
uriworkermap: ファイルのリロード時、新しいエントリが読み込まれる前に、以前のファイルバージョンの古いエントリはすべて削除されます。(rjung)
通常のマップと除外マップを内部的に分離するように変更しました。ルールを追加する際に同じものとして扱わないように変更しました。(rjung)
ステータスワーカー: マッピングルールを非LBワーカーおよびグローバルビューでも表示するように変更しました。(rjung)
Apache仮想ホスト: メインログの代わりに仮想ホストのログファイルを使用するように変更しました。(rjung)
Apache仮想ホスト: フォーマットメソッドをリファクタリングすることにより、個別のタイムスタンプ形式を許可しました。(rjung)
Apache仮想ホスト: 仮想ホストレベルにすべての不足している設定項目を追加しました。グローバルサーバーの設定を上書きせず、仮想ホストで設定されていない場合はそれらを継承するように変更しました。(rjung)
Apache: ログメッセージから不要な関数名を削除しました。(rjung)
Apache: デフォルトのログファイルの場所と、デフォルトが使用される場合のメッセージを追加しました。(rjung)
Apache: 不足していたJK_IS_DEBUG_LEVEL()を追加しました。(rjung)
Apache仮想ホスト: JkWorkersFile、JKWorkerProperty、JkShmFile、JkShmFileSizeはグローバル仮想サーバーでのみ許可しました。(rjung)
いくつかのjk_close_socket()を追加し、いくつかの情報メッセージのログレベルを削減しました。(rjung)
ロードバランサー: セッション戦略を追加しました。金子隆之氏の貢献です。(rjung)
ドキュメント: 小さな機能強化と、より新しいバージョンとの同期を行いました。(rjung)
40997: uriworkermapのリロード時に重複をチェックする際、URIマッピングとそれに対応する「!」を分離しました。(rjung)
40877: 複数のウェブサーバー子プロセスで共有メモリがアタッチ時にリセットされるように確認しました。(mturk)
IIS: 64以上のワーカー構成に対応できるようshm_sizeプロパティを追加しました。(mturk)
IIS: デフォルトのスレッド数を250に増加させ、Apache Httpdのデフォルト設定と同じになるように変更しました。(mturk)
40966: Windowsでのソケットディスクリプタチェックを修正しました。(mturk)
40965: 不足しているサービスパラメータを初期化しました。(mturk)
40938: 書き換えマップの解放を修正しました。Chris Adams氏がこれを発見してくれました。(mturk)
Apache: +FlushHeader JkOptionsを追加しました。(mturk)
AJPボディパケットサイズがゼロの場合に明示的なフラッシュを追加しました。(mturk)
40856: URLマッピングにおける大文字小文字の区別に関するバグを修正しました。(rjung)
40793: ドキュメント: Paul Charles Leddy氏によって提供されたApache HowToの改善を行いました。(markt)
40774: 誤った再帰終了の修正。「reference」機能が意図せず20ワーカーに制限されていました。(rjung)
40716: IISおよびNetscapeに「reference」機能を追加。(rjung)
ドキュメント: JK_WORKER_NAMEの例におけるSetEnvIf構文を修正。(rjung)
ドキュメント: ApacheにおけるロードバランサーログのSTATEおよびACTIVATIONに関する記述が漏れていたため追加。(rjung)
Apache: libtoolの代わりにinstdso.shを使用。libtoolはHP-UXなどで動作しないため。(jfclere)
1.2.18と1.2.19の変更点
ネイティブ
ドキュメント: SetHandlerと新しい環境変数をApacheの設定ドキュメントに追加。(rjung)
Apache 1.3: 「no-jk」機能をバックポート。(rjung)
Apache: SetHandler "jakarta-servlet"をより有用にするための環境変数を追加。この変数はJK_WORKER_NAMEですが、新しいディレクティブJkWorkerIndicatorによって変更可能です。(rjung)
LB: 単一のワーカーが無効になっている場合、単一ワーカーのショートカットを使用しない。(rjung)
ステータスワーカー: 凡例にアクティベーションとエラー状態の簡単な説明を追加。(rjung)
ドキュメント: workers.properties内のさまざまなタイムアウトにおけるゼロ値の意味を追加。(rjung)
LB: Mladenの強制リカバリのクリーンアップ。(rjung)
LB: BUSYNESSメソッドを使用している場合、リカバリ中のワーカーのlb_valueを最大値に変更しない。(rjung)
Apache: 1.2.14以降、mod_jkがクライアントアボートを検出できなかった。(rjung)
ドキュメント: JkEnvVarの説明を修正。(rjung)
Solaris: Solaris上で新しい接続検出をビルドするために、configureでfilio.hを検出するようにした(r432825)。(rjung)
全てのメンバーがエラー状態にある場合、ロードバランサーのメンバーであるワーカーのリカバリを強制する機能を追加。これにより、recovery_timeoutが原因で503が返される時間差が修正され、バックエンドがリクエストを処理する準備ができていてもこの問題が解決される。(mturk)
ドキュメント: 非推奨のディレクティブを独自の表に分離。(rjung)
ドキュメント: ワーカー名に「-」と「_」を許可。(rjung)
属性「balance_workers」と「mount」を持つ複数行を許可。(rjung)
jk_is_some_propertyの照合をより正確にする。(rjung)
JkStatus: 更新間隔を変更可能にする。(rjung)
JkStatus: グローバルメンテナンスに関してリカバリ時間の表示を調整。(rjung)
LB: ワーカーがアイドル状態が長すぎる場合、ワーカーの状態をOKからNAにリセット。(rjung)
lb_*_type配列の使用に関するコンパイラ警告を回避。代わりに機能を使用する。(rjung)
Apache 1およびApache 2用に%R JkRequestLogFormatオプションを追加。(mturk)
ステータスマネージャーからjvm Routeを変更できるようにする。(mturk)
POSTリクエストの途中でTomcatが失敗した場合、400を返さず、代わりに500を返す。(mturk)
LB: ok/error/recovering/busyのランタイム状態を単一のスカラー値に結合。(rjung)
LB: active/disabled/stoppedの設定状態を単一のスカラー値に結合。(rjung)
LB: ロードバランサーの結果に対する標準ログを有効にするためのApacheのいくつかの注意点を追加。(rjung)
LB: メインのロードバランサーサービスループの再編成。(rjung)
属性「reference」を介した階層型ワーカー設定を実装。(rjung)
非推奨のプロパティをログに記録。(rjung)
IIS: 書き換えられたURLが元のURLより大きい場合のsimple_rewriteを修正。(mturk)
接続永続性を無効にする新しいJkOption「DisableReuse」を追加。(jim)
LB: sessionidの取得をget_most_suitable_workerからサービスに移動。(rjung)
全てのサービスメソッドのコードクリーンアップ(TRACE、JK_LOG_NULL_PARAMS、ヌルポインタチェックの使用)。(rjung)
JKSTATUS: 更新リンクを追加。更新時の再読み込みはなし。更新後にリストビューにリダイレクト。(rjung)
サーバーに新しいフック add_log_items を追加。(rjung)
APACHE httpd: Apacheのログに関する注記名を変更。(rjung)
LB: ロックおよびメソッド定数の名前を変更。デフォルトの定数を追加。(rjung)
デフォルトのログレベルはDEBUGではなくINFOであるべき。全てのサーバータイプでデフォルトのログレベルは同じであるべき。(rjung)
isapi_redirectのrewrite_rule_mapとlog_levelを必須ではないディレクティブにする。(mturk)
40107: is_socket_connected関数を書き換え。非ブロッキングソケットはもう使用しない。(mturk)
多くの警告なしにVS2005でのビルドを許可。(mturk)
使用すべきパイプログAPIをMMNで決定。mod_jk 1.2.18はApache 1.3 pre 1.3.28でのコンパイルを壊していた。(rjung)
1.2.17と1.2.18の変更点
ネイティブ
getsockoptでsocklen_tを使用。jk_sock_tも導入。(mturk)
リカバリ待機時間を60秒未満に設定可能にする(新しい最小値は1秒)。(mturk)
1.2.16とJK 1.2.17の変更点
ネイティブ
ダブルロックにより特定の属性が更新されている場合にjkステータスワーカーがハングする問題を修正。(rjung)
パイプ記号を2つのディレクティブマーカーとして解析することで、JkMountがuriworkermap.propertiesのように動作するようにする。(mturk)
1.2.15とJK 1.2.16の変更点
ネイティブ
IIS用のシンプルなリライト機能を追加。シンプルではあるものの、ほとんどのニーズを満たす。(mturk)
リクエスト中にクライアント接続が切断された場合に接続を閉じるRECOVER_ABORT_IF_CLIENTERRORリカバリオプションを追加。(mturk)
cache_timeoutディレクティブをconnection_pool_timeoutに名前変更。(mturk)
connection_pool_minsizeディレクティブを追加。(mturk)
recycle_timeoutディレクティブを非推奨とする。(mturk)
ステータスワーカーの出力におけるいくつかのHTML構文バグを修正。(rjung)
ステータスワーカーにrefresh=nパラメータを追加。これによりn秒ごとに表示が更新される。(rjung)
バランサー: バランスされたワーカーに、ワーカー間の優先順位を表現するためのdistance属性を追加。(rjung)
バランサー: 異なるバランサーで同じターゲットを使用できるように、バランスされたワーカーにjvm_route属性を追加。(rjung)
ステータス: lb_multをステータスに追加。(rjung)
バランサー: 異なるバランシング戦略を同様に機能させる(lb_valueの使用、グローバルメンテナンス中のデグラデーションの使用、重み付けのための整数係数の使用)。(rjung)
バランサー: ロックを改善。(rjung)
バランサー: リカバリ後、ワーカーの起動が遅くなる。(rjung)
バランサー: 異なるバランシング戦略を同様に機能させる(lb_valueの使用、グローバルメンテナンス中のデグラデーションの使用、重み付けのための整数係数lb_multの使用)。(rjung)
バランサー: リカバリチェックをグローバルメンテナンスに移動。(rjung)
バランサー: 1つのプロセスでのみ呼び出されるグローバルメンテナンスメソッドを追加。(rjung)
autoconfの使用を拡張し、32ビットおよび64ビットの符号なし型とそのprintf形式を見つけられるようにする。(rjung)
ロギング: JkLogFileおよびApache 1.3用のパイプロガー。(rjung)
ロギング: REQUESTを除く各ログレベルのログ行にPIDを追加。(rjung)
ロギング: 行の順序を正しく保つためにバッファされたログをフラッシュ。ログメッセージとともに最終的な改行を出力。(rjung)
shmサイズの削減。(rjung)
実際に古いワーカーを削除するときのみログに記録。(rjung)
37469: フォークされた子プロセスの共有メモリのクローズを修正。共有メモリは親プロセスによってクローズされる。(mturk)
37332: snprintf関数でのバッファ長の誤用を修正。(mturk)
38859: [CVE-2006-7197] バックエンドのバグのあるまたは悪意のあるAJPサーバーからmod_jkを保護。Ruediger Pluem氏がパッチを提供。(mturk)
38889: Servlet仕様に準拠するため、パス要素に応じてワーカーマップのソートを使用。Steve Revilak氏がパッチを提供。(mturk)
36138: Busyness lbメソッドを追加。Chris Lamprecht氏がパッチを提供。(mturk)
悲観的ロックモードを修正。このパッチは、共有メモリデータへのアクセスを同期することで、バースト負荷を正しく処理する。(mturk)
38806: 無効になっているワーカーもリサイクル。これにより、エラー状態のホットスタンバイワーカーが修正される。(mturk)
37167: BSDライクなmakeでのビルドを許可。(mturk)
ISAPIプラグイン(isapi_redirect.dll)が、IISログに含めるための正しいリクエストデータをIISに提供していなかった。(markt)
1.2.14と1.2.15の変更点
ネイティブ
AJP13 Cookie2の解析を修正。Cookie2が常にCookieとして送信されていた。Andre Gebers氏がパッチを提供。(mturk)
35862: NSAPIプラグインが解放済みメモリを読み込もうとし、ヌルポインタを逆参照しようとする。Brian Kavanagh氏がパッチを提供。(markt)
1.2.13と1.2.14の変更点
ネイティブ
cachesizeがThreadsPerChildよりも小さい値に設定されているワーカーmpmのLBを修正。リトライが3より大きい値に設定されている場合、各試行で100ミリ秒スリープする。これにより、接続キャッシュを調整し、接続数がcachesizeよりも大きい場合にbusyを返すのではなく、受信接続をシリアル化することが可能になる。(mturk)
36525: Solarisコアダンプ。(mturk)
36102: ワーカーアクションが永続化しない。(mturk)
35864: ステータスワーカーがワーカーをリストしない。Martin Goldhahn氏がパッチを提供。(mturk)
35809: JkMountCopyがApache 2.0で動作しない。Christophe Dubach氏がパッチを提供。(mturk)
35298: 単一のIISサイトでの複数のJK/ISAPIリダイレクタはサポートされていない。Tim Whittington氏がパッチを提供。(mturk)
1.2.12と1.2.13の変更点
ネイティブ
34397: EmergencyがErrorとして扱われていた。(jfclere)
34474: Apache-1.3でURL内の「//」が正しく処理されていなかった。(jfclere)
転送/読み取りバイト数に64ビット整数を使用。
大量のデータを送信する際のメモリ使用量を最適化するために使用されるJkOptions +FlushPacketsを追加。(mturk)
バースト負荷の場合により正確なロードバランシングを可能にするロードバランサー用のロックディレクティブを追加。(mturk)
デフォルトの10秒タイムアウトをカスタマイズできるようにworker.maintainディレクティブを追加。ビジーなサーバーでは、この値をより高い値に設定する必要がある。(mturk)
NetWareコンパイラがAP13とAP2 SDK間の異なる型を扱えるようにする修正。(fuankg)
WIN32向けに、より読みやすいuser.dmpクラッシュ解析出力を生成。(wrowe)
34558: 最初のフェイルオーバーリクエストを修正。(mturk)
1.2.11と1.2.12の変更点
ネイティブ
リモートアドレスではなくローカルアドレスを渡すためのForwardLocalAddress JkOptionsフラグを追加。リモートアドレスバルブに有用。(mturk)
stoppedフラグがtrueに設定されている場合にワーカーが使用されない問題を修正。(pero)
ロードバランサーのデフォルトワーカーのsecret属性をドキュメントに追加。(pero)
1.2.10と1.2.11の変更点
ネイティブ
リクエストを失敗させる代わりに任意のメソッドを渡すためのSC_M_JK_STOREDをJK2からバックポート。(mturk)
不足していたSEARCHおよびACL HTTPメソッドを追加。(mturk)
ワーカーのsecret属性をドキュメントに追加。(pero)
ワーカー設定にstoppedフラグを追加。このフラグをtrueに設定すると、そのワーカーへの全てのトラフィックが停止される。Tomcat 5.5.10リリースにおけるAnt JkStatusUpdateTaskも更新。レプリケートされたセッションクラスターでのみ有用。(pero)
現在のワーカーだけでなく、全てのワーカーを維持するワーカー維持機能を追加。これにより、全てのワーカーで接続をリサイクルできるようになる。(mturk)
接続をリサイクルする際に、ソケットを強制的に切断する代わりにシャットダウンを使用。(mturk)
ユニークなディレクティブのチェックを追加。ユニークなディレクティブは連結されるのではなく、上書きされるようになった。(mturk)
複数のworker.listディレクティブを許可。(mturk)
34577: IISのログで、ISAPI拡張機能のリクエストをログに記録する代わりに、元のリクエストをログに記録する。(mturk)
34558: AJPおよびLBワーカーで返されるステータスコードが同じであることを確認。(mturk)
34423: FreeBSDのようなプラットフォームでログロックを設定するためにAPR_USE_FLOCK_SERIALIZEを使用。Allan Saddi氏がパッチを提供。(mturk)
33843: Apache HTTPDのビルドに使用されたLDFLAGSの取得を修正。Beat Kneubuehl氏がパッチを提供。(mturk)
34358: ロードバランサーメソッドの設定を有効にする。(glenn)
34357: JkAutoAliasディレクティブが使用されている場合、Apache 2 mod_jkがセグメンテーション違反を起こす可能性があった。(glenn)
ドキュメントに --enable-prefork を追加。(pero)
新しいエラーログ文字列フォーマットに対応するためtomcat_trend.plを更新。(glenn)
1.2.8と1.2.10の変更点
ネイティブ
デフォルトの共有メモリを1Mではなく64Kに設定。(mturk)
ヘッダーがAJP13の制限よりも大きい場合、ワーカーをエラー状態としてマークしない。(mturk)
iSeriesでは、Apache 2.0の最新PTF(現在は2.0.52)と、最低でもSI17402/SI17061、またはそれらを含む累積PTFを使用すべき。(hgomez)
XMLステータスフォーマットをXML属性構文に変更。(pero)
33248: apxsがAPRインクルード用に複数のディレクトリを定義するビルドを修正。(mturk)
32696: Servlet仕様に準拠するため、WEB-INFがリクエストされた場合に403ではなく404を返す。(mturk)
jkstatusを管理するためのANTタスクを追加。(pero)
socket_timeoutが設定されている場合、Tomcatにリクエストを送信する前にソケットがアクティブであるか確認。(mturk)
Apache Webサーバー用のJkMountFileを追加。このファイルには(/url=worker)形式のURIマッピングを含めることができ、60秒間隔で更新がチェックされる。(mturk)
Webページを使用してワーカーのランタイムデータを管理するためのステータスワーカーを追加。(mturk)
ワーカーのバランシングに使用されるアルゴリズムを設定するためのロードバランサーメソッドディレクティブを追加。メソッドはRequest(デフォルト)またはTrafficのいずれか。(mturk)
動的構成を可能にするために共有メモリを追加。共有メモリはUnixプラットフォームと複数の子プロセスを持つWebサーバーにのみ必要。Apache Webサーバーには2つの新しいディレクティブ(JkShmFileとJkShmSize)が追加された。(mturk)
ANTタスクからのリモート更新を処理するために、ステータスワーカーにtextupdateモードを追加。(pero)
33562: recovery_optionsが1より大きい場合のReply_timeoutを修正。Satou Takashi氏がパッチを提供。(mturk)
33308: Apache 1.3でForwardDirectoriesが有効になっている場合にセグメンテーション違反が発生する問題を修正。
1.2.7と1.2.8の変更点
ネイティブ
windbgまたはその他のデバッグツールを使用してスタックダンプをデバッグおよび診断できるようにし、(.pdbファイルをインストールに追加すれば)dr watsonログを理解できるようにする。William A. Rowe氏がパッチを提供。(wrowe)
typedefを無視して実際の構造体を使用することで、in_addr_tの使用を修正。William A. Rowe氏がパッチを提供。(wrowe)
jsessionidが削除された元のURIを復元することで、URL書き換えを修正。(mturk)
ロードバランサーワーカーにミューテックスを導入することで、ロードバランサーアルゴリズムをスレッドセーフにする。(mturk)
正しいAPI関数呼び出しを使用してContent-Typeヘッダーを追加することで、IISからクライアントへのエラーページ送信を修正。(mturk)
32696: web-inf URLがリクエストされた際にIISがクラッシュするのを防止。(mturk)
子プロセスあたりのスレッド数を検出する機能をサポートするサーバーでは、デフォルトのキャッシュサイズを使用。(mturk)。
大文字小文字を区別しない比較を使用してApacheのContent-Lengthヘッダー解析を修正。(billbarker)
大文字小文字を区別しない比較を使用してAJPヘッダーの解析を修正。(mturk)
socket_timeoutがゼロ以下に設定されている場合、無限ソケットタイムアウトを使用。(mturk)
balanced_workersをbalance_workersに変更するが、古いディレクティブを維持して後方互換性を保持。(mturk)。
cache_sizeがゼロに設定されているワーカーのAJP初期化を修正。(mturk)
32317: mod_jkをレプリケーション対応にする(クラスタリングサポート)。Rainer Jung氏がパッチを提供。(mturk)。
31132: confからJkLogFileが欠落している場合にコアダンプが発生する問題を修正。(mturk)
1.2.6と1.2.7の変更点
ネイティブ
デフォルトの60秒リカバリ時間を変更するために使用できる、recover_timeという新しいプロパティを追加。(mturk)
デフォルト設定に依存しないように、ワーカー用のカスタムリトライを追加。3より大きい値に設定された場合、3を超えるリトライで100msスリープし、再度試行する。(mturk)
workers.propertiesファイルを省略できるようにするJkWorkerPropertyディレクティブを追加。例: JkWorkerProperty worker.ajp13a.port=8009。(mturk)
全てのJSESSIONIDクッキーで有効なjvmRouteをチェック。重複するドメインを持つ複数のTomcatがある場合、定義された順序なしに複数のクッキーを取得する可能性がある。異なるドメインが共通のTomcatを持たない限り、これは正しくルーティングされる。(billbarker)
JkMountディレクティブとは反対に機能する、ネガティブマッピング用のJkUnMountディレクティブを追加。特定のURLまたはコンテンツタイプのブロックに使用される。(mturk)
ワイルドカード一致URIマッピングを追加。JkMountを使用して/app/*/servlet/*または/app?/*/*.jspをマッピングできるようになった。(mturk)
Traceオプションを追加してロギングを書き換え。(mturk)
ソケット自体のタイムアウトを設定するsocket_timeoutプロパティを追加。(mturk)
socket_timeoutプロパティをrecycle_timeoutに変更。これにより、ディレクティブが実際に行うことをより良く説明できる。(mturk)
ロードバランサーアルゴリズムを変更。この新しいスケジューラの背後にある考え方は次の通りです: lbfactorはこのワーカーにどれだけ作業を期待するか、またはワーカーの作業ノルマです。lbstatusはこのワーカーがその作業ノルマを達成するためにどれだけ緊急に作業する必要があるかを示します。各ワーカーの作業ノルマをワーカーに分配し、その中で最も緊急に作業する必要があるワーカー(lbstatusが最大のもの)を探します。このワーカーが作業に選択され、そのlbstatusは全てのワーカーに分配した総作業ノルマによって減らされます。したがって、全てのlbstatusの合計は変化しません。(*) 一部のワーカーが無効になっていても、他のワーカーは引き続き正しくスケジューリングされます。(mturk)
各リクエストで.propertiesファイルを調べていたIISリダイレクタを修正。(mturk)
64/32ビット互換性の問題の修正を開始。(mturk)
1.2.5と1.2.6の変更点
ネイティブ
LBモードでのPOSTリカバリの問題を修正。(hgomez)
Tomcatのハングアップ問題を回避するため、CPING/CPONGサポートを追加。(hgomez)
LBでのPOSTリカバリを設定可能にする。(hgomez)
Apache License 2.0に更新。(hgomez)
Apache 2.0の場合、環境変数no-jkが存在すると、mod_jkはリクエストを処理せず(拒否)、URLが一致してもTomcatにリクエストを転送しない。これは、SetEnvIfまたはBrowserMatchディレクティブなどと組み合わせて、特定のURL/URIまたはブラウザを除外するために使用できる。(hgomez)。
XOPEN/Unix98 APIを使用し、connect()呼び出し時にsa_lenの設定が必要なiSeries (AS/400)向けの修正を追加。これによりjk_connectにおけるEINVALエラーが解決される。(hgomez)
1.2.4と1.2.5の変更点
ネイティブ
URIのマッピングにおけるスレッドセーフのバグを修正。(billbarker)
Apache 2およびワーカーMPMでmod_jkを使用する際のワーカーホスト名解決におけるスレッドセーフのバグを修正。(hgomez)
全てのロードバランシングされたワーカーへの接続が失敗した場合に、不要なエラーメッセージを削除。(glenn)
mod_jkがワーカーに接続できない場合、エラーメッセージにワーカー名を含める。これは、ロードバランシングされたワーカーを使用している場合に特に役立つ。(glenn)
Apache 2でmod_jk.logが複数回開かれる問題を修正。mod_jk.logは1つしか設定できない。(glenn)
JkOptions ForwardDirectoriesが設定されている場合、DirectoryIndexがindex.jspページに対して機能するようにApache 2コネクタを修正。(hgomez)
Apache 1.3およびApache 2.0コネクタで//path/to.jspのようなURLがリクエストされた場合にJSPソースが公開される問題を修正。(billbarker)
1.2.3と1.2.4の変更点
ネイティブ
Apache 2のより新しいバージョンでのApache mod_jkビルドにおけるlibtoolの使用を修正。(jfclere)
スレッドを使用するWebサーバー向けに、reentrant版のstrtok()を使用。これにより、Apache 2およびワーカーMPMでのスレッドセーフのバグが修正される。(glenn)
mod_jkがmod_aliasとmod_dirの両方でうまく機能するように、Apache 2 mod_jkのフック優先順位を修正。(glenn)
1.2.2と1.2.3の変更点
ネイティブ
JkLogがログ出力をApache rotatelogsやcronologなどの実行ファイルにパイプできるようにする機能を追加。Apache 2.0のみ。(glenn)
Apache 2.0にJkAutoAliasを追加。(glenn)
Apache 2/1.3で、Tomcatがエラーを返すもののコンテンツを返さない場合、Tomcatが返したエラーの処理をApacheに任せる。(glenn)
ロードバランサーのsticky_sessionプロパティを追加。0に設定した場合、サーブレットセッションIDを持つリクエストは任意のTomcatワーカーにルーティングできる。デフォルトは1で、セッションはスティッキーとなる。(glenn)
クライアント接続の中断の検出と報告をクリーンアップ。このクリーンアップにより、リモートクライアントが接続を中断した場合、mod_jkがTomcatにリクエストを渡さないことが保証される。(glenn)
Apache 2.0のバグを修正。mod_includeによって後処理されるSSIディレクティブを生成した場合、Tomcatに転送されたPOSTリクエストが失敗する原因となっていた。(glenn)
JkRequestLogFormatでリクエストURIを出力する際に、16進エスケープシーケンスを含むURIが誤ってフォーマットされる可能性のあるバグを修正。(glenn)
1.2.1と1.2.2の変更点
ネイティブ
中断されたリクエストのログ記録変更に対応するため、tomcat_trend.plスクリプトを更新。(glenn)
jkがApache 2.0でContent-Typeを正しく設定するようになり、mod_deflateおよびAddOutputFilterByTypeと連携できるようにした。(hgomez)
jkはget_endpointの結果をチェックし、失敗を処理する。この呼び出しは、メモリ不足の状況によりエンドポイントの割り当てが失敗し、エンドポイントにアクセスしようとしたときにNULLの逆参照を引き起こす可能性がある。(mmanders)
1.2.0と1.2.1の変更点
ネイティブ
14282: チャンクエンコーディングの初期チャンクを送信しない。(costin)
mod_jkログを解析し、グラフ/レポートを生成するためのPerlスクリプトを追加。(glenn)
JKがCanonicalHostディレクティブを尊重するようにする。(hgomez)
ログのクリーンアップ。(costin)
jk xdocs/docsのタイポを修正。(hgomez)
Apache 2.0にJkRequestLogFormatを追加。(hgomez)
JKをiSeries準拠にするための最終パッチ。(hgomez)
JK 2
JK2はメンテナンスモードに移行され、今後の開発は行われません。JK2の開発が中止された理由は、開発者の関心不足でした。その他の理由としては、JKと比較して設定の複雑さがあったため、ユーザーがJK2を採用することへの関心が低かったことが挙げられます。