bottleneck testcase based on rubbos
[bottlenecks.git] / rubbos / app / tomcat-connectors-1.2.32-src / xdocs / miscellaneous / changelog.xml
1 <?xml version="1.0"?>
2 <!--
3   Licensed to the Apache Software Foundation (ASF) under one or more
4   contributor license agreements.  See the NOTICE file distributed with
5   this work for additional information regarding copyright ownership.
6   The ASF licenses this file to You under the Apache License, Version 2.0
7   (the "License"); you may not use this file except in compliance with
8   the License.  You may obtain a copy of the License at
9
10       http://www.apache.org/licenses/LICENSE-2.0
11
12   Unless required by applicable law or agreed to in writing, software
13   distributed under the License is distributed on an "AS IS" BASIS,
14   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15   See the License for the specific language governing permissions and
16   limitations under the License.
17 -->
18 <!DOCTYPE document [
19   <!ENTITY project SYSTEM "project.xml">
20 ]>
21 <document url="changelog.html">
22
23   &project;
24
25   <properties>
26     <author email="mturk@apache.org">Mladen Turk</author>
27     <author email="rjung@apache.org">Rainer Jung</author>
28     <author email="hgomez@apache.org">Henri Gomez</author>
29     <author email="timw@apache.org">Tim Whittington</author>
30     <title>Changelog</title>
31   </properties>
32
33 <body>
34
35 <section name="Preface">
36   <p>
37   This is the Changelog for Tomcat Connectors. This changelog
38   does not contain all updates and fixes to the Tomcat connectors (yet).
39   It should contain fixes made only after November 10th 2004, when the
40   new documentation project for JK was started.
41   </p>
42 </section>
43 <section name="Changes between 1.2.31 and 1.2.32">
44   <br />
45   <subsection name="Native">
46     <changelog>
47       <fix>
48         <bug>51417</bug>: Fix worker busy detection by querying the
49         worker endpoint. Abandoned connections can leave a worker
50         in busy state without decrementing busy counter. (mturk)
51       </fix>
52       <fix>
53         <bug>50339</bug>: Fix whitespace trimming when parsing attribute
54         lists. (rjung)
55       </fix>
56       <fix>
57         <bug>41263</bug>: Support Servlet API getRemotePort().
58         Works for Tomcat 5.5.28, 6.0.20 and 7.0.0 and Apache and ISAPI
59         plugins. (rjung)
60       </fix>
61       <fix>
62         <bug>41923</bug>: AJP: Close AJP connection to Tomcat on client write
63         error when recovery_options 4 is specified, aborting the response
64         write on the Tomcat side. (timw)
65       </fix>
66       <update>
67         AJP: Cap the lingering bytes that will be read
68         when shutting down an AJP socket at 32k to prevent CPU spikes
69         in the web server when a client aborts on a large response body.
70         Also reduce total linger time to 2s. (timw)
71       </update>
72       <fix>
73         <bug>50839</bug>: AJP: Fix 30sec CPU spike due to incorrect counting
74         of lingering bytes causing a busy loop when a client aborts
75         connection during a response write.
76         Fixes regression in 1.2.31. (timw)
77       </fix>
78       <add>
79         LB: Forward worker activation state as request attribute
80         "JK_LB_ACTIVATION". Possible values are "ACT" (active),
81         "DIS" (disabled) and "STP" (stopped). (rjung)
82       </add>
83       <fix>
84         HTTPD: Forward WWW-Authenticate from backend when status is 401
85         and server generated error pages are used. (rjung)
86       </fix>
87       <fix>
88         <bug>50363</bug>: IIS: Prevent chunk encoding of empty message
89         bodies for 204, 205 and 304 responses. (timw)
90       </fix>
91       <fix>
92         <bug>50975</bug>: IIS: Fix hanging of Transfer-Encoding: chunked
93         requests when Content-Length header is present in request as well.
94         Also addresses situation where IIS appears to create a Content-Length
95         header for a small chunk encoded request when none was present in the
96         original request. (timw)
97       </fix>
98       <fix>
99         <bug>47679</bug>: IIS: stop truncation of request headers when
100         ISAPI redirector used as an extension without the corresponding
101         filter installed. (timw)
102       </fix>
103       <fix>
104         NSAPI: Use lower case header names for responses.
105         Otherwise the web server might add chunked transfer encoding header
106         in addition to our content length header.
107       </fix>
108       <update>
109         Docs: Improve load balancer documentation. (rjung)
110       </update>
111     </changelog>
112   </subsection>
113 </section>
114 <section name="Changes between 1.2.30 and 1.2.31">
115   <br />
116   <subsection name="Native">
117     <changelog>
118       <fix>
119         <bug>49413</bug>: AJP13: Drop flush packets send by the backend
120         after the response has been finished. (rjung)
121       </fix>
122       <update>
123         AJP: Log the local and remote socket address. (mturk)
124       </update>
125       <update>
126         Watchdog: Move the maintain workers outside the critical
127         section allowing other threads to use the connection
128         pool during maintenance. (mturk)
129       </update>
130       <update>
131         Common: Add svn revision to init log message. (rjung)
132       </update>
133       <fix>
134         Common: Don't destroy errno during trace logging. (rjung)
135       </fix>
136       <update>
137         Apache: Add support for Apache 2.3/2.4. (rjung)
138       </update>
139       <update>
140         Apache: Added version number resource for mod_jk.so on Windows. (timw)
141       </update>
142       <update>
143         <bug>48501</bug>: IIS: Added rotatelogs style log rotation to ISAPI
144         Redirector. (timw)
145       </update>
146       <fix>
147         <bug>38895</bug>: IIS: Use RAW headers instead of CGI headers by default
148         to prevent conversion of underscores '_' to hyphens '-' in header names.
149         Old behaviour can be enabled by defining USE_CGI_HEADERS. (timw)
150       </fix>
151       <fix>
152         <bug>49511</bug>: IIS: Do not override IIS log information when subsequent
153         requests on a keep-alive connection are not mapped into the ISAPI Redirector. (timw)
154       </fix>
155       <fix>
156         Docs: Document SSLOptions needed for SSL information forwarding. (rjung)
157       </fix>
158       <update>
159         Docs: Grammar and style improvements and clarification about serving
160         static content by IIS.
161         Patch provided by Andr&#233; Warnier. (rjung)
162       </update>
163       <fix>
164         Docs: Update subversion paths used in docs. (rjung)
165       </fix>
166     </changelog>
167   </subsection>
168 </section>
169 <section name="Changes between 1.2.28 and 1.2.30">
170   <br />
171   <subsection name="Native">
172     <changelog>
173       <update>
174         Apache: Improve compatibility with Apache 2.3. (rjung)
175       </update>
176       <fix>
177         <bug>46632</bug>: Apache: Do not register child cleanup for
178         our pools. (mturk)
179       </fix>
180       <fix>
181         <bug>46893</bug>: Apache: Log warning only if JkShmSize was actually
182         set in the configuration. (mturk)
183       </fix>
184       <update>
185         IIS: Include optional chunking support. Off by default. (mturk)
186       </update>
187       <fix>
188         <bug>48763</bug>: IIS: Do not send Content-Length when using chunked encoding
189         or length larger 4GB. (mturk)
190       </fix>
191       <fix>
192         <bug>48223</bug>: IIS: Propagate correct backend error code to IIS. (rjung)
193       </fix>
194       <fix>
195         <bug>47867</bug>: IIS: crash during startup, when compiled with VS2008
196         and workers.properties contains unsupported properties.
197         Patch provided by Indrek Juhani (rjung)
198       </fix>
199       <fix>
200         <bug>47628</bug>: IIS: Fix deadlock when restarting the Application Pool
201         caused by not releasing the critical section lock.
202         Patch provided by Bret Prucha. (mturk)
203       </fix>
204       <fix>
205         IIS/NSAPI: Correct log file flushing after each line. (mturk)
206       </fix>
207       <add>
208         NSAPI: Add Microsoft Visual C++ Makefile. (mturk)
209       </add>
210       <update>
211         AJP: Improve socket shutdown handling. (mturk)
212       </update>
213       <update>
214         AJP: Ensure we never reuse a non reusable socket. (mturk)
215       </update>
216       <update>
217         AJP: Tolerate a single excess packet when waiting for cpong. (mturk)
218       </update>
219       <update>
220         AJP: Check protocol correctness more strictly. (mturk)
221       </update>
222       <update>
223         <bug>48410</bug>: AJP: Use poll instead select so we can work with more
224         then 1024 sockets. (mturk)
225       </update>
226       <fix>
227         <bug>46503</bug>: AJP/Status: Garbage data in worker domain and route. (mturk)
228       </fix>
229       <fix>
230         <bug>48276</bug>: AJP: When worker contact cannot be resolved mark the
231         worker as disabled instead failing to start the server. (mturk)
232       </fix>
233       <fix>
234         <bug>48169</bug>: AJP: Improve CGI interoperability by closing all
235         sockets during EXEC. (mturk)
236       </fix>
237       <add>
238         Status: Add number of open backend connections to status worker.
239         This feature is experimental, the displayed value might not be
240         accurate. (mturk)
241       </add>
242       <update>
243         <bug>47224</bug>: Status: When address gets changed invalidate
244         all opened sockets in the endpoint cache. This will cause new
245         backend connections to get opened using new address. (mturk)
246       </update>
247       <fix>
248         <bug>48305</bug>: Status: Do not show "secret" property when
249         doing dump. (mturk)
250       </fix>
251       <fix>
252         <bug>45610</bug>: Status: Don't accept requests with
253         empty value for sub worker parameter. (rjung)
254       </fix>
255       <fix>
256         <bug>45610</bug>: Status: Fix erroneous unsetting of
257         sticky_session and sticky_session_force when updating other
258         load balancer attributes via the status worker. (rjung)
259       </fix>
260       <fix>
261         <bug>47222</bug>: Status: Add ping_timeout to the shared memory
262         and allow dynamic configuration. (mturk)
263       </fix>
264       <fix>
265         Status: Remove duplicate "errors" line in property view of
266         AJP13 workers that are part of a load balancer. (rjung)
267       </fix>
268       <fix>
269         LB: Fix route logging. (rjung)
270       </fix>
271       <update>
272         Logging: Automatically detect size of thread id for logging. (rjung)
273       </update>
274       <update>
275         Logging: Add optional log file locking for Windows when defining
276         JK_LOG_LOCKING. (mturk)
277       </update>
278       <update>
279         Configuration: Update example configuration. (rjung)
280       </update>
281       <update>
282         Docs: Update information about tools needed to create a release. (rjung)
283       </update>
284       <fix>
285         <bug>47983</bug>: Docs: Fix typo in example config
286         which breaks startup. (rjung)
287       </fix>
288       <update>
289         Build: Force copy of automake files. (rjung)
290       </update>
291       <update>
292         Build: Tomcat code repository structure cleanup reflected in documentation
293         and build script. (rjung, mturk)
294       </update>
295     </changelog>
296   </subsection>
297 </section>
298 <section name="Changes between 1.2.27 and 1.2.28">
299   <br />
300   <subsection name="Native">
301     <changelog>
302       <add>
303         Apache: Add more environment variables to overwrite request
304         information. Useful in case a proxy is in front of Apache and sends
305         us original request information e.g. via custom headers. (rjung)
306       </add>
307       <update>
308         Apache: No longer preallocate entries for JK request log. (rjung)
309       </update>
310       <fix>
311         <bug>46352</bug>: Apache: Fix crash when using SetHandler jakarta-servlet
312         in VHost without any JkMount. Crash due to incorrect initialization
313         of mount extensions. (rjung)
314       </fix>
315       <fix>
316         Apache: JkWatchdogInterval had wrong interval calculation
317         causing a 10 times higher watchdog interval then configured. (mturk)
318       </fix>
319       <fix>
320         Apache: Activate forwarding of SSL key size by default. (rjung)
321       </fix>
322       <fix>
323         <bug>46169</bug>: Apache 1.3: Backport use_server_errors mount extension. (rjung)
324       </fix>
325       <fix>
326         <bug>46763</bug>: Apache 2.0: Survive the log mutex during graceful
327         restart. Patch provided by Eiji Takahashi. (mturk)
328       </fix>
329       <fix>
330         <bug>46416</bug>: Apache 2.0 on Windows: Include mstcipip.h even if
331         the apr doesn't include it. (mturk)
332       </fix>
333       <update>
334         IIS: Update uriworkermap.properties file on
335         a regular interval. This requires both worker_mount_reload
336         and watchdog_interval to be defined. (mturk)
337       </update>
338       <update>
339         IIS: Remove obsolete entries from registry file. (mturk)
340       </update>
341       <fix>
342         <bug>46579</bug>: IIS: Use local environment table instead environment
343         variables for setting the JKISAPI_PATH and JKISAPI_NAME. (mturk)
344       </fix>
345       <update>
346         LB: Add new property error_escalation_time to fine tune
347         escalation of local errors to global errors. (rjung)
348       </update>
349       <update>
350         LB: If the sticky session affinity mark contains a dot, treat the
351         part before the dot as the domain name. This allows to have full node
352         session affinity with domain failover. (mturk)
353       </update>
354       <fix>
355         LB: make forced recovery work with local error states. (rjung)
356       </fix>
357       <fix>
358         LB: Only update error state and error time, if we actually have a new state. (rjung)
359       </fix>
360       <fix>
361         LB: Set global worker state to error when we reach max_reply_timeouts,
362         or fail_on_status triggered hard error. (rjung)
363       </fix>
364       <update>
365         AJP: Add a new error type JK_AJP_PROTOCOL_ERROR. (mturk)
366       </update>
367       <update>
368         AJP: Allow worker ports lower or equal to 1024. (rjung)
369       </update>
370       <update>
371         AJP: Improve some AJP error log messages. (mturk)
372       </update>
373       <update>
374         Status: Allow changing worker address and port of AJP workers.
375         The address is resolved on next request for that worker. (mturk)
376       </update>
377       <update>
378         Status: Allow update actions to show error messages in the result page. (rjung)
379       </update>
380       <update>
381         Status: Refactor update actions. (rjung)
382       </update>
383       <update>
384         Status: Do not redirect to the show or list page, if an error occured
385         during an action. (rjung)
386       </update>
387       <update>
388         Status: Include error time in display. (rjung)
389       </update>
390       <update>
391         Status: Remove redundant port information from worker display.
392         Rename address column and remove its explanation from the legend. (rjung)
393       </update>
394       <update>
395         Status: Optimize forced uriworkermap.properties reload. (mturk)
396       </update>
397       <fix>
398         Status: Fix crash in text display. (rjung)
399       </fix>
400       <fix>
401         Status: Show - Edit - Show always ends in single lb member show,
402         even when started from all members lb show. (rjung)
403       </fix>
404       <fix>
405         Status: Wildcards in sub worker names were broken for update actions. (rjung)
406       </fix>
407       <fix>
408         Status: Add use_server_errors to map display. (rjung)
409       </fix>
410       <update>
411         SHM: Move locking into the data pull and push methods. (rjung)
412       </update>
413       <update>
414         JNI: Deprecate JNI workers. (rjung)
415       </update>
416       <fix>
417         Netware: Missing define for MAX_PATH. Patch by Guenter Knauf. (rjung)
418       </fix>
419       <update>
420         Docs: Add a new HowTo page about reverse proxies. (rjung)
421       </update>
422       <update>
423         Docs: Add an explanation of local error states to the timeouts documentation. (rjung)
424       </update>
425       <update>
426         Docs: Clarify relation between socket_timeout and socket_connect_timeout. (rjung)
427       </update>
428       <update>
429         Docs: Clarify IIS URL rewrite feature. (rjung)
430       </update>
431       <fix>
432         <bug>46834</bug>,<bug>46734</bug>: Docs: Fix a couple of missing or broken links. (markt,rjung)
433       </fix>
434       <fix>
435         Docs: Add 2008 news to main page and menues. (mturk, rjung)
436       </fix>
437     </changelog>
438   </subsection>
439 </section>
440 <section name="Changes between 1.2.26 and 1.2.27">
441   <br />
442   <subsection name="Native">
443     <changelog>
444       <fix>
445         <bug>46109</bug>: Decay reply_timeouts even when lb method is
446         busyness. Also reset reply_timeouts during forced recovery. (rjung)
447       </fix>
448       <update>
449         AJP13: Recycle connection if previous request didn't complete. (mturk)
450       </update>
451       <update>
452         Maintain should not run multiple times in parallel. (mturk)
453       </update>
454       <fix>
455         Apache: Fix small memory leak during restart. (mturk)
456       </fix>
457       <update>
458         Improve signal handling during socket shutdown. (mturk)
459       </update>
460       <add>
461         URI Map: Add debug dump function for uri worker map. (rjung)
462       </add>
463       <update>
464         Add revision number to version info for non-release builds. (rjung)
465       </update>
466       <add>
467         IIS: Optionally allow chunked encoding for responses.
468         At the moment only usable, if build with ISAPI_ALLOW_CHUNKING
469         defined. Based on patch by Tim Whittington. (rjung)
470       </add>
471       <update>
472         IIS: Optionally use raw headers instead of CGI
473         headers. Fixes problem "underscore=dash" problem in
474         header names. At the moment only available, if build with USE_RAW_HEADERS
475         defined. (rjung)
476       </update>
477       <update>
478         IIS: Optionally improve IIS 5.1 compatibility.
479         At the moment only available, if build with AUTOMATIC_AUTH_NOTIFICATION
480         defined. Based on patch by Tim Whittington. (rjung)
481       </update>
482       <fix>
483         IIS: Fix memory corruption due to parallel initialization
484         by multiple threads. (rjung)
485       </fix>
486       <update>
487         Windows: Use non-default socket keepalive interval. (mturk)
488       </update>
489       <add>
490         IIS: Add environment variables JKISAPI_PATH and JKISAPI_NAME. (mturk)
491       </add>
492       <add>
493         Added socket_connect_timeout directive for setting the
494         connect timeout for the socket. This enables to have low
495         connection timeout but higher operational timeouts. (mturk)
496       </add>
497       <fix>
498         AJP13:
499         [<a href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2008-5519"><b>CVE-2008-5519</b></a>]
500         Always send initial POST packet even if the client
501         disconnected after sending request but before providing
502         POST data. In that case or in case the client broke the
503         connection in a middle of read send an zero size packet
504         informing container about broken client connection. (mturk)
505       </fix>
506       <add>
507         AJP13: Added connection_acquire_timeout directive for setting the
508         absolute timeout the worker will wait for a free endpoint. (mturk)
509       </add>
510       <update>
511         Apache: Allow to set path parameter used when doing JkStripSession. (mturk)
512       </update>
513       <update>
514         Refactor retries implementation and change semantics of retries attributes. (mturk)
515       </update>
516       <update>
517         Status: Allow showing only a single member for a load balancer. (rjung)
518       </update>
519       <update>
520         Status: Add display of seconds since last statistics reset and access and
521         transfer rates. (rjung)
522       </update>
523       <add>
524         AJP13: Add a configurable retry_interval time. (rjung)
525       </add>
526       <update>
527         Documentation: Enhance description of connection_pool_size. (rjung)
528       </update>
529       <update>
530         IIS: Refactor error page generation. (mturk)
531       </update>
532       <fix>
533         IIS: SERVER_NAME variable can be the same for
534         multiple different server instances if requests
535         are handled according to the ip:port combination.
536         Use INSTANCE_ID variable to which the request
537         belongs instead. (mturk)
538       </fix>
539       <add>
540         Allow forwarding server error pages. This can be done
541         on per-uri basis using new use_server_errors extension.
542         (mturk)
543       </add>
544       <add>
545         Added session_cookie and session_path for configuring
546         default session identifiers. (mturk)
547       </add>
548       <update>
549         Use max_packet_size also as TCP send and receive buffer size. (mturk)
550       </update>
551       <update>
552         Apache: Do not allow Apache to start in multi-threaded mode if mod_jk
553         was only build for single threaded server (prefork). (mturk)
554       </update>
555       <fix>
556         <bug>45812</bug>: Add done() service method that
557         causes sending EOS bucket for Apache httpd 2.x.
558         This allows filter chain to work properly. (mturk)
559       </fix>
560       <add>
561         Added connection_ping_interval, ping_timeout and ping_mode directives.
562         (mturk)
563       </add>
564       <fix>
565         Apache: Use correct ld flags provided by apxs when building module.
566         Prevents some crashes on AIX for httpd 1.3 module. (rjung)
567       </fix>
568       <fix>
569         Documentation: "val" attribute numbering in status worker
570         needs to start with 0 instead of 1. (rjung)
571       </fix>
572       <update>
573         Documentation: Remove JNI parameters from sample configuration
574         in the workers generic howto. (rjung)
575       </update>
576       <fix>
577         <bug>45026</bug>: For Apache httpd 2.x add "Unknown Reason"
578         as the reason phrase, if we get an empty one from the backend.
579         Otherwise httpd 2.x returns status 500. (rjung)
580       </fix>
581       <fix>
582         Build: Fix Cygwin build. (rjung)
583       </fix>
584       <update>
585         Documentation: Add info to docs, that variables sent via JkEnvVar
586         are not listed in request.getAttributeNames(). (rjung)
587       </update>
588       <add>
589         Add watchdog background thread for Apache 2.x and IIS
590         doing internal maintenance (idle connection checks, backend probing).
591         See JkWatchdogInternal (Apache) and watchdog_interval (IIS). (mturk)
592       </add>
593       <update>
594         Change log level of some messages from error to info. (mturk)
595       </update>
596       <fix>
597         Documentation: Fix docs for worker attribute "secret". (rjung)
598       </fix>
599       <update>
600         Detect correct plugin name for various web servers via additional
601         preprocessor defines. (rjung)
602       </update>
603       <fix>
604         LB: Do not put loadbalancer node in error state if there is opened
605         channel. This fixes the bug when new connection fails due to
606         busyness, causing opened connections fail stickyness.
607         This brings back per-node busy counter and private state array
608         for each request. We can mark the state as error for failover to
609         work while still operating and reporting node as OK if there are
610         opened working connections. (mturk)
611       </fix>
612       <fix>
613         <bug>44738</bug>: Fix merging of JkOption ForwardURI* between virtual hosts.
614         Patch contributed by Toshihiro Sasajima. (rjung)
615       </fix>
616       <add>
617         URI Map: Add extension attributes to uri worker map.
618         Allowed are reply_timeout, active/disabled/stopped
619         and fail_on_status.
620         Usage currently only implemented for httpd and IIS. (rjung+mturk)
621       </add>
622       <fix>
623         URI Map: Make dynamic reloading atomic and free memory
624         not needed any longer. (rjung)
625       </fix>
626       <add>
627         Configure: Don't use post httpd 2.2.0 API functions when building
628         with new --enable-api-compatibility configure switch. (rjung)
629       </add>
630       <fix>
631         Apache: JkAutoAlias does not work in combination with JkMountCopy
632         if there are no JkMount in virtual host. (rjung)
633       </fix>
634       <update>
635         LB: Optimize state macros to improve performance. (rjung)
636       </update>
637       <add>
638         Apache: Allow dynamic setting of reply timeout using the environment
639         variable JK_REPLY_TIMEOUT. (rjung)
640       </add>
641       <add>
642         Status: Add manageability for ajp parameters of ajp
643         workers and ajp lb members. (rjung)
644       </add>
645       <update>
646         Status: Change parameter names of update action to
647         make them more easily distinguishable from other parameters. (rjung)
648       </update>
649       <add>
650         Status: Add ajp worker statistics also for
651         workers, that are not lb members. (rjung)
652       </add>
653       <update>
654         AJP: Refactor factories, move ajp13/ajp14 common parts into
655         ajp_factory. (rjung)
656       </update>
657       <update>
658         Status: Only sync shm worker config values of the workers
659         for which we changed values. (rjung)
660       </update>
661       <fix>
662         Status: Set lb_factor instead of distance. (rjung)
663       </fix>
664       <update>
665         Status: Minor layout changes, use drop down instead of multiple
666         text links. (rjung)
667       </update>
668       <update>
669         SHM: Use local copies of read mostly attributes of lb sub workers
670         in lb and status worker. (rjung)
671       </update>
672       <update>
673         Status: Add "dump" action to dump our initial configuration. (rjung)
674       </update>
675       <update>
676         Status: Use property table to decide which cmd action uses which
677         output elements. (rjung)
678       </update>
679       <update>
680         Common: Include original configuration map in worker_env
681         to make it available for workers, e.g. the status worker. (rjung)
682       </update>
683       <update>
684         LB: Refactor "route" return for httpd note. Don't use a
685         member of the worker_record, because that's not thread safe. (rjung)
686       </update>
687       <update>
688         Common: Refactor "retries", remove from service and jk_worker,
689         move into ajp worker instead. (rjung)
690       </update>
691       <update>
692         SHM: Use distinct structs for lb and ajp13 in shm.
693         Improves type safety and saves a few bytes. (rjung)
694       </update>
695       <update>
696         SHM: Remove unused attributes. (rjung)
697       </update>
698       <update>
699         SHM: Automatically determine shm size for all web servers. (rjung)
700       </update>
701       <update>
702         SHM: Make open/attach logging consistent for all web servers. (rjung)
703       </update>
704       <update>
705         Status: Include server local time in output. (rjung)
706       </update>
707       <fix>
708         <bug>44116</bug>: Fix handling of multiple JSESSIONID cookies. (rjung)
709       </fix>
710       <fix>
711         <bug>37850</bug>: Use thread safe localtime_r where appropriate. (rjung)
712       </fix>
713       <fix>
714         Use thread safe strtok_r on more platforms, especially AIX. (rjung)
715       </fix>
716       <update>
717         Status: Improve XSS hardening. (rjung)
718       </update>
719       <update>
720         <bug>35303</bug>: Move initialization of service members with defaults from
721         web server specific code to our generic jk_init_ws_service() function. (rjung)
722       </update>
723       <fix>
724         <bug>36385</bug>: Add missing prepost CPing/CPong directly after connect
725         in case prepost CPing is used, but no connect CPing. (rjung)
726       </fix>
727       <update>
728         <bug>37322</bug>: Apache: Enhance robustness of message formating
729         in jk_error_exit(). (rjung)
730       </update>
731       <fix>
732         <bug>44147</bug>: Multiple load balancing workers problem. (rjung)
733       </fix>
734     </changelog>
735   </subsection>
736 </section>
737 <section name="Changes between 1.2.25 and 1.2.26">
738   <br />
739   <subsection name="Native">
740     <changelog>
741       <fix>
742         <bug>42003</bug>: Allocate memory instead using fixed size from
743         the stack. (mturk)
744       </fix>
745       <fix>
746         <bug>43229</bug>: Load balancer does not do fail over after
747         reply timeouts. (rjung)
748       </fix>
749       <fix>
750         JKStatus: Repair detailed Apache httpd version display.
751         This was broken for httpd version 2.2.4+. (rjung)
752       </fix>
753       <update>
754         LB/AJP: Refactoring of jk_connect.c, jk_ajp_common.c,
755         jk_lb_worker.c (rjung)
756       </update>
757       <fix>
758         Configure: Repair broken apxs auto-detection. (rjung)
759       </fix>
760       <update>
761         Configure: Remove trace logging from compiled code
762         via new --disable-trace configure switch. (rjung)
763       </update>
764       <update>
765         Common: Maintain idle connections in decreasing (LRU)
766         slot order. (rjung)
767       </update>
768       <update>
769         Apache: Create JK_WORKER_ROUTE and JK_REQUEST_DURATION notes for
770         access log even if no JkRequestLogFormat is set. (rjung)
771       </update>
772       <update>
773         JKStatus: Enhance URI to worker map listing for Apache httpd.
774         We now list maps for all virtual servers and not only
775         the one, in which JKStatus itself was called. (rjung)
776       </update>
777       <update>
778         JKStatus: Enhance URI to worker map listing.
779         Update stale uriworkermap.properties immediately. (rjung)
780       </update>
781       <fix>
782         <bug>43873</bug>: Fix small memory leak occuring during httpd restart. (rjung)
783       </fix>
784       <update>
785         Common: Allow '*' for the worker name in exclusion rules (resp. JkUnMount)
786         which will override all workers. (rjung)
787       </update>
788       <fix>
789         <bug>42038</bug>: Correct overlay of mounts and unmounts for IIS. (rjung)
790       </fix>
791       <fix>
792         <bug>43684</bug>: Replace JkMountFile by JkMountFileReload in
793         uriworkermap.properties docs. (rjung)
794       </fix>
795       <update>
796         Apache: Add new value "All" for JkMountCopy. (rjung)
797       </update>
798       <fix>
799         <bug>43516</bug>: Memory leak for Apache httpd module
800         of size 8KB for every virtual host without JK directive
801         after each restart. (rjung)
802       </fix>
803       <update>
804         Apache: Cleanup init and destroy of server configuration. (rjung)
805       </update>
806       <update>
807         Apache: Remove global configuration items from per server
808         configuration. (rjung)
809       </update>
810       <update>
811         Apache: Remove unused attributes secret_key and
812         automount/JkAutoMount. (rjung)
813       </update>
814       <update>
815         Cleanup of jk_uri_worker_map. (rjung)
816       </update>
817       <update>
818         Documentation: Small additions to JkShmFile documentation.
819         Contributed by Gerhardus Geldenhuis. (rjung)
820       </update>
821       <fix>
822         AJP13: Ignore flush packets before we received the response headers. (rjung)
823       </fix>
824       <fix>
825         Fix crash during startup when using worker configuration inheritance
826         (attribute "reference") and log level debug. (rjung)
827       </fix>
828       <fix>
829         AJP13: Match header names exactly against pre defined constants. Avoid
830         possible confusion with custom header names using a standard header name
831         as a prefix. (rjung)
832       </fix>
833       <fix>
834         jkstatus: Fix correct parameter validation at JkStatusUpdateTask and
835         JkStatusUpdateLoadbalancerTask ant tasks. Reported by Christian Mittendorf. (pero)
836       </fix>
837     </changelog>
838   </subsection>
839 </section>
840 <section name="Changes between 1.2.24 and 1.2.25">
841   <br />
842   <subsection name="Native">
843     <changelog>
844       <update>
845         IIS: Fix shm shutdown behaviour. (rjung)
846       </update>
847       <update>
848         General: fail_on_status used in a load balancer can optionally
849         do fail over without putting the failed worker in error state. (rjung)
850       </update>
851       <update>
852         NSAPI: Improve build description for Unix. (rjung)
853       </update>
854       <update>
855         NSAPI: Add initialization startup message containing JK version. (rjung)
856       </update>
857       <fix>
858         General: Declare static functions as static. (jim)
859       </fix>
860       <update>
861         Documentation: Clarify fail_on_status behaviour. (rjung)
862       </update>
863       <fix>
864         General: Do fail_on_status before returning the response headers. (rjung)
865       </fix>
866       <update>
867         NSAPI: Fix shm shutdown behaviour. (rjung)
868       </update>
869       <update>
870         NSAPI: Set return status even if request ended with an error. (rjung)
871       </update>
872       <update>
873         NSAPI: Allow using without shm_file on WIN32 and Netware. (rjung)
874       </update>
875       <fix>
876         NSAPI: Fix Crash of nsapi for log level debug and unset refect_unsafe. (rjung)
877       </fix>
878       <update>
879         NSAPI: Improve Solaris and Linux Makefiles for nsapi build. (rjung)
880       </update>
881       <fix>
882         Build: Improve pid_t type detection during configure on Solaris. (rjung)
883       </fix>
884       <update>
885         Build: Experimental build support for gcc on WIN32 and Netware. (fuankg)
886       </update>
887       <update>
888         Build: Makefile optimizations for Apache httpd 1.3/Netware . (fuankg)
889       </update>
890       <fix>
891         General: Fix missing flush bug introduced in 1.2.24. (rjung)
892       </fix>
893     </changelog>
894   </subsection>
895 </section>
896 <section name="Changes between 1.2.23 and 1.2.24">
897   <br />
898   <subsection name="Native">
899     <changelog>
900       <update>
901       Documentation: Improved workers.properties description in the
902       reference guide. (rjung)
903       </update>
904       <update>
905       Documentation: Add a HowTo about the various timeouts. rjung)
906       </update>
907       <update>
908       Logging: add milliseconds to the default timestamp format,
909       if we have gettimeofday(). (rjung)
910       </update>
911       <update>
912       Apache: add milliseconds (%Q) and microseconds (%q) as possible
913       JkLogStampFormat conversion specifiers. This does not use strftime(),
914       but needs gettimeofday(). (rjung)
915       </update>
916       <update>
917       IIS &amp; Sun: Log service failures also, if return code is negative. (rjung)
918       </update>
919       <fix>
920         <bug>42849</bug>: Abort startup of Apache httpd 1.3 in case
921         mod_jk initialization failed. We already do the same
922         for Apache httpd 2.x. (rjung)
923       </fix>
924       <fix>
925         <bug>42849</bug>: Refuse to operate with IIS in case the
926         initialization failed. Instead requesting isapi_redirect.dll
927         500 will be returned to the user. This is as closest as it
928         can get to Apache Httpd where we refuse to start the server
929         in case of fatal initialization errors. (mturk)
930       </fix>
931       <fix>
932       Load Balancer: Fix a deadlock in lb worker, which was exposed on Solaris
933       for threaded Apache MPMs. (rjung)
934       </fix>
935       <update>
936       Logging: handle LWP IDs as 32 Bit unsigned. Try to make
937       it work, although pthread IDs are opaque. (rjung)
938       </update>
939       <update>
940       JkStatus: Added manipulation of max_reply_timeouts. (rjung)
941       </update>
942       <update>
943       LB, Status: Add feature max_reply_timeouts, to make lb tolerant against
944       occasional long running requests. (rjung)
945       </update>
946       <update>
947       JkStatus: Added OK/IDLE as the successor of N/A. (rjung)
948       </update>
949       <update>
950       Status worker: Renamed runtime states. All states have a major
951       state (OK or ERR) and a substate. Changed the name N/A to OK/IDLE.
952       Added docs about the meaning of the states to the status worker
953       page in the reference guide.
954       No new states have been added to code. (rjung)
955       </update>
956       <update>
957       Common: Add recovery options for recovering idempotent http methods
958       HEAD and GET. (rjung)
959       </update>
960       <fix>
961       Correct documentation for worker attributes retries and
962       recovery_options. (rjung)
963       </fix>
964       <fix>
965       Make writing log lines and line endings more atomic. (rjung)
966       </fix>
967       <update>
968       Common: Refactored and unified jk_map_read_prop* and jk_map_load_prop*
969       for all use cases. (rjung)
970       </update>
971       <update>
972       Common/Apache/IIS/Netscape: Add an option to check decoded URLs for
973       potentially malicious constructions. (rjung)
974       </update>
975       <update>
976       IIS: Document auth_complete and uri_select. (rjung)
977       </update>
978       <update>
979       Apache/IIS/Netscape: Change the default forwarding encoding to the new
980       proxy method. (jfclere, rjung)
981       </update>
982       <update>
983       Common: Optionally reencode URIs before forwarding to the backend.
984       Based on the URI reencoding done bei httpd mod_proxy. (jfclere, rjung)
985       </update>
986       <update>
987       Common: auto-detect correct print format for pid_t.
988       This fixes at least compiler warnings on Solaris. (rjung)
989       </update>
990       <fix>
991         <bug>42608</bug>: Handle Content-length as unsigned 64Bit
992         to allow for huge up- and downloads. (rjung)
993       </fix>
994       <update>
995       Apache: Add forwarding uri to debug log. (rjung)
996       </update>
997       <update>
998       Docs: Clarify relation between worker names and jvmRoute for load balancing. (rjung)
999       </update>
1000       <fix>
1001       Use initial zero timeout for jk_is_socket_connected. The resulting
1002       detection is the same but offers a huge performance increase
1003       with mod_jk. In most cases the Operating System does not favor
1004       the 1 microsecond timeout, but it rather rounds that up to much
1005       higher value (frequency of interrupt timer which on most systems
1006       defaults to 100Hz).
1007       Patch provided by David McLaughlin. (mturk)
1008       </fix>
1009       <update>
1010       NSAPI: Check correct log file and shm file configuration during startup. (rjung)
1011       </update>
1012       <fix>
1013       NSAPI: Add support for the general options concerning retries, flushing
1014       and connection persistance. (rjung)
1015       </fix>
1016       <fix>
1017       NSAPI: fix crashes due to use of mount attribute in workers.properties.
1018       Changed initialization order. (rjung)
1019       </fix>
1020       <fix>
1021       Improved handling of libtool and discrepancies between CC env variable and
1022       CC used during apache build by configure script. (rjung)
1023       </fix>
1024       <fix>
1025       Always build with thread support, unless flag --enable-prefork
1026       is set during for configure. (rjung)
1027       </fix>
1028       <update>
1029       Use snprintf/vsnprintf from ap_snprintf.c for platforms other
1030       than Windows, which might lack snprintf/vsnprintf implementations
1031       when NOT build for Apache httpd 2.x/APR (e.g. Sub Web Server)
1032       or without using configure. (fuankg)
1033       </update>
1034       <update>
1035       Imported ap_snprintf() from Apache 1.3. (fuankg)
1036       </update>
1037       <fix>
1038       Fix incorrect log object cleanup during statup,
1039       leading to crashes at least on iSeries. (rjung)
1040       </fix>
1041       <update>
1042       Add jk_stat() and jk_file_exists() as wrapper functions.
1043       i5/OS V5R4 expects filename in ASCII for fopen but requires them
1044       in EBCDIC for stat(). (hgomez)
1045       </update>
1046       <update>
1047       i5/OS (AS/400) V5R4 port where Apache 2.0 modules should now use UTF8. (hgomez)
1048       </update>
1049       <update>
1050       Docs: Add comments on i5/OS build for V5R4 and previous releases. (hgomez)
1051       </update>
1052     </changelog>
1053   </subsection>
1054 </section>
1055 <section name="Changes between 1.2.22 and 1.2.23">
1056   <br />
1057   <subsection name="Native">
1058     <changelog>
1059       <update>
1060       [<a href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-0450"><b>CVE-2007-0450</b></a>]
1061       and
1062       [<a href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-1860"><b>CVE-2007-1860</b></a>]:
1063       Change the default value of JkOptions to ForwardURICompatUnparsed.
1064       The old default value was ForwardURICompat.
1065       This should make URL interpretation between Apache httpd and
1066       Tomcat consistent (prevent double decoding problems). (rjung)
1067       </update>
1068     </changelog>
1069   </subsection>
1070 </section>
1071 <section name="Changes between 1.2.21 and 1.2.22">
1072   <br />
1073   <subsection name="Native">
1074     <changelog>
1075       <fix>
1076       Refactor line endings logging to make it correct for all
1077       platforms and webservers. (mturk)
1078       </fix>
1079       <update>
1080       Added command line windows make files. (mturk)
1081       </update>
1082       <update>
1083       Allow fail_on_status directive to be multi line. (mturk)
1084       </update>
1085       <fix>
1086         <bug>42076</bug>: Fix name of new option from ForwardCertChain to
1087         ForwardSSLCertChain as documented. (rjung)
1088       </fix>
1089       <fix>
1090       Docs: Fix a couple of typos, change format of a few tables,
1091       fix links to news pages. (rjung)
1092       </fix>
1093       <fix>
1094       Fix correct URL for TC 6 examples in new IIS rewrite.properties
1095       configuration example file. (rjung)
1096       </fix>
1097       <fix>
1098       Add svn properties to several files. (rjung)
1099       </fix>
1100       <update>
1101       Add TC 6 examples to uriworkermap.properties in config examples. (rjung)
1102       </update>
1103       <update>
1104       Allow multiple status codes for fail_on_status directive.
1105       The status codes can be delimited by space or comma characters. (mturk)
1106       </update>
1107       <update>
1108         IIS. Added pcre like regular expressions for url rewrite rules. (mturk)
1109       </update>
1110       <fix>
1111         <bug>41922</bug>: Apache 1.3. Enable JkEnvVar. (mturk)
1112       </fix>
1113       <update>
1114         Apache. Add --enable-flock configure parameter for explicit
1115         compilation of faster flock() system calls for OS supporting
1116         those calls. By default the fcntl system call for locking will
1117         be used that is a little bit slower but it can work on NFS
1118         mounted volumes as well. (mturk)
1119       </update>
1120       <fix>
1121         <bug>41562</bug>: Add Debug logging for read from client in ISAPI Redirector.
1122          Contributed by Tim Whittington. (mturk)
1123       </fix>
1124       <update>
1125         Apache. Add ForwardSSLCertChain JkOption.
1126         Contributed by Patrik Schnellmann. (mturk)
1127       </update>
1128       <fix>
1129         IIS. Do not forbid access to web-inf or meta-inf if there is
1130         no mapped worker. This allows to have resource with those names
1131         that are outside mapped contexts. (mturk)
1132       </fix>
1133       <update>
1134         Apache. Use process id for creating shared memory name and delete shared
1135         memory and shared memory lock files on exit. (mturk)
1136       </update>
1137       <fix>
1138         IIS. Fix Keep-Alive regression introduced in 1.2.21. (mturk)
1139       </fix>
1140       <update>
1141       Delete unused check for empty init_map during startup. (rjung)
1142       </update>
1143       <fix>
1144         <bug>41770</bug>: Fix startup error if no JkWorkersFile is used. (rjung)
1145       </fix>
1146       <update>
1147       Use JK_TRUE/JK_FALSE instead of OK/!OK as return values in init_jk(). (rjung)
1148       </update>
1149       <update>
1150       Minor adjustments to apache startup log messages (when to use STDERR, remove
1151       deprecated NOERRNO flag, shm warning and warnings for usage of default files). (rjung)
1152       </update>
1153       <update>
1154       Replace APR precompiler directive by httpd mpm_query to detect MPM threading.
1155       Add a debug log message about auto-detected pool size. (rjung)
1156       </update>
1157       <fix>
1158         Make MMN check easier to understand and a little more precise
1159         (for new ap_get_server_banner()/ap_get_server_description()).
1160         We use the new API only for Apache httpd 2.3. This way our binaries are not
1161         tightly coupled to a minor 2.0 version, and we don't use ap_get_server_banner()
1162         any way. (rjung)
1163       </fix>
1164       <fix>
1165         Use the full description string ap_get_server_description() instead of
1166         the truncated info from ap_get_server_banner(), because this info gets used internally
1167         (status worker display and ajp14 backend communication) and is not send back to the
1168         normal user. (rjung)
1169       </fix>
1170       <fix>
1171         <bug>41757</bug>: Document the "--enable-prefork" flag of configure. (rjung)
1172       </fix>
1173       <update>
1174       Enhance log messages for failures when parsing attribute maps. (rjung)
1175       </update>
1176       <fix>
1177         Correct log message during worker initialization, in case remote host could not be
1178         resolved. We logged the default host name "localhost" instead of the configured one. (rjung)
1179       </fix>
1180       <fix>
1181         <bug>41770</bug>: Fix the second part of the bug: local_worker and local_worker_only
1182         is missing from the list of deprecated attributes (and not supported either), so prevents
1183         the web server from startup. (rjung)
1184       </fix>
1185     </changelog>
1186   </subsection>
1187 </section>
1188 <section name="Changes between 1.2.20 and 1.2.21">
1189   <br />
1190   <subsection name="Native">
1191     <changelog>
1192       <fix>
1193         [<a href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-0774"><b>CVE-2007-0774</b></a>]:
1194         A denial of service and critical remote code execution vulnerability.
1195         Caused by buffer overflow in map_uri_to_worker() when URL were longer that 4095 bytes.
1196         Reported by ZDI (www.zerodayintiative.com).
1197         Please note this issue only affected versions 1.2.19 and 1.2.20 of the
1198         Apache Tomcat JK Web Server Connector and not previous versions.
1199         Tomcat 5.5.20 and Tomcat 4.1.34
1200         included a vulnerable version in their source packages.
1201         Other versions of Tomcat were not affected.
1202       </fix>
1203       <add>
1204       Check the worker. parameters and don't start if the parameter is not a valid one. (jfclere)
1205       </add>
1206       <add>
1207         <bug>41439</bug>: Allow session IDs to get stripped off URLs of static
1208         content in Apache by adding JkStripSession
1209         directive (configurable per vhost). (mturk)
1210       </add>
1211       <add>
1212       Change semantics of empty defaults for JkEnvVar variables.
1213       Until 1.2.19: not allowed. In 1.2.20: send variables as empty strings, if
1214       neither set to non empty in config, nor during runtime.
1215       Starting with 1.2.21: If config has no second argument only send
1216       variable if set (even when set to empty string) during runtime.
1217       Allows good combination with condition attribute in tomcat access log. (rjung)
1218       </add>
1219       <fix>
1220         <bug>41610</bug>: Fix incorrect detection of missing Content-Length
1221         header leading to duplicate headers. Contributed by Boris Maras. (rjung)
1222       </fix>
1223       <fix>
1224       Better build support for SunONE (Netscape/iPlanet) webservers. (jim)
1225       </fix>
1226       <add>
1227       Add warning if duplicate map keys are read and are not allowed,
1228       e.g. when parsing uriworkermap.properties. (rjung)
1229       </add>
1230       <fix>
1231       Don't concat worker names, if uriworkermap.properties has a duplicate
1232       pattern, instead overwrite the worker. (rjung)
1233       </fix>
1234       <fix>
1235       Log deprecation message even in duplication case. (rjung)
1236       </fix>
1237       <fix>
1238       uriworkermap.properties: Fix off-by-one problem when deleting
1239       URL mapping during reloading of uriworkermap.properties. (rjung)
1240       </fix>
1241       <add>
1242         <bug>41439</bug>: Allow session IDs to get stripped off URLs of static
1243         content in IIS (configurable). (rjung)
1244       </add>
1245       <add>
1246         <bug>41333</bug>: Refactoring isapi_plugin configuration reading. (rjung)
1247       </add>
1248       <add>
1249         <bug>41332</bug>: Add some more errno logging and unify the format. (rjung)
1250       </add>
1251       <add>
1252       JkStatus: Improved logging by adding status worker name to messages.
1253       Added messages to the recover worker action. (rjung)
1254       </add>
1255       <add>
1256       JkStatus: Refactoring searching for workers and sub workers. (rjung)
1257       </add>
1258       <add>
1259         <bug>41318</bug>: Add configuration to make status worker user
1260         name checks case insensitive. (rjung)
1261       </add>
1262       <add>
1263       JkStatus: Add estimated time until next global maintenance to other
1264       mime types and adopt jkstatus ant task. (rjung)
1265       </add>
1266       <add>
1267       JkStatus: Show estimated time until next global maintenance.
1268       Change displayed time until next recovery to a min/max pair. (rjung)
1269       </add>
1270       <add>
1271       JkStatus: Allow a user of a read/write status worker to switch it
1272       to and from read_only mode temporarily. (rjung)
1273       </add>
1274       <fix>
1275       JkStatus: Do not show read/write commands in a read_only status worker. (rjung)
1276       </fix>
1277       <add>
1278       JkStatus: Allow lb sub workers in error state to be marked for recovery
1279       administratively from the status worker. (rjung)
1280       </add>
1281       <add>
1282       Load Balancer: Do not try to recover multiple times in parallel.
1283       Use additional runtime states "PROBE" and "FORCED". (rjung)
1284       </add>
1285       <fix>
1286       JkStatus: Improve data synchronization between different processes. (rjung)
1287       </fix>
1288       <fix>
1289         <bug>41381</bug>: Fix segfault in feature fail_on_status
1290         (wrong order of log arguments). Patch by Juri Haberland. (rjung)
1291       </fix>
1292       <fix>
1293       Use correct windows line endings for log file on WIN32 platform. (rjung)
1294       </fix>
1295     </changelog>
1296   </subsection>
1297 </section>
1298 <section name="Changes between 1.2.19 and 1.2.20">
1299   <br />
1300   <subsection name="Native">
1301     <changelog>
1302       <add>
1303       JkStatus Ant Task documentation page. (pero/rjung)
1304       </add>
1305       <add>
1306       JkStatus Ant Tasks: Add new tasks for update and reset. (pero)
1307       </add>
1308       <update>
1309       JkStatus Ant Tasks: Update for new xml status format. (pero)
1310       </update>
1311       <update>
1312       Allow integer and string values when setting enumeration/boolean
1313       attributes via status worker update action. (rjung)
1314       </update>
1315       <add>
1316       Docs: New reference guide page for status worker. (rjung)
1317       </add>
1318       <update>
1319       Docs: Renaming the config dir to reference and using the title
1320       Reference Guide in the docs. (rjung)
1321       </update>
1322       <update>
1323       Added retry_on_status for workers directive. (mturk)
1324       </update>
1325       <update>
1326       Status Worker: Add directive to make property prefix
1327       and good/bad rule configurable. (rjung)
1328       </update>
1329       <update>
1330       Status Worker: Omit lb members when att=nosw. (rjung)
1331       </update>
1332       <update>
1333       Status Worker: New command cmd=version for a short version output. (rjung)
1334       </update>
1335       <update>
1336       Status Worker: New output stype mime=prop produces property lists. (rjung)
1337       </update>
1338       <fix>
1339       Apache: Fix incorrect handling of JkEnvVar when Vars are set multiple times. (rjung)
1340       </fix>
1341       <update>
1342       Renamed jvm_route to route. Deprecated jvm_route, but still use it as fallback
1343       when parsing the worker configuration. (rjung)
1344       </update>
1345       <update>
1346       IIS: Make uriworkermap file reload check interval configurable. (mturk)
1347       </update>
1348       <update>
1349       Apache: Make uriworkermap file reload check interval configurable. (rjung)
1350       </update>
1351       <update>
1352       Status Worker: Add directives for customizing the XML
1353       output (ns, xmlns, doctype). (mturk)
1354       </update>
1355       <add>
1356       Docs: New page with description of uriworkermap. (rjung)
1357       </add>
1358       <update>
1359       Docs: Added short description of max_packet_size to worker
1360       reference. (rjung)
1361       </update>
1362       <update>
1363       Status Worker: All functions accessible also for xml and txt
1364       mime types (list, show, update, reset). (rjung)
1365       </update>
1366       <update>
1367       Status Worker: New global health indicators for load balancers
1368       named bad (error, recovering or stopped), degraded (busy or disabled)
1369       and good (the rest, active and OK or N/A). (rjung)
1370       </update>
1371       <update>
1372       Status Worker: New edit page, to change one attribute for all
1373       members of a load balancer. (rjung)
1374       </update>
1375       <update>
1376       Status Worker: Standard logging for status worker. (rjung)
1377       </update>
1378       <update>
1379       Status Worker: code refactoring. (rjung)
1380       </update>
1381       <update>
1382       Status Worker: New attribute user (list) denies access, if
1383       the request user in the sense of remote_user is not in this list.
1384       Empty list = no deny (rjung)
1385       </update>
1386       <update>
1387       Status Worker: New attribute read_only disables the parts
1388       of the status worker, that change states and configurations. (rjung)
1389       </update>
1390       <fix>
1391         <bug>36121</bug>: Don't change main uri when mod_jk serves
1392         included uri. (markt)
1393       </fix>
1394       <update>
1395       Apache VHosts: Merge JkOptions +base - -base + +vhost - -vhost. (rjung)
1396       </update>
1397       <update>
1398       Apache Docs: Adding requirements, context information, default values and
1399       inheritance rules to the Apache config documentation. (rjung)
1400       </update>
1401       <update>
1402       Status Worker: Add source type to status worker, remove the redundant "context"
1403       column in the map listing (context=uri). (rjung)
1404       </update>
1405       <update>
1406       uriworkermap: On reload of the file, all old entries from the previous file
1407       version get deleted, before the new ones are being read. (rjung)
1408       </update>
1409       <fix>
1410       Keep normal maps and exclusion maps internally separate. Don't treat them
1411       as the same when adding a rule. (rjung)
1412       </fix>
1413       <update>
1414       Status Worker: Display mapping rules also for non-lb workers and in global view. (rjung)
1415       </update>
1416       <update>
1417       Apache VHosts: Use the vhost log files instead of the main log. (rjung)
1418       </update>
1419       <update>
1420       Apache VHosts: Allow individual timestamp formats by refactoring the formatting
1421       method. (rjung)
1422       </update>
1423       <update>
1424       Apache VHosts: Adding all missing config items to the virtual host level.
1425       Don't overwrite the settings from the global server, but inherit them
1426       in case they are not set in the virtual host. (rjung)
1427       </update>
1428       <update>
1429       Apache: remove unnecessary function names from log messages. (rjung)
1430       </update>
1431       <update>
1432       Apache: add a default log file location and a message, if the default gets used. (rjung)
1433       </update>
1434       <update>
1435       Apache: add missing JK_IS_DEBUG_LEVEL() (rjung)
1436       </update>
1437       <update>
1438       Apache VHosts: Allow JkWorkersFile, JKWorkerProperty, JkShmFile and JkShmFileSize
1439       only in global virtual server. (rjung)
1440       </update>
1441       <update>
1442       Add some more jk_close_socket() and reduce log level for some info messages. (rjung)
1443       </update>
1444       <update>
1445       Load Balancer: Added the Sessions strategy. Contributed by Takayuki Kaneko. (rjung)
1446       </update>
1447       <update>
1448       Docs: Minor enhancements and syncing with more recent versions. (rjung)
1449       </update>
1450       <fix>
1451       <bug>40997</bug>: Separate uri mappings from their '!'
1452       counterpart when checking for duplicates in uriworkermap
1453       reloading. (rjung)
1454       </fix>
1455       <fix>
1456       <bug>40877</bug>: Make sure the shared memory is reset on
1457       attach for multiple web server child processes. (mturk)
1458       </fix>
1459       <update>
1460       IIS: Added shm_size property to be able to deal with over 64
1461       workers configurations. (mturk)
1462       </update>
1463       <update>
1464       IIS: Increase default thread count to 250, so its the same as Apache Httpd
1465       default configuration. (mturk)
1466       </update>
1467       <fix>
1468       <bug>40966</bug>: Fix socket descriptor checks on windows. (mturk)
1469       </fix>
1470       <fix>
1471       <bug>40965</bug>: Initialize missing service parameters. (mturk)
1472       </fix>
1473       <fix>
1474       <bug>40938</bug>: Fix releasing of rewrite map.
1475       Thanks to Chris Adams for spotting that. (mturk)
1476       </fix>
1477       <update>
1478       Apache: Added +FlushHeader JkOptions. (mturk)
1479       </update>
1480       <update>
1481       Added explicit flush when AJP body packet size is zero. (mturk)
1482       </update>
1483       <fix>
1484       <bug>40856</bug>: Fixing case sensitivity bug in URL mapping. (rjung)
1485       </fix>
1486       <fix>
1487       <bug>40793</bug>: Documentation: Improvements to Apache HowTo provided by
1488       Paul Charles Leddy. (markt)
1489       </fix>
1490       <fix>
1491       <bug>40774</bug>: Fixing wrong recursion termination. This one restricted the
1492       "reference" feature unintentionally to 20 workers. (rjung)
1493       </fix>
1494       <fix>
1495       <bug>40716</bug>: Adding "reference" feature to IIS and Netscape. (rjung)
1496       </fix>
1497       <fix>
1498       Documentation: Corrected SetEnvIf syntax in JK_WORKER_NAME example. (rjung)
1499       </fix>
1500       <fix>
1501       Documentation: Added forgotten STATE and ACTIVATION notes for load balancer logging in Apache. (rjung)
1502       </fix>
1503       <update>
1504       Apache: Use instdso.sh instead libtool: libtool does not work on HP-UX for example. (jfclere)
1505       </update>
1506     </changelog>
1507   </subsection>
1508 </section>
1509 <section name="Changes between 1.2.18 and 1.2.19">
1510   <br />
1511   <subsection name="Native">
1512     <changelog>
1513       <update>
1514       Docs: Add SetHandler and new env var to Apache config docs. (rjung)
1515       </update>
1516       <update>
1517       Apache 1.3: Backport "no-jk" feature. (rjung)
1518       </update>
1519       <update>
1520       Apache: Add an environment variable to make SetHandler "jakarta-servlet" more
1521       useful. The variable is JK_WORKER_NAME, but can be changed by the
1522       new directive JkWorkerIndicator. (rjung)
1523       </update>
1524       <fix>
1525       LB: Don't use single worker shortcut, if the single worker is being diabled. (rjung)
1526       </fix>
1527       <fix>
1528       Status worker: Add short explanation of activation and error states to legend. (rjung)
1529       </fix>
1530       <fix>
1531       Docs: Add meaning of zero timeout values for various timeouts
1532       in workers.properties. (rjung)
1533       </fix>
1534       <fix>
1535       LB: Cleanup of Mladens forced recovery. (rjung)
1536       </fix>
1537       <fix>
1538       LB: Do not change lb_value for recovering workers to max, if
1539       we are using BUSYNESS method. (rjung)
1540       </fix>
1541       <fix>
1542       Apache: Since 1.2.14 mod_jk failed to detect client abort. (rjung)
1543       </fix>
1544       <fix>
1545       Docs: Corrected description of JkEnvVar. (rjung)
1546       </fix>
1547       <fix>
1548       Solaris: Detect filio.h in configure to make the new connection detection
1549       build on solaris (r432825). (rjung)
1550       </fix>
1551       <update>
1552       Add feature to force the recovery of workers that are
1553       member of loadbalancer if all the members are in error
1554       state. This fixes the time gap where 503 was returned
1555       caused by recovery_timeout although the backend was
1556       ready to handle the requests. (mturk)
1557       </update>
1558       <update>
1559       Docs: Seperate deprecated directives in their own table. (rjung)
1560       </update>
1561       <update>
1562       Docs: Allow "-" and "_" in worker names. (rjung)
1563       </update>
1564       <update>
1565       Allow multiple lines with attributes "balance_workers" and "mount". (rjung)
1566       </update>
1567       <fix>
1568       Make jk_is_some_property match more precisely. (rjung)
1569       </fix>
1570       <update>
1571       JkStatus: Make refresh interval changeable. (rjung)
1572       </update>
1573       <fix>
1574       JkStatus: Adjust display of recover time wrt. global maintenance. (rjung)
1575       </fix>
1576       <update>
1577       LB: Resetting worker state from OK to NA, if worker has been idle
1578       too long. (rjung)
1579       </update>
1580       <fix>
1581       Avoid compiler warnings concerning the use of lb_*_type arrays.
1582       Use functions instead. (rjung)
1583       </fix>
1584       <update>
1585       Added %R JkRequestLogFormat option for Apache 1 and Apache 2. (mturk)
1586       </update>
1587       <update>
1588       Allow changing jvm Route from status manager. (mturk)
1589       </update>
1590       <fix>
1591       Do not retun 400 if Tomcat fails in the midle of the post
1592       request. Return 500 insted. (mturk)
1593       </fix>
1594       <update>
1595       LB: Combine ok/error/recovering/busy runtime states into a single scalar. (rjung)
1596       </update>
1597       <update>
1598       LB: Combine active/disabled/stopped configuration states into a single scalar. (rjung)
1599       </update>
1600       <update>
1601       LB: Add several Apache notes to enable standard logging for load balancer results. (rjung)
1602       </update>
1603       <update>
1604       LB: Reorganisation of the main load balancer service loop. (rjung)
1605       </update>
1606       <update>
1607       Implement hierarchical worker configuration via attribute "reference". (rjung)
1608       </update>
1609       <update>
1610       Log deprecated properties. (rjung)
1611       </update>
1612       <fix>
1613       IIS: Fix simple_rewrite for the cases where the
1614       rewritten url is larger then the original one. (mturk)
1615       </fix>
1616       <update>
1617       New JkOption "DisableReuse" to disable connection persistence. (jim)
1618       </update>
1619       <update>
1620       LB: Move sessionid retrieval out of get_most_suitable_worker into service. (rjung)
1621       </update>
1622       <update>
1623       Code cleanup for all service methods (use TRACE, JK_LOG_NULL_PARAMS, null pointer checks). (rjung)
1624       </update>
1625       <update>
1626       JKSTATUS: add refresh link. No refresh for updates. Redirect to list view after update. (rjung)
1627       </update>
1628       <update>
1629       Add new hook add_log_items into servers. (rjung)
1630       </update>
1631       <update>
1632       APACHE httpd: Rename apache logging notes. (rjung)
1633       </update>
1634       <update>
1635       LB: Rename lock and method constants. Add constants for defaults. (rjung)
1636       </update>
1637       <fix>
1638       Default log level should be INFO and not DEBUG.
1639       Default log level should be the same for all server types. (rjung)
1640       </fix>
1641       <fix>
1642       Make rewrite_rule_map and log_level as non mandatory
1643       directives for isapi_redirect. (mturk)
1644       </fix>
1645       <fix>
1646       <bug>40107</bug>: Rewrite is_socket_connected function.
1647       Non blocking socket is not used any more. (mturk)
1648       </fix>
1649       <update>
1650       Allow building with VS2005 without too many warnings. (mturk)
1651       </update>
1652       <fix>
1653       Decide by MMN, which piped log API we should use.
1654       mod_jk 1.2.18 broke compilation with Apache 1.3 pre 1.3.28. (rjung)
1655       </fix>
1656     </changelog>
1657   </subsection>
1658 </section>
1659 <section name="Changes between 1.2.17 and 1.2.18">
1660   <br />
1661   <subsection name="Native">
1662     <changelog>
1663       <fix>
1664       Using socklen_t in getsockopt. Also introducing jk_sock_t. (mturk)
1665       </fix>
1666       <update>
1667       Allow recovery wait time below 60 seconds (new minimum is 1 second). (mturk)
1668       </update>
1669     </changelog>
1670   </subsection>
1671 </section>
1672 <section name="Changes between 1.2.16 and JK 1.2.17">
1673   <br />
1674   <subsection name="Native">
1675     <changelog>
1676       <fix>
1677       Fix hanging jk status worker when certain attributes are being updated
1678       due to double locking. (rjung)
1679       </fix>
1680       <update>
1681       Allow JkMount to behave like uriworkermap.properties
1682       by parsing pipe symbol as two directive marker. (mturk)
1683       </update>
1684     </changelog>
1685   </subsection>
1686 </section>
1687 <section name="Changes between 1.2.15 and JK 1.2.16">
1688   <br />
1689   <subsection name="Native">
1690     <changelog>
1691       <update>
1692       Added simple rewrite capability for IIS. Although simple it
1693       will fulfill most needs. (mturk)
1694       </update>
1695       <update>
1696       Added RECOVER_ABORT_IF_CLIENTERROR recovery_option that closes
1697       the connection if client connection is broken during the request. (mturk)
1698       </update>
1699       <update>
1700       Renamed cache_timeout directive to connection_pool_timeout. (mturk)
1701       </update>
1702       <update>
1703       Added connection_pool_minsize directive. (mturk)
1704       </update>
1705       <update>
1706       Deprecate recycle_timeout directive. (mturk)
1707       </update>
1708       <update>
1709       Corrected some HTML syntax bugs in output of status worker. (rjung)
1710       </update>
1711       <update>
1712       Added the refresh=n parameter to the status worker. It will update the display every n seconds. (rjung)
1713       </update>
1714       <update>
1715       Balancer: Add attribute distance to balanced workers to express preferences between workers. (rjung)
1716       </update>
1717       <update>
1718       Balancer: Add attribute jvm_route to balanced workers to be able to use the same target in different balancers. (rjung)
1719       </update>
1720       <update>
1721       Status: Add lb_mult to status. (rjung)
1722       </update>
1723       <update>
1724       Balancer: Make different balancing strategies work in a similar way (use lb_value, use decay during global maintenance, use integer factors for weights. (rjung)
1725       </update>
1726       <update>
1727       Balancer: Improve locking. (rjung)
1728       </update>
1729       <update>
1730       Balancer: Workers start slower after recovering. (rjung)
1731       </update>
1732       <update>
1733       Balancer: Make different balancing strategies work in a similar way (use lb_value, use decay during global maintenance, use integer factors lb_mult for weights). (rjung)
1734       </update>
1735       <update>
1736       Balancer: Move recovery check to global maintenance. (rjung)
1737       </update>
1738       <update>
1739       Balancer: Add global maintenance method, that is called in only one process. (rjung)
1740       </update>
1741       <update>
1742       Extend our use of autoconf to find a 32Bit and a 64Bit unsigned type and their printf formats. (rjung)
1743       </update>
1744       <update>
1745       Logging: piped loggers for JkLogFile and Apache 1.3. (rjung)
1746       </update>
1747       <update>
1748       Logging: Add PID to log lines for each log level apart from REQUEST. (rjung)
1749       </update>
1750       <update>
1751       Logging: flush buffered logs to keep lines in correct order. Output final newline together with log message. (rjung)
1752       </update>
1753       <update>
1754       Reducing shm size. (rjung)
1755       </update>
1756       <update>
1757       Only log removing of old worker, when we actually do it. (rjung)
1758       </update>
1759       <fix>
1760       <bug>37469</bug>: Fix shared memory close for forked childs.
1761       The shared memory will be closed by the parent process. (mturk)
1762       </fix>
1763       <fix>
1764       <bug>37332</bug>: Fix potential misuse of buffer length with
1765       snprintf functions. (mturk)
1766       </fix>
1767       <fix>
1768       <bug>38859</bug>:
1769       [<a href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-7197"><b>CVE-2006-7197</b></a>]
1770       Protect mod_jk against buggy or malicious
1771       AJP servers in the backend. Patch provided by Ruediger Pluem. (mturk)
1772       </fix>
1773       <fix>
1774       <bug>38889</bug>: Use worker map sorting depending on the path
1775       elements, to comply with Servlet spec. Patch provided by
1776       Steve Revilak. (mturk)
1777       </fix>
1778       <update>
1779       <bug>36138</bug>: Added Busyness lb method. Patch provided
1780       by  Chris Lamprecht. (mturk)
1781       </update>
1782       <fix>
1783       Fix pessimistic locking mode. The patch correctly handles the
1784       burst load, by syncing the access to the shared memory data. (mturk)
1785       </fix>
1786       <fix>
1787       <bug>38806</bug>: Reclycle worker even if it is disabled.
1788       This fixes hot-standby workers in error state. (mturk)
1789       </fix>
1790       <fix>
1791       <bug>37167</bug>: Allow building with BSD-ish like make. (mturk)
1792       </fix>
1793       <fix>
1794       ISAPI plugin (isapi_redirect.dll) did not provide correct request data
1795       for IIS
1796  to include in the IIS log. (markt)
1797       </fix>
1798     </changelog>
1799   </subsection>
1800 </section>
1801 <section name="Changes between 1.2.14 and 1.2.15">
1802   <br />
1803   <subsection name="Native">
1804     <changelog>
1805       <fix>
1806       Fix AJP13 Cookie2 parsing. Cookie2 was always send as Cookie.
1807       Patch provided by Andre Gebers. (mturk)
1808       </fix>
1809       <fix>
1810       <bug>35862</bug>: NSAPI plugin attempts to read freed memory and attempts to
1811       dereference a null pointer. Patch provided by Brian Kavanagh. (markt)
1812       </fix>
1813     </changelog>
1814   </subsection>
1815 </section>
1816 <section name="Changes between 1.2.13 and 1.2.14">
1817   <br />
1818   <subsection name="Native">
1819     <changelog>
1820       <fix>
1821         Fix lb for worker mpm's with cachesize set to lower number then
1822         ThreadsPerChild is. If retries is set to value larger then 3 sleep for
1823         100 ms on each attempt. This enables to tune the connection cache,
1824         and serialize incoming connections instead returning busy if connection
1825         count is larger then cachesize. (mturk)
1826       </fix>
1827       <fix>
1828       <bug>36525</bug>: Solaris core dump. (mturk)
1829       </fix>
1830       <fix>
1831       <bug>36102</bug>: Worker actions do not persist. (mturk)
1832       </fix>
1833       <fix>
1834       <bug>35864</bug>: Status worker doesn't list workers.
1835       Patch provided by Martin Goldhahn. (mturk)
1836       </fix>
1837       <fix>
1838       <bug>35809</bug>: JkMountCopy don't work for Apache 2.0 Patch provided by
1839        Christophe Dubach. (mturk)
1840       </fix>
1841       <fix>
1842       <bug>35298</bug>: Multiple JK/ISAPI redirectors on a single IIS site are not supported
1843        Patch provided by Tim Whittington. (mturk)
1844       </fix>
1845     </changelog>
1846   </subsection>
1847 </section>
1848 <section name="Changes between 1.2.12 and 1.2.13">
1849   <br />
1850   <subsection name="Native">
1851     <changelog>
1852       <fix>
1853       <bug>34397</bug>: Emergency was handled as Error. (jfclere)
1854       </fix>
1855       <fix>
1856       <bug>34474</bug>: // in URL were not handled correctly with Apache-1.3. (jfclere)
1857       </fix>
1858       <fix>
1859       Use 64 bits int for transferred/read bytes.
1860       </fix>
1861       <update>
1862       Added JkOptions +FlushPackets used to optimize memory
1863       usage when sending large data. (mturk)
1864       </update>
1865       <update>
1866       Added lock directive for load balancer that allows more acurate
1867       load balancing in case of burst load. (mturk)
1868       </update>
1869       <update>
1870       Added worker.maintain directive to allow customizing default 10
1871       second timeout. On busy servers this value needs to be set on
1872       higher value. (mturk)
1873       </update>
1874       <fix>
1875       Fix for NetWare compiler to deal with different types between AP13
1876       and AP2 SDKs. (fuankg)
1877       </fix>
1878       <update>
1879       Emit much more legible user.dmp crash analysis output for WIN32. (wrowe)
1880       </update>
1881      <fix>
1882      <bug>34558</bug>: Fix first failover request. (mturk)
1883      </fix>
1884     </changelog>
1885   </subsection>
1886 </section>
1887
1888 <section name="Changes between 1.2.11 and 1.2.12">
1889   <br />
1890   <subsection name="Native">
1891     <changelog>
1892       <update>
1893       Added ForwardLocallAddres JkOptions flag for passing local instead remote
1894       address. Useful for remote addr valve. (mturk)
1895       </update>
1896      <fix>Fix that worker not used, when stopped flag is true. (pero)
1897      </fix>
1898       <update>
1899       Add loadbalance default worker secret attribute to the documentation (pero)
1900       </update>
1901     </changelog>
1902   </subsection>
1903 </section>
1904
1905 <section name="Changes between 1.2.10 and 1.2.11">
1906   <br />
1907   <subsection name="Native">
1908     <changelog>
1909       <fix>Backport SC_M_JK_STORED from JK2 for passing arbitrary
1910       methods instead failing the request. (mturk)
1911       </fix>
1912       <fix>Added missing SEARCH and ACL http methods. (mturk)
1913       </fix>
1914       <update>
1915       Add worker secret attribute to the documentation (pero)
1916       </update>
1917       <update>
1918       Add a stopped flag to worker configuration. Set flag True and
1919       complete traffic to worker is stopped.
1920       Also update the Ant JkStatusUpdateTask at Tomcat 5.5.10 release.
1921       Only usefull in a replicated session cluster.(pero)
1922       </update>
1923       <update>Added worker maintain function that will maintain all
1924       the workers instead just the current one. This enables to recycle
1925       the connections on all workers. (mturk)
1926       </update>
1927       <update>Use shutdown when recycling connections instead hard
1928       breaking the socket. (mturk)
1929       </update>
1930       <update>Add unique directives checking. The directives if
1931       unique are now overwritten instead concatenated. (mturk)
1932       </update>
1933       <update>Allow multiple worker.list directives. (mturk)
1934       </update>
1935       <fix>
1936       <bug>34577</bug>: For IIS log original request instead loging
1937       the request for ISAPI extension. (mturk)
1938       </fix>
1939       <fix>
1940       <bug>34558</bug>: Make sure the returned status codes are the same
1941       for ajp and lb workers. (mturk)
1942       </fix>
1943       <fix>
1944       <bug>34423</bug>: Use APR_USE_FLOCK_SERIALIZE for setting log lock
1945       on platforms like FreeBSD. Patch provided by Allan Saddi. (mturk)
1946       </fix>
1947       <fix>
1948       <bug>33843</bug>: Fix obtaining LDFLAGS that were used for building
1949       Apache HTTPD. Patch provided by Beat Kneubuehl. (mturk)
1950       </fix>
1951       <fix>
1952       <bug>34358</bug>: Enable load balancer method configuration. (glenn)
1953       </fix>
1954       <fix>
1955       <bug>34357</bug>: In some situations Apache 2 mod_jk could segfault
1956       when the JkAutoAlias directive is used. (glenn)
1957       </fix>
1958       <update>
1959         Add --enable-prefork to the documentation (pero)
1960       </update>
1961     </changelog>
1962   </subsection>
1963 </section>
1964 <section name="Changes between 1.2.9 and 1.2.10">
1965   <br />
1966   <subsection name="Native">
1967     <changelog>
1968       <update>Set default shared memory to 64K instead 1M. (mturk)
1969       </update>
1970       <fix>Do not mark the worker in error state if headers are
1971       larger then AJP13 limit. (mturk)
1972       </fix>
1973       <update>
1974       On Series you should use the latest PTF for Apache 2.0
1975       (which is now 2.0.52) and ad minima SI17402/SI17061 or cumulative
1976       including them. (hgomez)
1977       </update>
1978       <update>
1979       Change the xml status format to xml attribute syntax (pero)
1980       </update>
1981       <fix>
1982       <bug>33248</bug>: Fix builds where apxs defines multiple
1983       directories for APR includes. (mturk)
1984       </fix>
1985       <fix>
1986       <bug>32696</bug>: Return 404 instead 403 when WEB-INF is requested
1987       to comply with Servlet spec. (mturk)
1988       </fix>
1989       <update>Added ANT task for managing jkstatus. (pero)
1990       </update>
1991       <update>
1992       If socket_timeout is set, check if socket is alive before
1993       sending any request to Tomcat. (mturk)
1994       </update>
1995       <update>
1996       Added JkMountFile for Apache web servers. This file can contain
1997       uri mappings in the form (/url=worker), and is checked for
1998       updates at regular 60 second interval. (mturk)
1999       </update>
2000       <update>
2001       Added status worker for managing worker runtime data using
2002       web page. (mturk)
2003       </update>
2004       <update>
2005       Added load balancer method directive that is used for setting
2006       the algorithm used for balancing workers. Method can be either
2007       Request (default) or Traffic. (mturk)
2008       </update>
2009       <update>
2010       Added shared memory to allow dynamic configuration. Shared memory
2011       is needed only for unix platform and web servers having multiple
2012       child processes. For Apache web server two new directives has been
2013       added (JkShmFile and JkShmSize). (mturk)
2014       </update>
2015       <update>
2016       Added textupdate mode to status worker to handle remote updates
2017       from ant tasks.(pero)
2018       </update>
2019       <fix>
2020       <bug>33562</bug>: Fix Reply_timeout when recovery_options
2021       is larger than 1. Patch provided by Takashi Satou. (mturk)
2022       </fix>
2023       <fix>
2024       <bug>33308</bug>: Fix segfaults when ForwardDirectories is enabled
2025         with Apache 1.3
2026       </fix>
2027     </changelog>
2028   </subsection>
2029 </section>
2030 <section name="Changes between 1.2.7 and 1.2.8">
2031   <br />
2032   <subsection name="Native">
2033     <changelog>
2034       <update>
2035       Allow anyone to debug and diagnose stack dumps using windbg or any
2036       other debugging tool, and (if they add the .pdb files to their
2037       installation) to make sense of dr watson logs.
2038       Patch provided by William A. Rowe (wrowe)
2039       </update>
2040       <fix>
2041       Fix in_addr_t usage by using the real struct ignoring typedef.
2042       Patch provided by William A. Rowe (wrowe)
2043       </fix>
2044       <fix>
2045       Fix url rewriting by restoring the in place uri from which the
2046       jsessionid was removed. (mturk)
2047       </fix>
2048       <update>
2049       Make load balancer algorithm thread safe by introducing mutex
2050       to the load balancer worker. (mturk)
2051       </update>
2052       <fix>
2053       Fix sending error pages for IIS to client by adding Content-Type header
2054       using correct api function call. (mturk)
2055       </fix>
2056       <fix>
2057       <bug>32696</bug>: Prevent IIS from crushing when web-inf url was requested. (mturk)
2058       </fix>
2059       <update>
2060       Use default cachesize for servers that support discovering the number of
2061       threads per child process. (mturk).
2062       </update>
2063       <fix>
2064       Fix Apache content-length header parsing using case insensitive compare. (billbarker)
2065       </fix>
2066       <fix>
2067       Fix parsing AJP headers using case insensitive compare. (mturk)
2068       </fix>
2069       <fix>
2070       Use infinite socket timeout if socket_timeout is set to zero or less then zero. (mturk)
2071       </fix>
2072       <update>
2073       Change <b>balanced_workers</b> to <b>balance_workers</b> but keep
2074       backward compatibility preserving the old directive. (mturk).
2075       </update>
2076       <fix>
2077       Fix ajp initialization for workers with cache_size set to zero. (mturk)
2078       </fix>
2079       <update>
2080       <bug>32317</bug>: Making mod_jk replication aware (Clustering Support).
2081       Patch provided by Rainer Jung. (mturk).
2082       </update>
2083       <fix>
2084       <bug>31132</bug>: Core dump when JkLogFile is missing from conf. (mturk)
2085       </fix>
2086     </changelog>
2087   </subsection>
2088 </section>
2089 <section name="Changes between 1.2.6 and 1.2.7">
2090   <br />
2091   <subsection name="Native">
2092     <changelog>
2093       <update>
2094       Added new property named recover_time that can be used to change the
2095       default 60 second recover time. (mturk)
2096       </update>
2097       <update>
2098       Added custom retries for worker, so we don't depend on default setting.
2099       If set to a number grater then 3, it will sleep for 100ms on retry greater
2100       then 3 and then try again. (mturk)
2101       </update>
2102       <update>
2103       Added JkWorkerProperty directive that enables omiting workers.properties file.
2104       For example: JkWorkerProperty worker.ajp13a.port=8009. (mturk)
2105       </update>
2106       <fix>
2107       Check all JSESSIONID cookies for a valid jvmRoute. If you have multiple Tomcats
2108       with overlapping domains, then you can get multiple cookies without a defined order.
2109       This will route correctly as long as the different domains don't have any
2110       Tomcats in common. (billbarker)
2111       </fix>
2112       <update>
2113       Added JkUnMount directive for negative mappings that works as opposite to JkMount directives.
2114       It is used for blocking of particular URL or content type. (mturk)
2115       </update>
2116       <update>
2117       Added wildchar match uri mappings. One can now use JkMount to
2118       map /app/*/servlet/* or /app?/*/*.jsp. (mturk)
2119       </update>
2120       <update>
2121       Rewrite the logging by adding Trace options. (mturk)
2122       </update>
2123       <update>
2124       Added socket_timeout property that sets the timeout
2125       for the socket itself. (mturk)
2126       </update>
2127       <fix>
2128       Changed socket_timeout property to recycle_timeout. This better
2129       explains what the directive actually does. (mturk)
2130       </fix>
2131       <fix>
2132         Changed the load balancer algorithm.
2133         The idea behind this new scheduler is the following:
2134         lbfactor is <i>how much we expect this worker to work</i>,
2135         or <i>the worker's work quota</i>.
2136         lbstatus is <i>how urgent this worker has to work to fulfill its quota
2137         of work</i>. We distribute each worker's work quota to the worker, and then look
2138         which of them needs to work most urgently (biggest lbstatus).  This
2139         worker is then selected for work, and its lbstatus reduced by the
2140         total work quota we distributed to all workers.  Thus the sum of all
2141         lbstatus does not change.(*)
2142         If some workers are disabled, the others will
2143         still be scheduled correctly. (mturk)
2144       </fix>
2145     </changelog>
2146   </subsection>
2147 </section>
2148 <section name="JK 2">
2149 <p>JK2 has been put in maintainer mode and no further development will take place.
2150 The reason for shutting down JK2 development was the lack of developers interest.
2151 Other reason was lack of users interest in adopting JK2, caused by configuration
2152 complexity when compared to JK.
2153 </p>
2154 </section>
2155
2156 </body>
2157 </document>