summaryrefslogtreecommitdiffstats
path: root/rubbos/app/tomcat-connectors-1.2.32-src/docs
diff options
context:
space:
mode:
authorhongbotian <hongbo.tianhongbo@huawei.com>2015-11-30 02:41:33 -0500
committerhongbotian <hongbo.tianhongbo@huawei.com>2015-11-30 02:43:36 -0500
commit9401f816dd0d9d550fe98a8507224bde51c4b847 (patch)
tree94f2d7a7893a787bafdca8b5ef063ea316938874 /rubbos/app/tomcat-connectors-1.2.32-src/docs
parente8ec7aa8e38a93f5b034ac74cebce5de23710317 (diff)
upload tomcat
JIRA: BOTTLENECK-7 Change-Id: I875d474869efd76ca203c30b60ebc0c3ee606d0e Signed-off-by: hongbotian <hongbo.tianhongbo@huawei.com>
Diffstat (limited to 'rubbos/app/tomcat-connectors-1.2.32-src/docs')
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/docs/ajp/ajpv13a.html654
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/docs/ajp/ajpv13ext.html654
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/docs/ajp/printer/ajpv13a.html653
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/docs/ajp/printer/ajpv13ext.html653
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/docs/generic_howto/loadbalancers.html207
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/docs/generic_howto/printer/loadbalancers.html206
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/docs/generic_howto/printer/proxy.html312
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/docs/generic_howto/printer/quick.html130
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/docs/generic_howto/printer/timeouts.html373
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/docs/generic_howto/printer/workers.html408
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/docs/generic_howto/proxy.html313
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/docs/generic_howto/quick.html131
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/docs/generic_howto/timeouts.html374
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/docs/generic_howto/workers.html409
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/docs/images/add.gifbin0 -> 1037 bytes
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/docs/images/code.gifbin0 -> 394 bytes
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/docs/images/design.gifbin0 -> 608 bytes
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/docs/images/docs.gifbin0 -> 261 bytes
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/docs/images/fix.gifbin0 -> 345 bytes
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/docs/images/jakarta-logo.gifbin0 -> 8584 bytes
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/docs/images/printer.gifbin0 -> 438 bytes
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/docs/images/tomcat.gifbin0 -> 2066 bytes
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/docs/images/update.gifbin0 -> 627 bytes
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/docs/images/void.gifbin0 -> 43 bytes
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/docs/index.html251
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/docs/miscellaneous/changelog.html2096
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/docs/miscellaneous/doccontrib.html249
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/docs/miscellaneous/faq.html281
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/docs/miscellaneous/jkstatustasks.html184
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/docs/miscellaneous/printer/changelog.html2095
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/docs/miscellaneous/printer/doccontrib.html248
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/docs/miscellaneous/printer/faq.html280
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/docs/miscellaneous/printer/jkstatustasks.html183
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/docs/miscellaneous/printer/reporttools.html61
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/docs/miscellaneous/reporttools.html62
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/docs/news/20041100.html126
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/docs/news/20050101.html139
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/docs/news/20060101.html80
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/docs/news/20070301.html87
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/docs/news/20081001.html158
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/docs/news/20090301.html63
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/docs/news/20100101.html62
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/docs/news/20110701.html22
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/docs/news/printer/20041100.html125
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/docs/news/printer/20050101.html138
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/docs/news/printer/20060101.html79
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/docs/news/printer/20070301.html86
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/docs/news/printer/20081001.html157
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/docs/news/printer/20090301.html62
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/docs/news/printer/20100101.html61
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/docs/news/printer/20110701.html21
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/docs/printer/index.html250
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/docs/reference/apache.html1011
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/docs/reference/iis.html332
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/docs/reference/printer/apache.html1010
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/docs/reference/printer/iis.html331
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/docs/reference/printer/status.html546
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/docs/reference/printer/uriworkermap.html377
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/docs/reference/printer/workers.html1000
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/docs/reference/status.html547
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/docs/reference/uriworkermap.html378
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/docs/reference/workers.html1001
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/docs/style.css73
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/docs/webserver_howto/apache.html1124
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/docs/webserver_howto/iis.html685
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/docs/webserver_howto/nes.html483
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/docs/webserver_howto/printer/apache.html1123
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/docs/webserver_howto/printer/iis.html684
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/docs/webserver_howto/printer/nes.html482
69 files changed, 24370 insertions, 0 deletions
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/docs/ajp/ajpv13a.html b/rubbos/app/tomcat-connectors-1.2.32-src/docs/ajp/ajpv13a.html
new file mode 100644
index 00000000..58056035
--- /dev/null
+++ b/rubbos/app/tomcat-connectors-1.2.32-src/docs/ajp/ajpv13a.html
@@ -0,0 +1,654 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>The Apache Tomcat Connector - AJP Protocol Reference - AJPv13</title><meta name="author" value="danmil@shore.net"><meta name="email" value="danmil@shore.net"><meta name="author" value="Jean-Frederic Clere"><meta name="email" value="jfrederic.clere@fujitsu-siemens.com"><link href="../style.css" type="text/css" rel="stylesheet"></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="4"><!--PAGE HEADER--><tr><td colspan="2"><!--TOMCAT LOGO--><a href="http://tomcat.apache.org/"><img src="../images/tomcat.gif" align="left" alt="Apache Tomcat" border="0"></a><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="http://www.apache.org/images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><tr><!--LEFT SIDE NAVIGATION--><td width="20%" valign="top" nowrap="true"><p><strong>Links</strong></p><ul><li><a href="../index.html">Docs Home</a></li></ul><p><strong>Reference Guide</strong></p><ul><li><a href="../reference/workers.html">workers.properties</a></li><li><a href="../reference/uriworkermap.html">uriworkermap.properties</a></li><li><a href="../reference/status.html">Status Worker</a></li><li><a href="../reference/apache.html">Apache HTTP Server</a></li><li><a href="../reference/iis.html">IIS</a></li></ul><p><strong>Generic HowTo</strong></p><ul><li><a href="../generic_howto/quick.html">For the impatient</a></li><li><a href="../generic_howto/workers.html">All about workers</a></li><li><a href="../generic_howto/timeouts.html">Timeouts</a></li><li><a href="../generic_howto/loadbalancers.html">Load Balancing</a></li><li><a href="../generic_howto/proxy.html">Reverse Proxy</a></li></ul><p><strong>Webserver HowTo</strong></p><ul><li><a href="../webserver_howto/apache.html">Apache HTTP Server</a></li><li><a href="../webserver_howto/iis.html">IIS</a></li><li><a href="../webserver_howto/nes.html">Netscape/SunOne/Sun</a></li></ul><p><strong>AJP Protocol Reference</strong></p><ul><li><a href="../ajp/ajpv13a.html">AJPv13</a></li><li><a href="../ajp/ajpv13ext.html">AJPv13 Extension Proposal</a></li></ul><p><strong>Miscellaneous Documentation</strong></p><ul><li><a href="../miscellaneous/faq.html">Frequently asked questions</a></li><li><a href="../miscellaneous/changelog.html">Changelog</a></li><li><a href="http://issues.apache.org/bugzilla/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Tomcat+Connectors&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=">Current Tomcat Connectors bugs</a></li><li><a href="../miscellaneous/doccontrib.html">Contribute documentation</a></li><li><a href="../miscellaneous/jkstatustasks.html">JK Status Ant Tasks</a></li><li><a href="../miscellaneous/reporttools.html">Reporting Tools</a></li><li><a href="http://tomcat.apache.org/connectors-doc-archive/jk2/index.html">Old JK/JK2 documentation</a></li></ul><p><strong>News</strong></p><ul><li><a href="../news/20110701.html">2011</a></li><li><a href="../news/20100101.html">2010</a></li><li><a href="../news/20090301.html">2009</a></li><li><a href="../news/20081001.html">2008</a></li><li><a href="../news/20070301.html">2007</a></li><li><a href="../news/20060101.html">2006</a></li><li><a href="../news/20050101.html">2005</a></li><li><a href="../news/20041100.html">2004</a></li></ul></td><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left"><table border="0" width="100%" cellspacing="4"><tr><td align="left" valign="top"><h1>The Apache Tomcat Connector - AJP Protocol Reference</h1><h2>AJPv13</h2></td><td align="right" valign="top" nowrap="true"><small><a href="printer/ajpv13a.html"><img src="../images/printer.gif" border="0" alt="Printer Friendly Version"><br>print-friendly<br>version
+ </a></small></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Intro"><strong>Intro</strong></a></font></td></tr><tr><td><blockquote>
+
+<p>
+The original document was written by
+Dan Milstein, <author email="danmil@shore.net">danmil@shore.net</author>
+on December 2000. The present document is generated out of an xml file
+to allow a more easy integration in the Tomcat documentation.
+
+</p>
+
+<p>
+This describes the Apache JServ Protocol version 1.3 (hereafter
+<b>ajp13</b>). There is, apparently, no current documentation of how the
+protocol works. This document is an attempt to remedy that, in order to
+make life easier for maintainers of JK, and for anyone who wants to
+port the protocol somewhere (into jakarta 4.x, for example).
+</p>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="author"><strong>author</strong></a></font></td></tr><tr><td><blockquote>
+
+<p>
+I am not one of the designers of this protocol -- I believe that Gal
+Shachor was the original designer. Everything in this document is derived
+from the actual implementation I found in the tomcat 3.x code. I hope it
+is useful, but I can't make any grand claims to perfect accuracy. I also
+don't know why certain design decisions were made. Where I was able, I've
+offered some possible justifications for certain choices, but those are
+only my guesses. In general, the C code which Shachor wrote is very clean
+and comprehensible (if almost totally undocumented). I've cleaned up the
+Java code, and I think it's reasonably readable.
+</p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Design Goals"><strong>Design Goals</strong></a></font></td></tr><tr><td><blockquote>
+
+<p>
+According to email from Gal Shachor to the jakarta-dev mailing list,
+the original goals of <b>JK</b> (and thus <b>ajp13</b>) were to extend
+<b>mod_jserv</b> and <b>ajp12</b> by (I am only including the goals which
+relate to communication between the web server and the servlet container):
+
+<ul>
+ <li> Increasing performance (speed, specifically). </li>
+
+ <li> Adding support for SSL, so that <b class="code">isSecure()</b> and
+ <b class="code">getScheme()</b> will function correctly within the servlet
+ container. The client certificates and cipher suite will be
+ available to servlets as request attributes. </li>
+
+</ul>
+</p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Overview of the protocol"><strong>Overview of the protocol</strong></a></font></td></tr><tr><td><blockquote>
+
+<p>
+The <b>ajp13</b> protocol is packet-oriented. A binary format was
+presumably chosen over the more readable plain text for reasons of
+performance. The web server communicates with the servlet container over
+TCP connections. To cut down on the expensive process of socket creation,
+the web server will attempt to maintain persistent TCP connections to the
+servlet container, and to reuse a connection for multiple request/response
+cycles.
+</p><p>
+Once a connection is assigned to a particular request, it will not be
+used for any others until the request-handling cycle has terminated. In
+other words, requests are not multiplexed over connections. This makes
+for much simpler code at either end of the connection, although it does
+cause more connections to be open at once.
+</p><p>
+Once the web server has opened a connection to the servlet container,
+the connection can be in one of the following states:
+</p><p>
+<ul>
+ <li> Idle <br> No request is being handled over this connection. </li>
+ <li> Assigned <br> The connecton is handling a specific request.</li>
+</ul>
+
+</p><p>
+Once a connection is assigned to handle a particular request, the basic
+request informaton (e.g. HTTP headers, etc) is sent over the connection in
+a highly condensed form (e.g. common strings are encoded as integers).
+Details of that format are below in Request Packet Structure. If there is a
+body to the request (content-length &gt; 0), that is sent in a separate
+packet immediately after.
+</p><p>
+At this point, the servlet container is presumably ready to start
+processing the request. As it does so, it can send the
+following messages back to the web server:
+
+<ul>
+ <li>SEND_HEADERS <br>Send a set of headers back to the browser.</li>
+
+ <li>SEND_BODY_CHUNK <br>Send a chunk of body data back to the browser.</li>
+
+ <li>GET_BODY_CHUNK <br>Get further data from the request if it hasn't all
+ been transferred yet. This is necessary because the packets have a fixed
+ maximum size and arbitrary amounts of data can be included the body of a
+ request (for uploaded files, for example). (Note: this is unrelated to
+ HTTP chunked tranfer).</li>
+
+ <li>END_RESPONSE <br> Finish the request-handling cycle.</li>
+</ul>
+</p><p>
+
+Each message is accompanied by a differently formatted packet of data. See
+Response Packet Structures below for details.
+</p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Basic Packet Structure"><strong>Basic Packet Structure</strong></a></font></td></tr><tr><td><blockquote>
+
+<p>
+There is a bit of an XDR heritage to this protocol, but it differs in
+lots of ways (no 4 byte alignment, for example).
+</p><p>
+Byte order: I am not clear about the endian-ness of the individual
+bytes. I'm guessing the bytes are little-endian, because that's what XDR
+specifies, and I'm guessing that sys/socket library is magically making
+that so (on the C side). If anyone with a better knowledge of socket calls
+can step in, that would be great.
+</p><p>
+There are four data types in the protocol: bytes, booleans, integers and
+strings.
+
+<dl>
+ <dt><b>Byte</b></dt>
+ <dd>A single byte.</dd>
+
+ <dt><b>Boolean</b></dt>
+ <dd>A single byte, 1 = true, 0 = false. Using other non-zero values as
+ true (i.e. C-style) may work in some places, but it won't in
+ others.</dd>
+
+ <dt><b>Integer</b></dt>
+ <dd>A number in the range of 0 to 2^16 (32768). Stored in 2 bytes with
+ the high-order byte first.</dd>
+
+ <dt><b>String</b></dt>
+ <dd>A variable-sized string (length bounded by 2^16). Encoded with the
+ length packed into two bytes first, followed by the string (including the
+ terminating '\0'). Note that the encoded length does <b>not</b> include
+ the trailing '\0' -- it is like <b class="code">strlen</b>. This is a touch
+ confusing on the Java side, which is littered with odd autoincrement
+ statements to skip over these terminators. I believe the reason this was
+ done was to allow the C code to be extra efficient when reading strings
+ which the servlet container is sending back -- with the terminating \0
+ character, the C code can pass around references into a single buffer,
+ without copying. If the \0 was missing, the C code would have to copy
+ things out in order to get its notion of a string. Note a size of -1
+ (65535) indicates a null string and no data follow the length in this
+ case.</dd>
+</dl>
+</p>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Packet Size"><strong>Packet Size</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+According to much of the code, the max packet
+size is 8 * 1024 bytes (8K). The actual length of the packet is encoded in the
+header.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Packet Headers"><strong>Packet Headers</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+Packets sent from the server to the container begin with
+<b class="code">0x1234</b>. Packets sent from the container to the server begin
+with <b class="code">AB</b> (that's the ASCII code for A followed by the ASCII
+code for B). After those first two bytes, there is an integer (encoded as
+above) with the length of the payload. Although this might suggest that
+the maximum payload could be as large as 2^16, in fact, the code sets the
+maximum to be 8K.
+
+
+<table>
+ <tr>
+ <th colspan="6">Packet Format (Server-&gt;Container)</th>
+ </tr>
+
+ <tr>
+ <th>Byte</th>
+ <td>0</td>
+ <td>1</td>
+ <td>2</td>
+ <td>3</td>
+ <td>4...(n+3)</td>
+ </tr>
+
+ <tr>
+ <th>Contents</th>
+ <td>0x12</td>
+ <td>0x34</td>
+ <td colspan="2">Data Length (n)</td>
+ <td>Data</td>
+ </tr>
+</table>
+
+<table>
+ <tr>
+ <th colspan="6"><b>Packet Format (Container-&gt;Server)</b></th>
+ </tr>
+
+ <tr>
+ <th>Byte</th>
+ <td>0</td>
+ <td>1</td>
+ <td>2</td>
+ <td>3</td>
+ <td>4...(n+3)</td>
+ </tr>
+
+ <tr>
+ <th>Contents</th>
+ <td>A</td>
+ <td>B</td>
+ <td colspan="2">Data Length (n)</td>
+ <td>Data</td>
+ </tr>
+</table>
+</p>
+<p>
+<A NAME="prefix-codes"></A> For most packets, the first byte of the
+payload encodes the type of message. The exception is for request body
+packets sent from the server to the container -- they are sent with a
+standard packet header (0x1234 and then length of the packet), but without
+any prefix code after that (this seems like a mistake to me).
+</p><p>
+The web server can send the following messages to the servlet container:
+
+<table>
+ <tr>
+ <th>Code</th>
+ <th>Type of Packet</th>
+ <th>Meaning</th>
+ </tr>
+ <tr>
+ <td>2</td>
+ <td>Forward Request</td>
+ <td>Begin the request-processing cycle with the following data</td>
+ </tr>
+ <tr>
+ <td>7</td>
+ <td>Shutdown</td>
+ <td>The web server asks the container to shut itself down.</td>
+ </tr>
+ <tr>
+ <td>8</td>
+ <td>Ping</td>
+ <td>The web server asks the container to take control (secure login phase).</td>
+ </tr>
+ <tr>
+ <td>10</td>
+ <td>CPing</td>
+ <td>The web server asks the container to respond quickly with a CPong.</td>
+ </tr>
+ <tr>
+ <td>none</td>
+ <td>Data</td>
+ <td>Size (2 bytes) and corresponding body data.</td>
+ </tr>
+</table>
+</p>
+<p>
+To ensure some
+basic security, the container will only actually do the <b class="code">Shutdown</b> if the
+request comes from the same machine on which it's hosted.
+</p>
+<p>
+The first <b class="code">Data</b> packet is send immediatly after the <b class="code">Forward Request</b> by the web server.
+</p>
+
+<p>The servlet container can send the following types of messages to the web
+server:
+<table>
+ <tr>
+ <th>Code</th>
+ <th>Type of Packet</th>
+ <th>Meaning</th>
+ </tr>
+ <tr>
+ <td>3</td>
+ <td>Send Body Chunk</td>
+ <td>Send a chunk of the body from the servlet container to the web
+ server (and presumably, onto the browser). </td>
+ </tr>
+ <tr>
+ <td>4</td>
+ <td>Send Headers</td>
+ <td>Send the response headers from the servlet container to the web
+ server (and presumably, onto the browser).</td>
+ </tr>
+ <tr>
+ <td>5</td>
+ <td>End Response</td>
+ <td>Marks the end of the response (and thus the request-handling cycle).</td>
+ </tr>
+ <tr>
+ <td>6</td>
+ <td>Get Body Chunk</td>
+ <td>Get further data from the request if it hasn't all been transferred
+ yet.</td>
+ </tr>
+ <tr>
+ <td>9</td>
+ <td>CPong Reply</td>
+ <td>The reply to a CPing request</td>
+ </tr>
+</table>
+</p>
+<p>
+Each of the above messages has a different internal structure, detailed below.
+</p>
+</blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Request Packet Structure"><strong>Request Packet Structure</strong></a></font></td></tr><tr><td><blockquote>
+
+<p>
+For messages from the server to the container of type "Forward Request":
+</p><p>
+<div class="example"><pre>
+AJP13_FORWARD_REQUEST :=
+ prefix_code (byte) 0x02 = JK_AJP13_FORWARD_REQUEST
+ method (byte)
+ protocol (string)
+ req_uri (string)
+ remote_addr (string)
+ remote_host (string)
+ server_name (string)
+ server_port (integer)
+ is_ssl (boolean)
+ num_headers (integer)
+ request_headers *(req_header_name req_header_value)
+ attributes *(attribut_name attribute_value)
+ request_terminator (byte) OxFF
+</pre></div>
+</p><p>
+The <b class="code">request_headers</b> have the following structure:
+</p><p>
+<div class="example"><pre>
+req_header_name :=
+ sc_req_header_name | (string) [see below for how this is parsed]
+
+sc_req_header_name := 0xA0xx (integer)
+
+req_header_value := (string)
+</pre></div>
+</p><p>
+
+The <b class="code">attributes</b> are optional and have the following structure:
+</p><p>
+<div class="example"><pre>
+attribute_name := sc_a_name | (sc_a_req_attribute string)
+
+attribute_value := (string)
+
+</pre></div>
+</p><p>
+Not that the all-important header is "content-length', because it
+determines whether or not the container looks for another packet
+immediately.
+</p><p>
+Detailed description of the elements of Forward Request.
+</p>
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="request_prefix"><strong>request_prefix</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+For all requests, this will be 2.
+See above for details on other <A HREF="#prefix-codes">prefix codes</A>.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="method"><strong>method</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+The HTTP method, encoded as a single byte:
+</p>
+
+<p>
+<table>
+ <tr><th>Command Name</th><th>Code</th></tr>
+ <tr><td>OPTIONS</td><td>1</td></tr>
+ <tr><td>GET</td><td>2</td></tr>
+ <tr><td>HEAD</td><td>3</td></tr>
+ <tr><td>POST</td><td>4</td></tr>
+ <tr><td>PUT</td><td>5</td></tr>
+ <tr><td>DELETE</td><td>6</td></tr>
+ <tr><td>TRACE</td><td>7</td></tr>
+ <tr><td>PROPFIND</td><td>8</td></tr>
+ <tr><td>PROPPATCH</td><td>9</td></tr>
+ <tr><td>MKCOL</td><td>10</td></tr>
+ <tr><td>COPY</td><td>11</td></tr>
+ <tr><td>MOVE</td><td>12</td></tr>
+ <tr><td>LOCK</td><td>13</td></tr>
+ <tr><td>UNLOCK</td><td>14</td></tr>
+ <tr><td>ACL</td><td>15</td></tr>
+ <tr><td>REPORT</td><td>16</td></tr>
+ <tr><td>VERSION-CONTROL</td><td>17</td></tr>
+ <tr><td>CHECKIN</td><td>18</td></tr>
+ <tr><td>CHECKOUT</td><td>19</td></tr>
+ <tr><td>UNCHECKOUT</td><td>20</td></tr>
+ <tr><td>SEARCH</td><td>21</td></tr>
+ <tr><td>MKWORKSPACE</td><td>22</td></tr>
+ <tr><td>UPDATE</td><td>23</td></tr>
+ <tr><td>LABEL</td><td>24</td></tr>
+ <tr><td>MERGE</td><td>25</td></tr>
+ <tr><td>BASELINE_CONTROL</td><td>26</td></tr>
+ <tr><td>MKACTIVITY</td><td>27</td></tr>
+</table>
+</p>
+
+<p>Later version of ajp13, when used with mod_jk2, will transport
+additional methods, even if they are not in this list.
+</p>
+
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="protocol, req_uri, remote_addr, remote_host, server_name, server_port, is_ssl"><strong>protocol, req_uri, remote_addr, remote_host, server_name, server_port, is_ssl</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+ These are all fairly self-explanatory. Each of these is required, and
+ will be sent for every request.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Headers"><strong>Headers</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+ The structure of <b class="code">request_headers</b> is the following:
+ First, the number of headers <b class="code">num_headers</b> is encoded.
+ Then, a series of header name <b class="code">req_header_name</b> / value
+ <b class="code">req_header_value</b> pairs follows.
+ Common header names are encoded as integers,
+ to save space. If the header name is not in the list of basic headers,
+ it is encoded normally (as a string, with prefixed length). The list of
+ common headers <b class="code">sc_req_header_name</b>and their codes
+ is as follows (all are case-sensitive):
+</p><p>
+<table>
+ <tr><th>Name</th><th>Code value</th><th>Code name</th></tr>
+ <tr><td>accept</td><td>0xA001</td><td>SC_REQ_ACCEPT</td></tr>
+ <tr><td>accept-charset</td><td>0xA002</td><td>SC_REQ_ACCEPT_CHARSET</td></tr>
+ <tr><td>accept-encoding</td><td>0xA003</td><td>SC_REQ_ACCEPT_ENCODING</td></tr>
+ <tr><td>accept-language</td><td>0xA004</td><td>SC_REQ_ACCEPT_LANGUAGE</td></tr>
+ <tr><td>authorization</td><td>0xA005</td><td>SC_REQ_AUTHORIZATION</td></tr>
+ <tr><td>connection</td><td>0xA006</td><td>SC_REQ_CONNECTION</td></tr>
+ <tr><td>content-type</td><td>0xA007</td><td>SC_REQ_CONTENT_TYPE</td></tr>
+ <tr><td>content-length</td><td>0xA008</td><td>SC_REQ_CONTENT_LENGTH</td></tr>
+ <tr><td>cookie</td><td>0xA009</td><td>SC_REQ_COOKIE</td></tr>
+ <tr><td>cookie2</td><td>0xA00A</td><td>SC_REQ_COOKIE2</td></tr>
+ <tr><td>host</td><td>0xA00B</td><td>SC_REQ_HOST</td></tr>
+ <tr><td>pragma</td><td>0xA00C</td><td>SC_REQ_PRAGMA</td></tr>
+ <tr><td>referer</td><td>0xA00D</td><td>SC_REQ_REFERER</td></tr>
+ <tr><td>user-agent</td><td>0xA00E</td><td>SC_REQ_USER_AGENT</td></tr>
+</table>
+</p><p>
+ The Java code that reads this grabs the first two-byte integer and if
+ it sees an <b class="code">'0xA0'</b> in the most significant
+ byte, it uses the integer in the second byte as an index into an array of
+ header names. If the first byte is not '0xA0', it assumes that the
+ two-byte integer is the length of a string, which is then read in.
+</p><p>
+ This works on the assumption that no header names will have length
+ greater than 0x9999 (==0xA000 - 1), which is perfectly reasonable, though
+ somewhat arbitrary. (If you, like me, started to think about the cookie
+ spec here, and about how long headers can get, fear not -- this limit is
+ on header <b>names</b> not header <b>values</b>. It seems unlikely that
+ unmanageably huge header names will be showing up in the HTTP spec any time
+ soon).
+</p><p>
+ <b>Note:</b> The <b class="code">content-length</b> header is extremely
+ important. If it is present and non-zero, the container assumes that
+ the request has a body (a POST request, for example), and immediately
+ reads a separate packet off the input stream to get that body.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Attributes"><strong>Attributes</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+
+ The attributes prefixed with a <b class="code">?</b>
+ (e.g. <b class="code">?context</b>) are all optional. For each, there is a
+ single byte code to indicate the type of attribute, and then a string to
+ give its value. They can be sent in any order (thogh the C code always
+ sends them in the order listed below). A special terminating code is
+ sent to signal the end of the list of optional attributes. The list of
+ byte codes is:
+</p><p>
+
+<table>
+ <tr><th>Information</th><th>Code Value</th><th>Note</th></tr>
+ <tr><td>?context</td><td>0x01</td><td>Not currently implemented</td></tr>
+ <tr><td>?servlet_path</td><td>0x02</td><td>Not currently implemented</td></tr>
+ <tr><td>?remote_user</td><td>0x03</td><td></td></tr>
+ <tr><td>?auth_type</td><td>0x04</td><td></td></tr>
+ <tr><td>?query_string</td><td>0x05</td><td></td></tr>
+ <tr><td>?route</td><td>0x06</td><td></td></tr>
+ <tr><td>?ssl_cert</td><td>0x07</td><td></td></tr>
+ <tr><td>?ssl_cipher</td><td>0x08</td><td></td></tr>
+ <tr><td>?ssl_session</td><td>0x09</td><td></td></tr>
+ <tr><td>?req_attribute</td><td>0x0A</td><td>Name (the name of the attribut follows)</td></tr>
+ <tr><td>?ssl_key_size</td><td>0x0B</td><td></td></tr>
+ <tr><td>?secret</td><td>0x0C</td><td></td></tr>
+ <tr><td>?stored_method</td><td>0x0D</td><td></td></tr>
+ <tr><td>are_done</td><td>0xFF</td><td>request_terminator</td></tr>
+</table>
+
+</p><p>
+
+ The <b class="code">context</b> and <b class="code">servlet_path</b> are not currently
+ set by the C code, and most of the Java code completely ignores whatever
+ is sent over for those fields (and some of it will actually break if a
+ string is sent along after one of those codes). I don't know if this is
+ a bug or an unimplemented feature or just vestigial code, but it's
+ missing from both sides of the connection.
+</p><p>
+ The <b class="code">remote_user</b> and <b class="code">auth_type</b> presumably refer
+ to HTTP-level authentication, and communicate the remote user's username
+ and the type of authentication used to establish their identity (e.g. Basic,
+ Digest). I'm not clear on why the password isn't also sent, but I don't
+ know HTTP authentication inside and out.
+</p><p>
+ The <b class="code">query_string</b>, <b class="code">ssl_cert</b>,
+ <b class="code">ssl_cipher</b>, and <b class="code">ssl_session</b> refer to the
+ corresponding pieces of HTTP and HTTPS.
+</p><p>
+ The <b class="code">route</b>, as I understand it, is used to support sticky
+ sessions -- associating a user's sesson with a particular Tomcat instance
+ in the presence of multiple, load-balancing servers. I don't know the
+ details.
+</p><p>
+ Beyond this list of basic attributes, any number of other attributes can
+ be sent via the <b class="code">req_attribute</b> code (0x0A). A pair of strings
+ to represent the attribute name and value are sent immediately after each
+ instance of that code. Environment values are passed in via this method.
+</p><p>
+ Finally, after all the attributes have been sent, the attribute terminator,
+ 0xFF, is sent. This signals both the end of the list of attributes and
+ also then end of the Request Packet.
+</p>
+</blockquote></td></tr></table>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Response Packet Structure"><strong>Response Packet Structure</strong></a></font></td></tr><tr><td><blockquote>
+
+<p>
+For messages which the container can send back to the server.
+
+<div class="example"><pre>
+AJP13_SEND_BODY_CHUNK :=
+ prefix_code 3
+ chunk_length (integer)
+ chunk *(byte)
+
+
+AJP13_SEND_HEADERS :=
+ prefix_code 4
+ http_status_code (integer)
+ http_status_msg (string)
+ num_headers (integer)
+ response_headers *(res_header_name header_value)
+
+res_header_name :=
+ sc_res_header_name | (string) [see below for how this is parsed]
+
+sc_res_header_name := 0xA0 (byte)
+
+header_value := (string)
+
+AJP13_END_RESPONSE :=
+ prefix_code 5
+ reuse (boolean)
+
+
+AJP13_GET_BODY_CHUNK :=
+ prefix_code 6
+ requested_length (integer)
+</pre></div>
+
+</p>
+<p>
+Details:
+</p>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Send Body Chunk"><strong>Send Body Chunk</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+ The chunk is basically binary data, and is sent directly back to the browser.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Send Headers"><strong>Send Headers</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+ The status code and message are the usual HTTP things (e.g. "200" and "OK").
+ The response header names are encoded the same way the request header names are.
+ See <A HREF="#header_encoding">above</A> for details about how the the
+ codes are distinguished from the strings. The codes for common headers are:
+</p>
+
+<p>
+<table>
+ <tr><th>Name</th><th>Code value</th></tr>
+ <tr><td>Content-Type</td><td>0xA001</td></tr>
+ <tr><td>Content-Language</td><td>0xA002</td></tr>
+ <tr><td>Content-Length</td><td>0xA003</td></tr>
+ <tr><td>Date</td><td>0xA004</td></tr>
+ <tr><td>Last-Modified</td><td>0xA005</td></tr>
+ <tr><td>Location</td><td>0xA006</td></tr>
+ <tr><td>Set-Cookie</td><td>0xA007</td></tr>
+ <tr><td>Set-Cookie2</td><td>0xA008</td></tr>
+ <tr><td>Servlet-Engine</td><td>0xA009</td></tr>
+ <tr><td>Status</td><td>0xA00A</td></tr>
+ <tr><td>WWW-Authenticate</td><td>0xA00B</td></tr>
+</table>
+
+</p>
+
+<p>
+ After the code or the string header name, the header value is immediately
+ encoded.
+</p>
+
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="End Response"><strong>End Response</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+ Signals the end of this request-handling cycle. If the
+ <b class="code">reuse</b> flag is true (==1), this TCP connection can now be used to
+ handle new incoming requests. If <b class="code">reuse</b> is false (anything
+ other than 1 in the actual C code), the connection should be closed.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Get Body Chunk"><strong>Get Body Chunk</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+ The container asks for more data from the request (If the body was
+ too large to fit in the first packet sent over or when the request is
+ chuncked).
+ The server will send a body packet back with an amount of data which is
+ the minimum of the <b class="code">request_length</b>,
+ the maximum send body size (8186 (8 Kbytes - 6)), and the
+ number of bytes actually left to send from the request body.
+<br>
+ If there is no more data in the body (i.e. the servlet container is
+ trying to read past the end of the body), the server will send back an
+ "empty" packet, which is a body packet with a payload length of 0.
+ (0x12,0x34,0x00,0x00)
+</p>
+</blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Questions I Have"><strong>Questions I Have</strong></a></font></td></tr><tr><td><blockquote>
+
+<p> What happens if the request headers &gt; max packet size? There is no
+provision to send a second packet of request headers in case there are more
+than 8K (I think this is correctly handled for response headers, though I'm
+not certain). I don't know if there is a way to get more than 8K worth of
+data into that initial set of request headers, but I'll bet there is
+(combine long cookies with long ssl information and a lot of environment
+variables, and you should hit 8K easily). I think the connector would just
+fail before trying to send any headers in this case, but I'm not certain.</p>
+
+<p> What about authentication? There doesn't seem to be any authentication
+of the connection between the web server and the container. This strikes
+me as potentially dangerous.</p>
+
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright &copy; 1999-2011, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html> \ No newline at end of file
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/docs/ajp/ajpv13ext.html b/rubbos/app/tomcat-connectors-1.2.32-src/docs/ajp/ajpv13ext.html
new file mode 100644
index 00000000..187aab19
--- /dev/null
+++ b/rubbos/app/tomcat-connectors-1.2.32-src/docs/ajp/ajpv13ext.html
@@ -0,0 +1,654 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>The Apache Tomcat Connector - AJP Protocol Reference - AJPv13 extensions Proposal</title><meta name="author" value="Henri Gomez"><meta name="email" value="hgomez@apache.org"><link href="../style.css" type="text/css" rel="stylesheet"></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="4"><!--PAGE HEADER--><tr><td colspan="2"><!--TOMCAT LOGO--><a href="http://tomcat.apache.org/"><img src="../images/tomcat.gif" align="left" alt="Apache Tomcat" border="0"></a><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="http://www.apache.org/images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><tr><!--LEFT SIDE NAVIGATION--><td width="20%" valign="top" nowrap="true"><p><strong>Links</strong></p><ul><li><a href="../index.html">Docs Home</a></li></ul><p><strong>Reference Guide</strong></p><ul><li><a href="../reference/workers.html">workers.properties</a></li><li><a href="../reference/uriworkermap.html">uriworkermap.properties</a></li><li><a href="../reference/status.html">Status Worker</a></li><li><a href="../reference/apache.html">Apache HTTP Server</a></li><li><a href="../reference/iis.html">IIS</a></li></ul><p><strong>Generic HowTo</strong></p><ul><li><a href="../generic_howto/quick.html">For the impatient</a></li><li><a href="../generic_howto/workers.html">All about workers</a></li><li><a href="../generic_howto/timeouts.html">Timeouts</a></li><li><a href="../generic_howto/loadbalancers.html">Load Balancing</a></li><li><a href="../generic_howto/proxy.html">Reverse Proxy</a></li></ul><p><strong>Webserver HowTo</strong></p><ul><li><a href="../webserver_howto/apache.html">Apache HTTP Server</a></li><li><a href="../webserver_howto/iis.html">IIS</a></li><li><a href="../webserver_howto/nes.html">Netscape/SunOne/Sun</a></li></ul><p><strong>AJP Protocol Reference</strong></p><ul><li><a href="../ajp/ajpv13a.html">AJPv13</a></li><li><a href="../ajp/ajpv13ext.html">AJPv13 Extension Proposal</a></li></ul><p><strong>Miscellaneous Documentation</strong></p><ul><li><a href="../miscellaneous/faq.html">Frequently asked questions</a></li><li><a href="../miscellaneous/changelog.html">Changelog</a></li><li><a href="http://issues.apache.org/bugzilla/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Tomcat+Connectors&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=">Current Tomcat Connectors bugs</a></li><li><a href="../miscellaneous/doccontrib.html">Contribute documentation</a></li><li><a href="../miscellaneous/jkstatustasks.html">JK Status Ant Tasks</a></li><li><a href="../miscellaneous/reporttools.html">Reporting Tools</a></li><li><a href="http://tomcat.apache.org/connectors-doc-archive/jk2/index.html">Old JK/JK2 documentation</a></li></ul><p><strong>News</strong></p><ul><li><a href="../news/20110701.html">2011</a></li><li><a href="../news/20100101.html">2010</a></li><li><a href="../news/20090301.html">2009</a></li><li><a href="../news/20081001.html">2008</a></li><li><a href="../news/20070301.html">2007</a></li><li><a href="../news/20060101.html">2006</a></li><li><a href="../news/20050101.html">2005</a></li><li><a href="../news/20041100.html">2004</a></li></ul></td><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left"><table border="0" width="100%" cellspacing="4"><tr><td align="left" valign="top"><h1>The Apache Tomcat Connector - AJP Protocol Reference</h1><h2>AJPv13 extensions Proposal</h2></td><td align="right" valign="top" nowrap="true"><small><a href="printer/ajpv13ext.html"><img src="../images/printer.gif" border="0" alt="Printer Friendly Version"><br>print-friendly<br>version
+ </a></small></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+This document is a proposal of evolution of the current
+Apache JServ Protocol version 1.3, also known as ajp13.
+I'll not cover here the full protocol but only the add-on from ajp13.
+
+This nth pass include comments from the tomcat-dev list and
+misses discovered during developpment.
+</p>
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Missing features in AJP13"><strong>Missing features in AJP13</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+ajp13 is a good protocol to link a servlet engine like tomcat to a web server like Apache:
+
+<ul>
+<li>
+use persistants connections to avoid reconnect time at each request
+</li>
+<li>
+encode many http commands to reduce stream size
+</li>
+<li>
+send to servlet engine many info from web server (like SSL certs)
+</li>
+</ul>
+<p>
+But ajp13 lacks support for :
+</p>
+<ul>
+<li>
+ security between web server and servlet engine.
+ Anybody can connect to an ajp13 port (no login mecanism used)
+ You could connect, for example with telnet, and keep the remote thread
+ up by not sending any data (no timeout in connection)
+</li>
+<li>
+ context information passed from servlet engine to web server.
+ Part of the configuration of JK, the web server connector, is to
+ indicate to the web server which URI to handle.
+ The mod_jk JkMount directive, told to web server which URI must be
+ forwarded to servlet engine.
+ A servlet engine allready knows which URI it handle and TC 3.3 is
+ allready capable to generate a config file for JK from the list
+ of available contexts.
+</li>
+<li>
+ state update of contexts from servlet engine to web server.
+ Big site with farm of Tomcat, like ISP and virtuals hosters,
+ may need to stop a context for admin purposes. In that case the front
+ web server must know that the context is currently down, to eventually
+ relay the request to another Tomcat
+</li>
+<li>
+ verify state of connection before sending request.
+ Actually JK send the request to the servlet engine and next wait
+ for the answer. But one of the beauty of the socket API, is you that
+ you could write() to a closed connection without any error reporting,
+ but a read() to a closed connection return you the error code.
+</li>
+</ul>
+
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Proposed add-ons to AJP13"><strong>Proposed add-ons to AJP13</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+Let's descrive here the features and add-on that could be added to AJP13.
+Since this document is a proposal, a reasonable level of chaos must be expected at first.
+Be sure that discussion on tomcat list will help clarify points, add
+features but the current list seems to be a 'minimun vital'
+
+<ul>
+
+<li>
+Advanced login features at connect time
+</li>
+
+<li>
+Basic authorisation system, where a shared secret key is
+present in web server and servlet engine.
+</li>
+
+<li>
+Basic protocol negociation, just to be sure that if functionnalities are added
+to AJP13 in the future, current implementations will still works.
+</li>
+
+<li>
+Clean handling of 'Unknown packets'
+</li>
+
+<li>
+Extended env vars passed from web-server to servlet engine.
+</li>
+
+<li>
+Add extra SSL informations needed by Servlet 2.3 API (like SSL_KEY_SIZE)
+</li>
+
+</ul>
+
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Advanced login"><strong>Advanced login</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+
+<ol>
+<li>
+WEB-SERVER send LOGIN INIT CMD + NEGOCIATION DATA + WEB SERVER INFO
+</li>
+<li>
+ TOMCAT respond with LOGIN SEED CMD + RANDOM DATA
+</li>
+<li>
+ WEB-SERVER calculted the MD5 of RANDOM DATA+SECRET DATA
+</li>
+<li>
+ WEB-SERVER send LOGIN COMP CMD + MD5 (SECRET DATA + RANDOM DATA)
+</li>
+<li>
+ TOMCAT respond with LOGIN STATUS CMD + NEGOCIED DATA + SERVLET ENGINE INFO
+</li>
+</ol>
+
+To prevent DOS attack, the servlet engine will wait
+the LOGIN CMD only 15/30 seconds and reports the
+timeout exception for admins investigation.
+
+The login command will contains basic protocol
+negociation information like compressing ability,
+crypto, context info (at start up), context update at
+run-time (up/down), level of SSL env vars, AJP protocol
+level supported (level1/level2/level3...)
+
+The Web server info will contain web server info and
+connector name (ie Apache 1.3.26 + mod_ssl 2.8.8 + mod_jk 1.2.1 + mod_perl 1.25).
+
+The servlet engine will mask the negociation mask with it's own
+mask (what it can do) and return it when loggin is accepted.
+
+This will help having a basic AJP13 implementation (level 1)
+on a web-server working with a more advanced protocol handler on
+the servlet engine side or vice-versa.
+
+AJP13 was designed to be small and fast and so many
+SSL informations present in the web-server are not
+forwarded to the servlet engine.
+
+We add here four negociations flags to provide more
+informations on client SSL data (certs), server SSL datas,
+crypto used, and misc datas (timeout...).
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Messages Stream"><strong>Messages Stream</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+<div class="example"><pre>
++----------------+------------------+-----------------+
+| LOGIN INIT CMD | NEGOCIATION DATA | WEB SERVER INFO |
++----------------+------------------+-----------------+
+
++----------------+----------------+
+| LOGIN SEED CMD | MD5 of entropy |
++----------------+----------------+
+
++----------------+----------------------------+
+| LOGIN COMP CMD | MD5 of RANDOM + SECRET KEY |
++----------------+----------------------------+
+
++-----------+---------------+---------------------+
+| LOGOK CMD | NEGOCIED DATA | SERVLET ENGINE INFO |
++-----------+---------------+---------------------+
+
++------------+--------------+
+| LOGNOK CMD | FAILURE CODE |
++------------+--------------+
+</pre></div>
+
+<ul>
+<li>
+LOGIN INIT CMD, LOGIN SEED CMD, LOGIN COMP CMD, LOGOK CMD, LOGNOK CMD are 1 byte long.
+</li>
+<li>
+MD5, MD5 of RANDOM + SECRET KEY are 32 chars long.
+</li>
+<li>
+NEGOCIATION DATA, NEGOCIED DATA, FAILURE CODE are 32 bits long.
+</li>
+<li>
+WEB SERVER INFO, SERVLET ENGINE INFO are CString.
+</li>
+</ul>
+
+The secret key will be set by a new propertie in
+workers.properties : secretkey
+<div class="example"><pre>
+worker.ajp13.port=8009
+worker.ajp13.host=localhost
+worker.ajp13.type=ajp13
+worker.ajp13.secretkey=myverysecretkey
+</pre></div>
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Shutdown feature"><strong>Shutdown feature</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+AJP13 miss a functionnality of AJP12, which is shutdown command.
+A logout will tell servlet engine to shutdown itself.
+<div class="example"><pre>
++--------------+----------------------------+
+| SHUTDOWN CMD | MD5 of RANDOM + SECRET KEY |
++--------------+----------------------------+
+
++------------+
+| SHUTOK CMD |
++------------+
+
++-------------+--------------+
+| SHUTNOK CMD | FAILURE CODE |
++-------------+--------------+
+</pre></div>
+
+<ul>
+<li>
+SHUTDOWN CMD, SHUTOK CMD, SHUTNOK CMD are 1 byte long.
+</li>
+<li>
+MD5 of RANDOM + SECRET KEY are 32 chars long.
+</li>
+<li>
+FAILURE CODE is 32 bits long.
+</li>
+</ul>
+
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Extended Env Vars feature"><strong>Extended Env Vars feature</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+NOTA:
+
+While working on AJP13 in JK, I really discovered "JkEnvVar".
+The following "Extended Env Vars feature" description may not
+be implemented in extended AJP13 since allready available in original
+implementation.
+
+DESC:
+
+Many users will want to see some of their web-server env vars
+passed to their servlet engine.
+
+To reduce the network traffic, the web-servlet will send a
+table to describing the external vars in a shorter fashion.
+
+We'll use there a functionnality allready present in AJP13,
+attributes list :
+
+In the AJP13, we've got :
+
+<div class="example"><pre>
+AJP13_FORWARD_REQUEST :=
+ prefix_code 2
+ method (byte)
+ protocol (string)
+ req_uri (string)
+ remote_addr (string)
+ remote_host (string)
+ server_name (string)
+ server_port (integer)
+ is_ssl (boolean)
+ num_headers (integer)
+ request_headers *(req_header_name req_header_value)
+
+ ?context (byte string)
+ ?servlet_path (byte string)
+ ?remote_user (byte string)
+ ?auth_type (byte string)
+ ?query_string (byte string)
+ ?route (byte string)
+ ?ssl_cert (byte string)
+ ?ssl_cipher (byte string)
+ ?ssl_session (byte string)
+
+ ?attributes *(attribute_name attribute_value)
+ request_terminator (byte)
+</pre></div>
+
+Using short 'web server attribute name' will reduce the
+network traffic.
+
+<div class="example"><pre>
++-------------------+---------------------------+-------------------------------+----+
+| EXTENDED VARS CMD | WEB SERVER ATTRIBUTE NAME | SERVLET ENGINE ATTRIBUTE NAME | ES |
++-------------------+---------------------------+-------------------------------+----+
+</pre></div>
+
+ie :
+
+<div class="example"><pre>
+JkExtVars S1 SSL_CLIENT_V_START javax.servlet.request.ssl_start_cert_date
+JkExtVars S2 SSL_CLIENT_V_END javax.servlet.request.ssl_end_cert_date
+JkExtVars S3 SSL_SESSION_ID javax.servlet.request.ssl_session_id
+
+
++-------------------+----+-------------------------------------------+
+| EXTENDED VARS CMD | S1 | javax.servlet.request.ssl_start_cert_date |
++-------------------+----+-------------------------------------------+
++----+-----------------------------------------+
+| S2 | javax.servlet.request.ssl_end_cert_date |
++----+-----------------------------------------+
++----+-----------------------------------------+
+| S3 | javax.servlet.request.ssl_end_cert_date |
++----+-----------------------------------------+
+</pre></div>
+
+During transmission in extended AJP13 we'll see attributes name
+containing S1, S2, S3 and attributes values of
+2001/01/03, 2002/01/03, 0123AFE56.
+
+This example showed the use of extended SSL vars but
+any 'personnal' web-server vars like custom authentification
+vars could be reused in the servlet engine.
+The cost will be only some more bytes in the AJP traffic.
+
+<ul>
+<li>
+EXTENDED VARS CMD is 1 byte long.
+</li>
+<li>
+WEB SERVER ATTRIBUTE NAME, SERVLET ENGINE ATTRIBUTE NAME are CString.
+</li>
+<li>
+ES is an empty CString.
+</li>
+</ul>
+
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Context informations forwarding for Servlet engine to Web Server"><strong>Context informations forwarding for Servlet engine to Web Server</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+Just after the LOGON PHASE, the web server will ask for the list of contexts
+and URLs/URIs handled by the servlet engine.
+It will ease installation in many sites, reduce questions about configuration
+on tomcat-user list, and be ready for servlet API 2.3.
+
+This mode will be activated by a new directive JkAutoMount
+
+ie: JkAutoMount examples myworker1 /examples/
+
+If we want to get ALL the contexts handled by the servlet engine, willcard
+could be used :
+
+ie: JkAutoMount * myworker1 *
+
+A servlet engine could have many contexts, /examples, /admin, /test.
+We may want to use only some contexts for a given worker. It was
+done previously, in apache HTTP server for example, by setting by
+hand the JkMount accordingly in each [virtual] area of Apache.
+
+If you web-server support virtual hosting, we'll forward also that
+information to servlet engine which will only return contexts for
+that virtual host.
+In that case the servlet engine will only return the URL/URI matching
+these particular virtual server (defined in server.xml).
+This feature will help ISP and big sites which mutualize large farm
+of Tomcat in load-balancing configuration.
+
+<div class="example"><pre>
++-----------------+-------------------+----------+----------+----+
+| CONTEXT QRY CMD | VIRTUAL HOST NAME | CONTEXTA | CONTEXTB | ES |
++-----------------+-------------------+----------+----------+----+
+
++------------------+-------------------+----------+-------------------+----------+---------------+----+
+| CONTEXT INFO CMD | VIRTUAL HOST NAME | CONTEXTA | URL1 URL2 URL3 ES | CONTEXTB | URL1 URL2 ... | ES |
++------------------+-------------------+----------+-------------------+----------+---------------+----+
+</pre></div>
+
+We'll discover via context-query, the list of URL/MIMES handled by the remove servlet engine
+for a list of contextes.
+In wildcard mode, CONTEXTA will contains just '*'.
+
+<ul>
+<li>
+CONTEXT QRY CMD and CONTEXT INFO CMD are 1 byte long.
+</li>
+<li>
+VIRTUAL HOST NAME is a CString, ie an array of chars terminated by a null byte (/0).
+</li>
+<li>
+An empty string is just a null byte (/0).
+</li>
+<li>
+ES is an empty CString. Indicate end of URI/URLs or end of CONTEXTs.
+</li>
+</ul>
+
+NB:<br>
+When VirtualMode is not to be used, the VIRTUAL HOST NAME is '*'.
+In that case the servlet engine will send all contexts handled.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Context informations updates from Servlet engine to Web Server"><strong>Context informations updates from Servlet engine to Web Server</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+Context update are messages caming from the servlet engine each time a context
+is desactivated/reactivated. The update will be in use when the directive JkUpdateMount.
+This directive will set the AJP13_CONTEXT_UPDATE_NEG flag.
+
+ie: JkUpdateMount myworker1
+
+<div class="example"><pre>
++--------------------+-------------------+----------+--------+----------+--------+----+
+| CONTEXT UPDATE CMD | VIRTUAL HOST NAME | CONTEXTA | STATUS | CONTEXTB | STATUS | ES |
++--------------------+-------------------+----------+--------+----------+--------+----+
+</pre></div>
+
+<ul>
+<li>
+CONTEXT UPDATE CMD, STATUS are 1 byte long.
+</li>
+<li>
+VIRTUAL HOST NAME, CONTEXTS are CString.
+</li>
+<li>
+ES is an empty CString. Indicate end of CONTEXTs.
+</li>
+</ul>
+
+NB:<br>
+When VirtualMode is not in use, the VIRTUAL HOST NAME is '*'.
+STATUS is one byte indicating if context is UP/DOWN/INVALID
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Context status query to Servlet engine"><strong>Context status query to Servlet engine</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+This query will be used by the web-server to determine if a given
+contexts are UP, DOWN or INVALID (and should be removed).
+
+<div class="example"><pre>
++-------------------+--------------------+----------+----------+----+
+| CONTEXT STATE CMD | VIRTUAL HOST NAME | CONTEXTA | CONTEXTB | ES |
++-------------------+--------------------+----------+----------+----+
+
++-------------------------+-------------------+----------+--------+----------+--------+----+
+| CONTEXT STATE REPLY CMD | VIRTUAL HOST NAME | CONTEXTA | STATUS | CONTEXTB | STATUS | ES |
++-------------------------+-------------------+----------+-------------------+--------+----+
+</pre></div>
+
+<ul>
+<li>
+CONTEXT STATE CMD, CONTEXT STATE REPLY CMD, STATUS are 1 byte long.
+</li>
+<li>
+VIRTUAL HOST NAME, CONTEXTs are CString
+</li>
+<li>
+ES is an empty CString
+</li>
+</ul>
+
+NB:<br>
+When VirtualMode is not in use, the VIRTUAL HOST NAME is an empty string.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Handling of unknown packets"><strong>Handling of unknown packets</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+Sometimes even with a well negocied protocol, we may be in a situation
+where one end (web server or servlet engine), will receive a message it
+couldn't understand. In that case the receiver will send an
+'UNKNOW PACKET CMD' with attached the unhandled message.
+
+<div class="example"><pre>
++--------------------+------------------------+-------------------+
+| UNKNOWN PACKET CMD | UNHANDLED MESSAGE SIZE | UNHANDLED MESSAGE |
++--------------------+------------------------+-------------------+
+</pre></div>
+
+Depending on the message, the sender will report an error and if
+possible will try to forward the message to another endpoint.
+
+<ul>
+<li>
+UNKNOWN PACKET CMD is 1 byte long.
+</li>
+<li>
+UNHANDLED MESSAGE SIZE is 16bits long.
+</li>
+<li>
+UNHANDLED MESSAGE is an array of byte (length is contained in UNHANDLED MESSAGE SIZE)
+</li>
+</ul>
+
+NB:<br>
+added UNHANDLED MESSAGE SIZE (development)
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Verification of connection before sending request"><strong>Verification of connection before sending request</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+NOTA: This fonctionality may never be used, since it may slow up the normal process
+since requiring on the web-server side an extra IO (read) before forwarding
+the request.....
+
+One of the beauty of socket APIs, is that you could write on a half closed socket.
+When servlet engine close the socket, the web server will discover it only at the
+next read() to the socket.
+Basically, in the AJP13 protocol, the web server send the HTTP HEADER and HTTP BODY
+(POST by chunk of 8K) to the servlet engine and then try to receive the reply.
+If the connection was broken the web server will learn it only at receive time.
+
+We could use a buffering scheme but what happen when you use the servlet engine
+for upload operations with more than 8ko of datas ?
+
+The hack in the AJP13 protocol is to add some bytes to read after the end of the
+service :
+
+<div class="example"><pre>
+EXAMPLE OF DISCUSSION BETWEEN WEB SERVER AND SERVLET ENGINE
+
+AJP HTTP-HEADER (+ HTTP-POST) (WEB-&gt;SERVLET)
+
+AJP HTTP-REPLY (SERVLET-&gt;WEB)
+
+AJP END OF DISCUSSION (SERVLET-&gt;WEB)
+
+---&gt; AJP STATUS (SERVLET-&gt;WEB AJP13)
+</pre></div>
+
+The AJP STATUS will not be read by the servlet engine at the end of
+the request/response #N but at the begining of the next session.
+
+More at that time the web server could also use OS dependants functions
+(or better APR functions) to determine if there is also more data
+to read. And that datas could be CONTEXT Updates.
+
+This will avoid the web server sending a request to a
+desactivated context. In that case, if the load-balancing is used,
+it will search for another servlet engine to handle the request.
+
+And that feature will help ISP and big sites with farm of tomcat,
+to updates their servlet engine without any service interruption.
+
+<div class="example"><pre>
++------------+-------------+
+| STATUS CMD | STATUS DATA |
++------------+-------------+
+</pre></div>
+
+<ul>
+<li>
+STATUS CMD and STATUS DATA are one byte long.
+</li>
+</ul>
+</p>
+</blockquote></td></tr></table>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Conclusion"><strong>Conclusion</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+The goal of the extended AJP13 protocol is to overcome some of the original AJP13 limitation.
+An easier configuration, a better support for large site and farm of Tomcat,
+a simple authentification system and provision for protocol updates.
+
+Using the stable ajp13 implementation in JK (native) and in servlet
+engine (java), it's a reasonable evolution of the well known ajp13.
+</p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Commands and IDs in extended AJP13 Index"><strong>Commands and IDs in extended AJP13 Index</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+Index of Commands and ID to be added in AJP13 Protocol
+</p>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Commands IDs"><strong>Commands IDs</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+<table>
+ <tr><th>Command Name</th><th>Command Number</th></tr>
+ <tr><td>AJP13_LOGINIT_CMD</td><td>0x10</td></tr>
+ <tr><td>AJP13_LOGSEED_CMD</td><td>0x11</td></tr>
+ <tr><td>AJP13_LOGCOMP_CMD</td><td>0x12</td></tr>
+ <tr><td>AJP13_LOGOK_CMD</td><td>0x13</td></tr>
+ <tr><td>AJP13_LOGNOK_CMD</td><td>0x14</td></tr>
+ <tr><td>AJP13_CONTEXT_QRY_CMD</td><td>0x15</td></tr>
+ <tr><td>AJP13_CONTEXT_INFO_CMD</td><td>0x16</td></tr>
+ <tr><td>AJP13_CONTEXT_UPDATE_CMD</td><td>0x17</td></tr>
+ <tr><td>AJP13_STATUS_CMD</td><td>0x18</td></tr>
+ <tr><td>AJP13_SHUTDOWN_CMD</td><td>0x19</td></tr>
+ <tr><td>AJP13_SHUTOK_CMD</td><td>0x1A</td></tr>
+ <tr><td>AJP13_SHUTNOK_CMD</td><td>0x1B</td></tr>
+ <tr><td>AJP13_CONTEXT_STATE_CMD</td><td>0x1C</td></tr>
+ <tr><td>AJP13_CONTEXT_STATE_REP_CMD</td><td>0x1D</td></tr>
+ <tr><td>AJP13_UNKNOW_PACKET_CMD</td><td>0x1E</td></tr>
+</table>
+
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Negociations Flags"><strong>Negociations Flags</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+<table>
+ <tr><th>Command Name</th><th>Number</th><th>Description</th></tr>
+ <tr><td>AJP13_CONTEXT_INFO_NEG</td><td>0x80000000</td><td>web-server want context info after login</td></tr>
+ <tr><td>AJP13_CONTEXT_UPDATE_NEG</td><td>0x40000000</td><td>web-server want context updates</td></tr>
+ <tr><td>AJP13_GZIP_STREAM_NEG</td><td>0x20000000</td><td>web-server want compressed stream</td></tr>
+ <tr><td>AJP13_DES56_STREAM_NEG</td><td>0x10000000</td><td>web-server want crypted DES56 stream with secret key</td></tr>
+ <tr><td>AJP13_SSL_VSERVER_NEG</td><td>0x08000000</td><td>Extended info on server SSL vars</td></tr>
+ <tr><td>AJP13_SSL_VCLIENT_NEG</td><td>0x04000000</td><td>Extended info on client SSL vars</td></tr>
+ <tr><td>AJP13_SSL_VCRYPTO_NEG</td><td>0x02000000</td><td>Extended info on crypto SSL vars</td></tr>
+ <tr><td>AJP13_SSL_VMISC_NEG</td><td>0x01000000</td><td>Extended info on misc SSL vars</td></tr>
+</table>
+
+<br>
+
+<table>
+ <tr><th>Negociation ID</th><th>Number</th><th>Description</th></tr>
+ <tr><td>AJP13_PROTO_SUPPORT_AJPXX_NEG</td><td>0x00FF0000</td><td>mask of protocol supported</td></tr>
+ <tr><td>AJP13_PROTO_SUPPORT_AJP13L1_NEG</td><td>0x00010000</td><td>communication could use AJP13 Level 1</td></tr>
+ <tr><td>AJP13_PROTO_SUPPORT_AJP13L2_NEG</td><td>0x00020000</td><td>communication could use AJP13 Level 2</td></tr>
+ <tr><td>AJP13_PROTO_SUPPORT_AJP13L3_NEG</td><td>0x00040000</td><td>communication could use AJP13 Level 3</td></tr>
+</table>
+
+<br>
+All others flags must be set to 0 since they are reserved for future use.
+
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Failure IDs"><strong>Failure IDs</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+<table>
+ <tr><th>Failure Id</th><th>Number</th></tr>
+ <tr><td>AJP13_BAD_KEY_ERR</td><td>0xFFFFFFFF</td></tr>
+ <tr><td>AJP13_ENGINE_DOWN_ERR</td><td>0xFFFFFFFE</td></tr>
+ <tr><td>AJP13_RETRY_LATER_ERR</td><td>0xFFFFFFFD</td></tr>
+ <tr><td>AJP13_SHUT_AUTHOR_FAILED_ERR</td><td>0xFFFFFFFC</td></tr>
+</table>
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Status"><strong>Status</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+<table>
+ <tr><th>Failure Id</th><th>Number</th></tr>
+ <tr><td>AJP13_CONTEXT_DOWN</td><td>0x01</td></tr>
+ <tr><td>AJP13_CONTEXT_UP</td><td>0x02</td></tr>
+ <tr><td>AJP13_CONTEXT_OK</td><td>0x03</td></tr>
+</table>
+</p>
+</blockquote></td></tr></table>
+
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright &copy; 1999-2011, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html> \ No newline at end of file
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/docs/ajp/printer/ajpv13a.html b/rubbos/app/tomcat-connectors-1.2.32-src/docs/ajp/printer/ajpv13a.html
new file mode 100644
index 00000000..53cf10a9
--- /dev/null
+++ b/rubbos/app/tomcat-connectors-1.2.32-src/docs/ajp/printer/ajpv13a.html
@@ -0,0 +1,653 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>The Apache Tomcat Connector - AJP Protocol Reference - AJPv13</title><meta name="author" value="danmil@shore.net"><meta name="email" value="danmil@shore.net"><meta name="author" value="Jean-Frederic Clere"><meta name="email" value="jfrederic.clere@fujitsu-siemens.com"><link href="../../style.css" type="text/css" rel="stylesheet"></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="4"><!--PAGE HEADER--><tr><td colspan="2"><!--TOMCAT LOGO--><a href="http://tomcat.apache.org/"><img src="../../images/tomcat.gif" align="left" alt="Apache Tomcat" border="0"></a><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="http://www.apache.org/images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><tr><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left"><table border="0" width="100%" cellspacing="4"><tr><td align="left" valign="top"><h1>The Apache Tomcat Connector - AJP Protocol Reference</h1><h2>AJPv13</h2></td><td align="right" valign="top" nowrap="true"><img src="../../images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Intro"><strong>Intro</strong></a></font></td></tr><tr><td><blockquote>
+
+<p>
+The original document was written by
+Dan Milstein, <author email="danmil@shore.net">danmil@shore.net</author>
+on December 2000. The present document is generated out of an xml file
+to allow a more easy integration in the Tomcat documentation.
+
+</p>
+
+<p>
+This describes the Apache JServ Protocol version 1.3 (hereafter
+<b>ajp13</b>). There is, apparently, no current documentation of how the
+protocol works. This document is an attempt to remedy that, in order to
+make life easier for maintainers of JK, and for anyone who wants to
+port the protocol somewhere (into jakarta 4.x, for example).
+</p>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="author"><strong>author</strong></a></font></td></tr><tr><td><blockquote>
+
+<p>
+I am not one of the designers of this protocol -- I believe that Gal
+Shachor was the original designer. Everything in this document is derived
+from the actual implementation I found in the tomcat 3.x code. I hope it
+is useful, but I can't make any grand claims to perfect accuracy. I also
+don't know why certain design decisions were made. Where I was able, I've
+offered some possible justifications for certain choices, but those are
+only my guesses. In general, the C code which Shachor wrote is very clean
+and comprehensible (if almost totally undocumented). I've cleaned up the
+Java code, and I think it's reasonably readable.
+</p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Design Goals"><strong>Design Goals</strong></a></font></td></tr><tr><td><blockquote>
+
+<p>
+According to email from Gal Shachor to the jakarta-dev mailing list,
+the original goals of <b>JK</b> (and thus <b>ajp13</b>) were to extend
+<b>mod_jserv</b> and <b>ajp12</b> by (I am only including the goals which
+relate to communication between the web server and the servlet container):
+
+<ul>
+ <li> Increasing performance (speed, specifically). </li>
+
+ <li> Adding support for SSL, so that <b class="code">isSecure()</b> and
+ <b class="code">getScheme()</b> will function correctly within the servlet
+ container. The client certificates and cipher suite will be
+ available to servlets as request attributes. </li>
+
+</ul>
+</p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Overview of the protocol"><strong>Overview of the protocol</strong></a></font></td></tr><tr><td><blockquote>
+
+<p>
+The <b>ajp13</b> protocol is packet-oriented. A binary format was
+presumably chosen over the more readable plain text for reasons of
+performance. The web server communicates with the servlet container over
+TCP connections. To cut down on the expensive process of socket creation,
+the web server will attempt to maintain persistent TCP connections to the
+servlet container, and to reuse a connection for multiple request/response
+cycles.
+</p><p>
+Once a connection is assigned to a particular request, it will not be
+used for any others until the request-handling cycle has terminated. In
+other words, requests are not multiplexed over connections. This makes
+for much simpler code at either end of the connection, although it does
+cause more connections to be open at once.
+</p><p>
+Once the web server has opened a connection to the servlet container,
+the connection can be in one of the following states:
+</p><p>
+<ul>
+ <li> Idle <br> No request is being handled over this connection. </li>
+ <li> Assigned <br> The connecton is handling a specific request.</li>
+</ul>
+
+</p><p>
+Once a connection is assigned to handle a particular request, the basic
+request informaton (e.g. HTTP headers, etc) is sent over the connection in
+a highly condensed form (e.g. common strings are encoded as integers).
+Details of that format are below in Request Packet Structure. If there is a
+body to the request (content-length &gt; 0), that is sent in a separate
+packet immediately after.
+</p><p>
+At this point, the servlet container is presumably ready to start
+processing the request. As it does so, it can send the
+following messages back to the web server:
+
+<ul>
+ <li>SEND_HEADERS <br>Send a set of headers back to the browser.</li>
+
+ <li>SEND_BODY_CHUNK <br>Send a chunk of body data back to the browser.</li>
+
+ <li>GET_BODY_CHUNK <br>Get further data from the request if it hasn't all
+ been transferred yet. This is necessary because the packets have a fixed
+ maximum size and arbitrary amounts of data can be included the body of a
+ request (for uploaded files, for example). (Note: this is unrelated to
+ HTTP chunked tranfer).</li>
+
+ <li>END_RESPONSE <br> Finish the request-handling cycle.</li>
+</ul>
+</p><p>
+
+Each message is accompanied by a differently formatted packet of data. See
+Response Packet Structures below for details.
+</p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Basic Packet Structure"><strong>Basic Packet Structure</strong></a></font></td></tr><tr><td><blockquote>
+
+<p>
+There is a bit of an XDR heritage to this protocol, but it differs in
+lots of ways (no 4 byte alignment, for example).
+</p><p>
+Byte order: I am not clear about the endian-ness of the individual
+bytes. I'm guessing the bytes are little-endian, because that's what XDR
+specifies, and I'm guessing that sys/socket library is magically making
+that so (on the C side). If anyone with a better knowledge of socket calls
+can step in, that would be great.
+</p><p>
+There are four data types in the protocol: bytes, booleans, integers and
+strings.
+
+<dl>
+ <dt><b>Byte</b></dt>
+ <dd>A single byte.</dd>
+
+ <dt><b>Boolean</b></dt>
+ <dd>A single byte, 1 = true, 0 = false. Using other non-zero values as
+ true (i.e. C-style) may work in some places, but it won't in
+ others.</dd>
+
+ <dt><b>Integer</b></dt>
+ <dd>A number in the range of 0 to 2^16 (32768). Stored in 2 bytes with
+ the high-order byte first.</dd>
+
+ <dt><b>String</b></dt>
+ <dd>A variable-sized string (length bounded by 2^16). Encoded with the
+ length packed into two bytes first, followed by the string (including the
+ terminating '\0'). Note that the encoded length does <b>not</b> include
+ the trailing '\0' -- it is like <b class="code">strlen</b>. This is a touch
+ confusing on the Java side, which is littered with odd autoincrement
+ statements to skip over these terminators. I believe the reason this was
+ done was to allow the C code to be extra efficient when reading strings
+ which the servlet container is sending back -- with the terminating \0
+ character, the C code can pass around references into a single buffer,
+ without copying. If the \0 was missing, the C code would have to copy
+ things out in order to get its notion of a string. Note a size of -1
+ (65535) indicates a null string and no data follow the length in this
+ case.</dd>
+</dl>
+</p>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Packet Size"><strong>Packet Size</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+According to much of the code, the max packet
+size is 8 * 1024 bytes (8K). The actual length of the packet is encoded in the
+header.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Packet Headers"><strong>Packet Headers</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+Packets sent from the server to the container begin with
+<b class="code">0x1234</b>. Packets sent from the container to the server begin
+with <b class="code">AB</b> (that's the ASCII code for A followed by the ASCII
+code for B). After those first two bytes, there is an integer (encoded as
+above) with the length of the payload. Although this might suggest that
+the maximum payload could be as large as 2^16, in fact, the code sets the
+maximum to be 8K.
+
+
+<table>
+ <tr>
+ <th colspan="6">Packet Format (Server-&gt;Container)</th>
+ </tr>
+
+ <tr>
+ <th>Byte</th>
+ <td>0</td>
+ <td>1</td>
+ <td>2</td>
+ <td>3</td>
+ <td>4...(n+3)</td>
+ </tr>
+
+ <tr>
+ <th>Contents</th>
+ <td>0x12</td>
+ <td>0x34</td>
+ <td colspan="2">Data Length (n)</td>
+ <td>Data</td>
+ </tr>
+</table>
+
+<table>
+ <tr>
+ <th colspan="6"><b>Packet Format (Container-&gt;Server)</b></th>
+ </tr>
+
+ <tr>
+ <th>Byte</th>
+ <td>0</td>
+ <td>1</td>
+ <td>2</td>
+ <td>3</td>
+ <td>4...(n+3)</td>
+ </tr>
+
+ <tr>
+ <th>Contents</th>
+ <td>A</td>
+ <td>B</td>
+ <td colspan="2">Data Length (n)</td>
+ <td>Data</td>
+ </tr>
+</table>
+</p>
+<p>
+<A NAME="prefix-codes"></A> For most packets, the first byte of the
+payload encodes the type of message. The exception is for request body
+packets sent from the server to the container -- they are sent with a
+standard packet header (0x1234 and then length of the packet), but without
+any prefix code after that (this seems like a mistake to me).
+</p><p>
+The web server can send the following messages to the servlet container:
+
+<table>
+ <tr>
+ <th>Code</th>
+ <th>Type of Packet</th>
+ <th>Meaning</th>
+ </tr>
+ <tr>
+ <td>2</td>
+ <td>Forward Request</td>
+ <td>Begin the request-processing cycle with the following data</td>
+ </tr>
+ <tr>
+ <td>7</td>
+ <td>Shutdown</td>
+ <td>The web server asks the container to shut itself down.</td>
+ </tr>
+ <tr>
+ <td>8</td>
+ <td>Ping</td>
+ <td>The web server asks the container to take control (secure login phase).</td>
+ </tr>
+ <tr>
+ <td>10</td>
+ <td>CPing</td>
+ <td>The web server asks the container to respond quickly with a CPong.</td>
+ </tr>
+ <tr>
+ <td>none</td>
+ <td>Data</td>
+ <td>Size (2 bytes) and corresponding body data.</td>
+ </tr>
+</table>
+</p>
+<p>
+To ensure some
+basic security, the container will only actually do the <b class="code">Shutdown</b> if the
+request comes from the same machine on which it's hosted.
+</p>
+<p>
+The first <b class="code">Data</b> packet is send immediatly after the <b class="code">Forward Request</b> by the web server.
+</p>
+
+<p>The servlet container can send the following types of messages to the web
+server:
+<table>
+ <tr>
+ <th>Code</th>
+ <th>Type of Packet</th>
+ <th>Meaning</th>
+ </tr>
+ <tr>
+ <td>3</td>
+ <td>Send Body Chunk</td>
+ <td>Send a chunk of the body from the servlet container to the web
+ server (and presumably, onto the browser). </td>
+ </tr>
+ <tr>
+ <td>4</td>
+ <td>Send Headers</td>
+ <td>Send the response headers from the servlet container to the web
+ server (and presumably, onto the browser).</td>
+ </tr>
+ <tr>
+ <td>5</td>
+ <td>End Response</td>
+ <td>Marks the end of the response (and thus the request-handling cycle).</td>
+ </tr>
+ <tr>
+ <td>6</td>
+ <td>Get Body Chunk</td>
+ <td>Get further data from the request if it hasn't all been transferred
+ yet.</td>
+ </tr>
+ <tr>
+ <td>9</td>
+ <td>CPong Reply</td>
+ <td>The reply to a CPing request</td>
+ </tr>
+</table>
+</p>
+<p>
+Each of the above messages has a different internal structure, detailed below.
+</p>
+</blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Request Packet Structure"><strong>Request Packet Structure</strong></a></font></td></tr><tr><td><blockquote>
+
+<p>
+For messages from the server to the container of type "Forward Request":
+</p><p>
+<div class="example"><pre>
+AJP13_FORWARD_REQUEST :=
+ prefix_code (byte) 0x02 = JK_AJP13_FORWARD_REQUEST
+ method (byte)
+ protocol (string)
+ req_uri (string)
+ remote_addr (string)
+ remote_host (string)
+ server_name (string)
+ server_port (integer)
+ is_ssl (boolean)
+ num_headers (integer)
+ request_headers *(req_header_name req_header_value)
+ attributes *(attribut_name attribute_value)
+ request_terminator (byte) OxFF
+</pre></div>
+</p><p>
+The <b class="code">request_headers</b> have the following structure:
+</p><p>
+<div class="example"><pre>
+req_header_name :=
+ sc_req_header_name | (string) [see below for how this is parsed]
+
+sc_req_header_name := 0xA0xx (integer)
+
+req_header_value := (string)
+</pre></div>
+</p><p>
+
+The <b class="code">attributes</b> are optional and have the following structure:
+</p><p>
+<div class="example"><pre>
+attribute_name := sc_a_name | (sc_a_req_attribute string)
+
+attribute_value := (string)
+
+</pre></div>
+</p><p>
+Not that the all-important header is "content-length', because it
+determines whether or not the container looks for another packet
+immediately.
+</p><p>
+Detailed description of the elements of Forward Request.
+</p>
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="request_prefix"><strong>request_prefix</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+For all requests, this will be 2.
+See above for details on other <A HREF="#prefix-codes">prefix codes</A>.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="method"><strong>method</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+The HTTP method, encoded as a single byte:
+</p>
+
+<p>
+<table>
+ <tr><th>Command Name</th><th>Code</th></tr>
+ <tr><td>OPTIONS</td><td>1</td></tr>
+ <tr><td>GET</td><td>2</td></tr>
+ <tr><td>HEAD</td><td>3</td></tr>
+ <tr><td>POST</td><td>4</td></tr>
+ <tr><td>PUT</td><td>5</td></tr>
+ <tr><td>DELETE</td><td>6</td></tr>
+ <tr><td>TRACE</td><td>7</td></tr>
+ <tr><td>PROPFIND</td><td>8</td></tr>
+ <tr><td>PROPPATCH</td><td>9</td></tr>
+ <tr><td>MKCOL</td><td>10</td></tr>
+ <tr><td>COPY</td><td>11</td></tr>
+ <tr><td>MOVE</td><td>12</td></tr>
+ <tr><td>LOCK</td><td>13</td></tr>
+ <tr><td>UNLOCK</td><td>14</td></tr>
+ <tr><td>ACL</td><td>15</td></tr>
+ <tr><td>REPORT</td><td>16</td></tr>
+ <tr><td>VERSION-CONTROL</td><td>17</td></tr>
+ <tr><td>CHECKIN</td><td>18</td></tr>
+ <tr><td>CHECKOUT</td><td>19</td></tr>
+ <tr><td>UNCHECKOUT</td><td>20</td></tr>
+ <tr><td>SEARCH</td><td>21</td></tr>
+ <tr><td>MKWORKSPACE</td><td>22</td></tr>
+ <tr><td>UPDATE</td><td>23</td></tr>
+ <tr><td>LABEL</td><td>24</td></tr>
+ <tr><td>MERGE</td><td>25</td></tr>
+ <tr><td>BASELINE_CONTROL</td><td>26</td></tr>
+ <tr><td>MKACTIVITY</td><td>27</td></tr>
+</table>
+</p>
+
+<p>Later version of ajp13, when used with mod_jk2, will transport
+additional methods, even if they are not in this list.
+</p>
+
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="protocol, req_uri, remote_addr, remote_host, server_name, server_port, is_ssl"><strong>protocol, req_uri, remote_addr, remote_host, server_name, server_port, is_ssl</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+ These are all fairly self-explanatory. Each of these is required, and
+ will be sent for every request.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Headers"><strong>Headers</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+ The structure of <b class="code">request_headers</b> is the following:
+ First, the number of headers <b class="code">num_headers</b> is encoded.
+ Then, a series of header name <b class="code">req_header_name</b> / value
+ <b class="code">req_header_value</b> pairs follows.
+ Common header names are encoded as integers,
+ to save space. If the header name is not in the list of basic headers,
+ it is encoded normally (as a string, with prefixed length). The list of
+ common headers <b class="code">sc_req_header_name</b>and their codes
+ is as follows (all are case-sensitive):
+</p><p>
+<table>
+ <tr><th>Name</th><th>Code value</th><th>Code name</th></tr>
+ <tr><td>accept</td><td>0xA001</td><td>SC_REQ_ACCEPT</td></tr>
+ <tr><td>accept-charset</td><td>0xA002</td><td>SC_REQ_ACCEPT_CHARSET</td></tr>
+ <tr><td>accept-encoding</td><td>0xA003</td><td>SC_REQ_ACCEPT_ENCODING</td></tr>
+ <tr><td>accept-language</td><td>0xA004</td><td>SC_REQ_ACCEPT_LANGUAGE</td></tr>
+ <tr><td>authorization</td><td>0xA005</td><td>SC_REQ_AUTHORIZATION</td></tr>
+ <tr><td>connection</td><td>0xA006</td><td>SC_REQ_CONNECTION</td></tr>
+ <tr><td>content-type</td><td>0xA007</td><td>SC_REQ_CONTENT_TYPE</td></tr>
+ <tr><td>content-length</td><td>0xA008</td><td>SC_REQ_CONTENT_LENGTH</td></tr>
+ <tr><td>cookie</td><td>0xA009</td><td>SC_REQ_COOKIE</td></tr>
+ <tr><td>cookie2</td><td>0xA00A</td><td>SC_REQ_COOKIE2</td></tr>
+ <tr><td>host</td><td>0xA00B</td><td>SC_REQ_HOST</td></tr>
+ <tr><td>pragma</td><td>0xA00C</td><td>SC_REQ_PRAGMA</td></tr>
+ <tr><td>referer</td><td>0xA00D</td><td>SC_REQ_REFERER</td></tr>
+ <tr><td>user-agent</td><td>0xA00E</td><td>SC_REQ_USER_AGENT</td></tr>
+</table>
+</p><p>
+ The Java code that reads this grabs the first two-byte integer and if
+ it sees an <b class="code">'0xA0'</b> in the most significant
+ byte, it uses the integer in the second byte as an index into an array of
+ header names. If the first byte is not '0xA0', it assumes that the
+ two-byte integer is the length of a string, which is then read in.
+</p><p>
+ This works on the assumption that no header names will have length
+ greater than 0x9999 (==0xA000 - 1), which is perfectly reasonable, though
+ somewhat arbitrary. (If you, like me, started to think about the cookie
+ spec here, and about how long headers can get, fear not -- this limit is
+ on header <b>names</b> not header <b>values</b>. It seems unlikely that
+ unmanageably huge header names will be showing up in the HTTP spec any time
+ soon).
+</p><p>
+ <b>Note:</b> The <b class="code">content-length</b> header is extremely
+ important. If it is present and non-zero, the container assumes that
+ the request has a body (a POST request, for example), and immediately
+ reads a separate packet off the input stream to get that body.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Attributes"><strong>Attributes</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+
+ The attributes prefixed with a <b class="code">?</b>
+ (e.g. <b class="code">?context</b>) are all optional. For each, there is a
+ single byte code to indicate the type of attribute, and then a string to
+ give its value. They can be sent in any order (thogh the C code always
+ sends them in the order listed below). A special terminating code is
+ sent to signal the end of the list of optional attributes. The list of
+ byte codes is:
+</p><p>
+
+<table>
+ <tr><th>Information</th><th>Code Value</th><th>Note</th></tr>
+ <tr><td>?context</td><td>0x01</td><td>Not currently implemented</td></tr>
+ <tr><td>?servlet_path</td><td>0x02</td><td>Not currently implemented</td></tr>
+ <tr><td>?remote_user</td><td>0x03</td><td></td></tr>
+ <tr><td>?auth_type</td><td>0x04</td><td></td></tr>
+ <tr><td>?query_string</td><td>0x05</td><td></td></tr>
+ <tr><td>?route</td><td>0x06</td><td></td></tr>
+ <tr><td>?ssl_cert</td><td>0x07</td><td></td></tr>
+ <tr><td>?ssl_cipher</td><td>0x08</td><td></td></tr>
+ <tr><td>?ssl_session</td><td>0x09</td><td></td></tr>
+ <tr><td>?req_attribute</td><td>0x0A</td><td>Name (the name of the attribut follows)</td></tr>
+ <tr><td>?ssl_key_size</td><td>0x0B</td><td></td></tr>
+ <tr><td>?secret</td><td>0x0C</td><td></td></tr>
+ <tr><td>?stored_method</td><td>0x0D</td><td></td></tr>
+ <tr><td>are_done</td><td>0xFF</td><td>request_terminator</td></tr>
+</table>
+
+</p><p>
+
+ The <b class="code">context</b> and <b class="code">servlet_path</b> are not currently
+ set by the C code, and most of the Java code completely ignores whatever
+ is sent over for those fields (and some of it will actually break if a
+ string is sent along after one of those codes). I don't know if this is
+ a bug or an unimplemented feature or just vestigial code, but it's
+ missing from both sides of the connection.
+</p><p>
+ The <b class="code">remote_user</b> and <b class="code">auth_type</b> presumably refer
+ to HTTP-level authentication, and communicate the remote user's username
+ and the type of authentication used to establish their identity (e.g. Basic,
+ Digest). I'm not clear on why the password isn't also sent, but I don't
+ know HTTP authentication inside and out.
+</p><p>
+ The <b class="code">query_string</b>, <b class="code">ssl_cert</b>,
+ <b class="code">ssl_cipher</b>, and <b class="code">ssl_session</b> refer to the
+ corresponding pieces of HTTP and HTTPS.
+</p><p>
+ The <b class="code">route</b>, as I understand it, is used to support sticky
+ sessions -- associating a user's sesson with a particular Tomcat instance
+ in the presence of multiple, load-balancing servers. I don't know the
+ details.
+</p><p>
+ Beyond this list of basic attributes, any number of other attributes can
+ be sent via the <b class="code">req_attribute</b> code (0x0A). A pair of strings
+ to represent the attribute name and value are sent immediately after each
+ instance of that code. Environment values are passed in via this method.
+</p><p>
+ Finally, after all the attributes have been sent, the attribute terminator,
+ 0xFF, is sent. This signals both the end of the list of attributes and
+ also then end of the Request Packet.
+</p>
+</blockquote></td></tr></table>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Response Packet Structure"><strong>Response Packet Structure</strong></a></font></td></tr><tr><td><blockquote>
+
+<p>
+For messages which the container can send back to the server.
+
+<div class="example"><pre>
+AJP13_SEND_BODY_CHUNK :=
+ prefix_code 3
+ chunk_length (integer)
+ chunk *(byte)
+
+
+AJP13_SEND_HEADERS :=
+ prefix_code 4
+ http_status_code (integer)
+ http_status_msg (string)
+ num_headers (integer)
+ response_headers *(res_header_name header_value)
+
+res_header_name :=
+ sc_res_header_name | (string) [see below for how this is parsed]
+
+sc_res_header_name := 0xA0 (byte)
+
+header_value := (string)
+
+AJP13_END_RESPONSE :=
+ prefix_code 5
+ reuse (boolean)
+
+
+AJP13_GET_BODY_CHUNK :=
+ prefix_code 6
+ requested_length (integer)
+</pre></div>
+
+</p>
+<p>
+Details:
+</p>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Send Body Chunk"><strong>Send Body Chunk</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+ The chunk is basically binary data, and is sent directly back to the browser.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Send Headers"><strong>Send Headers</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+ The status code and message are the usual HTTP things (e.g. "200" and "OK").
+ The response header names are encoded the same way the request header names are.
+ See <A HREF="#header_encoding">above</A> for details about how the the
+ codes are distinguished from the strings. The codes for common headers are:
+</p>
+
+<p>
+<table>
+ <tr><th>Name</th><th>Code value</th></tr>
+ <tr><td>Content-Type</td><td>0xA001</td></tr>
+ <tr><td>Content-Language</td><td>0xA002</td></tr>
+ <tr><td>Content-Length</td><td>0xA003</td></tr>
+ <tr><td>Date</td><td>0xA004</td></tr>
+ <tr><td>Last-Modified</td><td>0xA005</td></tr>
+ <tr><td>Location</td><td>0xA006</td></tr>
+ <tr><td>Set-Cookie</td><td>0xA007</td></tr>
+ <tr><td>Set-Cookie2</td><td>0xA008</td></tr>
+ <tr><td>Servlet-Engine</td><td>0xA009</td></tr>
+ <tr><td>Status</td><td>0xA00A</td></tr>
+ <tr><td>WWW-Authenticate</td><td>0xA00B</td></tr>
+</table>
+
+</p>
+
+<p>
+ After the code or the string header name, the header value is immediately
+ encoded.
+</p>
+
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="End Response"><strong>End Response</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+ Signals the end of this request-handling cycle. If the
+ <b class="code">reuse</b> flag is true (==1), this TCP connection can now be used to
+ handle new incoming requests. If <b class="code">reuse</b> is false (anything
+ other than 1 in the actual C code), the connection should be closed.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Get Body Chunk"><strong>Get Body Chunk</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+ The container asks for more data from the request (If the body was
+ too large to fit in the first packet sent over or when the request is
+ chuncked).
+ The server will send a body packet back with an amount of data which is
+ the minimum of the <b class="code">request_length</b>,
+ the maximum send body size (8186 (8 Kbytes - 6)), and the
+ number of bytes actually left to send from the request body.
+<br>
+ If there is no more data in the body (i.e. the servlet container is
+ trying to read past the end of the body), the server will send back an
+ "empty" packet, which is a body packet with a payload length of 0.
+ (0x12,0x34,0x00,0x00)
+</p>
+</blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Questions I Have"><strong>Questions I Have</strong></a></font></td></tr><tr><td><blockquote>
+
+<p> What happens if the request headers &gt; max packet size? There is no
+provision to send a second packet of request headers in case there are more
+than 8K (I think this is correctly handled for response headers, though I'm
+not certain). I don't know if there is a way to get more than 8K worth of
+data into that initial set of request headers, but I'll bet there is
+(combine long cookies with long ssl information and a lot of environment
+variables, and you should hit 8K easily). I think the connector would just
+fail before trying to send any headers in this case, but I'm not certain.</p>
+
+<p> What about authentication? There doesn't seem to be any authentication
+of the connection between the web server and the container. This strikes
+me as potentially dangerous.</p>
+
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright &copy; 1999-2011, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html> \ No newline at end of file
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/docs/ajp/printer/ajpv13ext.html b/rubbos/app/tomcat-connectors-1.2.32-src/docs/ajp/printer/ajpv13ext.html
new file mode 100644
index 00000000..300f4b3c
--- /dev/null
+++ b/rubbos/app/tomcat-connectors-1.2.32-src/docs/ajp/printer/ajpv13ext.html
@@ -0,0 +1,653 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>The Apache Tomcat Connector - AJP Protocol Reference - AJPv13 extensions Proposal</title><meta name="author" value="Henri Gomez"><meta name="email" value="hgomez@apache.org"><link href="../../style.css" type="text/css" rel="stylesheet"></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="4"><!--PAGE HEADER--><tr><td colspan="2"><!--TOMCAT LOGO--><a href="http://tomcat.apache.org/"><img src="../../images/tomcat.gif" align="left" alt="Apache Tomcat" border="0"></a><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="http://www.apache.org/images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><tr><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left"><table border="0" width="100%" cellspacing="4"><tr><td align="left" valign="top"><h1>The Apache Tomcat Connector - AJP Protocol Reference</h1><h2>AJPv13 extensions Proposal</h2></td><td align="right" valign="top" nowrap="true"><img src="../../images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+This document is a proposal of evolution of the current
+Apache JServ Protocol version 1.3, also known as ajp13.
+I'll not cover here the full protocol but only the add-on from ajp13.
+
+This nth pass include comments from the tomcat-dev list and
+misses discovered during developpment.
+</p>
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Missing features in AJP13"><strong>Missing features in AJP13</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+ajp13 is a good protocol to link a servlet engine like tomcat to a web server like Apache:
+
+<ul>
+<li>
+use persistants connections to avoid reconnect time at each request
+</li>
+<li>
+encode many http commands to reduce stream size
+</li>
+<li>
+send to servlet engine many info from web server (like SSL certs)
+</li>
+</ul>
+<p>
+But ajp13 lacks support for :
+</p>
+<ul>
+<li>
+ security between web server and servlet engine.
+ Anybody can connect to an ajp13 port (no login mecanism used)
+ You could connect, for example with telnet, and keep the remote thread
+ up by not sending any data (no timeout in connection)
+</li>
+<li>
+ context information passed from servlet engine to web server.
+ Part of the configuration of JK, the web server connector, is to
+ indicate to the web server which URI to handle.
+ The mod_jk JkMount directive, told to web server which URI must be
+ forwarded to servlet engine.
+ A servlet engine allready knows which URI it handle and TC 3.3 is
+ allready capable to generate a config file for JK from the list
+ of available contexts.
+</li>
+<li>
+ state update of contexts from servlet engine to web server.
+ Big site with farm of Tomcat, like ISP and virtuals hosters,
+ may need to stop a context for admin purposes. In that case the front
+ web server must know that the context is currently down, to eventually
+ relay the request to another Tomcat
+</li>
+<li>
+ verify state of connection before sending request.
+ Actually JK send the request to the servlet engine and next wait
+ for the answer. But one of the beauty of the socket API, is you that
+ you could write() to a closed connection without any error reporting,
+ but a read() to a closed connection return you the error code.
+</li>
+</ul>
+
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Proposed add-ons to AJP13"><strong>Proposed add-ons to AJP13</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+Let's descrive here the features and add-on that could be added to AJP13.
+Since this document is a proposal, a reasonable level of chaos must be expected at first.
+Be sure that discussion on tomcat list will help clarify points, add
+features but the current list seems to be a 'minimun vital'
+
+<ul>
+
+<li>
+Advanced login features at connect time
+</li>
+
+<li>
+Basic authorisation system, where a shared secret key is
+present in web server and servlet engine.
+</li>
+
+<li>
+Basic protocol negociation, just to be sure that if functionnalities are added
+to AJP13 in the future, current implementations will still works.
+</li>
+
+<li>
+Clean handling of 'Unknown packets'
+</li>
+
+<li>
+Extended env vars passed from web-server to servlet engine.
+</li>
+
+<li>
+Add extra SSL informations needed by Servlet 2.3 API (like SSL_KEY_SIZE)
+</li>
+
+</ul>
+
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Advanced login"><strong>Advanced login</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+
+<ol>
+<li>
+WEB-SERVER send LOGIN INIT CMD + NEGOCIATION DATA + WEB SERVER INFO
+</li>
+<li>
+ TOMCAT respond with LOGIN SEED CMD + RANDOM DATA
+</li>
+<li>
+ WEB-SERVER calculted the MD5 of RANDOM DATA+SECRET DATA
+</li>
+<li>
+ WEB-SERVER send LOGIN COMP CMD + MD5 (SECRET DATA + RANDOM DATA)
+</li>
+<li>
+ TOMCAT respond with LOGIN STATUS CMD + NEGOCIED DATA + SERVLET ENGINE INFO
+</li>
+</ol>
+
+To prevent DOS attack, the servlet engine will wait
+the LOGIN CMD only 15/30 seconds and reports the
+timeout exception for admins investigation.
+
+The login command will contains basic protocol
+negociation information like compressing ability,
+crypto, context info (at start up), context update at
+run-time (up/down), level of SSL env vars, AJP protocol
+level supported (level1/level2/level3...)
+
+The Web server info will contain web server info and
+connector name (ie Apache 1.3.26 + mod_ssl 2.8.8 + mod_jk 1.2.1 + mod_perl 1.25).
+
+The servlet engine will mask the negociation mask with it's own
+mask (what it can do) and return it when loggin is accepted.
+
+This will help having a basic AJP13 implementation (level 1)
+on a web-server working with a more advanced protocol handler on
+the servlet engine side or vice-versa.
+
+AJP13 was designed to be small and fast and so many
+SSL informations present in the web-server are not
+forwarded to the servlet engine.
+
+We add here four negociations flags to provide more
+informations on client SSL data (certs), server SSL datas,
+crypto used, and misc datas (timeout...).
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Messages Stream"><strong>Messages Stream</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+<div class="example"><pre>
++----------------+------------------+-----------------+
+| LOGIN INIT CMD | NEGOCIATION DATA | WEB SERVER INFO |
++----------------+------------------+-----------------+
+
++----------------+----------------+
+| LOGIN SEED CMD | MD5 of entropy |
++----------------+----------------+
+
++----------------+----------------------------+
+| LOGIN COMP CMD | MD5 of RANDOM + SECRET KEY |
++----------------+----------------------------+
+
++-----------+---------------+---------------------+
+| LOGOK CMD | NEGOCIED DATA | SERVLET ENGINE INFO |
++-----------+---------------+---------------------+
+
++------------+--------------+
+| LOGNOK CMD | FAILURE CODE |
++------------+--------------+
+</pre></div>
+
+<ul>
+<li>
+LOGIN INIT CMD, LOGIN SEED CMD, LOGIN COMP CMD, LOGOK CMD, LOGNOK CMD are 1 byte long.
+</li>
+<li>
+MD5, MD5 of RANDOM + SECRET KEY are 32 chars long.
+</li>
+<li>
+NEGOCIATION DATA, NEGOCIED DATA, FAILURE CODE are 32 bits long.
+</li>
+<li>
+WEB SERVER INFO, SERVLET ENGINE INFO are CString.
+</li>
+</ul>
+
+The secret key will be set by a new propertie in
+workers.properties : secretkey
+<div class="example"><pre>
+worker.ajp13.port=8009
+worker.ajp13.host=localhost
+worker.ajp13.type=ajp13
+worker.ajp13.secretkey=myverysecretkey
+</pre></div>
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Shutdown feature"><strong>Shutdown feature</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+AJP13 miss a functionnality of AJP12, which is shutdown command.
+A logout will tell servlet engine to shutdown itself.
+<div class="example"><pre>
++--------------+----------------------------+
+| SHUTDOWN CMD | MD5 of RANDOM + SECRET KEY |
++--------------+----------------------------+
+
++------------+
+| SHUTOK CMD |
++------------+
+
++-------------+--------------+
+| SHUTNOK CMD | FAILURE CODE |
++-------------+--------------+
+</pre></div>
+
+<ul>
+<li>
+SHUTDOWN CMD, SHUTOK CMD, SHUTNOK CMD are 1 byte long.
+</li>
+<li>
+MD5 of RANDOM + SECRET KEY are 32 chars long.
+</li>
+<li>
+FAILURE CODE is 32 bits long.
+</li>
+</ul>
+
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Extended Env Vars feature"><strong>Extended Env Vars feature</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+NOTA:
+
+While working on AJP13 in JK, I really discovered "JkEnvVar".
+The following "Extended Env Vars feature" description may not
+be implemented in extended AJP13 since allready available in original
+implementation.
+
+DESC:
+
+Many users will want to see some of their web-server env vars
+passed to their servlet engine.
+
+To reduce the network traffic, the web-servlet will send a
+table to describing the external vars in a shorter fashion.
+
+We'll use there a functionnality allready present in AJP13,
+attributes list :
+
+In the AJP13, we've got :
+
+<div class="example"><pre>
+AJP13_FORWARD_REQUEST :=
+ prefix_code 2
+ method (byte)
+ protocol (string)
+ req_uri (string)
+ remote_addr (string)
+ remote_host (string)
+ server_name (string)
+ server_port (integer)
+ is_ssl (boolean)
+ num_headers (integer)
+ request_headers *(req_header_name req_header_value)
+
+ ?context (byte string)
+ ?servlet_path (byte string)
+ ?remote_user (byte string)
+ ?auth_type (byte string)
+ ?query_string (byte string)
+ ?route (byte string)
+ ?ssl_cert (byte string)
+ ?ssl_cipher (byte string)
+ ?ssl_session (byte string)
+
+ ?attributes *(attribute_name attribute_value)
+ request_terminator (byte)
+</pre></div>
+
+Using short 'web server attribute name' will reduce the
+network traffic.
+
+<div class="example"><pre>
++-------------------+---------------------------+-------------------------------+----+
+| EXTENDED VARS CMD | WEB SERVER ATTRIBUTE NAME | SERVLET ENGINE ATTRIBUTE NAME | ES |
++-------------------+---------------------------+-------------------------------+----+
+</pre></div>
+
+ie :
+
+<div class="example"><pre>
+JkExtVars S1 SSL_CLIENT_V_START javax.servlet.request.ssl_start_cert_date
+JkExtVars S2 SSL_CLIENT_V_END javax.servlet.request.ssl_end_cert_date
+JkExtVars S3 SSL_SESSION_ID javax.servlet.request.ssl_session_id
+
+
++-------------------+----+-------------------------------------------+
+| EXTENDED VARS CMD | S1 | javax.servlet.request.ssl_start_cert_date |
++-------------------+----+-------------------------------------------+
++----+-----------------------------------------+
+| S2 | javax.servlet.request.ssl_end_cert_date |
++----+-----------------------------------------+
++----+-----------------------------------------+
+| S3 | javax.servlet.request.ssl_end_cert_date |
++----+-----------------------------------------+
+</pre></div>
+
+During transmission in extended AJP13 we'll see attributes name
+containing S1, S2, S3 and attributes values of
+2001/01/03, 2002/01/03, 0123AFE56.
+
+This example showed the use of extended SSL vars but
+any 'personnal' web-server vars like custom authentification
+vars could be reused in the servlet engine.
+The cost will be only some more bytes in the AJP traffic.
+
+<ul>
+<li>
+EXTENDED VARS CMD is 1 byte long.
+</li>
+<li>
+WEB SERVER ATTRIBUTE NAME, SERVLET ENGINE ATTRIBUTE NAME are CString.
+</li>
+<li>
+ES is an empty CString.
+</li>
+</ul>
+
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Context informations forwarding for Servlet engine to Web Server"><strong>Context informations forwarding for Servlet engine to Web Server</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+Just after the LOGON PHASE, the web server will ask for the list of contexts
+and URLs/URIs handled by the servlet engine.
+It will ease installation in many sites, reduce questions about configuration
+on tomcat-user list, and be ready for servlet API 2.3.
+
+This mode will be activated by a new directive JkAutoMount
+
+ie: JkAutoMount examples myworker1 /examples/
+
+If we want to get ALL the contexts handled by the servlet engine, willcard
+could be used :
+
+ie: JkAutoMount * myworker1 *
+
+A servlet engine could have many contexts, /examples, /admin, /test.
+We may want to use only some contexts for a given worker. It was
+done previously, in apache HTTP server for example, by setting by
+hand the JkMount accordingly in each [virtual] area of Apache.
+
+If you web-server support virtual hosting, we'll forward also that
+information to servlet engine which will only return contexts for
+that virtual host.
+In that case the servlet engine will only return the URL/URI matching
+these particular virtual server (defined in server.xml).
+This feature will help ISP and big sites which mutualize large farm
+of Tomcat in load-balancing configuration.
+
+<div class="example"><pre>
++-----------------+-------------------+----------+----------+----+
+| CONTEXT QRY CMD | VIRTUAL HOST NAME | CONTEXTA | CONTEXTB | ES |
++-----------------+-------------------+----------+----------+----+
+
++------------------+-------------------+----------+-------------------+----------+---------------+----+
+| CONTEXT INFO CMD | VIRTUAL HOST NAME | CONTEXTA | URL1 URL2 URL3 ES | CONTEXTB | URL1 URL2 ... | ES |
++------------------+-------------------+----------+-------------------+----------+---------------+----+
+</pre></div>
+
+We'll discover via context-query, the list of URL/MIMES handled by the remove servlet engine
+for a list of contextes.
+In wildcard mode, CONTEXTA will contains just '*'.
+
+<ul>
+<li>
+CONTEXT QRY CMD and CONTEXT INFO CMD are 1 byte long.
+</li>
+<li>
+VIRTUAL HOST NAME is a CString, ie an array of chars terminated by a null byte (/0).
+</li>
+<li>
+An empty string is just a null byte (/0).
+</li>
+<li>
+ES is an empty CString. Indicate end of URI/URLs or end of CONTEXTs.
+</li>
+</ul>
+
+NB:<br>
+When VirtualMode is not to be used, the VIRTUAL HOST NAME is '*'.
+In that case the servlet engine will send all contexts handled.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Context informations updates from Servlet engine to Web Server"><strong>Context informations updates from Servlet engine to Web Server</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+Context update are messages caming from the servlet engine each time a context
+is desactivated/reactivated. The update will be in use when the directive JkUpdateMount.
+This directive will set the AJP13_CONTEXT_UPDATE_NEG flag.
+
+ie: JkUpdateMount myworker1
+
+<div class="example"><pre>
++--------------------+-------------------+----------+--------+----------+--------+----+
+| CONTEXT UPDATE CMD | VIRTUAL HOST NAME | CONTEXTA | STATUS | CONTEXTB | STATUS | ES |
++--------------------+-------------------+----------+--------+----------+--------+----+
+</pre></div>
+
+<ul>
+<li>
+CONTEXT UPDATE CMD, STATUS are 1 byte long.
+</li>
+<li>
+VIRTUAL HOST NAME, CONTEXTS are CString.
+</li>
+<li>
+ES is an empty CString. Indicate end of CONTEXTs.
+</li>
+</ul>
+
+NB:<br>
+When VirtualMode is not in use, the VIRTUAL HOST NAME is '*'.
+STATUS is one byte indicating if context is UP/DOWN/INVALID
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Context status query to Servlet engine"><strong>Context status query to Servlet engine</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+This query will be used by the web-server to determine if a given
+contexts are UP, DOWN or INVALID (and should be removed).
+
+<div class="example"><pre>
++-------------------+--------------------+----------+----------+----+
+| CONTEXT STATE CMD | VIRTUAL HOST NAME | CONTEXTA | CONTEXTB | ES |
++-------------------+--------------------+----------+----------+----+
+
++-------------------------+-------------------+----------+--------+----------+--------+----+
+| CONTEXT STATE REPLY CMD | VIRTUAL HOST NAME | CONTEXTA | STATUS | CONTEXTB | STATUS | ES |
++-------------------------+-------------------+----------+-------------------+--------+----+
+</pre></div>
+
+<ul>
+<li>
+CONTEXT STATE CMD, CONTEXT STATE REPLY CMD, STATUS are 1 byte long.
+</li>
+<li>
+VIRTUAL HOST NAME, CONTEXTs are CString
+</li>
+<li>
+ES is an empty CString
+</li>
+</ul>
+
+NB:<br>
+When VirtualMode is not in use, the VIRTUAL HOST NAME is an empty string.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Handling of unknown packets"><strong>Handling of unknown packets</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+Sometimes even with a well negocied protocol, we may be in a situation
+where one end (web server or servlet engine), will receive a message it
+couldn't understand. In that case the receiver will send an
+'UNKNOW PACKET CMD' with attached the unhandled message.
+
+<div class="example"><pre>
++--------------------+------------------------+-------------------+
+| UNKNOWN PACKET CMD | UNHANDLED MESSAGE SIZE | UNHANDLED MESSAGE |
++--------------------+------------------------+-------------------+
+</pre></div>
+
+Depending on the message, the sender will report an error and if
+possible will try to forward the message to another endpoint.
+
+<ul>
+<li>
+UNKNOWN PACKET CMD is 1 byte long.
+</li>
+<li>
+UNHANDLED MESSAGE SIZE is 16bits long.
+</li>
+<li>
+UNHANDLED MESSAGE is an array of byte (length is contained in UNHANDLED MESSAGE SIZE)
+</li>
+</ul>
+
+NB:<br>
+added UNHANDLED MESSAGE SIZE (development)
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Verification of connection before sending request"><strong>Verification of connection before sending request</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+NOTA: This fonctionality may never be used, since it may slow up the normal process
+since requiring on the web-server side an extra IO (read) before forwarding
+the request.....
+
+One of the beauty of socket APIs, is that you could write on a half closed socket.
+When servlet engine close the socket, the web server will discover it only at the
+next read() to the socket.
+Basically, in the AJP13 protocol, the web server send the HTTP HEADER and HTTP BODY
+(POST by chunk of 8K) to the servlet engine and then try to receive the reply.
+If the connection was broken the web server will learn it only at receive time.
+
+We could use a buffering scheme but what happen when you use the servlet engine
+for upload operations with more than 8ko of datas ?
+
+The hack in the AJP13 protocol is to add some bytes to read after the end of the
+service :
+
+<div class="example"><pre>
+EXAMPLE OF DISCUSSION BETWEEN WEB SERVER AND SERVLET ENGINE
+
+AJP HTTP-HEADER (+ HTTP-POST) (WEB-&gt;SERVLET)
+
+AJP HTTP-REPLY (SERVLET-&gt;WEB)
+
+AJP END OF DISCUSSION (SERVLET-&gt;WEB)
+
+---&gt; AJP STATUS (SERVLET-&gt;WEB AJP13)
+</pre></div>
+
+The AJP STATUS will not be read by the servlet engine at the end of
+the request/response #N but at the begining of the next session.
+
+More at that time the web server could also use OS dependants functions
+(or better APR functions) to determine if there is also more data
+to read. And that datas could be CONTEXT Updates.
+
+This will avoid the web server sending a request to a
+desactivated context. In that case, if the load-balancing is used,
+it will search for another servlet engine to handle the request.
+
+And that feature will help ISP and big sites with farm of tomcat,
+to updates their servlet engine without any service interruption.
+
+<div class="example"><pre>
++------------+-------------+
+| STATUS CMD | STATUS DATA |
++------------+-------------+
+</pre></div>
+
+<ul>
+<li>
+STATUS CMD and STATUS DATA are one byte long.
+</li>
+</ul>
+</p>
+</blockquote></td></tr></table>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Conclusion"><strong>Conclusion</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+The goal of the extended AJP13 protocol is to overcome some of the original AJP13 limitation.
+An easier configuration, a better support for large site and farm of Tomcat,
+a simple authentification system and provision for protocol updates.
+
+Using the stable ajp13 implementation in JK (native) and in servlet
+engine (java), it's a reasonable evolution of the well known ajp13.
+</p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Commands and IDs in extended AJP13 Index"><strong>Commands and IDs in extended AJP13 Index</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+Index of Commands and ID to be added in AJP13 Protocol
+</p>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Commands IDs"><strong>Commands IDs</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+<table>
+ <tr><th>Command Name</th><th>Command Number</th></tr>
+ <tr><td>AJP13_LOGINIT_CMD</td><td>0x10</td></tr>
+ <tr><td>AJP13_LOGSEED_CMD</td><td>0x11</td></tr>
+ <tr><td>AJP13_LOGCOMP_CMD</td><td>0x12</td></tr>
+ <tr><td>AJP13_LOGOK_CMD</td><td>0x13</td></tr>
+ <tr><td>AJP13_LOGNOK_CMD</td><td>0x14</td></tr>
+ <tr><td>AJP13_CONTEXT_QRY_CMD</td><td>0x15</td></tr>
+ <tr><td>AJP13_CONTEXT_INFO_CMD</td><td>0x16</td></tr>
+ <tr><td>AJP13_CONTEXT_UPDATE_CMD</td><td>0x17</td></tr>
+ <tr><td>AJP13_STATUS_CMD</td><td>0x18</td></tr>
+ <tr><td>AJP13_SHUTDOWN_CMD</td><td>0x19</td></tr>
+ <tr><td>AJP13_SHUTOK_CMD</td><td>0x1A</td></tr>
+ <tr><td>AJP13_SHUTNOK_CMD</td><td>0x1B</td></tr>
+ <tr><td>AJP13_CONTEXT_STATE_CMD</td><td>0x1C</td></tr>
+ <tr><td>AJP13_CONTEXT_STATE_REP_CMD</td><td>0x1D</td></tr>
+ <tr><td>AJP13_UNKNOW_PACKET_CMD</td><td>0x1E</td></tr>
+</table>
+
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Negociations Flags"><strong>Negociations Flags</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+<table>
+ <tr><th>Command Name</th><th>Number</th><th>Description</th></tr>
+ <tr><td>AJP13_CONTEXT_INFO_NEG</td><td>0x80000000</td><td>web-server want context info after login</td></tr>
+ <tr><td>AJP13_CONTEXT_UPDATE_NEG</td><td>0x40000000</td><td>web-server want context updates</td></tr>
+ <tr><td>AJP13_GZIP_STREAM_NEG</td><td>0x20000000</td><td>web-server want compressed stream</td></tr>
+ <tr><td>AJP13_DES56_STREAM_NEG</td><td>0x10000000</td><td>web-server want crypted DES56 stream with secret key</td></tr>
+ <tr><td>AJP13_SSL_VSERVER_NEG</td><td>0x08000000</td><td>Extended info on server SSL vars</td></tr>
+ <tr><td>AJP13_SSL_VCLIENT_NEG</td><td>0x04000000</td><td>Extended info on client SSL vars</td></tr>
+ <tr><td>AJP13_SSL_VCRYPTO_NEG</td><td>0x02000000</td><td>Extended info on crypto SSL vars</td></tr>
+ <tr><td>AJP13_SSL_VMISC_NEG</td><td>0x01000000</td><td>Extended info on misc SSL vars</td></tr>
+</table>
+
+<br>
+
+<table>
+ <tr><th>Negociation ID</th><th>Number</th><th>Description</th></tr>
+ <tr><td>AJP13_PROTO_SUPPORT_AJPXX_NEG</td><td>0x00FF0000</td><td>mask of protocol supported</td></tr>
+ <tr><td>AJP13_PROTO_SUPPORT_AJP13L1_NEG</td><td>0x00010000</td><td>communication could use AJP13 Level 1</td></tr>
+ <tr><td>AJP13_PROTO_SUPPORT_AJP13L2_NEG</td><td>0x00020000</td><td>communication could use AJP13 Level 2</td></tr>
+ <tr><td>AJP13_PROTO_SUPPORT_AJP13L3_NEG</td><td>0x00040000</td><td>communication could use AJP13 Level 3</td></tr>
+</table>
+
+<br>
+All others flags must be set to 0 since they are reserved for future use.
+
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Failure IDs"><strong>Failure IDs</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+<table>
+ <tr><th>Failure Id</th><th>Number</th></tr>
+ <tr><td>AJP13_BAD_KEY_ERR</td><td>0xFFFFFFFF</td></tr>
+ <tr><td>AJP13_ENGINE_DOWN_ERR</td><td>0xFFFFFFFE</td></tr>
+ <tr><td>AJP13_RETRY_LATER_ERR</td><td>0xFFFFFFFD</td></tr>
+ <tr><td>AJP13_SHUT_AUTHOR_FAILED_ERR</td><td>0xFFFFFFFC</td></tr>
+</table>
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Status"><strong>Status</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+<table>
+ <tr><th>Failure Id</th><th>Number</th></tr>
+ <tr><td>AJP13_CONTEXT_DOWN</td><td>0x01</td></tr>
+ <tr><td>AJP13_CONTEXT_UP</td><td>0x02</td></tr>
+ <tr><td>AJP13_CONTEXT_OK</td><td>0x03</td></tr>
+</table>
+</p>
+</blockquote></td></tr></table>
+
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright &copy; 1999-2011, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html> \ No newline at end of file
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/docs/generic_howto/loadbalancers.html b/rubbos/app/tomcat-connectors-1.2.32-src/docs/generic_howto/loadbalancers.html
new file mode 100644
index 00000000..06a1ee5a
--- /dev/null
+++ b/rubbos/app/tomcat-connectors-1.2.32-src/docs/generic_howto/loadbalancers.html
@@ -0,0 +1,207 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>The Apache Tomcat Connector - Generic HowTo - LoadBalancer HowTo</title><meta name="author" value="Mladen Turk"><meta name="email" value="mturk@apache.org"><link href="../style.css" type="text/css" rel="stylesheet"></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="4"><!--PAGE HEADER--><tr><td colspan="2"><!--TOMCAT LOGO--><a href="http://tomcat.apache.org/"><img src="../images/tomcat.gif" align="left" alt="Apache Tomcat" border="0"></a><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="http://www.apache.org/images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><tr><!--LEFT SIDE NAVIGATION--><td width="20%" valign="top" nowrap="true"><p><strong>Links</strong></p><ul><li><a href="../index.html">Docs Home</a></li></ul><p><strong>Reference Guide</strong></p><ul><li><a href="../reference/workers.html">workers.properties</a></li><li><a href="../reference/uriworkermap.html">uriworkermap.properties</a></li><li><a href="../reference/status.html">Status Worker</a></li><li><a href="../reference/apache.html">Apache HTTP Server</a></li><li><a href="../reference/iis.html">IIS</a></li></ul><p><strong>Generic HowTo</strong></p><ul><li><a href="../generic_howto/quick.html">For the impatient</a></li><li><a href="../generic_howto/workers.html">All about workers</a></li><li><a href="../generic_howto/timeouts.html">Timeouts</a></li><li><a href="../generic_howto/loadbalancers.html">Load Balancing</a></li><li><a href="../generic_howto/proxy.html">Reverse Proxy</a></li></ul><p><strong>Webserver HowTo</strong></p><ul><li><a href="../webserver_howto/apache.html">Apache HTTP Server</a></li><li><a href="../webserver_howto/iis.html">IIS</a></li><li><a href="../webserver_howto/nes.html">Netscape/SunOne/Sun</a></li></ul><p><strong>AJP Protocol Reference</strong></p><ul><li><a href="../ajp/ajpv13a.html">AJPv13</a></li><li><a href="../ajp/ajpv13ext.html">AJPv13 Extension Proposal</a></li></ul><p><strong>Miscellaneous Documentation</strong></p><ul><li><a href="../miscellaneous/faq.html">Frequently asked questions</a></li><li><a href="../miscellaneous/changelog.html">Changelog</a></li><li><a href="http://issues.apache.org/bugzilla/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Tomcat+Connectors&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=">Current Tomcat Connectors bugs</a></li><li><a href="../miscellaneous/doccontrib.html">Contribute documentation</a></li><li><a href="../miscellaneous/jkstatustasks.html">JK Status Ant Tasks</a></li><li><a href="../miscellaneous/reporttools.html">Reporting Tools</a></li><li><a href="http://tomcat.apache.org/connectors-doc-archive/jk2/index.html">Old JK/JK2 documentation</a></li></ul><p><strong>News</strong></p><ul><li><a href="../news/20110701.html">2011</a></li><li><a href="../news/20100101.html">2010</a></li><li><a href="../news/20090301.html">2009</a></li><li><a href="../news/20081001.html">2008</a></li><li><a href="../news/20070301.html">2007</a></li><li><a href="../news/20060101.html">2006</a></li><li><a href="../news/20050101.html">2005</a></li><li><a href="../news/20041100.html">2004</a></li></ul></td><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left"><table border="0" width="100%" cellspacing="4"><tr><td align="left" valign="top"><h1>The Apache Tomcat Connector - Generic HowTo</h1><h2>LoadBalancer HowTo</h2></td><td align="right" valign="top" nowrap="true"><small><a href="printer/loadbalancers.html"><img src="../images/printer.gif" border="0" alt="Printer Friendly Version"><br>print-friendly<br>version
+ </a></small></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>A load balancer is a worker that does not directly communicate with Tomcat.
+Instead it is responsible for the management of several "real" workers,
+called members or sub workers of the load balancer.</p>
+<p>
+This management includes:
+</p>
+<ul>
+<li>
+Instantiating the workers in the web server.
+</li>
+<li>
+Using the worker's load-balancing factor, perform weighted load balancing
+(distributing load according to defined strengths of the targets).
+</li>
+<li>
+Keeping requests belonging to the same session executing on the same Tomcat
+(session stickyness).
+</li>
+<li>
+Identifying failed Tomcat workers, suspending requests to them and instead
+falling-back on other workers managed by the load balancer.
+</li>
+<li>
+Providing status and load metrics for the load balancer itself and all
+members via the status worker interface.
+</li>
+<li>
+Allowing to dynamically reconfigure load-balancing via the status worker
+interface.
+</li>
+</ul>
+<p>
+Workers managed by the same load balancer worker are load-balanced
+(based on their configured balancing factors and current request or session load)
+and also secured against failure by providing failover to other members of the same
+load balancer. So a single Tomcat process death will not "kill" the entire site.
+</p>
+<p>Some of the features provided by a load balancer are even interesting, when
+only working with a single member worker (where load balancing is not possible).</p>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Basic Load Balancer Properties"><strong>Basic Load Balancer Properties</strong></a></font></td></tr><tr><td><blockquote>
+<p>A worker is configured as a load balancer by setting its worker <b class="code">type</b>
+to <b>lb</b>.
+</p>
+<p>
+The following table specifies some properties used to configure a load balancer worker:
+</p>
+<ul>
+<li><b>balance_workers</b> is a comma separated list of names of the member workers of the
+load balancer. These workers are typically of type <b>ajp13</b>. The member workers do
+not need to appear in the <b class="code">worker.list</b> property themselves, adding the
+load balancer to it suffices.</li>
+<li><b>sticky_session</b> specifies whether requests with SESSION ID's should be routed
+back to the same Tomcat instance that created the session. You can set sticky_session to
+<b>False</b> when Tomcat is using a session manager which can share session data across
+multiple instances of Tomcat - or if your application is stateless.
+By default sticky_session is set to <b>True</b>.</li>
+<li><b>lbfactor</b> can be added to each member worker to configure individual
+strengths for the members. A higher <b class="code">lbfactor</b> will lead to more
+requests being balanced to that worker. The factors must be given by integers and the
+load will be distributed proportional to the factors given. Higher factors lead to
+more requests.</li>
+</ul>
+
+<div class="example"><pre>
+ # The load balancer worker balance1 will distribute
+ # load to the members worker1 and worker2
+ worker.balance1.type=lb
+ worker.balance1.balance_workers=worker1, worker2
+ worker.worker1.type=ajp13
+ worker.worker1.host=myhost1
+ worker.worker1.port=8009
+ worker.worker2.type=ajp13
+ worker.worker1.host=myhost2
+ worker.worker1.port=8009
+</pre></div>
+
+<p><font color="#ff0000">
+Session stickyness is not implemented using a tracking table for sessions.
+Instead each Tomcat instance gets an individual name and adds its name at
+the end of the session id. When the load balancer sees a session id, it
+finds the name of the Tomcat instance and sends the request via the correct
+member worker. For this to work you must set the name of the Tomcat instances
+as the value of the <b class="code">jvmRoute</b> attribute in the Engine element of
+each Tomcat's server.xml. The name of the Tomcat needs to be equal to the name
+of the corresponding load balancer member. In the above example, Tomcat on host
+"myhost1" needs <b class="code">jvmRoute="worker1"</b>, Tomcat on host "myhost2"
+needs <b class="code">jvmRoute="worker2"</b>.
+</font></p>
+
+<p>For a complete reference of all load balancer configuration
+attributes, please consult the worker <a href="../reference/workers.html">reference</a>.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Advanced Load Balancer Worker Properties"><strong>Advanced Load Balancer Worker Properties</strong></a></font></td></tr><tr><td><blockquote>
+<p>The load balancer supports complex topologies and failover configurations.
+Using the member attribute <b class="code">distance</b> you can group members.
+The load balancer will always send a request to a member of lowest distance.
+Only when all of those are broken, it will balance to the members of the
+next higher configured distance. This allows to define priorities between
+Tomcat instances in different data center locations.
+</p>
+<p>When working with shared sessions, either by using session replication
+or a persisting session manager (e.g. via a database), one often splits
+up the Tomcat farm into replication groups. In case of failure of a member,
+the load balancer needs to know, which other members share the session.
+This is configured using the <b class="code">domain</b> attribute. All workers
+with the same domain are assumed to share the sessions.</p>
+<p>For maintenance purposes you can tell the load balancer to not
+allow any new sessions on some members, or even not use them at all.
+This is controlled by the member attribute <b class="code">activation</b>.
+The value <b>Active</b> allows normal use of a member, <b>disabled</b>
+will not create new sessions on it, but still allow sticky requests,
+and <b>stopped</b> will no longer send any requests to the member.
+Switching the activation from "active" to "disabled" some time before
+maintenance will drain the sessions on the worker and minimize disruption.
+Depending on the usage pattern of the application, draining will take from
+minutes to hours. Switching the worker to stopped immediately before
+maintenance will reduce logging of false errors by mod_jk.</p>
+<p>Finally you can also configure hot spare workers by using
+<b class="code">activation</b> set to <b>disabled</b> in combination with
+the attribute <b class="code">redirect</b> added to the other workers:</p>
+
+<div class="example"><pre>
+ # The advanced router LB worker
+ worker.list=router
+ worker.router.type=lb
+ worker.router.balance_workers=worker1,worker2
+
+ # Define the first member worker
+ worker.worker1.type=ajp13
+ worker.worker1.host=myhost1
+ worker.worker1.port=8009
+ # Define preferred failover node for worker1
+ worker.worker1.redirect=worker2
+
+ # Define the second member worker
+ worker.worker2.type=ajp13
+ worker.worker2.host=myhost2
+ worker.worker2.port=8009
+ # Disable worker2 for all requests except failover
+ worker.worker2.activation=disabled
+</pre></div>
+
+<p>
+The <b class="code">redirect</b> flag on worker1 tells the load balancer
+to redirect the requests to worker2 in case that worker1 has a problem.
+In all other cases worker2 will not receive any requests, thus acting
+like a hot standby.
+</p>
+
+<p>A final note about setting <b class="code">activation</b> to <b>disabled</b>:
+The session id coming with a request is send either
+as part of the request URL (<b class="code">;jsessionid=...</b>) or via a cookie.
+When using bookmarks or browsers that are running since a long time,
+it is possible to send a request carrying an old and invalid session id
+pointing at a disabled member.
+Since the load balancer does not have a list of valid sessions, it will
+forward the request to the disabled member. Thus draining takes longer than
+expected. To handle such cases, you can add a Servlet filter to your web
+application, which checks the request attribute <b class="code">JK_LB_ACTIVATION</b>.
+This attribute contains one of the strings "ACT", "DIS" or "STP". If you
+detect "DIS" and the session for the request is no longer active, delete the
+session cookie and redirect using a self-referential URL. The redirected
+request will then no longer carry session information and thus the load
+balancer will not send it to the disabled worker. The request attribute
+<b class="code">JK_LB_ACTIVATION</b> has been added in version 1.2.32.</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Status Worker properties"><strong>Status Worker properties</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+The status worker does not communicate with Tomcat.
+Instead it is responsible for the worker management. It is
+especially useful when combined with load balancer workers.
+</p>
+<div class="example"><pre>
+ # Add the status worker to the worker list
+ worker.list=jkstatus
+ # Define a 'jkstatus' worker using status
+ worker.jkstatus.type=status
+</pre></div>
+<p>Next thing is to mount the requests to the jkstatus worker. For Apache
+web servers use the:</p>
+<div class="example"><pre>
+ # Add the jkstatus mount point
+ JkMount /jkmanager/* jkstatus
+</pre></div>
+<p>To obtain a higher level of security use the:</p>
+<div class="example"><pre>
+ # Enable the JK manager access from localhost only
+ &lt;Location /jkmanager/&gt;
+ JkMount jkstatus
+ Order deny,allow
+ Deny from all
+ Allow from 127.0.0.1
+ &lt;/Location&gt;
+</pre></div>
+
+</blockquote></td></tr></table>
+
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright &copy; 1999-2011, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html> \ No newline at end of file
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/docs/generic_howto/printer/loadbalancers.html b/rubbos/app/tomcat-connectors-1.2.32-src/docs/generic_howto/printer/loadbalancers.html
new file mode 100644
index 00000000..22999c94
--- /dev/null
+++ b/rubbos/app/tomcat-connectors-1.2.32-src/docs/generic_howto/printer/loadbalancers.html
@@ -0,0 +1,206 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>The Apache Tomcat Connector - Generic HowTo - LoadBalancer HowTo</title><meta name="author" value="Mladen Turk"><meta name="email" value="mturk@apache.org"><link href="../../style.css" type="text/css" rel="stylesheet"></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="4"><!--PAGE HEADER--><tr><td colspan="2"><!--TOMCAT LOGO--><a href="http://tomcat.apache.org/"><img src="../../images/tomcat.gif" align="left" alt="Apache Tomcat" border="0"></a><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="http://www.apache.org/images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><tr><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left"><table border="0" width="100%" cellspacing="4"><tr><td align="left" valign="top"><h1>The Apache Tomcat Connector - Generic HowTo</h1><h2>LoadBalancer HowTo</h2></td><td align="right" valign="top" nowrap="true"><img src="../../images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>A load balancer is a worker that does not directly communicate with Tomcat.
+Instead it is responsible for the management of several "real" workers,
+called members or sub workers of the load balancer.</p>
+<p>
+This management includes:
+</p>
+<ul>
+<li>
+Instantiating the workers in the web server.
+</li>
+<li>
+Using the worker's load-balancing factor, perform weighted load balancing
+(distributing load according to defined strengths of the targets).
+</li>
+<li>
+Keeping requests belonging to the same session executing on the same Tomcat
+(session stickyness).
+</li>
+<li>
+Identifying failed Tomcat workers, suspending requests to them and instead
+falling-back on other workers managed by the load balancer.
+</li>
+<li>
+Providing status and load metrics for the load balancer itself and all
+members via the status worker interface.
+</li>
+<li>
+Allowing to dynamically reconfigure load-balancing via the status worker
+interface.
+</li>
+</ul>
+<p>
+Workers managed by the same load balancer worker are load-balanced
+(based on their configured balancing factors and current request or session load)
+and also secured against failure by providing failover to other members of the same
+load balancer. So a single Tomcat process death will not "kill" the entire site.
+</p>
+<p>Some of the features provided by a load balancer are even interesting, when
+only working with a single member worker (where load balancing is not possible).</p>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Basic Load Balancer Properties"><strong>Basic Load Balancer Properties</strong></a></font></td></tr><tr><td><blockquote>
+<p>A worker is configured as a load balancer by setting its worker <b class="code">type</b>
+to <b>lb</b>.
+</p>
+<p>
+The following table specifies some properties used to configure a load balancer worker:
+</p>
+<ul>
+<li><b>balance_workers</b> is a comma separated list of names of the member workers of the
+load balancer. These workers are typically of type <b>ajp13</b>. The member workers do
+not need to appear in the <b class="code">worker.list</b> property themselves, adding the
+load balancer to it suffices.</li>
+<li><b>sticky_session</b> specifies whether requests with SESSION ID's should be routed
+back to the same Tomcat instance that created the session. You can set sticky_session to
+<b>False</b> when Tomcat is using a session manager which can share session data across
+multiple instances of Tomcat - or if your application is stateless.
+By default sticky_session is set to <b>True</b>.</li>
+<li><b>lbfactor</b> can be added to each member worker to configure individual
+strengths for the members. A higher <b class="code">lbfactor</b> will lead to more
+requests being balanced to that worker. The factors must be given by integers and the
+load will be distributed proportional to the factors given. Higher factors lead to
+more requests.</li>
+</ul>
+
+<div class="example"><pre>
+ # The load balancer worker balance1 will distribute
+ # load to the members worker1 and worker2
+ worker.balance1.type=lb
+ worker.balance1.balance_workers=worker1, worker2
+ worker.worker1.type=ajp13
+ worker.worker1.host=myhost1
+ worker.worker1.port=8009
+ worker.worker2.type=ajp13
+ worker.worker1.host=myhost2
+ worker.worker1.port=8009
+</pre></div>
+
+<p><font color="#ff0000">
+Session stickyness is not implemented using a tracking table for sessions.
+Instead each Tomcat instance gets an individual name and adds its name at
+the end of the session id. When the load balancer sees a session id, it
+finds the name of the Tomcat instance and sends the request via the correct
+member worker. For this to work you must set the name of the Tomcat instances
+as the value of the <b class="code">jvmRoute</b> attribute in the Engine element of
+each Tomcat's server.xml. The name of the Tomcat needs to be equal to the name
+of the corresponding load balancer member. In the above example, Tomcat on host
+"myhost1" needs <b class="code">jvmRoute="worker1"</b>, Tomcat on host "myhost2"
+needs <b class="code">jvmRoute="worker2"</b>.
+</font></p>
+
+<p>For a complete reference of all load balancer configuration
+attributes, please consult the worker <a href="../../reference/workers.html">reference</a>.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Advanced Load Balancer Worker Properties"><strong>Advanced Load Balancer Worker Properties</strong></a></font></td></tr><tr><td><blockquote>
+<p>The load balancer supports complex topologies and failover configurations.
+Using the member attribute <b class="code">distance</b> you can group members.
+The load balancer will always send a request to a member of lowest distance.
+Only when all of those are broken, it will balance to the members of the
+next higher configured distance. This allows to define priorities between
+Tomcat instances in different data center locations.
+</p>
+<p>When working with shared sessions, either by using session replication
+or a persisting session manager (e.g. via a database), one often splits
+up the Tomcat farm into replication groups. In case of failure of a member,
+the load balancer needs to know, which other members share the session.
+This is configured using the <b class="code">domain</b> attribute. All workers
+with the same domain are assumed to share the sessions.</p>
+<p>For maintenance purposes you can tell the load balancer to not
+allow any new sessions on some members, or even not use them at all.
+This is controlled by the member attribute <b class="code">activation</b>.
+The value <b>Active</b> allows normal use of a member, <b>disabled</b>
+will not create new sessions on it, but still allow sticky requests,
+and <b>stopped</b> will no longer send any requests to the member.
+Switching the activation from "active" to "disabled" some time before
+maintenance will drain the sessions on the worker and minimize disruption.
+Depending on the usage pattern of the application, draining will take from
+minutes to hours. Switching the worker to stopped immediately before
+maintenance will reduce logging of false errors by mod_jk.</p>
+<p>Finally you can also configure hot spare workers by using
+<b class="code">activation</b> set to <b>disabled</b> in combination with
+the attribute <b class="code">redirect</b> added to the other workers:</p>
+
+<div class="example"><pre>
+ # The advanced router LB worker
+ worker.list=router
+ worker.router.type=lb
+ worker.router.balance_workers=worker1,worker2
+
+ # Define the first member worker
+ worker.worker1.type=ajp13
+ worker.worker1.host=myhost1
+ worker.worker1.port=8009
+ # Define preferred failover node for worker1
+ worker.worker1.redirect=worker2
+
+ # Define the second member worker
+ worker.worker2.type=ajp13
+ worker.worker2.host=myhost2
+ worker.worker2.port=8009
+ # Disable worker2 for all requests except failover
+ worker.worker2.activation=disabled
+</pre></div>
+
+<p>
+The <b class="code">redirect</b> flag on worker1 tells the load balancer
+to redirect the requests to worker2 in case that worker1 has a problem.
+In all other cases worker2 will not receive any requests, thus acting
+like a hot standby.
+</p>
+
+<p>A final note about setting <b class="code">activation</b> to <b>disabled</b>:
+The session id coming with a request is send either
+as part of the request URL (<b class="code">;jsessionid=...</b>) or via a cookie.
+When using bookmarks or browsers that are running since a long time,
+it is possible to send a request carrying an old and invalid session id
+pointing at a disabled member.
+Since the load balancer does not have a list of valid sessions, it will
+forward the request to the disabled member. Thus draining takes longer than
+expected. To handle such cases, you can add a Servlet filter to your web
+application, which checks the request attribute <b class="code">JK_LB_ACTIVATION</b>.
+This attribute contains one of the strings "ACT", "DIS" or "STP". If you
+detect "DIS" and the session for the request is no longer active, delete the
+session cookie and redirect using a self-referential URL. The redirected
+request will then no longer carry session information and thus the load
+balancer will not send it to the disabled worker. The request attribute
+<b class="code">JK_LB_ACTIVATION</b> has been added in version 1.2.32.</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Status Worker properties"><strong>Status Worker properties</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+The status worker does not communicate with Tomcat.
+Instead it is responsible for the worker management. It is
+especially useful when combined with load balancer workers.
+</p>
+<div class="example"><pre>
+ # Add the status worker to the worker list
+ worker.list=jkstatus
+ # Define a 'jkstatus' worker using status
+ worker.jkstatus.type=status
+</pre></div>
+<p>Next thing is to mount the requests to the jkstatus worker. For Apache
+web servers use the:</p>
+<div class="example"><pre>
+ # Add the jkstatus mount point
+ JkMount /jkmanager/* jkstatus
+</pre></div>
+<p>To obtain a higher level of security use the:</p>
+<div class="example"><pre>
+ # Enable the JK manager access from localhost only
+ &lt;Location /jkmanager/&gt;
+ JkMount jkstatus
+ Order deny,allow
+ Deny from all
+ Allow from 127.0.0.1
+ &lt;/Location&gt;
+</pre></div>
+
+</blockquote></td></tr></table>
+
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright &copy; 1999-2011, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html> \ No newline at end of file
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/docs/generic_howto/printer/proxy.html b/rubbos/app/tomcat-connectors-1.2.32-src/docs/generic_howto/printer/proxy.html
new file mode 100644
index 00000000..043fe48a
--- /dev/null
+++ b/rubbos/app/tomcat-connectors-1.2.32-src/docs/generic_howto/printer/proxy.html
@@ -0,0 +1,312 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>The Apache Tomcat Connector - Generic HowTo - Reverse Proxy HowTo</title><meta name="author" value="Rainer Jung"><meta name="email" value="rjung@apache.org"><link href="../../style.css" type="text/css" rel="stylesheet"></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="4"><!--PAGE HEADER--><tr><td colspan="2"><!--TOMCAT LOGO--><a href="http://tomcat.apache.org/"><img src="../../images/tomcat.gif" align="left" alt="Apache Tomcat" border="0"></a><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="http://www.apache.org/images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><tr><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left"><table border="0" width="100%" cellspacing="4"><tr><td align="left" valign="top"><h1>The Apache Tomcat Connector - Generic HowTo</h1><h2>Reverse Proxy HowTo</h2></td><td align="right" valign="top" nowrap="true"><img src="../../images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>The Apache module mod_jk and its ISAPI and NSAPI variants connect
+a web server to a backend (typically Tomcat) using the AJP protocol.
+The web server receives an HTTP(S) request and the module forwards
+the request to the backend. This function is usually called a gateway
+or a proxy, in the context of HTTP it is called a reverse proxy.
+</p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Typical Problems"><strong>Typical Problems</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>A reverse proxy is not totally transparent to the application on
+the backend. For instance the host name and port the original client
+(e.g. browser) needs to talk to belong to the web server and not to the
+backend, so the reverse proxy talks to a different host name and port.
+When the application on the backend returns content including
+self-referential URLs using its own backend address and port, the
+client will usually not be able to use these URLs.
+</p>
+<p>Another example is the client IP address, which for the web server is the
+source IP of the incoming connection, whereas for the backend the
+connection always comes from the web server. This can be a problem, when
+the client IP is used by the backend application e.g. for security reasons.
+</p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="AJP as a Solution"><strong>AJP as a Solution</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>Most of these problems are automatically handled by the AJP protocol
+and the AJP connectors of the backend. The AJP protocol transports
+this communication metadata and the backend connector presents this
+metadata whenever the application asks for it using Servlet API methods.
+</p>
+<p>The following list contains the communication metadata handled by AJP
+and the ServletRequest/HttpServletRequest API calls which can be used to retrieve them:
+<ul>
+<li>local name: <b class="code">getLocalName()</b> and <b class="code">getLocalAddr</b>.
+This is also equal to <b class="code">getServerName()</b>, unless a <b class="code">Host</b> header
+is contained in the request. In this case the server name is taken from that header.
+</li>
+<li>local port: <b class="code">getLocalPort()</b>
+This is also equal to <b class="code">getServerPort()</b>, unless a <b class="code">Host</b> header
+is contained in the request. In this case the server port is taken from that header
+if it contains an explicit port, or is equal to the default port of the scheme used.
+</li>
+<li>client address: <b class="code">getRemoteAddr()</b>
+</li>
+<li>client port: <b class="code">getRemotePort()</b>
+The remote port was initially not supported. It is available when using mod_jk 1.2.32
+with Apache or IIS (not for the NSAPI plugin) together with Tomcat version at least
+5.5.28, 6.0.20 or 7.0.0. For older versions, <b class="code">getRemotePort()</b>
+will incorrectly return 0 or -1. As a workaround you can forward the remote port by setting
+<b class="code">JkEnvVar REMOTE_PORT</b> and then either using
+<b class="code">request.getAttribute("REMOTE_PORT")</b> instead of <b class="code">getRemotePort()</b>
+or wrapping the request using a filter and overriding <b class="code">getRemotePort()</b> with
+<b class="code">request.getAttribute("REMOTE_PORT")</b>.
+</li>
+<li>client host: <b class="code">getRemoteHost()</b>
+</li>
+<li>authentication type: <b class="code">getAuthType()</b>
+</li>
+<li>remote user: <b class="code">getRemoteUser()</b>,
+if <b class="code">tomcatAuthentication="false"</b>
+</li>
+<li>protocol: <b class="code">getProtocol()</b>
+</li>
+<li>HTTP method: <b class="code">getMethod()</b>
+</li>
+<li>URI: <b class="code">getRequestURI()</b>
+</li>
+<li>HTTPS used: <b class="code">isSecure()</b>, <b class="code">getScheme()</b>
+</li>
+<li>query string: <b class="code">getQueryString()</b>
+</li>
+</ul>
+The following additional SSL-related data will be made available by Apache and forwarded by mod_jk only
+if you set <b class="code">SSLOptions +StdEnvVars</b>. For the certificate information you also need
+to set <b class="code">SSLOptions +ExportCertData</b>.
+<ul>
+<li>SSL cipher: <b class="code">getAttribute(javax.servlet.request.cipher_suite)</b>
+</li>
+<li>SSL key size: <b class="code">getAttribute(javax.servlet.request.key_size)</b>.
+Can be disabled using <b class="code">JkOptions -ForwardKeySize</b>.
+</li>
+<li>SSL client certificate: <b class="code">getAttribute(javax.servlet.request.X509Certificate)</b>.
+If you want the whole certificate chain, then you need to also set <b class="code">JkOptions ForwardSSLCertChain</b>.
+It is likely, that in this case you also need to adjust the maximal AJP packet size
+using the worker attribute <a href="../../reference/workers.html">max_packet_size</a>.
+</li>
+<li>SSL session ID: <b class="code">getAttribute(javax.servlet.request.ssl_session)</b>.
+This is for Tomcat, it has not yet been standardized.
+</li>
+</ul>
+</p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Fine Tuning"><strong>Fine Tuning</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>In some situations this is not enough though. Assume there is another
+less clever reverse proxy in front of your web server, for instance an
+HTTP load balancer or similar device which also serves as an SSL accelerator.
+</p>
+<p>Then you are sure that all your clients use HTTPS, but your web server doesn't
+know about that. All it can see is requests coming from the accelerator using
+plain HTTP.
+</p>
+<p>Another example would be a simple reverse proxy in front of your web server,
+so that the client IP address that your web server sees is always the IP address
+of this reverse proxy, and not of the original client. Often such reverse proxies
+generate an additional HTTP header, like <b class="code">X-Forwareded-for</b> which
+contains the original client IP address (or a list of IP addresses, if there are
+more cascading reverse proxies in front). It would be nice, if we could use the
+content of such a header as the client IP address to pass to the backend.
+</p>
+<p>So we might need to manipulate some of the data that AJP sends to the backend.
+When using mod_jk inside Apache httpd you can use several httpd environment
+variables to let mod_jk know, which data it should forward. These environment variables
+can be set by the httpd directives SetEnv or SetEnvIf, but also in a very flexible
+way using mod_rewrite (since httpd 2.x it can not only test against environment
+variables, but also set them).
+</p>
+<p>The following list contains all environment variables mod_jk checks, before
+sending data to the backend:
+<ul>
+<li>JK_LOCAL_NAME: the local name
+</li>
+<li>JK_LOCAL_PORT: the local port
+</li>
+<li>JK_REMOTE_HOST: the client host
+</li>
+<li>JK_REMOTE_ADDR: the client address
+</li>
+<li>JK_AUTH_TYPE: the authentication type
+</li>
+<li>JK_REMOTE_USER: the remote user
+</li>
+<li>HTTPS: On (case-insensitive) to indicate, that HTTPS is used
+</li>
+<li>SSL_CIPHER: the SSL cipher
+</li>
+<li>SSL_CIPHER_USEKEYSIZE: the SSL key size
+</li>
+<li>SSL_CLIENT_CERT: the SSL client certificate
+</li>
+<li>SSL_CLIENT_CERT_CHAIN_: prefix of variable names, containing
+the client cerificate chain
+</li>
+<li>SSL_SESSION_ID: the SSL session ID
+</li>
+</ul>
+</p>
+<p>Remember: in general you don't need to set them. The module retrieves the data automatically
+from the web server. Only in case you want to change this data, you can overwrite it by
+using these variables.
+</p>
+<p>Some of these variables might also be used by other web server modules. All
+variables whose name does not begin with "JK" are set directly by Apache httpd.
+If you want to change the data, but do not want to negatively influence the behaviour
+of other modules, you can change the names of all variables mod_jk uses to private ones.
+For the details see the <a href="../../reference/apache.html">Apache reference</a> page.
+</p>
+<p>All variables, that are not SSL-related have only been introduced in version 1.2.27.
+</p>
+<p>Finally there is a shortcut to forward the local IP of the web server as the remote IP.
+This can be useful, e.g. when using the Tomcat remote address valve for allowing connections
+only from registered Apache web servers. This feature is activated by setting
+<b class="code">JkOptions ForwardLocalAddress</b>.
+</p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat AJP Connector Settings"><strong>Tomcat AJP Connector Settings</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>As an alternative to using the environment variables described in the previous section
+(which do only exist when using Apache httpd), you can also configure Tomcat to overwrite
+some of the communications data forwarded by mod_jk. The AJP connector in Tomcat's <b class="code">server.xml</b>
+allows to set the <a href="http://tomcat.apache.org/tomcat-6.0-doc/config/ajp.html#Attributes">following properties</a>:
+<ul>
+<li>proxyName: server name as returned by <b class="code">getServerName()</b>
+</li>
+<li>proxyPort: server port as returned by <b class="code">getServerPort()</b>
+</li>
+<li>scheme: protocol scheme as returned by <b class="code">getScheme()</b>
+</li>
+<li>secure: set to "true", if you wish <b class="code">isSecure()</b> to return "true".
+</li>
+</ul>
+Remember: in general you don't need to set those. AJP automatically handles all cases
+where the web server running mod_jk knows the right data.
+</p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="URL Handling"><strong>URL Handling</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="URL Rewriting"><strong>URL Rewriting</strong></a></font></td></tr><tr><td><blockquote>
+<p>Sometimes one want to change path components of the URLs under which an application
+is available. Especially if a web application is deployed as some context, say <b class="code">/myapp</b>,
+marketing prefers short URLs, so want the application to be directly available under
+<b class="code">http://www.mycompany.com/</b>. Although you can deploy the application as the so-called
+ROOT context, which will be directly available at "/", admins often prefer not to use
+the ROOT context, e.g. because only one application can be the root context (per host).
+</p>
+<p>The procedure to change the URLs in the reverse proxy is tedious, because often
+an application produces self-referential URLs, which then include the path components
+which you tried to hide to the outside world. Nevertheless, if you absolutely need to do it,
+here are the steps.
+</p>
+<p>Case A: You need to make the application available at a simple URL, but it is OK, if
+users proceed using the more complex URLs, as long as they don't have to type them in.
+That's the easy case, and if this suffices to you, you're lucky. Use a simply RedirectMatch
+for Apache httpd:
+</p>
+<div class="example"><pre>
+RedirectMatch ^/$ http://www.mycompany.com/myapp/
+</pre></div>
+<p>Your application will then be available under <b class="code">http://www.mycompany.com/</b>,
+and each visitor will be immediately redirected to the real URL
+<b class="code">http://www.mycompany.com/myapp/</b>
+</p>
+<p>Case B: You need to hide path components for all requests going to the application.
+Here's the recipe for the case, where you want to hide the first path component
+<b class="code">/myapp</b>. More complex manipulations are left as an exercise to the reader.
+First the solution for the case of Apache httpd:
+</p>
+<p>1. Use <a href="http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html"><b class="code">mod_rewrite</b></a>
+to add <b class="code">/myapp</b> to all requests before forwarding to the backend:
+</p>
+<div class="example"><pre>
+# Don't forget the PT flag! (pass through)
+RewriteRule ^/(.*) http://www.mycompany.com/myapp/$1 [PT]
+</pre></div>
+<p>2. Use <a href="http://httpd.apache.org/docs/2.2/mod/mod_headers.html"><b class="code">mod_headers</b></a>
+to rewrite any HTTP redirects your application might return. Such redirects typically contain
+the path components you want to hide, because by the HTTP standard, redirects always need to include
+the full URL, and your application is not aware of the fact, that your clients talk to it via
+some shortened URL. An HTTP redirect is done with a special response header named <b class="code">Location</b>.
+We rewrite the Location headers of our responses:
+</p>
+<div class="example"><pre>
+# Keep protocol, server and port if present,
+# but insert our webapp name before the rest of the URL
+Header edit Location ^([^/]*//[^/]*)?/(.*)$ $1/myapp/$2
+</pre></div>
+<p>3. Use <b class="code">mod_headers</b> again, to rewrite the paths contained in any cookies,
+your application might set. Such cookie paths again might contain
+the path components you want to hide.
+A cookie is set with the HTTP response header named <b class="code">Set-Cookie</b>.
+We rewrite the Set-Cookie headers of our responses:
+</p>
+<div class="example"><pre>
+# Fix the cookie path
+Header edit Set-Cookie "^(.*; Path=/)(.*)" $1/myapp/$2
+</pre></div>
+<p>3. Some applications might contain hard coded absolute links.
+In this case check, whether you find a configuration item for your web framework
+to configure the base URL. If not, your only chance is to parse all response
+content bodies and do search and replace. This is fragile and very resource intensive.
+If you really need to do this, you can use
+<a href="http://apache.webthing.com/mod_proxy_html/"><b class="code">mod_proxy_html</b></a>,
+<a href="http://httpd.apache.org/docs/2.2/mod/mod_substitute.html"><b class="code">mod_substitute</b></a>
+or <a href="http://blogs.sun.com/basant/entry/using_mod_sed_to_filter"><b class="code">mod_sed</b></a>
+for this task.
+</p>
+<p>If you are using Microsoft IIS as a web server, the ISAPI plugin provides a way
+of doing the first step with a builtin feature. You define a mapping file for simple prefix
+changes like this:
+</p>
+<div class="example"><pre>
+# Add a context prefix to all requests ...
+/=/myapp/
+# ... or change some prefix ...
+/oldapp/=/myapp/
+</pre></div>
+<p>and then put the name of the file in the <b class="code">rewrite_rule_file</b> entry of the registry or your
+<b class="code">isapi_redirect.properties</b> file. In you <b class="code">uriworkermap.properties</b> file, you
+still need to map the URLs as they are before rewriting!
+</p>
+<p>More complex rewrites can be done using the same file, but with regular expressions. A leading
+tilde sign '<b class="code">~</b>', indicates, that you are using a regular expression:
+</p>
+<div class="example"><pre>
+# Use a regular expression rewrite
+~/oldapps([0-9]*)/=/newapps$1/
+</pre></div>
+<p>There is no support for Steps 2 (rewriting redirect responses) or 3 (rewriting cookie paths).
+</p>
+</blockquote></td></tr></table>
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="URL Encoding"><strong>URL Encoding</strong></a></font></td></tr><tr><td><blockquote>
+<p>Some types of problems are triggered by the use of encoded URLs
+(see <a href="http://en.wikipedia.org/wiki/Percent-encoding">percent encoding</a>).
+For the same location there exist
+a lot of different URLs which are equivalent. The reverse proxy needs to inspect the URL in order
+to apply its own authentication rules and to decide, to which backend it should send the request
+(or whether it should handle it itself). Therefore the request URL first is normalized:
+percent encoded characters are decoded, <b class="code">/./</b> is replaced by <b class="code">/</b>,
+<b class="code">/XXX/../</b> is replaced by <b class="code">/</b> and similar manipulations of the URL are done.
+After that, the web server might apply rewrite rules to further change the URL in less obvious ways.
+Finally there is no more way to put the resulting URL in an encoding, which is "similar" to
+the one which was used for the original URL.
+</p>
+<p>
+For historical reasons, there have been several alternatives, how mod_jk and the ISAPI
+plugin encoded the resulting URL before sending it to the backend. They could be chosen via
+<b class="code">JkOptions</b> (Apache httpd) or <b class="code">uri_select</b> (ISAPI). None of those historical
+encodings are recommended, because they have either negative functionality implications or
+pose a security risk. The default encoding since version 1.2.24 is <b class="code">ForwardURIProxy</b>
+(Apache httpd) or <b class="code">proxy</b> (ISAPI) and it is strongly recommended to keep the default
+and remove all old explicit settings.
+</p>
+</blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Request Attributes"><strong>Request Attributes</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+You can also add more attributes to any request you are forwarding when using Apache httpd.
+For this use the <b class="code">JkEnvVar</b> directive (for details see the
+<a href="../../reference/apache.html">Apache reference</a> page). Such request attributes can be
+retrieved on the Tomcat side via request.getAttribute(attributeName).
+Note that their names will not be listed in request.getAttributeNames()!
+</p>
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright &copy; 1999-2011, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html> \ No newline at end of file
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/docs/generic_howto/printer/quick.html b/rubbos/app/tomcat-connectors-1.2.32-src/docs/generic_howto/printer/quick.html
new file mode 100644
index 00000000..c9d95c9b
--- /dev/null
+++ b/rubbos/app/tomcat-connectors-1.2.32-src/docs/generic_howto/printer/quick.html
@@ -0,0 +1,130 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>The Apache Tomcat Connector - Generic HowTo - Quick Start HowTo</title><meta name="author" value="Henri Gomez"><meta name="email" value="hgomez@apache.org"><link href="../../style.css" type="text/css" rel="stylesheet"></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="4"><!--PAGE HEADER--><tr><td colspan="2"><!--TOMCAT LOGO--><a href="http://tomcat.apache.org/"><img src="../../images/tomcat.gif" align="left" alt="Apache Tomcat" border="0"></a><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="http://www.apache.org/images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><tr><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left"><table border="0" width="100%" cellspacing="4"><tr><td align="left" valign="top"><h1>The Apache Tomcat Connector - Generic HowTo</h1><h2>Quick Start HowTo</h2></td><td align="right" valign="top" nowrap="true"><img src="../../images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+ This document describes the configuration files used by JK on the
+ Web Server side for the 'impatient':
+ <ul>
+ <li>
+ <b>workers.properties</b> is a mandatory file used by the webserver and which
+ is the same for all JK implementations (Apache/IIS/NES).
+ </li>
+ <li>
+ <b>web server</b> add-ons to be set on the webserver side.
+ </li>
+ </ul>
+</p>
+<p>
+ We'll give here minimum servers configuration and an example <b>workers.properties</b>
+ to be able to install and check quickly your configuration.
+</p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Minimum workers.properties"><strong>Minimum workers.properties</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+ Here is a minimum <b>workers.properties</b>, using just ajp13 to connect your Apache webserver
+ to the Tomcat engine, complete documentation is available in <a href="workers.html">Workers HowTo</a>.
+</p>
+<p>
+<div class="example"><pre>
+
+ # Define 1 real worker using ajp13
+ worker.list=worker1
+ # Set properties for worker1 (ajp13)
+ worker.worker1.type=ajp13
+ worker.worker1.host=localhost
+ worker.worker1.port=8009
+
+</pre></div>
+</p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Minimum Apache web server configuration"><strong>Minimum Apache web server configuration</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+ Here is a minimum information about Apache configuration, a
+ more complete <a href="../../webserver_howto/apache.html">separate HowTo for Apache</a> is available.
+</p>
+<p>
+ You should first have <b>mod_jk.so</b> (unix) or <b>mod_jk.dll</b> (Windows) installed
+ in your Apache module directory (see your Apache documentation to locate it).
+</p>
+<p>
+ Usual locations for modules directory on Unix:
+ <ul>
+ <li>/usr/lib/apache/</li>
+ <li>/usr/lib/apache2/</li>
+ <li>/usr/local/apache/libexec/</li>
+ </ul>
+</p>
+<p>
+ Usual locations for modules directory on Windows :
+ <ul>
+ <li>C:\Program Files\Apache Group\Apache\modules\</li>
+ <li>C:\Program Files\Apache Group\Apache2\modules\</li>
+ </ul>
+</p>
+<p>
+ You'll find a link to prebuilt binaries
+ <a href="http://tomcat.apache.org/download-connectors.cgi/">here</a>
+</p>
+<p>
+ Here is the minimum which should be set in <b>httpd.conf</b> directly or
+ included from another file:
+</p>
+<p>
+ Usual locations for configuration directory on Unix:
+ <ul>
+ <li>/etc/httpd/conf/</li>
+ <li>/etc/httpd2/conf/</li>
+ <li>/usr/local/apache/conf/</li>
+ </ul>
+</p>
+<p>
+ Usual locations for configuration directory on Windows :
+ <ul>
+ <li>C:\Program Files\Apache Group\Apache\conf\</li>
+ <li>C:\Program Files\Apache Group\Apache2\conf\</li>
+ </ul>
+</p>
+<p>
+<div class="example"><pre>
+
+ # Load mod_jk module
+ # Update this path to match your modules location
+ LoadModule jk_module libexec/mod_jk.so
+ # Declare the module for &lt;IfModule directive&gt; (remove this line on Apache 2.x)
+ AddModule mod_jk.c
+ # Where to find workers.properties
+ # Update this path to match your conf directory location (put workers.properties next to httpd.conf)
+ JkWorkersFile /etc/httpd/conf/workers.properties
+ # Where to put jk shared memory
+ # Update this path to match your local state directory or logs directory
+ JkShmFile /var/log/httpd/mod_jk.shm
+ # Where to put jk logs
+ # Update this path to match your logs directory location (put mod_jk.log next to access_log)
+ JkLogFile /var/log/httpd/mod_jk.log
+ # Set the jk log level [debug/error/info]
+ JkLogLevel info
+ # Select the timestamp log format
+ JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
+ # Send everything for context /examples to worker named worker1 (ajp13)
+ JkMount /examples/* worker1
+
+</pre></div>
+</p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Minimum IIS web server configuration"><strong>Minimum IIS web server configuration</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+ A separate <a href="../../webserver_howto/iis.html">HowTo for the IIS web server</a> is available.
+</p>
+<p class="todo">
+ This paragraph has not been written yet, but <b>you</b> can contribute to it.
+ </p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Minimum NES/iPlanet/Sun web server configuration"><strong>Minimum NES/iPlanet/Sun web server configuration</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+ A separate <a href="../../webserver_howto/nes.html">HowTo for the Netscape/iPlanet/Sun web server</a> is available.
+<p class="todo">
+ This paragraph has not been written yet, but <b>you</b> can contribute to it.
+ </p>
+</p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Test your configuration"><strong>Test your configuration</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+ (Re)start the web server and browse to the <a href="http://localhost/examples/">http://localhost/examples/</a>
+</p>
+
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright &copy; 1999-2011, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html> \ No newline at end of file
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/docs/generic_howto/printer/timeouts.html b/rubbos/app/tomcat-connectors-1.2.32-src/docs/generic_howto/printer/timeouts.html
new file mode 100644
index 00000000..17ab68fe
--- /dev/null
+++ b/rubbos/app/tomcat-connectors-1.2.32-src/docs/generic_howto/printer/timeouts.html
@@ -0,0 +1,373 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>The Apache Tomcat Connector - Generic HowTo - Timeouts HowTo</title><meta name="author" value="Rainer Jung"><meta name="email" value="rjung@apache.org"><link href="../../style.css" type="text/css" rel="stylesheet"></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="4"><!--PAGE HEADER--><tr><td colspan="2"><!--TOMCAT LOGO--><a href="http://tomcat.apache.org/"><img src="../../images/tomcat.gif" align="left" alt="Apache Tomcat" border="0"></a><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="http://www.apache.org/images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><tr><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left"><table border="0" width="100%" cellspacing="4"><tr><td align="left" valign="top"><h1>The Apache Tomcat Connector - Generic HowTo</h1><h2>Timeouts HowTo</h2></td><td align="right" valign="top" nowrap="true"><img src="../../images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>Setting communication timeouts is very important to improve the
+communication process. They help to detect problems and stabilise
+a distributed system. JK can use several different timeout types, which
+can be individually configured. For historical reasons, all of them are
+disabled by default. This HowTo explains their use and gives
+hints how to find appropriate values.
+</p>
+<p>All timeouts can be configured in the workers.properties file.
+For a complete reference of all worker configuration
+items, please consult the worker <a href="../../reference/workers.html">reference</a>.
+This page assumes, that you are using at least version 1.2.16 of JK.
+Dependencies on newer versions will be mentioned where necessary.
+</p>
+<p><font color="#ff0000">
+Do not set timeouts to extreme values. Very small timeouts will likely
+be counterproductive.
+</font></p>
+<p><font color="#ff0000">
+Long Garbage Collection pauses on the backend do not make a good
+fit with some timeouts. Try to optimise your Java memory and GC settings.
+</font></p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="JK Timeout Attributes"><strong>JK Timeout Attributes</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="CPing/CPong"><strong>CPing/CPong</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+CPing/CPong is our notion for using small test packets to check the
+status of backend connections. JK can use such test packets directly after establishing
+a new backend connection (connect mode) and also directly before each request gets
+send to a backend (prepost mode).
+Starting with version 1.2.27 it can also be used when a connection was idle
+for a long time (interval mode).
+The maximum waiting time (timeout) for a CPong answer to a CPing and the idle
+time in interval mode can be configured.
+</p>
+<p>
+The test packets will be answered by the backend very fast with a minimal amount of
+needed processing resources. A positive answer tells us, that the backend can be reached
+and is actively processing requests. It does not detect, if some context is deployed
+and working. The benefit of CPing/CPong is a fast detection of a communication
+problem with the backend. The downside is a slightly increased latency.
+</p>
+<p>
+The worker attribute <b>ping_mode</b> can be set to a combination of characters
+to determine, in which situations test packets are used:
+<ul>
+<li><b>C</b>: connect mode, timeout <b>ping_timeout</b> overwritten by <b>connect_timeout</b></li>
+<li><b>P</b>: prepost mode, timeout <b>ping_timeout</b> overwritten by <b>prepost_timeout</b></li>
+<li><b>I</b>: interval mode, timeout <b>ping_timeout</b>, idle time <b>connection_ping_interval</b></li>
+<li><b>A</b>: all modes</li>
+</ul>
+</p>
+<p>
+Multiple values must be concatenated without any separator characters.
+We recommend using all CPing tests. If your application is very latency sensitive, then
+you should only use the combination of connect and interval mode.
+</p>
+<p>
+Activating the CPing probing via <b>ping_mode</b> has been added in version 1.2.27.
+For older versions only the connect and prepost modes exist and must be activated by
+explicitely setting <b>connect_timeout</b> and <b>prepost_timeout</b>.
+</p>
+<p>
+The worker attribute <b>ping_timeout</b> sets the default wait timeout
+in milliseconds for CPong for all modes. By default the value is "10000"
+milliseconds. The value only gets used, if you activate CPing/Cpong probes
+via <b>ping_mode</b>. The default value should be fine, except if you experience
+very long Java garbage collection pauses.
+Depending on your network latency and stability, good custom values
+often are between 5000 and 15000 milliseconds.
+You can overwrite the timeout used for connect and prepost mode with
+<b>connect_timeout</b> and <b>prepost_timeout</b>.
+Remember: don't use extremely small values.
+</p>
+<p>
+The worker attribute <b>connect_timeout</b> sets the wait timeout
+in milliseconds for CPong during connection establishment. You can use it
+if you want to overwrite the general timeout set with <b>ping_timeout</b>.
+To use connect mode CPing, you need to enable it via <b>ping_mode</b>.
+Since JK usually uses persistent connections, opening new connections is a
+rare event. We therefore recommend activating connect mode.
+Depending on your network latency and stability, good values often
+are between 5000 and 15000 milliseconds.
+Remember: don't use extremely small values.
+</p>
+<p>
+The worker attribute <b>prepost_timeout</b> sets the wait timeout
+in milliseconds for CPong before request forwarding. You can use it
+if you want to overwrite the general timeout set with <b>ping_timeout</b>.
+To use prepost mode CPing, you need to enable it via <b>ping_mode</b>.
+Activating this type of CPing/CPong adds a small latency to each
+request. Usually this is small enough and the benefit of CPing/CPong is more important.
+So in general we also recommend using <b>prepost_timeout</b>.
+Depending on your network latency and stability, good values often
+are between 5000 and 10000 milliseconds.
+Remember: don't use extremely small values.
+</p>
+<p>
+Until version 1.2.27 <b>ping_mode</b> and <b>ping_timeout</b> did not
+exist and to enable connect or prepost mode CPing you had to set <b>connect_timeout</b>
+respectively <b>prepost_timeout</b> to some reasonable positive value.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Low-Level TCP Timeouts"><strong>Low-Level TCP Timeouts</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+Some platforms allow to set timeouts for all operations on TCP sockets.
+This is available for Linux and Windows, other platforms do not support this,
+e.g. Solaris. If your platform supports TCP send and receive timeouts,
+you can set them using the worker attribute <b>socket_timeout</b>.
+You can not set the two timeouts to different values.
+</p>
+<p>
+JK will accept this attribute even if your platform does not support
+socket timeouts. In this case setting the attribute will have no effect.
+By default the value is "0" and the timeout is disabled.
+You can set the attribute to some seconds value (not: milliseconds).
+JK will then set the send and the receive timeouts of the backend
+connections to this value. The timeout is low-level, it is
+used for each read and write operation on the socket individually.
+</p>
+<p>
+Using this attribute will make JK react faster to some types of network problems.
+Unfortunately socket timeouts have negative side effects, because for most
+platforms, there is no good way to recover from such a timeout, once it fired.
+For JK there is no way to decide, if this timeout fired because of real network
+problems, or only because it didn't receive an answer packet from a backend in time.
+So remember: don't use extremely small values.
+</p>
+<p>
+For the general case of connection establishment you can use
+<b>socket_connect_timeout</b>. It takes a millisecond value and works
+on most platforms, even if <b>socket_timeout</b> is not supported.
+We recommend using <b>socket_connect_timeout</b> because in some network
+failure situations failure detection during connection establishment
+can take several minutes due to TCP retransmits. Depending on the quality
+of your network a timeout somewhere between 1000 and 5000 milliseconds
+should be fine. Note that <b class="code">socket_timeout</b> is in seconds, and
+<b class="code">socket_connect_timeout</b> in milliseconds.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Connection Pools and Idle Timeouts"><strong>Connection Pools and Idle Timeouts</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+JK handles backend connections in a connection pool per web server process.
+The connections are used in a persistent mode. After a request completed
+successfully we keep the connection open and wait for the next
+request to forward. The connection pool is able to grow according
+to the number of threads that want to forward requests in parallel.
+</p>
+<p>
+Most applications have a varying load depending on the hour of the day
+or the day of the month. Other reasons for a growing connection pool
+would be temporary slowness of backends, leading to an increasing
+congestion of the frontends like web servers. Many backends use a dedicated
+thread for each incoming connection they handle. So usually one wants the
+connection pool to shrink, if the load diminishes.
+</p>
+<p>
+JK allows connections in the pool to get closed after some idle time.
+This maximum idle time can be configured with the attribute
+<b>connection_pool_timeout</b> which is given in units of seconds.
+The default value is "0", which disables closing idle connections.
+</p>
+<p>
+We generally recommend values around 10 minutes, so setting
+<b>connection_pool_timeout</b> to 600 (seconds). If you use this attribute,
+please also set the attribute <b>connectionTimeout</b> in the AJP
+Connector element of your Tomcat server.xml configuration file to
+an analogous value. <b>Caution</b>: connectionTimeout is in milliseconds.
+So if you set JK connection_pool_timeout to 600, you should set Tomcat
+connectionTimeout to 600000.
+</p>
+<p>
+JK connections do not get closed immediately after the timeout passed.
+Instead there is an automatic internal maintenance task
+running every 60 seconds, that checks the idle status of all connections.
+The 60 seconds interval
+can be adjusted with the global attribute worker.maintain. We do not
+recommend to change this value, because it has a lot of side effects.
+Until version 1.2.26, the maintenance task only runs, if requests get
+processed. So if your web server has processes that do not receive any
+requests for a long time, there is no way to close the idle connections
+in its pool. Starting with version 1.2.27 you can configure an independent
+watchdog thread when using Apache 2.x with threaded APR or IIS.
+</p>
+<p>
+The maximum connection pool size can be configured with the
+attribute <b>connection_pool_size</b>. We generally do not recommend
+to use this attribute in combination with Apache httpd. For
+Apache httpd we automatically detect the number of threads per
+process and set the maximum pool size to this value. For IIS we use
+a default value of 250 (before version 1.2.20: 10),
+for the Sun Web Server the default is "1".
+We strongly recommend adjusting this value for IIS and the Sun Web Server
+to the number of requests one web server process should
+be able to send to a backend in parallel. You should measure how many connections
+you need during peak hours without performance problems, and then add some
+percentage depending on your growth rate etc. Finally you should check,
+whether your web server processes are able to use at least as many threads,
+as you configured as the pool size.
+</p>
+<p>
+The JK attribute <b>connection_pool_minsize</b> defines,
+how many idle connections remain when the pool gets shrunken.
+By default this is half of the maximum pool size.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Firewall Connection Dropping"><strong>Firewall Connection Dropping</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+One particular problem with idle connections comes from firewalls, that
+are often deployed between the web server layer and the backend.
+Depending on their configuration, they will silently drop
+connections from their status table if they are idle for to long.
+</p>
+<p>
+From the point of view of JK and of the web server, the other side
+simply doesn't answer any traffic. Since TCP is a reliable protocol
+it detects the missing TCP ACKs and tries to resend the packets for
+a relatively long time, typically several minutes.
+</p>
+<p>
+Many firewalls will allow connection closing, even if they dropped
+the connection for normal traffic. Therefore you should always use
+<a href="#Connection Pools and Idle Timeouts">connection_pool_timeout and
+connection_pool_minsize</a> on the JK side
+and connectionTimeout on the Tomcat side.
+</p>
+<p>
+Furthermore using the boolean attribute <b>socket_keepalive</b> you can
+set a standard socket option, that automatically sends TCP keepalive packets
+after some idle time on each connection. By default this is set to "False".
+If you suspect idle connection drops by firewalls you should set this to
+"True".
+</p>
+<p>
+Unfortunately the default intervals and algorithms for these packets
+are platform specific. You might need to inspect TCP tuning options for
+your platform on how to control TCP keepalive.
+Often the default intervals are much longer than the firewall timeouts
+for idle connections. Nevertheless we recommend talking to your firewall
+administration and your platform administration in order to make them agree
+on good configuration values for the firewall and the platform TCP tuning.
+</p>
+<p>
+In case none of our recommendations help and you are definitively having
+problems with idle connection drops, you can disable the use of persistent
+connections when using JK together with Apache httpd. For this you set
+"JkOptions +DisableReuse" in your Apache httpd configuration.
+This will have a huge negative performance impact!
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Reply Timeout"><strong>Reply Timeout</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+JK can also use a timeout on request replies. This timeout does not
+measure the full processing time of the response. Instead it controls,
+how much time between consecutive response packets is allowed.
+</p>
+<p>
+In most cases, this is what one actually wants. Consider for example
+long running downloads. You would not be able to set an effective global
+reply timeout, because downloads could last for many minutes.
+Most applications though have limited processing time before starting
+to return the response. For those applications you could set an explicit
+reply timeout. Applications that do not harmonise with reply timeouts
+are batch type applications, data warehouse and reporting applications
+which are expected to observe long processing times.
+</p>
+<p><font color="#ff0000">
+If JK aborts waiting for a response, because a reply timeout fired,
+there is no way to stop processing on the backend. Although you free
+processing resources in your web server, the request
+will continue to run on the backend - without any way to send back a
+result once the reply timeout fired.
+</font></p>
+<p>
+JK uses the worker attribute <b>reply_timeout</b> to set reply timeouts.
+The default value is "0" (timeout disabled) and you can set it to any
+millisecond value.
+</p>
+<p>
+In combination with Apache httpd, you can also set a more flexible reply_timeout
+using an httpd environment variable. If you set the variable JK_REPLY_TIMEOUT
+to some integer value, this value will be used instead of the value in
+the worker configuration. This way you can set reply timeouts more flexible
+with mod_setenvif and mod_rewrite depending on URI, query string etc.
+If the environment variable JK_REPLY_TIMEOUT is not set, or is set to a
+negative value, the default reply timeout of the worker will be used. If
+JK_REPLY_TIMEOUT contains the value "0", then the reply timeout will be disabled
+for the request.
+</p>
+<p>
+In combination with a load balancing worker, JK will disable a member
+worker of the load balancer if a reply timeout fires. The worker will then
+no longer be used until it gets recovered during the next automatic
+maintenance task. Starting with JK 1.2.24 you can improve this behaviour using
+<b><a href="../../reference/workers.html">max_reply_timeouts</a></b>. This
+attribute will allow occasional long running requests without disabling the
+worker. Only if those requests happen to often, the worker gets disabled by the
+load balancer.
+</p>
+</blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Load Balancer Error Detection"><strong>Load Balancer Error Detection</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Local and Global Error States"><strong>Local and Global Error States</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+A load balancer worker does not only have the ability to balance load.
+It also handles stickyness and failover of requests in case of errors.
+When a load balancer detects an error on one of its members, it needs to
+decide, whether the error is serious, or only a temporary error or maybe
+only related to the actual request that was processed. Temporary errors
+are called local errors, serious errors will be called global errors.
+</p>
+<p>
+If the load balancer decides that a backend should be put into the global error
+state, then the web server will not send any more requests there. If no session
+replication is used, this means that all user sessions located on the respective
+backend are no longer available. The users will be send to another backend
+and will have to login again. So the global error state is not transparent to the
+users. The application is still available, but users might loose some work.
+</p>
+<p>
+In some cases the decision between local error and global error is easy.
+For instance if there is an error sending back the response to the client (browser),
+then it is very unlikely that the backend is broken.
+So this situation is a typical example of a local error.
+</p>
+<p>
+Some situations are harder to decide though. If the load balancer can't establish
+a new connection to a backend, it could be because of a temporary overload situation
+(so no more free threads in the backend), or because the backend isn't alive any more.
+Depending on the details, the right state could either be local error or global error.
+</p>
+</blockquote></td></tr></table>
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Error Escalation Time"><strong>Error Escalation Time</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+Until version 1.2.26 most errors were interpreted as global errors.
+Starting with version 1.2.27 many errors which were previously interpreted as global
+were switched to being local whenever the backend is still busy. Busy means, that
+other concurrent requests are send to the same backend (successful or not).
+</p>
+<p>
+In many cases there is no perfect way of making the decision
+between local and global error. The load balancer simply doesn't have enough information.
+In version 1.2.28 you can now tune, how fast the load balancer switches from local error to
+global error. If a member of a load balancer stays in local error state for too long,
+the load balancer will escalate it into global error state.
+</p>
+<p>
+The time tolerated in local error state is controlled by the load balancer attribute
+<b>error_escalation_time</b> (in seconds). The default value is half of <b>recover_time</b>,
+so unless you changed <b>recover_time</b> the default is 30 seconds.
+</p>
+<p>
+Using a smaller value for <b>error_escalation_time</b> will make the load balancer react
+faster to serious errors, but also carries the risk of more often loosing sessions
+in not so serious situations. You can lower <b>error_escalation_time</b> down to 0 seconds,
+which means all local errors which are potentially serious are escalated to global errors
+immediately.
+</p>
+<p>
+Note that without good basic error detection the whole escalation procedure is useless.
+So you should definitely use <b>socket_connect_timeout</b> and activate CPing/CPong
+with <b>ping_mode</b> and <b>ping_timeout</b> before thinking about also tuning
+<b>error_escalation_time</b>.
+</p>
+</blockquote></td></tr></table>
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright &copy; 1999-2011, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html> \ No newline at end of file
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/docs/generic_howto/printer/workers.html b/rubbos/app/tomcat-connectors-1.2.32-src/docs/generic_howto/printer/workers.html
new file mode 100644
index 00000000..3e8c3570
--- /dev/null
+++ b/rubbos/app/tomcat-connectors-1.2.32-src/docs/generic_howto/printer/workers.html
@@ -0,0 +1,408 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>The Apache Tomcat Connector - Generic HowTo - Workers HowTo</title><meta name="author" value="Henri Gomez"><meta name="email" value="hgomez@apache.org"><meta name="author" value="Gal Shachor"><meta name="email" value="shachor@il.ibm.com"><meta name="author" value="Mladen Turk"><meta name="email" value="mturk@apache.org"><link href="../../style.css" type="text/css" rel="stylesheet"></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="4"><!--PAGE HEADER--><tr><td colspan="2"><!--TOMCAT LOGO--><a href="http://tomcat.apache.org/"><img src="../../images/tomcat.gif" align="left" alt="Apache Tomcat" border="0"></a><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="http://www.apache.org/images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><tr><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left"><table border="0" width="100%" cellspacing="4"><tr><td align="left" valign="top"><h1>The Apache Tomcat Connector - Generic HowTo</h1><h2>Workers HowTo</h2></td><td align="right" valign="top" nowrap="true"><img src="../../images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+A Tomcat worker is a Tomcat instance that is waiting to execute servlets on behalf of some web server.
+For example, we can have a web server such as Apache forwarding servlet requests to a
+Tomcat process (the worker) running behind it.
+</p>
+<p>
+The scenario described above is a very simple one;
+in fact one can configure multiple Tomcat workers to serve servlets on
+behalf of a certain web server.
+The reasons for such configuration can be:
+</p>
+<ul>
+<li>
+We want different contexts to be served by different Tomcat workers to provide a
+development environment where all the developers share the same web server but own a Tomcat worker of their own.
+</li>
+<li>
+We want different virtual hosts served by different Tomcat processes to provide a
+clear separation between sites belonging to different companies.
+</li>
+<li>
+We want to provide load balancing, meaning run multiple Tomcat workers each on a
+machine of its own and distribute the requests between them.
+</li>
+</ul>
+
+<p>
+There are probably more reasons for having multiple workers but I guess that this list is enough...
+Tomcat workers are defined in a properties file dubbed workers.properties and this tutorial
+explains how to work with it.
+</p>
+
+<p>
+This document was originally part of <b>Tomcat: A Minimalistic User's Guide</b> written by Gal Shachor,
+but has been split off for organisational reasons.
+</p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Defining Workers"><strong>Defining Workers</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+Defining workers to the Tomcat web server plugin can be done using a properties file
+(a sample file named workers.properties is available in the conf/ directory).
+</p>
+
+<p>
+the file contains entries of the following form:
+</p>
+
+<p>
+<b>worker.list</b>=&lt;a comma separated list of worker names&gt;
+</p>
+
+<div class="example"><pre>
+ # the list of workers
+ worker.list= worker1, worker2
+</pre></div>
+
+<p>
+When starting up, the web server plugin will instantiate the workers whose name appears in the
+<b>worker.list</b> property, these are also the workers to whom you can map requests. The directive can be used multiple times.
+</p>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Workers Type"><strong>Workers Type</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+Each named worker should also have a few entries to provide additional information on his behalf.
+This information includes the worker's type and other related worker information.
+Currently the following worker types that exists are (JK 1.2.5):
+</p>
+
+<table>
+ <tr><th>Type</th><th>Description</th></tr>
+ <tr><td>ajp12</td><td>This worker knows how to forward requests to out-of-process Tomcat workers using the ajpv12 protocol.</td></tr>
+ <tr><td>ajp13</td><td>This worker knows how to forward requests to out-of-process Tomcat workers using the ajpv13 protocol.</td></tr>
+ <tr><td>jni</td><td>DEPRECATED: This worker knows how to forward requests to in-process Tomcat workers using JNI.</td></tr>
+ <tr><td>lb</td><td>This is a load-balancing worker; it knows how to provide round-robin based sticky load balancing with a certain level of fault-tolerance.</td></tr>
+ <tr><td>status</td><td>This is a status worker for managing load balancers.</td></tr>
+</table>
+
+<p>
+Defining workers of a certain type should be done with the following property format:
+</p>
+
+<p>
+<b>worker</b>.<b>worker name</b>.<b>type</b>=&lt;worker type&gt;
+Where worker name is the name assigned to the worker and the worker type is one of the four types defined
+in the table (a worker name may only contain any space the characters [a-zA-Z0-9\-_]).
+</p>
+
+<div class="example"><pre>
+ # Defines a worker named "local" that uses the ajpv12 protocol to forward requests to a Tomcat process.
+ worker.local.type=ajp12
+ # Defines a worker named "remote" that uses the ajpv13 protocol to forward requests to a Tomcat process.
+ worker.remote.type=ajp13
+ # Defines a worker named "loadbalancer" that loadbalances several Tomcat processes transparently.
+ worker.loadbalancer.type=lb
+</pre></div>
+
+</blockquote></td></tr></table>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Setting Worker Properties"><strong>Setting Worker Properties</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+After defining the workers you can also specify properties for them.
+Properties can be specified in the following manner:
+</p>
+
+<p>
+worker.&lt;worker name&gt;.&lt;property&gt;=&lt;property value&gt;
+</p>
+
+Each worker has a set of properties that you can set as specified in the following subsections:
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="ajp12 Worker properties"><strong>ajp12 Worker properties</strong></a></font></td></tr><tr><td><blockquote>
+<p><p><font color="#ff0000">
+The <b>ajp12</b> has been <b>deprecated</b> with Tomcat 3.3.x and you should use instead
+<b>ajp13</b> which is the only ajp protocol known by Tomcat 4.x and 5 and 5.5 and Tomcat 6.
+</font></p></p>
+<p>
+The ajp12 typed workers forward requests to out-of-process Tomcat workers
+using the ajpv12 protocol over TCP/IP sockets.
+</p>
+
+<p>
+the ajp12 worker properties are :
+</p>
+
+<p>
+<b>host</b> property sets the host where the Tomcat worker is listening for ajp12 requests.
+</p>
+
+<p>
+<b>port</b> property sets the port where the Tomcat worker is listening for ajp12 requests
+</p>
+
+<p>
+<b>lbfactor</b> property is used when working with a load balancer worker, this is the load-balancing factor for the worker.
+We'll see more on this in the <a href="../../generic_howto/loadbalancers.html">lb worker</a> section.
+</p>
+
+<div class="example"><pre>
+ # worker "worker1" will talk to Tomcat listening on machine www.x.com at port 8007 using 2 lb factor
+ worker.worker1.host=www.x.com
+ worker.worker1.port=8007
+ worker.worker1.lbfactor=2
+</pre></div>
+
+<p>
+Notes: In the ajpv12 protocol, connections are created, used and then closed at each request.
+The default port for ajp12 is 8007
+</p>
+
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="ajp13 Worker properties"><strong>ajp13 Worker properties</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+The ajp13 typed workers forward requests to out-of-process Tomcat workers using the ajpv13 protocol over TCP/IP sockets.
+The main difference between ajpv12 and ajpv13 are that:
+<ul>
+<li>
+ajpv13 is a more binary protocol and it tries to compress some of the request data by coding
+frequently used strings as small integers.
+</li>
+<li>
+ajpv13 reuses open sockets and leaves them open for future requests (remember when you've got a Firewall between your
+web server and Tomcat).
+</li>
+<li>
+ajpv13 has special treatment for SSL information so that the container can implement
+SSL related methods such as isSecure().
+</li>
+</ul>
+
+</p>
+
+<p>
+You should note that Ajp13 is now the only out-process protocol supported by Tomcat 4.0.x, 4.1.x, 5.0.x, 5.5.x and 6.
+</p>
+
+
+<div class="example"><pre>
+ # worker "worker2" will talk to Tomcat listening on machine www2.x.com at port 8009 using 3 lb factor
+ worker.worker2.host=www2.x.com
+ worker.worker2.port=8009
+ worker.worker2.lbfactor=3
+ # worker "worker2" uses connections, which will stay no more than 10mn in the connection pool
+ worker.worker2.connection_pool_timeout=600
+ # worker "worker2" ask operating system to send KEEP-ALIVE signal on the connection
+ worker.worker2.socket_keepalive=1
+ # mount can be used as an alternative to the JkMount directive
+ worker.worker2.mount=/contexta /contexta/* /contextb /contextb/*
+</pre></div>
+
+<p>
+Notes: In the ajpv13 protocol, the default port is 8009
+</p>
+
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="lb Worker properties"><strong>lb Worker properties</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+The load-balancing worker does not really communicate with Tomcat workers.
+Instead it is responsible for the management of several "real" workers.
+This management includes:
+</p>
+
+<ul>
+<li>
+Instantiating the workers in the web server.
+</li>
+<li>
+Using the worker's load-balancing factor, perform weighed-round-robin load balancing where
+high lbfactor means stronger machine (that is going to handle more requests)
+</li>
+<li>
+Keeping requests belonging to the same session executing on the same Tomcat worker.
+</li>
+<li>
+Identifying failed Tomcat workers, suspending requests to them and instead falling-back on
+other workers managed by the lb worker.
+</li>
+</ul>
+
+<p>
+The overall result is that workers managed by the same lb worker are load-balanced (based on their lbfactor and current user session) and also fall-backed so a single Tomcat process death will not "kill" the entire site.
+The following table specifies some properties that the lb worker can accept:
+<ul>
+<li><b>balance_workers</b> is a comma separated list of workers that the load balancer need to manage.
+As long as these workers should only be used via the load balancer worker,
+there is no need to also put them into the worker.list property.
+This directive can be used multiple times for the same load balancer.</li>
+<li><b>sticky_session</b> specifies whether requests with SESSION ID's should be routed back to the same
+Tomcat worker. Set sticky_session to False when Tomcat is using a Session Manager which
+can persist session data across multiple instances of Tomcat. By default sticky_session is set to True.</li>
+</ul>
+</p>
+
+<div class="example"><pre>
+ # The worker balance1 while use "real" workers worker1 and worker2
+ worker.balance1.balance_workers=worker1, worker2
+</pre></div>
+
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Status Worker properties"><strong>Status Worker properties</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+The status worker does not communicate with Tomcat.
+Instead it is responsible for the load balancer management.
+</p>
+<div class="example"><pre>
+ # Add the status worker to the worker list
+ worker.list=jkstatus
+ # Define a 'jkstatus' worker using status
+ worker.jkstatus.type=status
+</pre></div>
+<p>Next thing is to mount the requests to the jkstatus worker. For Apache
+web servers use the:</p>
+<div class="example"><pre>
+ # Add the jkstatus mount point
+ JkMount /jkmanager/* jkstatus
+</pre></div>
+<p>To obtain a higher level of security use the:</p>
+<div class="example"><pre>
+ # Enable the JK manager access from localhost only
+ &lt;Location /jkmanager/&gt;
+ JkMount jkstatus
+ Order deny,allow
+ Deny from all
+ Allow from 127.0.0.1
+ &lt;/Location&gt;
+</pre></div>
+
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Property file macros"><strong>Property file macros</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+You can define "macros" in the property files.
+These macros let you define properties and later on use them while
+constructing other properties.
+</p>
+
+<div class="example"><pre>
+ # property example, like a network base address
+ mynet=194.226.31
+ # Using the above macro to simplify the address definitions
+ # for a farm of workers.
+ worker.node1.host=$(mynet).11
+ worker.node2.host=$(mynet).12
+ worker.node3.host=$(mynet).13
+</pre></div>
+
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Hierarchical property configuration"><strong>Hierarchical property configuration</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+Workers can reference configurations of other workers.
+If worker "x" references worker "y", then it inherits all
+configuration parameters from "y", except for the ones
+that have explicitly been set for "x".
+</p>
+
+<div class="example"><pre>
+ # worker toe defines some default settings
+ worker.toe.type=ajp13
+ worker.toe.socket_keepalive=true
+ worker.toe.connect_timeout=10000
+ worker.toe.recovery_options=7
+ # workers tic and tac inherit those values
+ worker.tic.reference=worker.toe
+ worker.tac.reference=worker.toe
+</pre></div>
+
+<p>
+Please note, that the reference contains
+the full prefix to the referenced configuration attributes,
+not only the name of the referenced worker.
+</p>
+
+<p>
+References can be nested. Be careful to avoid loops!
+</p>
+
+<p>
+Attributes which are allowed multiple times for a single worker
+can not be merged from a worker and a reference. An attribute
+is only inherited from a reference, if it is not already set
+for the referring worker.
+</p>
+
+<p>
+References are especially useful, when configuring load balancers.
+Try to understand the following two stage references:
+</p>
+
+<div class="example"><pre>
+ # We only use one load balancer
+ worker.list=lb
+ # Let's define some defaults
+ worker.basic.port=8009
+ worker.basic.type=ajp13
+ worker.basic.socket_keepalive=true
+ worker.basic.connect_timeout=10000
+ worker.basic.recovery_options=7
+ # And we use them in two groups
+ worker.lb1.domain=dom1
+ worker.lb1.distance=0
+ worker.lb1.reference=worker.basic
+ worker.lb2.domain=dom2
+ worker.lb2.distance=1
+ worker.lb2.reference=worker.basic
+ # Now we configure the load balancer
+ worker.lb.type=lb
+ worker.lb.method=B
+ worker.lb.balanced_workers=w11,w12,w21,w22
+ worker.w11.host=myhost11
+ worker.w11.reference=worker.lb1
+ worker.w12.host=myhost12
+ worker.w12.reference=worker.lb1
+ worker.w21.host=myhost21
+ worker.w21.reference=worker.lb2
+ worker.w22.host=myhost22
+ worker.w22.reference=worker.lb2
+</pre></div>
+
+</blockquote></td></tr></table>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="A sample worker.properties"><strong>A sample worker.properties</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+Since coping with worker.properties on your own is not an easy thing to do,
+a sample worker.properties file is bundled along JK.
+</p>
+
+<p>
+You could also find here a sample workers.properties defining :
+</p>
+
+<ul>
+<li>
+An ajp12 worker that used the host localhost and the port 8007
+</li>
+<li>
+An ajp13 worker that used the host localhost and the port 8008
+</li>
+<li>
+An lb worker that load balance the ajp12 and ajp13 workers
+</li>
+</ul>
+
+<div class="example"><pre>
+ # Define 3 workers, 2 real workers using ajp12, ajp13, the last one being a loadbalancing worker
+ worker.list=worker1, worker2, worker3
+ # Set properties for worker1 (ajp12)
+ worker.worker1.type=ajp12
+ worker.worker1.host=localhost
+ worker.worker1.port=8007
+ worker.worker1.lbfactor=1
+ # Set properties for worker2 (ajp13)
+ worker.worker2.type=ajp13
+ worker.worker2.host=localhost
+ worker.worker2.port=8009
+ worker.worker2.lbfactor=1
+ worker.worker2.connection_pool_timeout=600
+ worker.worker2.socket_keepalive=1
+ worker.worker2.socket_timeout=60
+ # Set properties for worker3 (lb) which use worker1 and worker2
+ worker.worker3.balance_workers=worker1,worker2
+</pre></div>
+
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright &copy; 1999-2011, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html> \ No newline at end of file
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/docs/generic_howto/proxy.html b/rubbos/app/tomcat-connectors-1.2.32-src/docs/generic_howto/proxy.html
new file mode 100644
index 00000000..01c82500
--- /dev/null
+++ b/rubbos/app/tomcat-connectors-1.2.32-src/docs/generic_howto/proxy.html
@@ -0,0 +1,313 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>The Apache Tomcat Connector - Generic HowTo - Reverse Proxy HowTo</title><meta name="author" value="Rainer Jung"><meta name="email" value="rjung@apache.org"><link href="../style.css" type="text/css" rel="stylesheet"></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="4"><!--PAGE HEADER--><tr><td colspan="2"><!--TOMCAT LOGO--><a href="http://tomcat.apache.org/"><img src="../images/tomcat.gif" align="left" alt="Apache Tomcat" border="0"></a><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="http://www.apache.org/images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><tr><!--LEFT SIDE NAVIGATION--><td width="20%" valign="top" nowrap="true"><p><strong>Links</strong></p><ul><li><a href="../index.html">Docs Home</a></li></ul><p><strong>Reference Guide</strong></p><ul><li><a href="../reference/workers.html">workers.properties</a></li><li><a href="../reference/uriworkermap.html">uriworkermap.properties</a></li><li><a href="../reference/status.html">Status Worker</a></li><li><a href="../reference/apache.html">Apache HTTP Server</a></li><li><a href="../reference/iis.html">IIS</a></li></ul><p><strong>Generic HowTo</strong></p><ul><li><a href="../generic_howto/quick.html">For the impatient</a></li><li><a href="../generic_howto/workers.html">All about workers</a></li><li><a href="../generic_howto/timeouts.html">Timeouts</a></li><li><a href="../generic_howto/loadbalancers.html">Load Balancing</a></li><li><a href="../generic_howto/proxy.html">Reverse Proxy</a></li></ul><p><strong>Webserver HowTo</strong></p><ul><li><a href="../webserver_howto/apache.html">Apache HTTP Server</a></li><li><a href="../webserver_howto/iis.html">IIS</a></li><li><a href="../webserver_howto/nes.html">Netscape/SunOne/Sun</a></li></ul><p><strong>AJP Protocol Reference</strong></p><ul><li><a href="../ajp/ajpv13a.html">AJPv13</a></li><li><a href="../ajp/ajpv13ext.html">AJPv13 Extension Proposal</a></li></ul><p><strong>Miscellaneous Documentation</strong></p><ul><li><a href="../miscellaneous/faq.html">Frequently asked questions</a></li><li><a href="../miscellaneous/changelog.html">Changelog</a></li><li><a href="http://issues.apache.org/bugzilla/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Tomcat+Connectors&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=">Current Tomcat Connectors bugs</a></li><li><a href="../miscellaneous/doccontrib.html">Contribute documentation</a></li><li><a href="../miscellaneous/jkstatustasks.html">JK Status Ant Tasks</a></li><li><a href="../miscellaneous/reporttools.html">Reporting Tools</a></li><li><a href="http://tomcat.apache.org/connectors-doc-archive/jk2/index.html">Old JK/JK2 documentation</a></li></ul><p><strong>News</strong></p><ul><li><a href="../news/20110701.html">2011</a></li><li><a href="../news/20100101.html">2010</a></li><li><a href="../news/20090301.html">2009</a></li><li><a href="../news/20081001.html">2008</a></li><li><a href="../news/20070301.html">2007</a></li><li><a href="../news/20060101.html">2006</a></li><li><a href="../news/20050101.html">2005</a></li><li><a href="../news/20041100.html">2004</a></li></ul></td><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left"><table border="0" width="100%" cellspacing="4"><tr><td align="left" valign="top"><h1>The Apache Tomcat Connector - Generic HowTo</h1><h2>Reverse Proxy HowTo</h2></td><td align="right" valign="top" nowrap="true"><small><a href="printer/proxy.html"><img src="../images/printer.gif" border="0" alt="Printer Friendly Version"><br>print-friendly<br>version
+ </a></small></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>The Apache module mod_jk and its ISAPI and NSAPI variants connect
+a web server to a backend (typically Tomcat) using the AJP protocol.
+The web server receives an HTTP(S) request and the module forwards
+the request to the backend. This function is usually called a gateway
+or a proxy, in the context of HTTP it is called a reverse proxy.
+</p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Typical Problems"><strong>Typical Problems</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>A reverse proxy is not totally transparent to the application on
+the backend. For instance the host name and port the original client
+(e.g. browser) needs to talk to belong to the web server and not to the
+backend, so the reverse proxy talks to a different host name and port.
+When the application on the backend returns content including
+self-referential URLs using its own backend address and port, the
+client will usually not be able to use these URLs.
+</p>
+<p>Another example is the client IP address, which for the web server is the
+source IP of the incoming connection, whereas for the backend the
+connection always comes from the web server. This can be a problem, when
+the client IP is used by the backend application e.g. for security reasons.
+</p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="AJP as a Solution"><strong>AJP as a Solution</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>Most of these problems are automatically handled by the AJP protocol
+and the AJP connectors of the backend. The AJP protocol transports
+this communication metadata and the backend connector presents this
+metadata whenever the application asks for it using Servlet API methods.
+</p>
+<p>The following list contains the communication metadata handled by AJP
+and the ServletRequest/HttpServletRequest API calls which can be used to retrieve them:
+<ul>
+<li>local name: <b class="code">getLocalName()</b> and <b class="code">getLocalAddr</b>.
+This is also equal to <b class="code">getServerName()</b>, unless a <b class="code">Host</b> header
+is contained in the request. In this case the server name is taken from that header.
+</li>
+<li>local port: <b class="code">getLocalPort()</b>
+This is also equal to <b class="code">getServerPort()</b>, unless a <b class="code">Host</b> header
+is contained in the request. In this case the server port is taken from that header
+if it contains an explicit port, or is equal to the default port of the scheme used.
+</li>
+<li>client address: <b class="code">getRemoteAddr()</b>
+</li>
+<li>client port: <b class="code">getRemotePort()</b>
+The remote port was initially not supported. It is available when using mod_jk 1.2.32
+with Apache or IIS (not for the NSAPI plugin) together with Tomcat version at least
+5.5.28, 6.0.20 or 7.0.0. For older versions, <b class="code">getRemotePort()</b>
+will incorrectly return 0 or -1. As a workaround you can forward the remote port by setting
+<b class="code">JkEnvVar REMOTE_PORT</b> and then either using
+<b class="code">request.getAttribute("REMOTE_PORT")</b> instead of <b class="code">getRemotePort()</b>
+or wrapping the request using a filter and overriding <b class="code">getRemotePort()</b> with
+<b class="code">request.getAttribute("REMOTE_PORT")</b>.
+</li>
+<li>client host: <b class="code">getRemoteHost()</b>
+</li>
+<li>authentication type: <b class="code">getAuthType()</b>
+</li>
+<li>remote user: <b class="code">getRemoteUser()</b>,
+if <b class="code">tomcatAuthentication="false"</b>
+</li>
+<li>protocol: <b class="code">getProtocol()</b>
+</li>
+<li>HTTP method: <b class="code">getMethod()</b>
+</li>
+<li>URI: <b class="code">getRequestURI()</b>
+</li>
+<li>HTTPS used: <b class="code">isSecure()</b>, <b class="code">getScheme()</b>
+</li>
+<li>query string: <b class="code">getQueryString()</b>
+</li>
+</ul>
+The following additional SSL-related data will be made available by Apache and forwarded by mod_jk only
+if you set <b class="code">SSLOptions +StdEnvVars</b>. For the certificate information you also need
+to set <b class="code">SSLOptions +ExportCertData</b>.
+<ul>
+<li>SSL cipher: <b class="code">getAttribute(javax.servlet.request.cipher_suite)</b>
+</li>
+<li>SSL key size: <b class="code">getAttribute(javax.servlet.request.key_size)</b>.
+Can be disabled using <b class="code">JkOptions -ForwardKeySize</b>.
+</li>
+<li>SSL client certificate: <b class="code">getAttribute(javax.servlet.request.X509Certificate)</b>.
+If you want the whole certificate chain, then you need to also set <b class="code">JkOptions ForwardSSLCertChain</b>.
+It is likely, that in this case you also need to adjust the maximal AJP packet size
+using the worker attribute <a href="../reference/workers.html">max_packet_size</a>.
+</li>
+<li>SSL session ID: <b class="code">getAttribute(javax.servlet.request.ssl_session)</b>.
+This is for Tomcat, it has not yet been standardized.
+</li>
+</ul>
+</p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Fine Tuning"><strong>Fine Tuning</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>In some situations this is not enough though. Assume there is another
+less clever reverse proxy in front of your web server, for instance an
+HTTP load balancer or similar device which also serves as an SSL accelerator.
+</p>
+<p>Then you are sure that all your clients use HTTPS, but your web server doesn't
+know about that. All it can see is requests coming from the accelerator using
+plain HTTP.
+</p>
+<p>Another example would be a simple reverse proxy in front of your web server,
+so that the client IP address that your web server sees is always the IP address
+of this reverse proxy, and not of the original client. Often such reverse proxies
+generate an additional HTTP header, like <b class="code">X-Forwareded-for</b> which
+contains the original client IP address (or a list of IP addresses, if there are
+more cascading reverse proxies in front). It would be nice, if we could use the
+content of such a header as the client IP address to pass to the backend.
+</p>
+<p>So we might need to manipulate some of the data that AJP sends to the backend.
+When using mod_jk inside Apache httpd you can use several httpd environment
+variables to let mod_jk know, which data it should forward. These environment variables
+can be set by the httpd directives SetEnv or SetEnvIf, but also in a very flexible
+way using mod_rewrite (since httpd 2.x it can not only test against environment
+variables, but also set them).
+</p>
+<p>The following list contains all environment variables mod_jk checks, before
+sending data to the backend:
+<ul>
+<li>JK_LOCAL_NAME: the local name
+</li>
+<li>JK_LOCAL_PORT: the local port
+</li>
+<li>JK_REMOTE_HOST: the client host
+</li>
+<li>JK_REMOTE_ADDR: the client address
+</li>
+<li>JK_AUTH_TYPE: the authentication type
+</li>
+<li>JK_REMOTE_USER: the remote user
+</li>
+<li>HTTPS: On (case-insensitive) to indicate, that HTTPS is used
+</li>
+<li>SSL_CIPHER: the SSL cipher
+</li>
+<li>SSL_CIPHER_USEKEYSIZE: the SSL key size
+</li>
+<li>SSL_CLIENT_CERT: the SSL client certificate
+</li>
+<li>SSL_CLIENT_CERT_CHAIN_: prefix of variable names, containing
+the client cerificate chain
+</li>
+<li>SSL_SESSION_ID: the SSL session ID
+</li>
+</ul>
+</p>
+<p>Remember: in general you don't need to set them. The module retrieves the data automatically
+from the web server. Only in case you want to change this data, you can overwrite it by
+using these variables.
+</p>
+<p>Some of these variables might also be used by other web server modules. All
+variables whose name does not begin with "JK" are set directly by Apache httpd.
+If you want to change the data, but do not want to negatively influence the behaviour
+of other modules, you can change the names of all variables mod_jk uses to private ones.
+For the details see the <a href="../reference/apache.html">Apache reference</a> page.
+</p>
+<p>All variables, that are not SSL-related have only been introduced in version 1.2.27.
+</p>
+<p>Finally there is a shortcut to forward the local IP of the web server as the remote IP.
+This can be useful, e.g. when using the Tomcat remote address valve for allowing connections
+only from registered Apache web servers. This feature is activated by setting
+<b class="code">JkOptions ForwardLocalAddress</b>.
+</p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat AJP Connector Settings"><strong>Tomcat AJP Connector Settings</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>As an alternative to using the environment variables described in the previous section
+(which do only exist when using Apache httpd), you can also configure Tomcat to overwrite
+some of the communications data forwarded by mod_jk. The AJP connector in Tomcat's <b class="code">server.xml</b>
+allows to set the <a href="http://tomcat.apache.org/tomcat-6.0-doc/config/ajp.html#Attributes">following properties</a>:
+<ul>
+<li>proxyName: server name as returned by <b class="code">getServerName()</b>
+</li>
+<li>proxyPort: server port as returned by <b class="code">getServerPort()</b>
+</li>
+<li>scheme: protocol scheme as returned by <b class="code">getScheme()</b>
+</li>
+<li>secure: set to "true", if you wish <b class="code">isSecure()</b> to return "true".
+</li>
+</ul>
+Remember: in general you don't need to set those. AJP automatically handles all cases
+where the web server running mod_jk knows the right data.
+</p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="URL Handling"><strong>URL Handling</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="URL Rewriting"><strong>URL Rewriting</strong></a></font></td></tr><tr><td><blockquote>
+<p>Sometimes one want to change path components of the URLs under which an application
+is available. Especially if a web application is deployed as some context, say <b class="code">/myapp</b>,
+marketing prefers short URLs, so want the application to be directly available under
+<b class="code">http://www.mycompany.com/</b>. Although you can deploy the application as the so-called
+ROOT context, which will be directly available at "/", admins often prefer not to use
+the ROOT context, e.g. because only one application can be the root context (per host).
+</p>
+<p>The procedure to change the URLs in the reverse proxy is tedious, because often
+an application produces self-referential URLs, which then include the path components
+which you tried to hide to the outside world. Nevertheless, if you absolutely need to do it,
+here are the steps.
+</p>
+<p>Case A: You need to make the application available at a simple URL, but it is OK, if
+users proceed using the more complex URLs, as long as they don't have to type them in.
+That's the easy case, and if this suffices to you, you're lucky. Use a simply RedirectMatch
+for Apache httpd:
+</p>
+<div class="example"><pre>
+RedirectMatch ^/$ http://www.mycompany.com/myapp/
+</pre></div>
+<p>Your application will then be available under <b class="code">http://www.mycompany.com/</b>,
+and each visitor will be immediately redirected to the real URL
+<b class="code">http://www.mycompany.com/myapp/</b>
+</p>
+<p>Case B: You need to hide path components for all requests going to the application.
+Here's the recipe for the case, where you want to hide the first path component
+<b class="code">/myapp</b>. More complex manipulations are left as an exercise to the reader.
+First the solution for the case of Apache httpd:
+</p>
+<p>1. Use <a href="http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html"><b class="code">mod_rewrite</b></a>
+to add <b class="code">/myapp</b> to all requests before forwarding to the backend:
+</p>
+<div class="example"><pre>
+# Don't forget the PT flag! (pass through)
+RewriteRule ^/(.*) http://www.mycompany.com/myapp/$1 [PT]
+</pre></div>
+<p>2. Use <a href="http://httpd.apache.org/docs/2.2/mod/mod_headers.html"><b class="code">mod_headers</b></a>
+to rewrite any HTTP redirects your application might return. Such redirects typically contain
+the path components you want to hide, because by the HTTP standard, redirects always need to include
+the full URL, and your application is not aware of the fact, that your clients talk to it via
+some shortened URL. An HTTP redirect is done with a special response header named <b class="code">Location</b>.
+We rewrite the Location headers of our responses:
+</p>
+<div class="example"><pre>
+# Keep protocol, server and port if present,
+# but insert our webapp name before the rest of the URL
+Header edit Location ^([^/]*//[^/]*)?/(.*)$ $1/myapp/$2
+</pre></div>
+<p>3. Use <b class="code">mod_headers</b> again, to rewrite the paths contained in any cookies,
+your application might set. Such cookie paths again might contain
+the path components you want to hide.
+A cookie is set with the HTTP response header named <b class="code">Set-Cookie</b>.
+We rewrite the Set-Cookie headers of our responses:
+</p>
+<div class="example"><pre>
+# Fix the cookie path
+Header edit Set-Cookie "^(.*; Path=/)(.*)" $1/myapp/$2
+</pre></div>
+<p>3. Some applications might contain hard coded absolute links.
+In this case check, whether you find a configuration item for your web framework
+to configure the base URL. If not, your only chance is to parse all response
+content bodies and do search and replace. This is fragile and very resource intensive.
+If you really need to do this, you can use
+<a href="http://apache.webthing.com/mod_proxy_html/"><b class="code">mod_proxy_html</b></a>,
+<a href="http://httpd.apache.org/docs/2.2/mod/mod_substitute.html"><b class="code">mod_substitute</b></a>
+or <a href="http://blogs.sun.com/basant/entry/using_mod_sed_to_filter"><b class="code">mod_sed</b></a>
+for this task.
+</p>
+<p>If you are using Microsoft IIS as a web server, the ISAPI plugin provides a way
+of doing the first step with a builtin feature. You define a mapping file for simple prefix
+changes like this:
+</p>
+<div class="example"><pre>
+# Add a context prefix to all requests ...
+/=/myapp/
+# ... or change some prefix ...
+/oldapp/=/myapp/
+</pre></div>
+<p>and then put the name of the file in the <b class="code">rewrite_rule_file</b> entry of the registry or your
+<b class="code">isapi_redirect.properties</b> file. In you <b class="code">uriworkermap.properties</b> file, you
+still need to map the URLs as they are before rewriting!
+</p>
+<p>More complex rewrites can be done using the same file, but with regular expressions. A leading
+tilde sign '<b class="code">~</b>', indicates, that you are using a regular expression:
+</p>
+<div class="example"><pre>
+# Use a regular expression rewrite
+~/oldapps([0-9]*)/=/newapps$1/
+</pre></div>
+<p>There is no support for Steps 2 (rewriting redirect responses) or 3 (rewriting cookie paths).
+</p>
+</blockquote></td></tr></table>
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="URL Encoding"><strong>URL Encoding</strong></a></font></td></tr><tr><td><blockquote>
+<p>Some types of problems are triggered by the use of encoded URLs
+(see <a href="http://en.wikipedia.org/wiki/Percent-encoding">percent encoding</a>).
+For the same location there exist
+a lot of different URLs which are equivalent. The reverse proxy needs to inspect the URL in order
+to apply its own authentication rules and to decide, to which backend it should send the request
+(or whether it should handle it itself). Therefore the request URL first is normalized:
+percent encoded characters are decoded, <b class="code">/./</b> is replaced by <b class="code">/</b>,
+<b class="code">/XXX/../</b> is replaced by <b class="code">/</b> and similar manipulations of the URL are done.
+After that, the web server might apply rewrite rules to further change the URL in less obvious ways.
+Finally there is no more way to put the resulting URL in an encoding, which is "similar" to
+the one which was used for the original URL.
+</p>
+<p>
+For historical reasons, there have been several alternatives, how mod_jk and the ISAPI
+plugin encoded the resulting URL before sending it to the backend. They could be chosen via
+<b class="code">JkOptions</b> (Apache httpd) or <b class="code">uri_select</b> (ISAPI). None of those historical
+encodings are recommended, because they have either negative functionality implications or
+pose a security risk. The default encoding since version 1.2.24 is <b class="code">ForwardURIProxy</b>
+(Apache httpd) or <b class="code">proxy</b> (ISAPI) and it is strongly recommended to keep the default
+and remove all old explicit settings.
+</p>
+</blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Request Attributes"><strong>Request Attributes</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+You can also add more attributes to any request you are forwarding when using Apache httpd.
+For this use the <b class="code">JkEnvVar</b> directive (for details see the
+<a href="../reference/apache.html">Apache reference</a> page). Such request attributes can be
+retrieved on the Tomcat side via request.getAttribute(attributeName).
+Note that their names will not be listed in request.getAttributeNames()!
+</p>
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright &copy; 1999-2011, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html> \ No newline at end of file
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/docs/generic_howto/quick.html b/rubbos/app/tomcat-connectors-1.2.32-src/docs/generic_howto/quick.html
new file mode 100644
index 00000000..68cad946
--- /dev/null
+++ b/rubbos/app/tomcat-connectors-1.2.32-src/docs/generic_howto/quick.html
@@ -0,0 +1,131 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>The Apache Tomcat Connector - Generic HowTo - Quick Start HowTo</title><meta name="author" value="Henri Gomez"><meta name="email" value="hgomez@apache.org"><link href="../style.css" type="text/css" rel="stylesheet"></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="4"><!--PAGE HEADER--><tr><td colspan="2"><!--TOMCAT LOGO--><a href="http://tomcat.apache.org/"><img src="../images/tomcat.gif" align="left" alt="Apache Tomcat" border="0"></a><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="http://www.apache.org/images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><tr><!--LEFT SIDE NAVIGATION--><td width="20%" valign="top" nowrap="true"><p><strong>Links</strong></p><ul><li><a href="../index.html">Docs Home</a></li></ul><p><strong>Reference Guide</strong></p><ul><li><a href="../reference/workers.html">workers.properties</a></li><li><a href="../reference/uriworkermap.html">uriworkermap.properties</a></li><li><a href="../reference/status.html">Status Worker</a></li><li><a href="../reference/apache.html">Apache HTTP Server</a></li><li><a href="../reference/iis.html">IIS</a></li></ul><p><strong>Generic HowTo</strong></p><ul><li><a href="../generic_howto/quick.html">For the impatient</a></li><li><a href="../generic_howto/workers.html">All about workers</a></li><li><a href="../generic_howto/timeouts.html">Timeouts</a></li><li><a href="../generic_howto/loadbalancers.html">Load Balancing</a></li><li><a href="../generic_howto/proxy.html">Reverse Proxy</a></li></ul><p><strong>Webserver HowTo</strong></p><ul><li><a href="../webserver_howto/apache.html">Apache HTTP Server</a></li><li><a href="../webserver_howto/iis.html">IIS</a></li><li><a href="../webserver_howto/nes.html">Netscape/SunOne/Sun</a></li></ul><p><strong>AJP Protocol Reference</strong></p><ul><li><a href="../ajp/ajpv13a.html">AJPv13</a></li><li><a href="../ajp/ajpv13ext.html">AJPv13 Extension Proposal</a></li></ul><p><strong>Miscellaneous Documentation</strong></p><ul><li><a href="../miscellaneous/faq.html">Frequently asked questions</a></li><li><a href="../miscellaneous/changelog.html">Changelog</a></li><li><a href="http://issues.apache.org/bugzilla/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Tomcat+Connectors&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=">Current Tomcat Connectors bugs</a></li><li><a href="../miscellaneous/doccontrib.html">Contribute documentation</a></li><li><a href="../miscellaneous/jkstatustasks.html">JK Status Ant Tasks</a></li><li><a href="../miscellaneous/reporttools.html">Reporting Tools</a></li><li><a href="http://tomcat.apache.org/connectors-doc-archive/jk2/index.html">Old JK/JK2 documentation</a></li></ul><p><strong>News</strong></p><ul><li><a href="../news/20110701.html">2011</a></li><li><a href="../news/20100101.html">2010</a></li><li><a href="../news/20090301.html">2009</a></li><li><a href="../news/20081001.html">2008</a></li><li><a href="../news/20070301.html">2007</a></li><li><a href="../news/20060101.html">2006</a></li><li><a href="../news/20050101.html">2005</a></li><li><a href="../news/20041100.html">2004</a></li></ul></td><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left"><table border="0" width="100%" cellspacing="4"><tr><td align="left" valign="top"><h1>The Apache Tomcat Connector - Generic HowTo</h1><h2>Quick Start HowTo</h2></td><td align="right" valign="top" nowrap="true"><small><a href="printer/quick.html"><img src="../images/printer.gif" border="0" alt="Printer Friendly Version"><br>print-friendly<br>version
+ </a></small></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+ This document describes the configuration files used by JK on the
+ Web Server side for the 'impatient':
+ <ul>
+ <li>
+ <b>workers.properties</b> is a mandatory file used by the webserver and which
+ is the same for all JK implementations (Apache/IIS/NES).
+ </li>
+ <li>
+ <b>web server</b> add-ons to be set on the webserver side.
+ </li>
+ </ul>
+</p>
+<p>
+ We'll give here minimum servers configuration and an example <b>workers.properties</b>
+ to be able to install and check quickly your configuration.
+</p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Minimum workers.properties"><strong>Minimum workers.properties</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+ Here is a minimum <b>workers.properties</b>, using just ajp13 to connect your Apache webserver
+ to the Tomcat engine, complete documentation is available in <a href="workers.html">Workers HowTo</a>.
+</p>
+<p>
+<div class="example"><pre>
+
+ # Define 1 real worker using ajp13
+ worker.list=worker1
+ # Set properties for worker1 (ajp13)
+ worker.worker1.type=ajp13
+ worker.worker1.host=localhost
+ worker.worker1.port=8009
+
+</pre></div>
+</p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Minimum Apache web server configuration"><strong>Minimum Apache web server configuration</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+ Here is a minimum information about Apache configuration, a
+ more complete <a href="../webserver_howto/apache.html">separate HowTo for Apache</a> is available.
+</p>
+<p>
+ You should first have <b>mod_jk.so</b> (unix) or <b>mod_jk.dll</b> (Windows) installed
+ in your Apache module directory (see your Apache documentation to locate it).
+</p>
+<p>
+ Usual locations for modules directory on Unix:
+ <ul>
+ <li>/usr/lib/apache/</li>
+ <li>/usr/lib/apache2/</li>
+ <li>/usr/local/apache/libexec/</li>
+ </ul>
+</p>
+<p>
+ Usual locations for modules directory on Windows :
+ <ul>
+ <li>C:\Program Files\Apache Group\Apache\modules\</li>
+ <li>C:\Program Files\Apache Group\Apache2\modules\</li>
+ </ul>
+</p>
+<p>
+ You'll find a link to prebuilt binaries
+ <a href="http://tomcat.apache.org/download-connectors.cgi/">here</a>
+</p>
+<p>
+ Here is the minimum which should be set in <b>httpd.conf</b> directly or
+ included from another file:
+</p>
+<p>
+ Usual locations for configuration directory on Unix:
+ <ul>
+ <li>/etc/httpd/conf/</li>
+ <li>/etc/httpd2/conf/</li>
+ <li>/usr/local/apache/conf/</li>
+ </ul>
+</p>
+<p>
+ Usual locations for configuration directory on Windows :
+ <ul>
+ <li>C:\Program Files\Apache Group\Apache\conf\</li>
+ <li>C:\Program Files\Apache Group\Apache2\conf\</li>
+ </ul>
+</p>
+<p>
+<div class="example"><pre>
+
+ # Load mod_jk module
+ # Update this path to match your modules location
+ LoadModule jk_module libexec/mod_jk.so
+ # Declare the module for &lt;IfModule directive&gt; (remove this line on Apache 2.x)
+ AddModule mod_jk.c
+ # Where to find workers.properties
+ # Update this path to match your conf directory location (put workers.properties next to httpd.conf)
+ JkWorkersFile /etc/httpd/conf/workers.properties
+ # Where to put jk shared memory
+ # Update this path to match your local state directory or logs directory
+ JkShmFile /var/log/httpd/mod_jk.shm
+ # Where to put jk logs
+ # Update this path to match your logs directory location (put mod_jk.log next to access_log)
+ JkLogFile /var/log/httpd/mod_jk.log
+ # Set the jk log level [debug/error/info]
+ JkLogLevel info
+ # Select the timestamp log format
+ JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
+ # Send everything for context /examples to worker named worker1 (ajp13)
+ JkMount /examples/* worker1
+
+</pre></div>
+</p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Minimum IIS web server configuration"><strong>Minimum IIS web server configuration</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+ A separate <a href="../webserver_howto/iis.html">HowTo for the IIS web server</a> is available.
+</p>
+<p class="todo">
+ This paragraph has not been written yet, but <b>you</b> can contribute to it.
+ </p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Minimum NES/iPlanet/Sun web server configuration"><strong>Minimum NES/iPlanet/Sun web server configuration</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+ A separate <a href="../webserver_howto/nes.html">HowTo for the Netscape/iPlanet/Sun web server</a> is available.
+<p class="todo">
+ This paragraph has not been written yet, but <b>you</b> can contribute to it.
+ </p>
+</p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Test your configuration"><strong>Test your configuration</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+ (Re)start the web server and browse to the <a href="http://localhost/examples/">http://localhost/examples/</a>
+</p>
+
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright &copy; 1999-2011, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html> \ No newline at end of file
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/docs/generic_howto/timeouts.html b/rubbos/app/tomcat-connectors-1.2.32-src/docs/generic_howto/timeouts.html
new file mode 100644
index 00000000..67fcf90b
--- /dev/null
+++ b/rubbos/app/tomcat-connectors-1.2.32-src/docs/generic_howto/timeouts.html
@@ -0,0 +1,374 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>The Apache Tomcat Connector - Generic HowTo - Timeouts HowTo</title><meta name="author" value="Rainer Jung"><meta name="email" value="rjung@apache.org"><link href="../style.css" type="text/css" rel="stylesheet"></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="4"><!--PAGE HEADER--><tr><td colspan="2"><!--TOMCAT LOGO--><a href="http://tomcat.apache.org/"><img src="../images/tomcat.gif" align="left" alt="Apache Tomcat" border="0"></a><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="http://www.apache.org/images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><tr><!--LEFT SIDE NAVIGATION--><td width="20%" valign="top" nowrap="true"><p><strong>Links</strong></p><ul><li><a href="../index.html">Docs Home</a></li></ul><p><strong>Reference Guide</strong></p><ul><li><a href="../reference/workers.html">workers.properties</a></li><li><a href="../reference/uriworkermap.html">uriworkermap.properties</a></li><li><a href="../reference/status.html">Status Worker</a></li><li><a href="../reference/apache.html">Apache HTTP Server</a></li><li><a href="../reference/iis.html">IIS</a></li></ul><p><strong>Generic HowTo</strong></p><ul><li><a href="../generic_howto/quick.html">For the impatient</a></li><li><a href="../generic_howto/workers.html">All about workers</a></li><li><a href="../generic_howto/timeouts.html">Timeouts</a></li><li><a href="../generic_howto/loadbalancers.html">Load Balancing</a></li><li><a href="../generic_howto/proxy.html">Reverse Proxy</a></li></ul><p><strong>Webserver HowTo</strong></p><ul><li><a href="../webserver_howto/apache.html">Apache HTTP Server</a></li><li><a href="../webserver_howto/iis.html">IIS</a></li><li><a href="../webserver_howto/nes.html">Netscape/SunOne/Sun</a></li></ul><p><strong>AJP Protocol Reference</strong></p><ul><li><a href="../ajp/ajpv13a.html">AJPv13</a></li><li><a href="../ajp/ajpv13ext.html">AJPv13 Extension Proposal</a></li></ul><p><strong>Miscellaneous Documentation</strong></p><ul><li><a href="../miscellaneous/faq.html">Frequently asked questions</a></li><li><a href="../miscellaneous/changelog.html">Changelog</a></li><li><a href="http://issues.apache.org/bugzilla/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Tomcat+Connectors&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=">Current Tomcat Connectors bugs</a></li><li><a href="../miscellaneous/doccontrib.html">Contribute documentation</a></li><li><a href="../miscellaneous/jkstatustasks.html">JK Status Ant Tasks</a></li><li><a href="../miscellaneous/reporttools.html">Reporting Tools</a></li><li><a href="http://tomcat.apache.org/connectors-doc-archive/jk2/index.html">Old JK/JK2 documentation</a></li></ul><p><strong>News</strong></p><ul><li><a href="../news/20110701.html">2011</a></li><li><a href="../news/20100101.html">2010</a></li><li><a href="../news/20090301.html">2009</a></li><li><a href="../news/20081001.html">2008</a></li><li><a href="../news/20070301.html">2007</a></li><li><a href="../news/20060101.html">2006</a></li><li><a href="../news/20050101.html">2005</a></li><li><a href="../news/20041100.html">2004</a></li></ul></td><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left"><table border="0" width="100%" cellspacing="4"><tr><td align="left" valign="top"><h1>The Apache Tomcat Connector - Generic HowTo</h1><h2>Timeouts HowTo</h2></td><td align="right" valign="top" nowrap="true"><small><a href="printer/timeouts.html"><img src="../images/printer.gif" border="0" alt="Printer Friendly Version"><br>print-friendly<br>version
+ </a></small></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>Setting communication timeouts is very important to improve the
+communication process. They help to detect problems and stabilise
+a distributed system. JK can use several different timeout types, which
+can be individually configured. For historical reasons, all of them are
+disabled by default. This HowTo explains their use and gives
+hints how to find appropriate values.
+</p>
+<p>All timeouts can be configured in the workers.properties file.
+For a complete reference of all worker configuration
+items, please consult the worker <a href="../reference/workers.html">reference</a>.
+This page assumes, that you are using at least version 1.2.16 of JK.
+Dependencies on newer versions will be mentioned where necessary.
+</p>
+<p><font color="#ff0000">
+Do not set timeouts to extreme values. Very small timeouts will likely
+be counterproductive.
+</font></p>
+<p><font color="#ff0000">
+Long Garbage Collection pauses on the backend do not make a good
+fit with some timeouts. Try to optimise your Java memory and GC settings.
+</font></p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="JK Timeout Attributes"><strong>JK Timeout Attributes</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="CPing/CPong"><strong>CPing/CPong</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+CPing/CPong is our notion for using small test packets to check the
+status of backend connections. JK can use such test packets directly after establishing
+a new backend connection (connect mode) and also directly before each request gets
+send to a backend (prepost mode).
+Starting with version 1.2.27 it can also be used when a connection was idle
+for a long time (interval mode).
+The maximum waiting time (timeout) for a CPong answer to a CPing and the idle
+time in interval mode can be configured.
+</p>
+<p>
+The test packets will be answered by the backend very fast with a minimal amount of
+needed processing resources. A positive answer tells us, that the backend can be reached
+and is actively processing requests. It does not detect, if some context is deployed
+and working. The benefit of CPing/CPong is a fast detection of a communication
+problem with the backend. The downside is a slightly increased latency.
+</p>
+<p>
+The worker attribute <b>ping_mode</b> can be set to a combination of characters
+to determine, in which situations test packets are used:
+<ul>
+<li><b>C</b>: connect mode, timeout <b>ping_timeout</b> overwritten by <b>connect_timeout</b></li>
+<li><b>P</b>: prepost mode, timeout <b>ping_timeout</b> overwritten by <b>prepost_timeout</b></li>
+<li><b>I</b>: interval mode, timeout <b>ping_timeout</b>, idle time <b>connection_ping_interval</b></li>
+<li><b>A</b>: all modes</li>
+</ul>
+</p>
+<p>
+Multiple values must be concatenated without any separator characters.
+We recommend using all CPing tests. If your application is very latency sensitive, then
+you should only use the combination of connect and interval mode.
+</p>
+<p>
+Activating the CPing probing via <b>ping_mode</b> has been added in version 1.2.27.
+For older versions only the connect and prepost modes exist and must be activated by
+explicitely setting <b>connect_timeout</b> and <b>prepost_timeout</b>.
+</p>
+<p>
+The worker attribute <b>ping_timeout</b> sets the default wait timeout
+in milliseconds for CPong for all modes. By default the value is "10000"
+milliseconds. The value only gets used, if you activate CPing/Cpong probes
+via <b>ping_mode</b>. The default value should be fine, except if you experience
+very long Java garbage collection pauses.
+Depending on your network latency and stability, good custom values
+often are between 5000 and 15000 milliseconds.
+You can overwrite the timeout used for connect and prepost mode with
+<b>connect_timeout</b> and <b>prepost_timeout</b>.
+Remember: don't use extremely small values.
+</p>
+<p>
+The worker attribute <b>connect_timeout</b> sets the wait timeout
+in milliseconds for CPong during connection establishment. You can use it
+if you want to overwrite the general timeout set with <b>ping_timeout</b>.
+To use connect mode CPing, you need to enable it via <b>ping_mode</b>.
+Since JK usually uses persistent connections, opening new connections is a
+rare event. We therefore recommend activating connect mode.
+Depending on your network latency and stability, good values often
+are between 5000 and 15000 milliseconds.
+Remember: don't use extremely small values.
+</p>
+<p>
+The worker attribute <b>prepost_timeout</b> sets the wait timeout
+in milliseconds for CPong before request forwarding. You can use it
+if you want to overwrite the general timeout set with <b>ping_timeout</b>.
+To use prepost mode CPing, you need to enable it via <b>ping_mode</b>.
+Activating this type of CPing/CPong adds a small latency to each
+request. Usually this is small enough and the benefit of CPing/CPong is more important.
+So in general we also recommend using <b>prepost_timeout</b>.
+Depending on your network latency and stability, good values often
+are between 5000 and 10000 milliseconds.
+Remember: don't use extremely small values.
+</p>
+<p>
+Until version 1.2.27 <b>ping_mode</b> and <b>ping_timeout</b> did not
+exist and to enable connect or prepost mode CPing you had to set <b>connect_timeout</b>
+respectively <b>prepost_timeout</b> to some reasonable positive value.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Low-Level TCP Timeouts"><strong>Low-Level TCP Timeouts</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+Some platforms allow to set timeouts for all operations on TCP sockets.
+This is available for Linux and Windows, other platforms do not support this,
+e.g. Solaris. If your platform supports TCP send and receive timeouts,
+you can set them using the worker attribute <b>socket_timeout</b>.
+You can not set the two timeouts to different values.
+</p>
+<p>
+JK will accept this attribute even if your platform does not support
+socket timeouts. In this case setting the attribute will have no effect.
+By default the value is "0" and the timeout is disabled.
+You can set the attribute to some seconds value (not: milliseconds).
+JK will then set the send and the receive timeouts of the backend
+connections to this value. The timeout is low-level, it is
+used for each read and write operation on the socket individually.
+</p>
+<p>
+Using this attribute will make JK react faster to some types of network problems.
+Unfortunately socket timeouts have negative side effects, because for most
+platforms, there is no good way to recover from such a timeout, once it fired.
+For JK there is no way to decide, if this timeout fired because of real network
+problems, or only because it didn't receive an answer packet from a backend in time.
+So remember: don't use extremely small values.
+</p>
+<p>
+For the general case of connection establishment you can use
+<b>socket_connect_timeout</b>. It takes a millisecond value and works
+on most platforms, even if <b>socket_timeout</b> is not supported.
+We recommend using <b>socket_connect_timeout</b> because in some network
+failure situations failure detection during connection establishment
+can take several minutes due to TCP retransmits. Depending on the quality
+of your network a timeout somewhere between 1000 and 5000 milliseconds
+should be fine. Note that <b class="code">socket_timeout</b> is in seconds, and
+<b class="code">socket_connect_timeout</b> in milliseconds.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Connection Pools and Idle Timeouts"><strong>Connection Pools and Idle Timeouts</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+JK handles backend connections in a connection pool per web server process.
+The connections are used in a persistent mode. After a request completed
+successfully we keep the connection open and wait for the next
+request to forward. The connection pool is able to grow according
+to the number of threads that want to forward requests in parallel.
+</p>
+<p>
+Most applications have a varying load depending on the hour of the day
+or the day of the month. Other reasons for a growing connection pool
+would be temporary slowness of backends, leading to an increasing
+congestion of the frontends like web servers. Many backends use a dedicated
+thread for each incoming connection they handle. So usually one wants the
+connection pool to shrink, if the load diminishes.
+</p>
+<p>
+JK allows connections in the pool to get closed after some idle time.
+This maximum idle time can be configured with the attribute
+<b>connection_pool_timeout</b> which is given in units of seconds.
+The default value is "0", which disables closing idle connections.
+</p>
+<p>
+We generally recommend values around 10 minutes, so setting
+<b>connection_pool_timeout</b> to 600 (seconds). If you use this attribute,
+please also set the attribute <b>connectionTimeout</b> in the AJP
+Connector element of your Tomcat server.xml configuration file to
+an analogous value. <b>Caution</b>: connectionTimeout is in milliseconds.
+So if you set JK connection_pool_timeout to 600, you should set Tomcat
+connectionTimeout to 600000.
+</p>
+<p>
+JK connections do not get closed immediately after the timeout passed.
+Instead there is an automatic internal maintenance task
+running every 60 seconds, that checks the idle status of all connections.
+The 60 seconds interval
+can be adjusted with the global attribute worker.maintain. We do not
+recommend to change this value, because it has a lot of side effects.
+Until version 1.2.26, the maintenance task only runs, if requests get
+processed. So if your web server has processes that do not receive any
+requests for a long time, there is no way to close the idle connections
+in its pool. Starting with version 1.2.27 you can configure an independent
+watchdog thread when using Apache 2.x with threaded APR or IIS.
+</p>
+<p>
+The maximum connection pool size can be configured with the
+attribute <b>connection_pool_size</b>. We generally do not recommend
+to use this attribute in combination with Apache httpd. For
+Apache httpd we automatically detect the number of threads per
+process and set the maximum pool size to this value. For IIS we use
+a default value of 250 (before version 1.2.20: 10),
+for the Sun Web Server the default is "1".
+We strongly recommend adjusting this value for IIS and the Sun Web Server
+to the number of requests one web server process should
+be able to send to a backend in parallel. You should measure how many connections
+you need during peak hours without performance problems, and then add some
+percentage depending on your growth rate etc. Finally you should check,
+whether your web server processes are able to use at least as many threads,
+as you configured as the pool size.
+</p>
+<p>
+The JK attribute <b>connection_pool_minsize</b> defines,
+how many idle connections remain when the pool gets shrunken.
+By default this is half of the maximum pool size.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Firewall Connection Dropping"><strong>Firewall Connection Dropping</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+One particular problem with idle connections comes from firewalls, that
+are often deployed between the web server layer and the backend.
+Depending on their configuration, they will silently drop
+connections from their status table if they are idle for to long.
+</p>
+<p>
+From the point of view of JK and of the web server, the other side
+simply doesn't answer any traffic. Since TCP is a reliable protocol
+it detects the missing TCP ACKs and tries to resend the packets for
+a relatively long time, typically several minutes.
+</p>
+<p>
+Many firewalls will allow connection closing, even if they dropped
+the connection for normal traffic. Therefore you should always use
+<a href="#Connection Pools and Idle Timeouts">connection_pool_timeout and
+connection_pool_minsize</a> on the JK side
+and connectionTimeout on the Tomcat side.
+</p>
+<p>
+Furthermore using the boolean attribute <b>socket_keepalive</b> you can
+set a standard socket option, that automatically sends TCP keepalive packets
+after some idle time on each connection. By default this is set to "False".
+If you suspect idle connection drops by firewalls you should set this to
+"True".
+</p>
+<p>
+Unfortunately the default intervals and algorithms for these packets
+are platform specific. You might need to inspect TCP tuning options for
+your platform on how to control TCP keepalive.
+Often the default intervals are much longer than the firewall timeouts
+for idle connections. Nevertheless we recommend talking to your firewall
+administration and your platform administration in order to make them agree
+on good configuration values for the firewall and the platform TCP tuning.
+</p>
+<p>
+In case none of our recommendations help and you are definitively having
+problems with idle connection drops, you can disable the use of persistent
+connections when using JK together with Apache httpd. For this you set
+"JkOptions +DisableReuse" in your Apache httpd configuration.
+This will have a huge negative performance impact!
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Reply Timeout"><strong>Reply Timeout</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+JK can also use a timeout on request replies. This timeout does not
+measure the full processing time of the response. Instead it controls,
+how much time between consecutive response packets is allowed.
+</p>
+<p>
+In most cases, this is what one actually wants. Consider for example
+long running downloads. You would not be able to set an effective global
+reply timeout, because downloads could last for many minutes.
+Most applications though have limited processing time before starting
+to return the response. For those applications you could set an explicit
+reply timeout. Applications that do not harmonise with reply timeouts
+are batch type applications, data warehouse and reporting applications
+which are expected to observe long processing times.
+</p>
+<p><font color="#ff0000">
+If JK aborts waiting for a response, because a reply timeout fired,
+there is no way to stop processing on the backend. Although you free
+processing resources in your web server, the request
+will continue to run on the backend - without any way to send back a
+result once the reply timeout fired.
+</font></p>
+<p>
+JK uses the worker attribute <b>reply_timeout</b> to set reply timeouts.
+The default value is "0" (timeout disabled) and you can set it to any
+millisecond value.
+</p>
+<p>
+In combination with Apache httpd, you can also set a more flexible reply_timeout
+using an httpd environment variable. If you set the variable JK_REPLY_TIMEOUT
+to some integer value, this value will be used instead of the value in
+the worker configuration. This way you can set reply timeouts more flexible
+with mod_setenvif and mod_rewrite depending on URI, query string etc.
+If the environment variable JK_REPLY_TIMEOUT is not set, or is set to a
+negative value, the default reply timeout of the worker will be used. If
+JK_REPLY_TIMEOUT contains the value "0", then the reply timeout will be disabled
+for the request.
+</p>
+<p>
+In combination with a load balancing worker, JK will disable a member
+worker of the load balancer if a reply timeout fires. The worker will then
+no longer be used until it gets recovered during the next automatic
+maintenance task. Starting with JK 1.2.24 you can improve this behaviour using
+<b><a href="../reference/workers.html">max_reply_timeouts</a></b>. This
+attribute will allow occasional long running requests without disabling the
+worker. Only if those requests happen to often, the worker gets disabled by the
+load balancer.
+</p>
+</blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Load Balancer Error Detection"><strong>Load Balancer Error Detection</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Local and Global Error States"><strong>Local and Global Error States</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+A load balancer worker does not only have the ability to balance load.
+It also handles stickyness and failover of requests in case of errors.
+When a load balancer detects an error on one of its members, it needs to
+decide, whether the error is serious, or only a temporary error or maybe
+only related to the actual request that was processed. Temporary errors
+are called local errors, serious errors will be called global errors.
+</p>
+<p>
+If the load balancer decides that a backend should be put into the global error
+state, then the web server will not send any more requests there. If no session
+replication is used, this means that all user sessions located on the respective
+backend are no longer available. The users will be send to another backend
+and will have to login again. So the global error state is not transparent to the
+users. The application is still available, but users might loose some work.
+</p>
+<p>
+In some cases the decision between local error and global error is easy.
+For instance if there is an error sending back the response to the client (browser),
+then it is very unlikely that the backend is broken.
+So this situation is a typical example of a local error.
+</p>
+<p>
+Some situations are harder to decide though. If the load balancer can't establish
+a new connection to a backend, it could be because of a temporary overload situation
+(so no more free threads in the backend), or because the backend isn't alive any more.
+Depending on the details, the right state could either be local error or global error.
+</p>
+</blockquote></td></tr></table>
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Error Escalation Time"><strong>Error Escalation Time</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+Until version 1.2.26 most errors were interpreted as global errors.
+Starting with version 1.2.27 many errors which were previously interpreted as global
+were switched to being local whenever the backend is still busy. Busy means, that
+other concurrent requests are send to the same backend (successful or not).
+</p>
+<p>
+In many cases there is no perfect way of making the decision
+between local and global error. The load balancer simply doesn't have enough information.
+In version 1.2.28 you can now tune, how fast the load balancer switches from local error to
+global error. If a member of a load balancer stays in local error state for too long,
+the load balancer will escalate it into global error state.
+</p>
+<p>
+The time tolerated in local error state is controlled by the load balancer attribute
+<b>error_escalation_time</b> (in seconds). The default value is half of <b>recover_time</b>,
+so unless you changed <b>recover_time</b> the default is 30 seconds.
+</p>
+<p>
+Using a smaller value for <b>error_escalation_time</b> will make the load balancer react
+faster to serious errors, but also carries the risk of more often loosing sessions
+in not so serious situations. You can lower <b>error_escalation_time</b> down to 0 seconds,
+which means all local errors which are potentially serious are escalated to global errors
+immediately.
+</p>
+<p>
+Note that without good basic error detection the whole escalation procedure is useless.
+So you should definitely use <b>socket_connect_timeout</b> and activate CPing/CPong
+with <b>ping_mode</b> and <b>ping_timeout</b> before thinking about also tuning
+<b>error_escalation_time</b>.
+</p>
+</blockquote></td></tr></table>
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright &copy; 1999-2011, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html> \ No newline at end of file
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/docs/generic_howto/workers.html b/rubbos/app/tomcat-connectors-1.2.32-src/docs/generic_howto/workers.html
new file mode 100644
index 00000000..37f32ee7
--- /dev/null
+++ b/rubbos/app/tomcat-connectors-1.2.32-src/docs/generic_howto/workers.html
@@ -0,0 +1,409 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>The Apache Tomcat Connector - Generic HowTo - Workers HowTo</title><meta name="author" value="Henri Gomez"><meta name="email" value="hgomez@apache.org"><meta name="author" value="Gal Shachor"><meta name="email" value="shachor@il.ibm.com"><meta name="author" value="Mladen Turk"><meta name="email" value="mturk@apache.org"><link href="../style.css" type="text/css" rel="stylesheet"></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="4"><!--PAGE HEADER--><tr><td colspan="2"><!--TOMCAT LOGO--><a href="http://tomcat.apache.org/"><img src="../images/tomcat.gif" align="left" alt="Apache Tomcat" border="0"></a><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="http://www.apache.org/images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><tr><!--LEFT SIDE NAVIGATION--><td width="20%" valign="top" nowrap="true"><p><strong>Links</strong></p><ul><li><a href="../index.html">Docs Home</a></li></ul><p><strong>Reference Guide</strong></p><ul><li><a href="../reference/workers.html">workers.properties</a></li><li><a href="../reference/uriworkermap.html">uriworkermap.properties</a></li><li><a href="../reference/status.html">Status Worker</a></li><li><a href="../reference/apache.html">Apache HTTP Server</a></li><li><a href="../reference/iis.html">IIS</a></li></ul><p><strong>Generic HowTo</strong></p><ul><li><a href="../generic_howto/quick.html">For the impatient</a></li><li><a href="../generic_howto/workers.html">All about workers</a></li><li><a href="../generic_howto/timeouts.html">Timeouts</a></li><li><a href="../generic_howto/loadbalancers.html">Load Balancing</a></li><li><a href="../generic_howto/proxy.html">Reverse Proxy</a></li></ul><p><strong>Webserver HowTo</strong></p><ul><li><a href="../webserver_howto/apache.html">Apache HTTP Server</a></li><li><a href="../webserver_howto/iis.html">IIS</a></li><li><a href="../webserver_howto/nes.html">Netscape/SunOne/Sun</a></li></ul><p><strong>AJP Protocol Reference</strong></p><ul><li><a href="../ajp/ajpv13a.html">AJPv13</a></li><li><a href="../ajp/ajpv13ext.html">AJPv13 Extension Proposal</a></li></ul><p><strong>Miscellaneous Documentation</strong></p><ul><li><a href="../miscellaneous/faq.html">Frequently asked questions</a></li><li><a href="../miscellaneous/changelog.html">Changelog</a></li><li><a href="http://issues.apache.org/bugzilla/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Tomcat+Connectors&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=">Current Tomcat Connectors bugs</a></li><li><a href="../miscellaneous/doccontrib.html">Contribute documentation</a></li><li><a href="../miscellaneous/jkstatustasks.html">JK Status Ant Tasks</a></li><li><a href="../miscellaneous/reporttools.html">Reporting Tools</a></li><li><a href="http://tomcat.apache.org/connectors-doc-archive/jk2/index.html">Old JK/JK2 documentation</a></li></ul><p><strong>News</strong></p><ul><li><a href="../news/20110701.html">2011</a></li><li><a href="../news/20100101.html">2010</a></li><li><a href="../news/20090301.html">2009</a></li><li><a href="../news/20081001.html">2008</a></li><li><a href="../news/20070301.html">2007</a></li><li><a href="../news/20060101.html">2006</a></li><li><a href="../news/20050101.html">2005</a></li><li><a href="../news/20041100.html">2004</a></li></ul></td><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left"><table border="0" width="100%" cellspacing="4"><tr><td align="left" valign="top"><h1>The Apache Tomcat Connector - Generic HowTo</h1><h2>Workers HowTo</h2></td><td align="right" valign="top" nowrap="true"><small><a href="printer/workers.html"><img src="../images/printer.gif" border="0" alt="Printer Friendly Version"><br>print-friendly<br>version
+ </a></small></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+A Tomcat worker is a Tomcat instance that is waiting to execute servlets on behalf of some web server.
+For example, we can have a web server such as Apache forwarding servlet requests to a
+Tomcat process (the worker) running behind it.
+</p>
+<p>
+The scenario described above is a very simple one;
+in fact one can configure multiple Tomcat workers to serve servlets on
+behalf of a certain web server.
+The reasons for such configuration can be:
+</p>
+<ul>
+<li>
+We want different contexts to be served by different Tomcat workers to provide a
+development environment where all the developers share the same web server but own a Tomcat worker of their own.
+</li>
+<li>
+We want different virtual hosts served by different Tomcat processes to provide a
+clear separation between sites belonging to different companies.
+</li>
+<li>
+We want to provide load balancing, meaning run multiple Tomcat workers each on a
+machine of its own and distribute the requests between them.
+</li>
+</ul>
+
+<p>
+There are probably more reasons for having multiple workers but I guess that this list is enough...
+Tomcat workers are defined in a properties file dubbed workers.properties and this tutorial
+explains how to work with it.
+</p>
+
+<p>
+This document was originally part of <b>Tomcat: A Minimalistic User's Guide</b> written by Gal Shachor,
+but has been split off for organisational reasons.
+</p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Defining Workers"><strong>Defining Workers</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+Defining workers to the Tomcat web server plugin can be done using a properties file
+(a sample file named workers.properties is available in the conf/ directory).
+</p>
+
+<p>
+the file contains entries of the following form:
+</p>
+
+<p>
+<b>worker.list</b>=&lt;a comma separated list of worker names&gt;
+</p>
+
+<div class="example"><pre>
+ # the list of workers
+ worker.list= worker1, worker2
+</pre></div>
+
+<p>
+When starting up, the web server plugin will instantiate the workers whose name appears in the
+<b>worker.list</b> property, these are also the workers to whom you can map requests. The directive can be used multiple times.
+</p>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Workers Type"><strong>Workers Type</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+Each named worker should also have a few entries to provide additional information on his behalf.
+This information includes the worker's type and other related worker information.
+Currently the following worker types that exists are (JK 1.2.5):
+</p>
+
+<table>
+ <tr><th>Type</th><th>Description</th></tr>
+ <tr><td>ajp12</td><td>This worker knows how to forward requests to out-of-process Tomcat workers using the ajpv12 protocol.</td></tr>
+ <tr><td>ajp13</td><td>This worker knows how to forward requests to out-of-process Tomcat workers using the ajpv13 protocol.</td></tr>
+ <tr><td>jni</td><td>DEPRECATED: This worker knows how to forward requests to in-process Tomcat workers using JNI.</td></tr>
+ <tr><td>lb</td><td>This is a load-balancing worker; it knows how to provide round-robin based sticky load balancing with a certain level of fault-tolerance.</td></tr>
+ <tr><td>status</td><td>This is a status worker for managing load balancers.</td></tr>
+</table>
+
+<p>
+Defining workers of a certain type should be done with the following property format:
+</p>
+
+<p>
+<b>worker</b>.<b>worker name</b>.<b>type</b>=&lt;worker type&gt;
+Where worker name is the name assigned to the worker and the worker type is one of the four types defined
+in the table (a worker name may only contain any space the characters [a-zA-Z0-9\-_]).
+</p>
+
+<div class="example"><pre>
+ # Defines a worker named "local" that uses the ajpv12 protocol to forward requests to a Tomcat process.
+ worker.local.type=ajp12
+ # Defines a worker named "remote" that uses the ajpv13 protocol to forward requests to a Tomcat process.
+ worker.remote.type=ajp13
+ # Defines a worker named "loadbalancer" that loadbalances several Tomcat processes transparently.
+ worker.loadbalancer.type=lb
+</pre></div>
+
+</blockquote></td></tr></table>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Setting Worker Properties"><strong>Setting Worker Properties</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+After defining the workers you can also specify properties for them.
+Properties can be specified in the following manner:
+</p>
+
+<p>
+worker.&lt;worker name&gt;.&lt;property&gt;=&lt;property value&gt;
+</p>
+
+Each worker has a set of properties that you can set as specified in the following subsections:
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="ajp12 Worker properties"><strong>ajp12 Worker properties</strong></a></font></td></tr><tr><td><blockquote>
+<p><p><font color="#ff0000">
+The <b>ajp12</b> has been <b>deprecated</b> with Tomcat 3.3.x and you should use instead
+<b>ajp13</b> which is the only ajp protocol known by Tomcat 4.x and 5 and 5.5 and Tomcat 6.
+</font></p></p>
+<p>
+The ajp12 typed workers forward requests to out-of-process Tomcat workers
+using the ajpv12 protocol over TCP/IP sockets.
+</p>
+
+<p>
+the ajp12 worker properties are :
+</p>
+
+<p>
+<b>host</b> property sets the host where the Tomcat worker is listening for ajp12 requests.
+</p>
+
+<p>
+<b>port</b> property sets the port where the Tomcat worker is listening for ajp12 requests
+</p>
+
+<p>
+<b>lbfactor</b> property is used when working with a load balancer worker, this is the load-balancing factor for the worker.
+We'll see more on this in the <a href="../generic_howto/loadbalancers.html">lb worker</a> section.
+</p>
+
+<div class="example"><pre>
+ # worker "worker1" will talk to Tomcat listening on machine www.x.com at port 8007 using 2 lb factor
+ worker.worker1.host=www.x.com
+ worker.worker1.port=8007
+ worker.worker1.lbfactor=2
+</pre></div>
+
+<p>
+Notes: In the ajpv12 protocol, connections are created, used and then closed at each request.
+The default port for ajp12 is 8007
+</p>
+
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="ajp13 Worker properties"><strong>ajp13 Worker properties</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+The ajp13 typed workers forward requests to out-of-process Tomcat workers using the ajpv13 protocol over TCP/IP sockets.
+The main difference between ajpv12 and ajpv13 are that:
+<ul>
+<li>
+ajpv13 is a more binary protocol and it tries to compress some of the request data by coding
+frequently used strings as small integers.
+</li>
+<li>
+ajpv13 reuses open sockets and leaves them open for future requests (remember when you've got a Firewall between your
+web server and Tomcat).
+</li>
+<li>
+ajpv13 has special treatment for SSL information so that the container can implement
+SSL related methods such as isSecure().
+</li>
+</ul>
+
+</p>
+
+<p>
+You should note that Ajp13 is now the only out-process protocol supported by Tomcat 4.0.x, 4.1.x, 5.0.x, 5.5.x and 6.
+</p>
+
+
+<div class="example"><pre>
+ # worker "worker2" will talk to Tomcat listening on machine www2.x.com at port 8009 using 3 lb factor
+ worker.worker2.host=www2.x.com
+ worker.worker2.port=8009
+ worker.worker2.lbfactor=3
+ # worker "worker2" uses connections, which will stay no more than 10mn in the connection pool
+ worker.worker2.connection_pool_timeout=600
+ # worker "worker2" ask operating system to send KEEP-ALIVE signal on the connection
+ worker.worker2.socket_keepalive=1
+ # mount can be used as an alternative to the JkMount directive
+ worker.worker2.mount=/contexta /contexta/* /contextb /contextb/*
+</pre></div>
+
+<p>
+Notes: In the ajpv13 protocol, the default port is 8009
+</p>
+
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="lb Worker properties"><strong>lb Worker properties</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+The load-balancing worker does not really communicate with Tomcat workers.
+Instead it is responsible for the management of several "real" workers.
+This management includes:
+</p>
+
+<ul>
+<li>
+Instantiating the workers in the web server.
+</li>
+<li>
+Using the worker's load-balancing factor, perform weighed-round-robin load balancing where
+high lbfactor means stronger machine (that is going to handle more requests)
+</li>
+<li>
+Keeping requests belonging to the same session executing on the same Tomcat worker.
+</li>
+<li>
+Identifying failed Tomcat workers, suspending requests to them and instead falling-back on
+other workers managed by the lb worker.
+</li>
+</ul>
+
+<p>
+The overall result is that workers managed by the same lb worker are load-balanced (based on their lbfactor and current user session) and also fall-backed so a single Tomcat process death will not "kill" the entire site.
+The following table specifies some properties that the lb worker can accept:
+<ul>
+<li><b>balance_workers</b> is a comma separated list of workers that the load balancer need to manage.
+As long as these workers should only be used via the load balancer worker,
+there is no need to also put them into the worker.list property.
+This directive can be used multiple times for the same load balancer.</li>
+<li><b>sticky_session</b> specifies whether requests with SESSION ID's should be routed back to the same
+Tomcat worker. Set sticky_session to False when Tomcat is using a Session Manager which
+can persist session data across multiple instances of Tomcat. By default sticky_session is set to True.</li>
+</ul>
+</p>
+
+<div class="example"><pre>
+ # The worker balance1 while use "real" workers worker1 and worker2
+ worker.balance1.balance_workers=worker1, worker2
+</pre></div>
+
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Status Worker properties"><strong>Status Worker properties</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+The status worker does not communicate with Tomcat.
+Instead it is responsible for the load balancer management.
+</p>
+<div class="example"><pre>
+ # Add the status worker to the worker list
+ worker.list=jkstatus
+ # Define a 'jkstatus' worker using status
+ worker.jkstatus.type=status
+</pre></div>
+<p>Next thing is to mount the requests to the jkstatus worker. For Apache
+web servers use the:</p>
+<div class="example"><pre>
+ # Add the jkstatus mount point
+ JkMount /jkmanager/* jkstatus
+</pre></div>
+<p>To obtain a higher level of security use the:</p>
+<div class="example"><pre>
+ # Enable the JK manager access from localhost only
+ &lt;Location /jkmanager/&gt;
+ JkMount jkstatus
+ Order deny,allow
+ Deny from all
+ Allow from 127.0.0.1
+ &lt;/Location&gt;
+</pre></div>
+
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Property file macros"><strong>Property file macros</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+You can define "macros" in the property files.
+These macros let you define properties and later on use them while
+constructing other properties.
+</p>
+
+<div class="example"><pre>
+ # property example, like a network base address
+ mynet=194.226.31
+ # Using the above macro to simplify the address definitions
+ # for a farm of workers.
+ worker.node1.host=$(mynet).11
+ worker.node2.host=$(mynet).12
+ worker.node3.host=$(mynet).13
+</pre></div>
+
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Hierarchical property configuration"><strong>Hierarchical property configuration</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+Workers can reference configurations of other workers.
+If worker "x" references worker "y", then it inherits all
+configuration parameters from "y", except for the ones
+that have explicitly been set for "x".
+</p>
+
+<div class="example"><pre>
+ # worker toe defines some default settings
+ worker.toe.type=ajp13
+ worker.toe.socket_keepalive=true
+ worker.toe.connect_timeout=10000
+ worker.toe.recovery_options=7
+ # workers tic and tac inherit those values
+ worker.tic.reference=worker.toe
+ worker.tac.reference=worker.toe
+</pre></div>
+
+<p>
+Please note, that the reference contains
+the full prefix to the referenced configuration attributes,
+not only the name of the referenced worker.
+</p>
+
+<p>
+References can be nested. Be careful to avoid loops!
+</p>
+
+<p>
+Attributes which are allowed multiple times for a single worker
+can not be merged from a worker and a reference. An attribute
+is only inherited from a reference, if it is not already set
+for the referring worker.
+</p>
+
+<p>
+References are especially useful, when configuring load balancers.
+Try to understand the following two stage references:
+</p>
+
+<div class="example"><pre>
+ # We only use one load balancer
+ worker.list=lb
+ # Let's define some defaults
+ worker.basic.port=8009
+ worker.basic.type=ajp13
+ worker.basic.socket_keepalive=true
+ worker.basic.connect_timeout=10000
+ worker.basic.recovery_options=7
+ # And we use them in two groups
+ worker.lb1.domain=dom1
+ worker.lb1.distance=0
+ worker.lb1.reference=worker.basic
+ worker.lb2.domain=dom2
+ worker.lb2.distance=1
+ worker.lb2.reference=worker.basic
+ # Now we configure the load balancer
+ worker.lb.type=lb
+ worker.lb.method=B
+ worker.lb.balanced_workers=w11,w12,w21,w22
+ worker.w11.host=myhost11
+ worker.w11.reference=worker.lb1
+ worker.w12.host=myhost12
+ worker.w12.reference=worker.lb1
+ worker.w21.host=myhost21
+ worker.w21.reference=worker.lb2
+ worker.w22.host=myhost22
+ worker.w22.reference=worker.lb2
+</pre></div>
+
+</blockquote></td></tr></table>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="A sample worker.properties"><strong>A sample worker.properties</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+Since coping with worker.properties on your own is not an easy thing to do,
+a sample worker.properties file is bundled along JK.
+</p>
+
+<p>
+You could also find here a sample workers.properties defining :
+</p>
+
+<ul>
+<li>
+An ajp12 worker that used the host localhost and the port 8007
+</li>
+<li>
+An ajp13 worker that used the host localhost and the port 8008
+</li>
+<li>
+An lb worker that load balance the ajp12 and ajp13 workers
+</li>
+</ul>
+
+<div class="example"><pre>
+ # Define 3 workers, 2 real workers using ajp12, ajp13, the last one being a loadbalancing worker
+ worker.list=worker1, worker2, worker3
+ # Set properties for worker1 (ajp12)
+ worker.worker1.type=ajp12
+ worker.worker1.host=localhost
+ worker.worker1.port=8007
+ worker.worker1.lbfactor=1
+ # Set properties for worker2 (ajp13)
+ worker.worker2.type=ajp13
+ worker.worker2.host=localhost
+ worker.worker2.port=8009
+ worker.worker2.lbfactor=1
+ worker.worker2.connection_pool_timeout=600
+ worker.worker2.socket_keepalive=1
+ worker.worker2.socket_timeout=60
+ # Set properties for worker3 (lb) which use worker1 and worker2
+ worker.worker3.balance_workers=worker1,worker2
+</pre></div>
+
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright &copy; 1999-2011, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html> \ No newline at end of file
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/docs/images/add.gif b/rubbos/app/tomcat-connectors-1.2.32-src/docs/images/add.gif
new file mode 100644
index 00000000..0774d074
--- /dev/null
+++ b/rubbos/app/tomcat-connectors-1.2.32-src/docs/images/add.gif
Binary files differ
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/docs/images/code.gif b/rubbos/app/tomcat-connectors-1.2.32-src/docs/images/code.gif
new file mode 100644
index 00000000..d27307b5
--- /dev/null
+++ b/rubbos/app/tomcat-connectors-1.2.32-src/docs/images/code.gif
Binary files differ
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/docs/images/design.gif b/rubbos/app/tomcat-connectors-1.2.32-src/docs/images/design.gif
new file mode 100644
index 00000000..f5db0a9f
--- /dev/null
+++ b/rubbos/app/tomcat-connectors-1.2.32-src/docs/images/design.gif
Binary files differ
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/docs/images/docs.gif b/rubbos/app/tomcat-connectors-1.2.32-src/docs/images/docs.gif
new file mode 100644
index 00000000..d64a4a18
--- /dev/null
+++ b/rubbos/app/tomcat-connectors-1.2.32-src/docs/images/docs.gif
Binary files differ
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/docs/images/fix.gif b/rubbos/app/tomcat-connectors-1.2.32-src/docs/images/fix.gif
new file mode 100644
index 00000000..d59ad642
--- /dev/null
+++ b/rubbos/app/tomcat-connectors-1.2.32-src/docs/images/fix.gif
Binary files differ
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/docs/images/jakarta-logo.gif b/rubbos/app/tomcat-connectors-1.2.32-src/docs/images/jakarta-logo.gif
new file mode 100644
index 00000000..049cf822
--- /dev/null
+++ b/rubbos/app/tomcat-connectors-1.2.32-src/docs/images/jakarta-logo.gif
Binary files differ
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/docs/images/printer.gif b/rubbos/app/tomcat-connectors-1.2.32-src/docs/images/printer.gif
new file mode 100644
index 00000000..5021187b
--- /dev/null
+++ b/rubbos/app/tomcat-connectors-1.2.32-src/docs/images/printer.gif
Binary files differ
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/docs/images/tomcat.gif b/rubbos/app/tomcat-connectors-1.2.32-src/docs/images/tomcat.gif
new file mode 100644
index 00000000..f2aa6f86
--- /dev/null
+++ b/rubbos/app/tomcat-connectors-1.2.32-src/docs/images/tomcat.gif
Binary files differ
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/docs/images/update.gif b/rubbos/app/tomcat-connectors-1.2.32-src/docs/images/update.gif
new file mode 100644
index 00000000..31e22abb
--- /dev/null
+++ b/rubbos/app/tomcat-connectors-1.2.32-src/docs/images/update.gif
Binary files differ
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/docs/images/void.gif b/rubbos/app/tomcat-connectors-1.2.32-src/docs/images/void.gif
new file mode 100644
index 00000000..e565824a
--- /dev/null
+++ b/rubbos/app/tomcat-connectors-1.2.32-src/docs/images/void.gif
Binary files differ
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/docs/index.html b/rubbos/app/tomcat-connectors-1.2.32-src/docs/index.html
new file mode 100644
index 00000000..892f518f
--- /dev/null
+++ b/rubbos/app/tomcat-connectors-1.2.32-src/docs/index.html
@@ -0,0 +1,251 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>The Apache Tomcat Connector - Documentation Index</title><meta name="author" value="Mladen Turk"><meta name="email" value="mturk@apache.org"><meta name="author" value="Rainer Jung"><meta name="email" value="rjung@apache.org"><link href="./style.css" type="text/css" rel="stylesheet"></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="4"><!--PAGE HEADER--><tr><td colspan="2"><!--TOMCAT LOGO--><a href="http://tomcat.apache.org/"><img src="./images/tomcat.gif" align="left" alt="Apache Tomcat" border="0"></a><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="http://www.apache.org/images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><tr><!--LEFT SIDE NAVIGATION--><td width="20%" valign="top" nowrap="true"><p><strong>Links</strong></p><ul><li><a href="index.html">Docs Home</a></li></ul><p><strong>Reference Guide</strong></p><ul><li><a href="reference/workers.html">workers.properties</a></li><li><a href="reference/uriworkermap.html">uriworkermap.properties</a></li><li><a href="reference/status.html">Status Worker</a></li><li><a href="reference/apache.html">Apache HTTP Server</a></li><li><a href="reference/iis.html">IIS</a></li></ul><p><strong>Generic HowTo</strong></p><ul><li><a href="generic_howto/quick.html">For the impatient</a></li><li><a href="generic_howto/workers.html">All about workers</a></li><li><a href="generic_howto/timeouts.html">Timeouts</a></li><li><a href="generic_howto/loadbalancers.html">Load Balancing</a></li><li><a href="generic_howto/proxy.html">Reverse Proxy</a></li></ul><p><strong>Webserver HowTo</strong></p><ul><li><a href="webserver_howto/apache.html">Apache HTTP Server</a></li><li><a href="webserver_howto/iis.html">IIS</a></li><li><a href="webserver_howto/nes.html">Netscape/SunOne/Sun</a></li></ul><p><strong>AJP Protocol Reference</strong></p><ul><li><a href="ajp/ajpv13a.html">AJPv13</a></li><li><a href="ajp/ajpv13ext.html">AJPv13 Extension Proposal</a></li></ul><p><strong>Miscellaneous Documentation</strong></p><ul><li><a href="miscellaneous/faq.html">Frequently asked questions</a></li><li><a href="miscellaneous/changelog.html">Changelog</a></li><li><a href="http://issues.apache.org/bugzilla/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Tomcat+Connectors&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=">Current Tomcat Connectors bugs</a></li><li><a href="miscellaneous/doccontrib.html">Contribute documentation</a></li><li><a href="miscellaneous/jkstatustasks.html">JK Status Ant Tasks</a></li><li><a href="miscellaneous/reporttools.html">Reporting Tools</a></li><li><a href="http://tomcat.apache.org/connectors-doc-archive/jk2/index.html">Old JK/JK2 documentation</a></li></ul><p><strong>News</strong></p><ul><li><a href="news/20110701.html">2011</a></li><li><a href="news/20100101.html">2010</a></li><li><a href="news/20090301.html">2009</a></li><li><a href="news/20081001.html">2008</a></li><li><a href="news/20070301.html">2007</a></li><li><a href="news/20060101.html">2006</a></li><li><a href="news/20050101.html">2005</a></li><li><a href="news/20041100.html">2004</a></li></ul></td><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left"><table border="0" width="100%" cellspacing="4"><tr><td align="left" valign="top"><h1>The Apache Tomcat Connector</h1><h2>Documentation Index</h2></td><td align="right" valign="top" nowrap="true"><small><a href="printer/index.html"><img src="./images/printer.gif" border="0" alt="Printer Friendly Version"><br>print-friendly<br>version
+ </a></small></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
+
+<p>This is the top-level entry point of the documentation bundle for the
+<strong>Apache Tomcat Connectors</strong>
+
+</p>
+<p>Select one of the links from the navigation menu (to the left) to drill
+down to the more detailed documentation that is available. Each available
+manual is described in more detail below.</p>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Headlines"><strong>Headlines</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<ul>
+
+<li><a href="news/20110701.html#8 July - JK-1.2.32 released">8 July 2011 - <b>JK-1.2.32 released</b></a>
+<p>The Apache Tomcat team is proud to announce the immediate availability
+ of Tomcat Connectors 1.2.32 Stable. This release contains mainly bug fixes
+</p>
+<p>Download the <a href="http://www.apache.org/dist/tomcat/tomcat-connectors/jk/source/jk-1.2.32/tomcat-connectors-1.2.32-src.tar.gz">JK 1.2.32 release sources</a>
+ | <a href="http://www.apache.org/dist/tomcat/tomcat-connectors/jk/source/jk-1.2.32/tomcat-connectors-1.2.32-src.tar.gz.asc">PGP signature</a>
+</p>
+<p>Download the <a href="http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/">binaries</a> for selected platforms.
+</p>
+</li>
+
+<li><a href="news/20100101.html#1 November - JK-1.2.31 released">1 November 2010 - <b>JK-1.2.31 released</b></a>
+<p>The Apache Tomcat team is proud to announce the immediate availability
+ of Tomcat Connectors 1.2.31 Stable. This release contains mainly bug fixes
+</p>
+<p>Download the <a href="http://www.apache.org/dist/tomcat/tomcat-connectors/jk/source/jk-1.2.31/tomcat-connectors-1.2.31-src.tar.gz">JK 1.2.31 release sources</a>
+ | <a href="http://www.apache.org/dist/tomcat/tomcat-connectors/jk/source/jk-1.2.31/tomcat-connectors-1.2.31-src.tar.gz.asc">PGP signature</a>
+</p>
+<p>Download the <a href="http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/">binaries</a> for selected platforms.
+</p>
+</li>
+
+<li><a href="news/20100101.html#1 March - JK-1.2.30 released">1 March 2010 - <b>JK-1.2.30 released</b></a>
+<p>The Apache Tomcat team is proud to announce the immediate availability
+of Tomcat Connectors 1.2.30 Stable. This release contains mainly bug fixes
+</p>
+<p>Download the <a href="http://www.apache.org/dist/tomcat/tomcat-connectors/jk/source/jk-1.2.30/tomcat-connectors-1.2.30-src.tar.gz">JK 1.2.30 release sources</a>
+ | <a href="http://www.apache.org/dist/tomcat/tomcat-connectors/jk/source/jk-1.2.30/tomcat-connectors-1.2.30-src.tar.gz.asc">PGP signature</a>
+</p>
+<p>Download the <a href="http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/">binaries</a> for selected platforms.
+</p>
+</li>
+<li><a href="news/20090301.html#22 March - JK-1.2.28 released">22 March 2009 - <b>JK-1.2.28 released</b></a>
+<p>The Apache Tomcat team is proud to announce the immediate availability
+of Tomcat Connectors 1.2.28 Stable. This release contains mainly bug fixes and some small <a href="news/20090301.html#22 March - JK-1.2.28 released">improvements</a>.
+</p>
+<p>Download the <a href="http://www.apache.org/dist/tomcat/tomcat-connectors/jk/source/jk-1.2.28/tomcat-connectors-1.2.28-src.tar.gz">JK 1.2.28 release sources</a>
+ | <a href="http://www.apache.org/dist/tomcat/tomcat-connectors/jk/source/jk-1.2.28/tomcat-connectors-1.2.28-src.tar.gz.asc">PGP signature</a>
+</p>
+<p>Download the <a href="http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/">binaries</a> for selected platforms.
+</p>
+</li>
+<li><a href="news/20081001.html#28 October - JK-1.2.27 released">28 October 2008 - <b>JK-1.2.27 released</b></a>
+<p>The Apache Tomcat team is proud to announce the immediate availability
+of Tomcat Connectors 1.2.27 Stable. This release contains interesting <a href="news/20081001.html#28 October - JK-1.2.27 released">improvements</a>.
+</p>
+<p>Download the <a href="http://www.apache.org/dist/tomcat/tomcat-connectors/jk/source/jk-1.2.27/tomcat-connectors-1.2.27-src.tar.gz">JK 1.2.27 release sources</a>
+ | <a href="http://www.apache.org/dist/tomcat/tomcat-connectors/jk/source/jk-1.2.27/tomcat-connectors-1.2.27-src.tar.gz.asc">PGP signature</a>
+</p>
+<p>Download the <a href="http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/">binaries</a> for selected platforms.
+</p>
+</li>
+<li><a href="news/20070301.html#20071221.1">21 December 2007 - <b>JK-1.2.26 released</b></a>
+<p>The Apache Tomcat team is proud to announce the immediate availability
+of Tomcat Connectors 1.2.26 Stable.
+</p>
+<p>Download the <a href="http://www.apache.org/dist/tomcat/tomcat-connectors/jk/source/jk-1.2.26/tomcat-connectors-1.2.26-src.tar.gz">JK 1.2.26 release sources</a>
+ | <a href="http://www.apache.org/dist/tomcat/tomcat-connectors/jk/source/jk-1.2.26/tomcat-connectors-1.2.26-src.tar.gz.asc">PGP signature</a>
+</p>
+<p>Download the <a href="http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/">binaries</a> for selected platforms.
+</p>
+</li>
+<li><a href="news/20070301.html#20070807.1">7 August 2007 - <b>JK-1.2.25 released</b></a>
+<p>The Apache Tomcat team is proud to announce the immediate availability
+of Tomcat Connectors 1.2.25 Stable.
+</p>
+<p>Download the <a href="http://www.apache.org/dist/tomcat/tomcat-connectors/jk/source/jk-1.2.25/tomcat-connectors-1.2.25-src.tar.gz">JK 1.2.25 release sources</a>
+ | <a href="http://www.apache.org/dist/tomcat/tomcat-connectors/jk/source/jk-1.2.25/tomcat-connectors-1.2.25-src.tar.gz.asc">PGP signature</a>
+</p>
+<p>Download the <a href="http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/">binaries</a> for selected platforms.
+</p>
+</li>
+</ul>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Reference Guide"><strong>Reference Guide</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<ul>
+<li><a href="reference/workers.html"><b>workers.properties</b></a>
+<p>A Tomcat worker is a Tomcat instance that is waiting to execute servlets
+on behalf of some web server. For example, we can have a web server such as Apache
+forwarding servlet requests to a Tomcat process (the worker) running behind it.
+</p>
+<p>This page contains detailed description of all workers.properties
+directives.
+</p>
+</li>
+
+<li><a href="reference/uriworkermap.html"><b>uriworkermap.properties</b></a>
+<p>
+The forwarding of requests from the web server to tomcat gets configured by defining mapping rules.
+The so-called <b>uriworkermap</b> file is a mechanism of defining those rules.
+</p>
+</li>
+
+<li><a href="reference/status.html"><b>Status Worker</b></a>
+<p>
+The status worker is a builtin management worker. It displays state information
+and can also be used to dynamically reconfigure JK.
+</p>
+</li>
+
+<li><a href="reference/apache.html"><b>Apache</b></a>
+<p>This page contains detailed description of all directives related to
+Apache web server.
+</p>
+</li>
+
+<li><a href="reference/iis.html"><b>IIS</b></a>
+<p>This page contains detailed description of all IIS directives.
+</p>
+</li>
+
+</ul>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Generic HowTo"><strong>Generic HowTo</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<ul>
+
+<li><a href="generic_howto/quick.html"><b>Quick Start</b></a>
+<p>This page describes the configuration files used by JK on the
+Web Server side for the 'impatients'.
+</p>
+</li>
+<li><a href="generic_howto/workers.html"><b>All about workers</b></a>
+<p>This page contains an overview about the various aspects of defining
+and using workers.
+</p>
+</li>
+<li><a href="generic_howto/timeouts.html"><b>Timeouts</b></a>
+<p>This page describes the possible timeout settings you can use.
+</p>
+</li>
+<li><a href="generic_howto/loadbalancers.html"><b>Load Balancing</b></a>
+<p>This page contains an introduction on load balancing with JK.
+</p>
+</li>
+<li><a href="generic_howto/proxy.html"><b>Reverse Proxy</b></a>
+<p>This page contains an introduction to reverse proxies, how JK
+handles this situation and how you can influence the JK proxying behaviour.
+</p>
+</li>
+
+</ul>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Webserver HowTo"><strong>Webserver HowTo</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>These pages contain detailed descriptions of how to build and
+install JK for the various web servers.
+</p>
+<ul>
+
+<li><a href="webserver_howto/apache.html"><b>Apache HTTP Server</b></a>
+</li>
+<li><a href="webserver_howto/iis.html"><b>IIS</b></a>
+</li>
+<li><a href="webserver_howto/nes.html"><b>Netscape/SunOne/Sun</b></a>
+</li>
+
+</ul>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="AJP Protocol Reference"><strong>AJP Protocol Reference</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<ul>
+<li><a href="ajp/ajpv13a.html"><b>AJPv13</b></a>
+<p>This page describes the Apache JServ Protocol version 1.3 (hereafter
+<b>ajp13</b>).
+</p>
+</li>
+<li><a href="ajp/ajpv13ext.html"><b>AJPv13 Extension Proposal</b></a>
+<p>This page describes an extension proposal for ajp13.
+</p>
+</li>
+</ul>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Miscellaneous documentation"><strong>Miscellaneous documentation</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<ul>
+<li><a href="miscellaneous/faq.html"><b>Frequently asked questions</b></a>
+<p>
+</p>
+</li>
+<li><a href="miscellaneous/changelog.html"><b>Changelog</b></a>
+<p>
+This page contains the detailed list of all changes made in each version of JK.
+</p>
+</li>
+<li><a href="http://issues.apache.org/bugzilla/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Tomcat+Connectors&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=">
+<b>Current Tomcat Connectors bugs</b></a>
+<p>This is the Bugzilla Bug List related to Tomcat Connectors.
+</p>
+</li>
+<li><a href="miscellaneous/doccontrib.html"><b>Contribute documentation</b></a>
+<p>
+This page describes, how to contribute to the JK documentation.
+</p>
+</li>
+<li><a href="miscellaneous/jkstatustasks.html"><b>JK Status Ant Tasks</b></a>
+<p>
+This page describes ant tasks to automate JK management via the status worker.
+</p>
+</li>
+<li><a href="miscellaneous/reporttools.html"><b>Reporting Tools</b></a>
+<p>
+This page contains information, on some report analysis scripts contained in the JK distribution.
+</p>
+</li>
+<li><a href="http://tomcat.apache.org/connectors-doc-archive/jk2/index.html">
+<b>Old JK/JK2 documentation archive.</b></a>
+<p>Here you can find old JK and JK2 documentation.
+</p>
+</li>
+</ul>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="News"><strong>News</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>Release news from various years.
+</p>
+
+<ul>
+<li><a href="news/20110701.html"><b>2011</b></a>
+</li>
+<li><a href="news/20100101.html"><b>2010</b></a>
+</li>
+<li><a href="news/20090301.html"><b>2009</b></a>
+</li>
+<li><a href="news/20081001.html"><b>2008</b></a>
+</li>
+<li><a href="news/20070301.html"><b>2007</b></a>
+</li>
+<li><a href="news/20060101.html"><b>2006</b></a>
+</li>
+<li><a href="news/20050101.html"><b>2005</b></a>
+</li>
+<li><a href="news/20041100.html"><b>2004</b></a>
+</li>
+
+</ul>
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright &copy; 1999-2011, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html> \ No newline at end of file
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/docs/miscellaneous/changelog.html b/rubbos/app/tomcat-connectors-1.2.32-src/docs/miscellaneous/changelog.html
new file mode 100644
index 00000000..bbf266fb
--- /dev/null
+++ b/rubbos/app/tomcat-connectors-1.2.32-src/docs/miscellaneous/changelog.html
@@ -0,0 +1,2096 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>The Apache Tomcat Connector - Miscellaneous Documentation - Changelog</title><meta name="author" value="Mladen Turk"><meta name="email" value="mturk@apache.org"><meta name="author" value="Rainer Jung"><meta name="email" value="rjung@apache.org"><meta name="author" value="Henri Gomez"><meta name="email" value="hgomez@apache.org"><meta name="author" value="Tim Whittington"><meta name="email" value="timw@apache.org"><link href="../style.css" type="text/css" rel="stylesheet"></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="4"><!--PAGE HEADER--><tr><td colspan="2"><!--TOMCAT LOGO--><a href="http://tomcat.apache.org/"><img src="../images/tomcat.gif" align="left" alt="Apache Tomcat" border="0"></a><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="http://www.apache.org/images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><tr><!--LEFT SIDE NAVIGATION--><td width="20%" valign="top" nowrap="true"><p><strong>Links</strong></p><ul><li><a href="../index.html">Docs Home</a></li></ul><p><strong>Reference Guide</strong></p><ul><li><a href="../reference/workers.html">workers.properties</a></li><li><a href="../reference/uriworkermap.html">uriworkermap.properties</a></li><li><a href="../reference/status.html">Status Worker</a></li><li><a href="../reference/apache.html">Apache HTTP Server</a></li><li><a href="../reference/iis.html">IIS</a></li></ul><p><strong>Generic HowTo</strong></p><ul><li><a href="../generic_howto/quick.html">For the impatient</a></li><li><a href="../generic_howto/workers.html">All about workers</a></li><li><a href="../generic_howto/timeouts.html">Timeouts</a></li><li><a href="../generic_howto/loadbalancers.html">Load Balancing</a></li><li><a href="../generic_howto/proxy.html">Reverse Proxy</a></li></ul><p><strong>Webserver HowTo</strong></p><ul><li><a href="../webserver_howto/apache.html">Apache HTTP Server</a></li><li><a href="../webserver_howto/iis.html">IIS</a></li><li><a href="../webserver_howto/nes.html">Netscape/SunOne/Sun</a></li></ul><p><strong>AJP Protocol Reference</strong></p><ul><li><a href="../ajp/ajpv13a.html">AJPv13</a></li><li><a href="../ajp/ajpv13ext.html">AJPv13 Extension Proposal</a></li></ul><p><strong>Miscellaneous Documentation</strong></p><ul><li><a href="../miscellaneous/faq.html">Frequently asked questions</a></li><li><a href="../miscellaneous/changelog.html">Changelog</a></li><li><a href="http://issues.apache.org/bugzilla/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Tomcat+Connectors&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=">Current Tomcat Connectors bugs</a></li><li><a href="../miscellaneous/doccontrib.html">Contribute documentation</a></li><li><a href="../miscellaneous/jkstatustasks.html">JK Status Ant Tasks</a></li><li><a href="../miscellaneous/reporttools.html">Reporting Tools</a></li><li><a href="http://tomcat.apache.org/connectors-doc-archive/jk2/index.html">Old JK/JK2 documentation</a></li></ul><p><strong>News</strong></p><ul><li><a href="../news/20110701.html">2011</a></li><li><a href="../news/20100101.html">2010</a></li><li><a href="../news/20090301.html">2009</a></li><li><a href="../news/20081001.html">2008</a></li><li><a href="../news/20070301.html">2007</a></li><li><a href="../news/20060101.html">2006</a></li><li><a href="../news/20050101.html">2005</a></li><li><a href="../news/20041100.html">2004</a></li></ul></td><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left"><table border="0" width="100%" cellspacing="4"><tr><td align="left" valign="top"><h1>The Apache Tomcat Connector - Miscellaneous Documentation</h1><h2>Changelog</h2></td><td align="right" valign="top" nowrap="true"><small><a href="printer/changelog.html"><img src="../images/printer.gif" border="0" alt="Printer Friendly Version"><br>print-friendly<br>version
+ </a></small></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Preface"><strong>Preface</strong></a></font></td></tr><tr><td><blockquote>
+ <p>
+ This is the Changelog for Tomcat Connectors. This changelog
+ does not contain all updates and fixes to the Tomcat connectors (yet).
+ It should contain fixes made only after November 10th 2004, when the
+ new documentation project for JK was started.
+ </p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Changes between 1.2.31 and 1.2.32"><strong>Changes between 1.2.31 and 1.2.32</strong></a></font></td></tr><tr><td><blockquote>
+ <br>
+ <table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Native"><strong>Native</strong></a></font></td></tr><tr><td><blockquote>
+ <table border="0" cellpadding="2" cellspacing="2">
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=51417">51417</a>: Fix worker busy detection by querying the
+ worker endpoint. Abandoned connections can leave a worker
+ in busy state without decrementing busy counter. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=50339">50339</a>: Fix whitespace trimming when parsing attribute
+ lists. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=41263">41263</a>: Support Servlet API getRemotePort().
+ Works for Tomcat 5.5.28, 6.0.20 and 7.0.0 and Apache and ISAPI
+ plugins. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=41923">41923</a>: AJP: Close AJP connection to Tomcat on client write
+ error when recovery_options 4 is specified, aborting the response
+ write on the Tomcat side. (timw)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ AJP: Cap the lingering bytes that will be read
+ when shutting down an AJP socket at 32k to prevent CPU spikes
+ in the web server when a client aborts on a large response body.
+ Also reduce total linger time to 2s. (timw)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=50839">50839</a>: AJP: Fix 30sec CPU spike due to incorrect counting
+ of lingering bytes causing a busy loop when a client aborts
+ connection during a response write.
+ Fixes regression in 1.2.31. (timw)
+ </td></tr>
+ <tr><td valign="top"><img alt="add" class="icon" src="../images/add.gif"></td><td>
+ LB: Forward worker activation state as request attribute
+ "JK_LB_ACTIVATION". Possible values are "ACT" (active),
+ "DIS" (disabled) and "STP" (stopped). (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ HTTPD: Forward WWW-Authenticate from backend when status is 401
+ and server generated error pages are used. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=50363">50363</a>: IIS: Prevent chunk encoding of empty message
+ bodies for 204, 205 and 304 responses. (timw)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=50975">50975</a>: IIS: Fix hanging of Transfer-Encoding: chunked
+ requests when Content-Length header is present in request as well.
+ Also addresses situation where IIS appears to create a Content-Length
+ header for a small chunk encoded request when none was present in the
+ original request. (timw)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=47679">47679</a>: IIS: stop truncation of request headers when
+ ISAPI redirector used as an extension without the corresponding
+ filter installed. (timw)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ NSAPI: Use lower case header names for responses.
+ Otherwise the web server might add chunked transfer encoding header
+ in addition to our content length header.
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Docs: Improve load balancer documentation. (rjung)
+ </td></tr>
+ </table>
+ </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Changes between 1.2.30 and 1.2.31"><strong>Changes between 1.2.30 and 1.2.31</strong></a></font></td></tr><tr><td><blockquote>
+ <br>
+ <table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Native"><strong>Native</strong></a></font></td></tr><tr><td><blockquote>
+ <table border="0" cellpadding="2" cellspacing="2">
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=49413">49413</a>: AJP13: Drop flush packets send by the backend
+ after the response has been finished. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ AJP: Log the local and remote socket address. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Watchdog: Move the maintain workers outside the critical
+ section allowing other threads to use the connection
+ pool during maintenance. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Common: Add svn revision to init log message. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ Common: Don't destroy errno during trace logging. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Apache: Add support for Apache 2.3/2.4. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Apache: Added version number resource for mod_jk.so on Windows. (timw)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48501">48501</a>: IIS: Added rotatelogs style log rotation to ISAPI
+ Redirector. (timw)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=38895">38895</a>: IIS: Use RAW headers instead of CGI headers by default
+ to prevent conversion of underscores '_' to hyphens '-' in header names.
+ Old behaviour can be enabled by defining USE_CGI_HEADERS. (timw)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=49511">49511</a>: IIS: Do not override IIS log information when subsequent
+ requests on a keep-alive connection are not mapped into the ISAPI Redirector. (timw)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ Docs: Document SSLOptions needed for SSL information forwarding. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Docs: Grammar and style improvements and clarification about serving
+ static content by IIS.
+ Patch provided by Andr&eacute; Warnier. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ Docs: Update subversion paths used in docs. (rjung)
+ </td></tr>
+ </table>
+ </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Changes between 1.2.28 and 1.2.30"><strong>Changes between 1.2.28 and 1.2.30</strong></a></font></td></tr><tr><td><blockquote>
+ <br>
+ <table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Native"><strong>Native</strong></a></font></td></tr><tr><td><blockquote>
+ <table border="0" cellpadding="2" cellspacing="2">
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Apache: Improve compatibility with Apache 2.3. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46632">46632</a>: Apache: Do not register child cleanup for
+ our pools. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46893">46893</a>: Apache: Log warning only if JkShmSize was actually
+ set in the configuration. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ IIS: Include optional chunking support. Off by default. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48763">48763</a>: IIS: Do not send Content-Length when using chunked encoding
+ or length larger 4GB. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48223">48223</a>: IIS: Propagate correct backend error code to IIS. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=47867">47867</a>: IIS: crash during startup, when compiled with VS2008
+ and workers.properties contains unsupported properties.
+ Patch provided by Indrek Juhani (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=47628">47628</a>: IIS: Fix deadlock when restarting the Application Pool
+ caused by not releasing the critical section lock.
+ Patch provided by Bret Prucha. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ IIS/NSAPI: Correct log file flushing after each line. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="add" class="icon" src="../images/add.gif"></td><td>
+ NSAPI: Add Microsoft Visual C++ Makefile. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ AJP: Improve socket shutdown handling. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ AJP: Ensure we never reuse a non reusable socket. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ AJP: Tolerate a single excess packet when waiting for cpong. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ AJP: Check protocol correctness more strictly. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48410">48410</a>: AJP: Use poll instead select so we can work with more
+ then 1024 sockets. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46503">46503</a>: AJP/Status: Garbage data in worker domain and route. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48276">48276</a>: AJP: When worker contact cannot be resolved mark the
+ worker as disabled instead failing to start the server. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48169">48169</a>: AJP: Improve CGI interoperability by closing all
+ sockets during EXEC. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="add" class="icon" src="../images/add.gif"></td><td>
+ Status: Add number of open backend connections to status worker.
+ This feature is experimental, the displayed value might not be
+ accurate. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=47224">47224</a>: Status: When address gets changed invalidate
+ all opened sockets in the endpoint cache. This will cause new
+ backend connections to get opened using new address. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48305">48305</a>: Status: Do not show "secret" property when
+ doing dump. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=45610">45610</a>: Status: Don't accept requests with
+ empty value for sub worker parameter. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=45610">45610</a>: Status: Fix erroneous unsetting of
+ sticky_session and sticky_session_force when updating other
+ load balancer attributes via the status worker. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=47222">47222</a>: Status: Add ping_timeout to the shared memory
+ and allow dynamic configuration. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ Status: Remove duplicate "errors" line in property view of
+ AJP13 workers that are part of a load balancer. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ LB: Fix route logging. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Logging: Automatically detect size of thread id for logging. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Logging: Add optional log file locking for Windows when defining
+ JK_LOG_LOCKING. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Configuration: Update example configuration. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Docs: Update information about tools needed to create a release. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=47983">47983</a>: Docs: Fix typo in example config
+ which breaks startup. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Build: Force copy of automake files. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Build: Tomcat code repository structure cleanup reflected in documentation
+ and build script. (rjung, mturk)
+ </td></tr>
+ </table>
+ </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Changes between 1.2.27 and 1.2.28"><strong>Changes between 1.2.27 and 1.2.28</strong></a></font></td></tr><tr><td><blockquote>
+ <br>
+ <table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Native"><strong>Native</strong></a></font></td></tr><tr><td><blockquote>
+ <table border="0" cellpadding="2" cellspacing="2">
+ <tr><td valign="top"><img alt="add" class="icon" src="../images/add.gif"></td><td>
+ Apache: Add more environment variables to overwrite request
+ information. Useful in case a proxy is in front of Apache and sends
+ us original request information e.g. via custom headers. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Apache: No longer preallocate entries for JK request log. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46352">46352</a>: Apache: Fix crash when using SetHandler jakarta-servlet
+ in VHost without any JkMount. Crash due to incorrect initialization
+ of mount extensions. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ Apache: JkWatchdogInterval had wrong interval calculation
+ causing a 10 times higher watchdog interval then configured. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ Apache: Activate forwarding of SSL key size by default. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46169">46169</a>: Apache 1.3: Backport use_server_errors mount extension. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46763">46763</a>: Apache 2.0: Survive the log mutex during graceful
+ restart. Patch provided by Eiji Takahashi. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46416">46416</a>: Apache 2.0 on Windows: Include mstcipip.h even if
+ the apr doesn't include it. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ IIS: Update uriworkermap.properties file on
+ a regular interval. This requires both worker_mount_reload
+ and watchdog_interval to be defined. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ IIS: Remove obsolete entries from registry file. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46579">46579</a>: IIS: Use local environment table instead environment
+ variables for setting the JKISAPI_PATH and JKISAPI_NAME. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ LB: Add new property error_escalation_time to fine tune
+ escalation of local errors to global errors. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ LB: If the sticky session affinity mark contains a dot, treat the
+ part before the dot as the domain name. This allows to have full node
+ session affinity with domain failover. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ LB: make forced recovery work with local error states. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ LB: Only update error state and error time, if we actually have a new state. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ LB: Set global worker state to error when we reach max_reply_timeouts,
+ or fail_on_status triggered hard error. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ AJP: Add a new error type JK_AJP_PROTOCOL_ERROR. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ AJP: Allow worker ports lower or equal to 1024. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ AJP: Improve some AJP error log messages. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Status: Allow changing worker address and port of AJP workers.
+ The address is resolved on next request for that worker. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Status: Allow update actions to show error messages in the result page. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Status: Refactor update actions. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Status: Do not redirect to the show or list page, if an error occured
+ during an action. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Status: Include error time in display. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Status: Remove redundant port information from worker display.
+ Rename address column and remove its explanation from the legend. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Status: Optimize forced uriworkermap.properties reload. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ Status: Fix crash in text display. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ Status: Show - Edit - Show always ends in single lb member show,
+ even when started from all members lb show. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ Status: Wildcards in sub worker names were broken for update actions. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ Status: Add use_server_errors to map display. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ SHM: Move locking into the data pull and push methods. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ JNI: Deprecate JNI workers. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ Netware: Missing define for MAX_PATH. Patch by Guenter Knauf. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Docs: Add a new HowTo page about reverse proxies. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Docs: Add an explanation of local error states to the timeouts documentation. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Docs: Clarify relation between socket_timeout and socket_connect_timeout. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Docs: Clarify IIS URL rewrite feature. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46834">46834</a>,<a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46734">46734</a>: Docs: Fix a couple of missing or broken links. (markt,rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ Docs: Add 2008 news to main page and menues. (mturk, rjung)
+ </td></tr>
+ </table>
+ </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Changes between 1.2.26 and 1.2.27"><strong>Changes between 1.2.26 and 1.2.27</strong></a></font></td></tr><tr><td><blockquote>
+ <br>
+ <table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Native"><strong>Native</strong></a></font></td></tr><tr><td><blockquote>
+ <table border="0" cellpadding="2" cellspacing="2">
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46109">46109</a>: Decay reply_timeouts even when lb method is
+ busyness. Also reset reply_timeouts during forced recovery. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ AJP13: Recycle connection if previous request didn't complete. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Maintain should not run multiple times in parallel. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ Apache: Fix small memory leak during restart. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Improve signal handling during socket shutdown. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="add" class="icon" src="../images/add.gif"></td><td>
+ URI Map: Add debug dump function for uri worker map. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Add revision number to version info for non-release builds. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="add" class="icon" src="../images/add.gif"></td><td>
+ IIS: Optionally allow chunked encoding for responses.
+ At the moment only usable, if build with ISAPI_ALLOW_CHUNKING
+ defined. Based on patch by Tim Whittington. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ IIS: Optionally use raw headers instead of CGI
+ headers. Fixes problem "underscore=dash" problem in
+ header names. At the moment only available, if build with USE_RAW_HEADERS
+ defined. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ IIS: Optionally improve IIS 5.1 compatibility.
+ At the moment only available, if build with AUTOMATIC_AUTH_NOTIFICATION
+ defined. Based on patch by Tim Whittington. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ IIS: Fix memory corruption due to parallel initialization
+ by multiple threads. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Windows: Use non-default socket keepalive interval. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="add" class="icon" src="../images/add.gif"></td><td>
+ IIS: Add environment variables JKISAPI_PATH and JKISAPI_NAME. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="add" class="icon" src="../images/add.gif"></td><td>
+ Added socket_connect_timeout directive for setting the
+ connect timeout for the socket. This enables to have low
+ connection timeout but higher operational timeouts. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ AJP13:
+ [<a href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2008-5519"><b>CVE-2008-5519</b></a>]
+ Always send initial POST packet even if the client
+ disconnected after sending request but before providing
+ POST data. In that case or in case the client broke the
+ connection in a middle of read send an zero size packet
+ informing container about broken client connection. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="add" class="icon" src="../images/add.gif"></td><td>
+ AJP13: Added connection_acquire_timeout directive for setting the
+ absolute timeout the worker will wait for a free endpoint. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Apache: Allow to set path parameter used when doing JkStripSession. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Refactor retries implementation and change semantics of retries attributes. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Status: Allow showing only a single member for a load balancer. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Status: Add display of seconds since last statistics reset and access and
+ transfer rates. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="add" class="icon" src="../images/add.gif"></td><td>
+ AJP13: Add a configurable retry_interval time. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Documentation: Enhance description of connection_pool_size. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ IIS: Refactor error page generation. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ IIS: SERVER_NAME variable can be the same for
+ multiple different server instances if requests
+ are handled according to the ip:port combination.
+ Use INSTANCE_ID variable to which the request
+ belongs instead. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="add" class="icon" src="../images/add.gif"></td><td>
+ Allow forwarding server error pages. This can be done
+ on per-uri basis using new use_server_errors extension.
+ (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="add" class="icon" src="../images/add.gif"></td><td>
+ Added session_cookie and session_path for configuring
+ default session identifiers. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Use max_packet_size also as TCP send and receive buffer size. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Apache: Do not allow Apache to start in multi-threaded mode if mod_jk
+ was only build for single threaded server (prefork). (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=45812">45812</a>: Add done() service method that
+ causes sending EOS bucket for Apache httpd 2.x.
+ This allows filter chain to work properly. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="add" class="icon" src="../images/add.gif"></td><td>
+ Added connection_ping_interval, ping_timeout and ping_mode directives.
+ (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ Apache: Use correct ld flags provided by apxs when building module.
+ Prevents some crashes on AIX for httpd 1.3 module. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ Documentation: "val" attribute numbering in status worker
+ needs to start with 0 instead of 1. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Documentation: Remove JNI parameters from sample configuration
+ in the workers generic howto. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=45026">45026</a>: For Apache httpd 2.x add "Unknown Reason"
+ as the reason phrase, if we get an empty one from the backend.
+ Otherwise httpd 2.x returns status 500. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ Build: Fix Cygwin build. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Documentation: Add info to docs, that variables sent via JkEnvVar
+ are not listed in request.getAttributeNames(). (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="add" class="icon" src="../images/add.gif"></td><td>
+ Add watchdog background thread for Apache 2.x and IIS
+ doing internal maintenance (idle connection checks, backend probing).
+ See JkWatchdogInternal (Apache) and watchdog_interval (IIS). (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Change log level of some messages from error to info. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ Documentation: Fix docs for worker attribute "secret". (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Detect correct plugin name for various web servers via additional
+ preprocessor defines. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ LB: Do not put loadbalancer node in error state if there is opened
+ channel. This fixes the bug when new connection fails due to
+ busyness, causing opened connections fail stickyness.
+ This brings back per-node busy counter and private state array
+ for each request. We can mark the state as error for failover to
+ work while still operating and reporting node as OK if there are
+ opened working connections. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=44738">44738</a>: Fix merging of JkOption ForwardURI* between virtual hosts.
+ Patch contributed by Toshihiro Sasajima. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="add" class="icon" src="../images/add.gif"></td><td>
+ URI Map: Add extension attributes to uri worker map.
+ Allowed are reply_timeout, active/disabled/stopped
+ and fail_on_status.
+ Usage currently only implemented for httpd and IIS. (rjung+mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ URI Map: Make dynamic reloading atomic and free memory
+ not needed any longer. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="add" class="icon" src="../images/add.gif"></td><td>
+ Configure: Don't use post httpd 2.2.0 API functions when building
+ with new --enable-api-compatibility configure switch. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ Apache: JkAutoAlias does not work in combination with JkMountCopy
+ if there are no JkMount in virtual host. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ LB: Optimize state macros to improve performance. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="add" class="icon" src="../images/add.gif"></td><td>
+ Apache: Allow dynamic setting of reply timeout using the environment
+ variable JK_REPLY_TIMEOUT. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="add" class="icon" src="../images/add.gif"></td><td>
+ Status: Add manageability for ajp parameters of ajp
+ workers and ajp lb members. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Status: Change parameter names of update action to
+ make them more easily distinguishable from other parameters. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="add" class="icon" src="../images/add.gif"></td><td>
+ Status: Add ajp worker statistics also for
+ workers, that are not lb members. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ AJP: Refactor factories, move ajp13/ajp14 common parts into
+ ajp_factory. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Status: Only sync shm worker config values of the workers
+ for which we changed values. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ Status: Set lb_factor instead of distance. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Status: Minor layout changes, use drop down instead of multiple
+ text links. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ SHM: Use local copies of read mostly attributes of lb sub workers
+ in lb and status worker. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Status: Add "dump" action to dump our initial configuration. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Status: Use property table to decide which cmd action uses which
+ output elements. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Common: Include original configuration map in worker_env
+ to make it available for workers, e.g. the status worker. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ LB: Refactor "route" return for httpd note. Don't use a
+ member of the worker_record, because that's not thread safe. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Common: Refactor "retries", remove from service and jk_worker,
+ move into ajp worker instead. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ SHM: Use distinct structs for lb and ajp13 in shm.
+ Improves type safety and saves a few bytes. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ SHM: Remove unused attributes. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ SHM: Automatically determine shm size for all web servers. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ SHM: Make open/attach logging consistent for all web servers. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Status: Include server local time in output. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=44116">44116</a>: Fix handling of multiple JSESSIONID cookies. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=37850">37850</a>: Use thread safe localtime_r where appropriate. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ Use thread safe strtok_r on more platforms, especially AIX. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Status: Improve XSS hardening. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=35303">35303</a>: Move initialization of service members with defaults from
+ web server specific code to our generic jk_init_ws_service() function. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=36385">36385</a>: Add missing prepost CPing/CPong directly after connect
+ in case prepost CPing is used, but no connect CPing. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=37322">37322</a>: Apache: Enhance robustness of message formating
+ in jk_error_exit(). (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=44147">44147</a>: Multiple load balancing workers problem. (rjung)
+ </td></tr>
+ </table>
+ </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Changes between 1.2.25 and 1.2.26"><strong>Changes between 1.2.25 and 1.2.26</strong></a></font></td></tr><tr><td><blockquote>
+ <br>
+ <table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Native"><strong>Native</strong></a></font></td></tr><tr><td><blockquote>
+ <table border="0" cellpadding="2" cellspacing="2">
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=42003">42003</a>: Allocate memory instead using fixed size from
+ the stack. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43229">43229</a>: Load balancer does not do fail over after
+ reply timeouts. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ JKStatus: Repair detailed Apache httpd version display.
+ This was broken for httpd version 2.2.4+. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ LB/AJP: Refactoring of jk_connect.c, jk_ajp_common.c,
+ jk_lb_worker.c (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ Configure: Repair broken apxs auto-detection. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Configure: Remove trace logging from compiled code
+ via new --disable-trace configure switch. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Common: Maintain idle connections in decreasing (LRU)
+ slot order. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Apache: Create JK_WORKER_ROUTE and JK_REQUEST_DURATION notes for
+ access log even if no JkRequestLogFormat is set. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ JKStatus: Enhance URI to worker map listing for Apache httpd.
+ We now list maps for all virtual servers and not only
+ the one, in which JKStatus itself was called. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ JKStatus: Enhance URI to worker map listing.
+ Update stale uriworkermap.properties immediately. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43873">43873</a>: Fix small memory leak occuring during httpd restart. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Common: Allow '*' for the worker name in exclusion rules (resp. JkUnMount)
+ which will override all workers. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=42038">42038</a>: Correct overlay of mounts and unmounts for IIS. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43684">43684</a>: Replace JkMountFile by JkMountFileReload in
+ uriworkermap.properties docs. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Apache: Add new value "All" for JkMountCopy. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43516">43516</a>: Memory leak for Apache httpd module
+ of size 8KB for every virtual host without JK directive
+ after each restart. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Apache: Cleanup init and destroy of server configuration. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Apache: Remove global configuration items from per server
+ configuration. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Apache: Remove unused attributes secret_key and
+ automount/JkAutoMount. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Cleanup of jk_uri_worker_map. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Documentation: Small additions to JkShmFile documentation.
+ Contributed by Gerhardus Geldenhuis. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ AJP13: Ignore flush packets before we received the response headers. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ Fix crash during startup when using worker configuration inheritance
+ (attribute "reference") and log level debug. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ AJP13: Match header names exactly against pre defined constants. Avoid
+ possible confusion with custom header names using a standard header name
+ as a prefix. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ jkstatus: Fix correct parameter validation at JkStatusUpdateTask and
+ JkStatusUpdateLoadbalancerTask ant tasks. Reported by Christian Mittendorf. (pero)
+ </td></tr>
+ </table>
+ </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Changes between 1.2.24 and 1.2.25"><strong>Changes between 1.2.24 and 1.2.25</strong></a></font></td></tr><tr><td><blockquote>
+ <br>
+ <table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Native"><strong>Native</strong></a></font></td></tr><tr><td><blockquote>
+ <table border="0" cellpadding="2" cellspacing="2">
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ IIS: Fix shm shutdown behaviour. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ General: fail_on_status used in a load balancer can optionally
+ do fail over without putting the failed worker in error state. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ NSAPI: Improve build description for Unix. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ NSAPI: Add initialization startup message containing JK version. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ General: Declare static functions as static. (jim)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Documentation: Clarify fail_on_status behaviour. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ General: Do fail_on_status before returning the response headers. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ NSAPI: Fix shm shutdown behaviour. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ NSAPI: Set return status even if request ended with an error. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ NSAPI: Allow using without shm_file on WIN32 and Netware. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ NSAPI: Fix Crash of nsapi for log level debug and unset refect_unsafe. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ NSAPI: Improve Solaris and Linux Makefiles for nsapi build. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ Build: Improve pid_t type detection during configure on Solaris. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Build: Experimental build support for gcc on WIN32 and Netware. (fuankg)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Build: Makefile optimizations for Apache httpd 1.3/Netware . (fuankg)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ General: Fix missing flush bug introduced in 1.2.24. (rjung)
+ </td></tr>
+ </table>
+ </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Changes between 1.2.23 and 1.2.24"><strong>Changes between 1.2.23 and 1.2.24</strong></a></font></td></tr><tr><td><blockquote>
+ <br>
+ <table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Native"><strong>Native</strong></a></font></td></tr><tr><td><blockquote>
+ <table border="0" cellpadding="2" cellspacing="2">
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Documentation: Improved workers.properties description in the
+ reference guide. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Documentation: Add a HowTo about the various timeouts. rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Logging: add milliseconds to the default timestamp format,
+ if we have gettimeofday(). (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Apache: add milliseconds (%Q) and microseconds (%q) as possible
+ JkLogStampFormat conversion specifiers. This does not use strftime(),
+ but needs gettimeofday(). (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ IIS &amp; Sun: Log service failures also, if return code is negative. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=42849">42849</a>: Abort startup of Apache httpd 1.3 in case
+ mod_jk initialization failed. We already do the same
+ for Apache httpd 2.x. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=42849">42849</a>: Refuse to operate with IIS in case the
+ initialization failed. Instead requesting isapi_redirect.dll
+ 500 will be returned to the user. This is as closest as it
+ can get to Apache Httpd where we refuse to start the server
+ in case of fatal initialization errors. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ Load Balancer: Fix a deadlock in lb worker, which was exposed on Solaris
+ for threaded Apache MPMs. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Logging: handle LWP IDs as 32 Bit unsigned. Try to make
+ it work, although pthread IDs are opaque. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ JkStatus: Added manipulation of max_reply_timeouts. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ LB, Status: Add feature max_reply_timeouts, to make lb tolerant against
+ occasional long running requests. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ JkStatus: Added OK/IDLE as the successor of N/A. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Status worker: Renamed runtime states. All states have a major
+ state (OK or ERR) and a substate. Changed the name N/A to OK/IDLE.
+ Added docs about the meaning of the states to the status worker
+ page in the reference guide.
+ No new states have been added to code. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Common: Add recovery options for recovering idempotent http methods
+ HEAD and GET. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ Correct documentation for worker attributes retries and
+ recovery_options. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ Make writing log lines and line endings more atomic. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Common: Refactored and unified jk_map_read_prop* and jk_map_load_prop*
+ for all use cases. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Common/Apache/IIS/Netscape: Add an option to check decoded URLs for
+ potentially malicious constructions. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ IIS: Document auth_complete and uri_select. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Apache/IIS/Netscape: Change the default forwarding encoding to the new
+ proxy method. (jfclere, rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Common: Optionally reencode URIs before forwarding to the backend.
+ Based on the URI reencoding done bei httpd mod_proxy. (jfclere, rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Common: auto-detect correct print format for pid_t.
+ This fixes at least compiler warnings on Solaris. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=42608">42608</a>: Handle Content-length as unsigned 64Bit
+ to allow for huge up- and downloads. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Apache: Add forwarding uri to debug log. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Docs: Clarify relation between worker names and jvmRoute for load balancing. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ Use initial zero timeout for jk_is_socket_connected. The resulting
+ detection is the same but offers a huge performance increase
+ with mod_jk. In most cases the Operating System does not favor
+ the 1 microsecond timeout, but it rather rounds that up to much
+ higher value (frequency of interrupt timer which on most systems
+ defaults to 100Hz).
+ Patch provided by David McLaughlin. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ NSAPI: Check correct log file and shm file configuration during startup. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ NSAPI: Add support for the general options concerning retries, flushing
+ and connection persistance. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ NSAPI: fix crashes due to use of mount attribute in workers.properties.
+ Changed initialization order. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ Improved handling of libtool and discrepancies between CC env variable and
+ CC used during apache build by configure script. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ Always build with thread support, unless flag --enable-prefork
+ is set during for configure. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Use snprintf/vsnprintf from ap_snprintf.c for platforms other
+ than Windows, which might lack snprintf/vsnprintf implementations
+ when NOT build for Apache httpd 2.x/APR (e.g. Sub Web Server)
+ or without using configure. (fuankg)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Imported ap_snprintf() from Apache 1.3. (fuankg)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ Fix incorrect log object cleanup during statup,
+ leading to crashes at least on iSeries. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Add jk_stat() and jk_file_exists() as wrapper functions.
+ i5/OS V5R4 expects filename in ASCII for fopen but requires them
+ in EBCDIC for stat(). (hgomez)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ i5/OS (AS/400) V5R4 port where Apache 2.0 modules should now use UTF8. (hgomez)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Docs: Add comments on i5/OS build for V5R4 and previous releases. (hgomez)
+ </td></tr>
+ </table>
+ </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Changes between 1.2.22 and 1.2.23"><strong>Changes between 1.2.22 and 1.2.23</strong></a></font></td></tr><tr><td><blockquote>
+ <br>
+ <table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Native"><strong>Native</strong></a></font></td></tr><tr><td><blockquote>
+ <table border="0" cellpadding="2" cellspacing="2">
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ [<a href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-0450"><b>CVE-2007-0450</b></a>]
+ and
+ [<a href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-1860"><b>CVE-2007-1860</b></a>]:
+ Change the default value of JkOptions to ForwardURICompatUnparsed.
+ The old default value was ForwardURICompat.
+ This should make URL interpretation between Apache httpd and
+ Tomcat consistent (prevent double decoding problems). (rjung)
+ </td></tr>
+ </table>
+ </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Changes between 1.2.21 and 1.2.22"><strong>Changes between 1.2.21 and 1.2.22</strong></a></font></td></tr><tr><td><blockquote>
+ <br>
+ <table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Native"><strong>Native</strong></a></font></td></tr><tr><td><blockquote>
+ <table border="0" cellpadding="2" cellspacing="2">
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ Refactor line endings logging to make it correct for all
+ platforms and webservers. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Added command line windows make files. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Allow fail_on_status directive to be multi line. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=42076">42076</a>: Fix name of new option from ForwardCertChain to
+ ForwardSSLCertChain as documented. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ Docs: Fix a couple of typos, change format of a few tables,
+ fix links to news pages. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ Fix correct URL for TC 6 examples in new IIS rewrite.properties
+ configuration example file. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ Add svn properties to several files. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Add TC 6 examples to uriworkermap.properties in config examples. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Allow multiple status codes for fail_on_status directive.
+ The status codes can be delimited by space or comma characters. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ IIS. Added pcre like regular expressions for url rewrite rules. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=41922">41922</a>: Apache 1.3. Enable JkEnvVar. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Apache. Add --enable-flock configure parameter for explicit
+ compilation of faster flock() system calls for OS supporting
+ those calls. By default the fcntl system call for locking will
+ be used that is a little bit slower but it can work on NFS
+ mounted volumes as well. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=41562">41562</a>: Add Debug logging for read from client in ISAPI Redirector.
+ Contributed by Tim Whittington. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Apache. Add ForwardSSLCertChain JkOption.
+ Contributed by Patrik Schnellmann. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ IIS. Do not forbid access to web-inf or meta-inf if there is
+ no mapped worker. This allows to have resource with those names
+ that are outside mapped contexts. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Apache. Use process id for creating shared memory name and delete shared
+ memory and shared memory lock files on exit. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ IIS. Fix Keep-Alive regression introduced in 1.2.21. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Delete unused check for empty init_map during startup. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=41770">41770</a>: Fix startup error if no JkWorkersFile is used. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Use JK_TRUE/JK_FALSE instead of OK/!OK as return values in init_jk(). (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Minor adjustments to apache startup log messages (when to use STDERR, remove
+ deprecated NOERRNO flag, shm warning and warnings for usage of default files). (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Replace APR precompiler directive by httpd mpm_query to detect MPM threading.
+ Add a debug log message about auto-detected pool size. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ Make MMN check easier to understand and a little more precise
+ (for new ap_get_server_banner()/ap_get_server_description()).
+ We use the new API only for Apache httpd 2.3. This way our binaries are not
+ tightly coupled to a minor 2.0 version, and we don't use ap_get_server_banner()
+ any way. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ Use the full description string ap_get_server_description() instead of
+ the truncated info from ap_get_server_banner(), because this info gets used internally
+ (status worker display and ajp14 backend communication) and is not send back to the
+ normal user. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=41757">41757</a>: Document the "--enable-prefork" flag of configure. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Enhance log messages for failures when parsing attribute maps. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ Correct log message during worker initialization, in case remote host could not be
+ resolved. We logged the default host name "localhost" instead of the configured one. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=41770">41770</a>: Fix the second part of the bug: local_worker and local_worker_only
+ is missing from the list of deprecated attributes (and not supported either), so prevents
+ the web server from startup. (rjung)
+ </td></tr>
+ </table>
+ </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Changes between 1.2.20 and 1.2.21"><strong>Changes between 1.2.20 and 1.2.21</strong></a></font></td></tr><tr><td><blockquote>
+ <br>
+ <table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Native"><strong>Native</strong></a></font></td></tr><tr><td><blockquote>
+ <table border="0" cellpadding="2" cellspacing="2">
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ [<a href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-0774"><b>CVE-2007-0774</b></a>]:
+ A denial of service and critical remote code execution vulnerability.
+ Caused by buffer overflow in map_uri_to_worker() when URL were longer that 4095 bytes.
+ Reported by ZDI (www.zerodayintiative.com).
+ Please note this issue only affected versions 1.2.19 and 1.2.20 of the
+ Apache Tomcat JK Web Server Connector and not previous versions.
+ Tomcat 5.5.20 and Tomcat 4.1.34
+ included a vulnerable version in their source packages.
+ Other versions of Tomcat were not affected.
+ </td></tr>
+ <tr><td valign="top"><img alt="add" class="icon" src="../images/add.gif"></td><td>
+ Check the worker. parameters and don't start if the parameter is not a valid one. (jfclere)
+ </td></tr>
+ <tr><td valign="top"><img alt="add" class="icon" src="../images/add.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=41439">41439</a>: Allow session IDs to get stripped off URLs of static
+ content in Apache by adding JkStripSession
+ directive (configurable per vhost). (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="add" class="icon" src="../images/add.gif"></td><td>
+ Change semantics of empty defaults for JkEnvVar variables.
+ Until 1.2.19: not allowed. In 1.2.20: send variables as empty strings, if
+ neither set to non empty in config, nor during runtime.
+ Starting with 1.2.21: If config has no second argument only send
+ variable if set (even when set to empty string) during runtime.
+ Allows good combination with condition attribute in tomcat access log. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=41610">41610</a>: Fix incorrect detection of missing Content-Length
+ header leading to duplicate headers. Contributed by Boris Maras. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ Better build support for SunONE (Netscape/iPlanet) webservers. (jim)
+ </td></tr>
+ <tr><td valign="top"><img alt="add" class="icon" src="../images/add.gif"></td><td>
+ Add warning if duplicate map keys are read and are not allowed,
+ e.g. when parsing uriworkermap.properties. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ Don't concat worker names, if uriworkermap.properties has a duplicate
+ pattern, instead overwrite the worker. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ Log deprecation message even in duplication case. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ uriworkermap.properties: Fix off-by-one problem when deleting
+ URL mapping during reloading of uriworkermap.properties. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="add" class="icon" src="../images/add.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=41439">41439</a>: Allow session IDs to get stripped off URLs of static
+ content in IIS (configurable). (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="add" class="icon" src="../images/add.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=41333">41333</a>: Refactoring isapi_plugin configuration reading. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="add" class="icon" src="../images/add.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=41332">41332</a>: Add some more errno logging and unify the format. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="add" class="icon" src="../images/add.gif"></td><td>
+ JkStatus: Improved logging by adding status worker name to messages.
+ Added messages to the recover worker action. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="add" class="icon" src="../images/add.gif"></td><td>
+ JkStatus: Refactoring searching for workers and sub workers. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="add" class="icon" src="../images/add.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=41318">41318</a>: Add configuration to make status worker user
+ name checks case insensitive. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="add" class="icon" src="../images/add.gif"></td><td>
+ JkStatus: Add estimated time until next global maintenance to other
+ mime types and adopt jkstatus ant task. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="add" class="icon" src="../images/add.gif"></td><td>
+ JkStatus: Show estimated time until next global maintenance.
+ Change displayed time until next recovery to a min/max pair. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="add" class="icon" src="../images/add.gif"></td><td>
+ JkStatus: Allow a user of a read/write status worker to switch it
+ to and from read_only mode temporarily. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ JkStatus: Do not show read/write commands in a read_only status worker. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="add" class="icon" src="../images/add.gif"></td><td>
+ JkStatus: Allow lb sub workers in error state to be marked for recovery
+ administratively from the status worker. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="add" class="icon" src="../images/add.gif"></td><td>
+ Load Balancer: Do not try to recover multiple times in parallel.
+ Use additional runtime states "PROBE" and "FORCED". (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ JkStatus: Improve data synchronization between different processes. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=41381">41381</a>: Fix segfault in feature fail_on_status
+ (wrong order of log arguments). Patch by Juri Haberland. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ Use correct windows line endings for log file on WIN32 platform. (rjung)
+ </td></tr>
+ </table>
+ </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Changes between 1.2.19 and 1.2.20"><strong>Changes between 1.2.19 and 1.2.20</strong></a></font></td></tr><tr><td><blockquote>
+ <br>
+ <table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Native"><strong>Native</strong></a></font></td></tr><tr><td><blockquote>
+ <table border="0" cellpadding="2" cellspacing="2">
+ <tr><td valign="top"><img alt="add" class="icon" src="../images/add.gif"></td><td>
+ JkStatus Ant Task documentation page. (pero/rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="add" class="icon" src="../images/add.gif"></td><td>
+ JkStatus Ant Tasks: Add new tasks for update and reset. (pero)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ JkStatus Ant Tasks: Update for new xml status format. (pero)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Allow integer and string values when setting enumeration/boolean
+ attributes via status worker update action. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="add" class="icon" src="../images/add.gif"></td><td>
+ Docs: New reference guide page for status worker. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Docs: Renaming the config dir to reference and using the title
+ Reference Guide in the docs. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Added retry_on_status for workers directive. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Status Worker: Add directive to make property prefix
+ and good/bad rule configurable. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Status Worker: Omit lb members when att=nosw. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Status Worker: New command cmd=version for a short version output. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Status Worker: New output stype mime=prop produces property lists. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ Apache: Fix incorrect handling of JkEnvVar when Vars are set multiple times. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Renamed jvm_route to route. Deprecated jvm_route, but still use it as fallback
+ when parsing the worker configuration. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ IIS: Make uriworkermap file reload check interval configurable. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Apache: Make uriworkermap file reload check interval configurable. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Status Worker: Add directives for customizing the XML
+ output (ns, xmlns, doctype). (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="add" class="icon" src="../images/add.gif"></td><td>
+ Docs: New page with description of uriworkermap. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Docs: Added short description of max_packet_size to worker
+ reference. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Status Worker: All functions accessible also for xml and txt
+ mime types (list, show, update, reset). (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Status Worker: New global health indicators for load balancers
+ named bad (error, recovering or stopped), degraded (busy or disabled)
+ and good (the rest, active and OK or N/A). (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Status Worker: New edit page, to change one attribute for all
+ members of a load balancer. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Status Worker: Standard logging for status worker. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Status Worker: code refactoring. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Status Worker: New attribute user (list) denies access, if
+ the request user in the sense of remote_user is not in this list.
+ Empty list = no deny (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Status Worker: New attribute read_only disables the parts
+ of the status worker, that change states and configurations. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=36121">36121</a>: Don't change main uri when mod_jk serves
+ included uri. (markt)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Apache VHosts: Merge JkOptions +base - -base + +vhost - -vhost. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Apache Docs: Adding requirements, context information, default values and
+ inheritance rules to the Apache config documentation. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Status Worker: Add source type to status worker, remove the redundant "context"
+ column in the map listing (context=uri). (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ uriworkermap: On reload of the file, all old entries from the previous file
+ version get deleted, before the new ones are being read. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ Keep normal maps and exclusion maps internally separate. Don't treat them
+ as the same when adding a rule. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Status Worker: Display mapping rules also for non-lb workers and in global view. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Apache VHosts: Use the vhost log files instead of the main log. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Apache VHosts: Allow individual timestamp formats by refactoring the formatting
+ method. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Apache VHosts: Adding all missing config items to the virtual host level.
+ Don't overwrite the settings from the global server, but inherit them
+ in case they are not set in the virtual host. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Apache: remove unnecessary function names from log messages. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Apache: add a default log file location and a message, if the default gets used. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Apache: add missing JK_IS_DEBUG_LEVEL() (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Apache VHosts: Allow JkWorkersFile, JKWorkerProperty, JkShmFile and JkShmFileSize
+ only in global virtual server. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Add some more jk_close_socket() and reduce log level for some info messages. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Load Balancer: Added the Sessions strategy. Contributed by Takayuki Kaneko. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Docs: Minor enhancements and syncing with more recent versions. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=40997">40997</a>: Separate uri mappings from their '!'
+ counterpart when checking for duplicates in uriworkermap
+ reloading. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=40877">40877</a>: Make sure the shared memory is reset on
+ attach for multiple web server child processes. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ IIS: Added shm_size property to be able to deal with over 64
+ workers configurations. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ IIS: Increase default thread count to 250, so its the same as Apache Httpd
+ default configuration. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=40966">40966</a>: Fix socket descriptor checks on windows. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=40965">40965</a>: Initialize missing service parameters. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=40938">40938</a>: Fix releasing of rewrite map.
+ Thanks to Chris Adams for spotting that. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Apache: Added +FlushHeader JkOptions. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Added explicit flush when AJP body packet size is zero. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=40856">40856</a>: Fixing case sensitivity bug in URL mapping. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=40793">40793</a>: Documentation: Improvements to Apache HowTo provided by
+ Paul Charles Leddy. (markt)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=40774">40774</a>: Fixing wrong recursion termination. This one restricted the
+ "reference" feature unintentionally to 20 workers. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=40716">40716</a>: Adding "reference" feature to IIS and Netscape. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ Documentation: Corrected SetEnvIf syntax in JK_WORKER_NAME example. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ Documentation: Added forgotten STATE and ACTIVATION notes for load balancer logging in Apache. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Apache: Use instdso.sh instead libtool: libtool does not work on HP-UX for example. (jfclere)
+ </td></tr>
+ </table>
+ </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Changes between 1.2.18 and 1.2.19"><strong>Changes between 1.2.18 and 1.2.19</strong></a></font></td></tr><tr><td><blockquote>
+ <br>
+ <table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Native"><strong>Native</strong></a></font></td></tr><tr><td><blockquote>
+ <table border="0" cellpadding="2" cellspacing="2">
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Docs: Add SetHandler and new env var to Apache config docs. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Apache 1.3: Backport "no-jk" feature. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Apache: Add an environment variable to make SetHandler "jakarta-servlet" more
+ useful. The variable is JK_WORKER_NAME, but can be changed by the
+ new directive JkWorkerIndicator. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ LB: Don't use single worker shortcut, if the single worker is being diabled. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ Status worker: Add short explanation of activation and error states to legend. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ Docs: Add meaning of zero timeout values for various timeouts
+ in workers.properties. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ LB: Cleanup of Mladens forced recovery. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ LB: Do not change lb_value for recovering workers to max, if
+ we are using BUSYNESS method. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ Apache: Since 1.2.14 mod_jk failed to detect client abort. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ Docs: Corrected description of JkEnvVar. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ Solaris: Detect filio.h in configure to make the new connection detection
+ build on solaris (r432825). (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Add feature to force the recovery of workers that are
+ member of loadbalancer if all the members are in error
+ state. This fixes the time gap where 503 was returned
+ caused by recovery_timeout although the backend was
+ ready to handle the requests. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Docs: Seperate deprecated directives in their own table. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Docs: Allow "-" and "_" in worker names. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Allow multiple lines with attributes "balance_workers" and "mount". (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ Make jk_is_some_property match more precisely. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ JkStatus: Make refresh interval changeable. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ JkStatus: Adjust display of recover time wrt. global maintenance. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ LB: Resetting worker state from OK to NA, if worker has been idle
+ too long. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ Avoid compiler warnings concerning the use of lb_*_type arrays.
+ Use functions instead. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Added %R JkRequestLogFormat option for Apache 1 and Apache 2. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Allow changing jvm Route from status manager. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ Do not retun 400 if Tomcat fails in the midle of the post
+ request. Return 500 insted. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ LB: Combine ok/error/recovering/busy runtime states into a single scalar. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ LB: Combine active/disabled/stopped configuration states into a single scalar. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ LB: Add several Apache notes to enable standard logging for load balancer results. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ LB: Reorganisation of the main load balancer service loop. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Implement hierarchical worker configuration via attribute "reference". (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Log deprecated properties. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ IIS: Fix simple_rewrite for the cases where the
+ rewritten url is larger then the original one. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ New JkOption "DisableReuse" to disable connection persistence. (jim)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ LB: Move sessionid retrieval out of get_most_suitable_worker into service. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Code cleanup for all service methods (use TRACE, JK_LOG_NULL_PARAMS, null pointer checks). (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ JKSTATUS: add refresh link. No refresh for updates. Redirect to list view after update. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Add new hook add_log_items into servers. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ APACHE httpd: Rename apache logging notes. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ LB: Rename lock and method constants. Add constants for defaults. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ Default log level should be INFO and not DEBUG.
+ Default log level should be the same for all server types. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ Make rewrite_rule_map and log_level as non mandatory
+ directives for isapi_redirect. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=40107">40107</a>: Rewrite is_socket_connected function.
+ Non blocking socket is not used any more. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Allow building with VS2005 without too many warnings. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ Decide by MMN, which piped log API we should use.
+ mod_jk 1.2.18 broke compilation with Apache 1.3 pre 1.3.28. (rjung)
+ </td></tr>
+ </table>
+ </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Changes between 1.2.17 and 1.2.18"><strong>Changes between 1.2.17 and 1.2.18</strong></a></font></td></tr><tr><td><blockquote>
+ <br>
+ <table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Native"><strong>Native</strong></a></font></td></tr><tr><td><blockquote>
+ <table border="0" cellpadding="2" cellspacing="2">
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ Using socklen_t in getsockopt. Also introducing jk_sock_t. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Allow recovery wait time below 60 seconds (new minimum is 1 second). (mturk)
+ </td></tr>
+ </table>
+ </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Changes between 1.2.16 and JK 1.2.17"><strong>Changes between 1.2.16 and JK 1.2.17</strong></a></font></td></tr><tr><td><blockquote>
+ <br>
+ <table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Native"><strong>Native</strong></a></font></td></tr><tr><td><blockquote>
+ <table border="0" cellpadding="2" cellspacing="2">
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ Fix hanging jk status worker when certain attributes are being updated
+ due to double locking. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Allow JkMount to behave like uriworkermap.properties
+ by parsing pipe symbol as two directive marker. (mturk)
+ </td></tr>
+ </table>
+ </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Changes between 1.2.15 and JK 1.2.16"><strong>Changes between 1.2.15 and JK 1.2.16</strong></a></font></td></tr><tr><td><blockquote>
+ <br>
+ <table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Native"><strong>Native</strong></a></font></td></tr><tr><td><blockquote>
+ <table border="0" cellpadding="2" cellspacing="2">
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Added simple rewrite capability for IIS. Although simple it
+ will fulfill most needs. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Added RECOVER_ABORT_IF_CLIENTERROR recovery_option that closes
+ the connection if client connection is broken during the request. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Renamed cache_timeout directive to connection_pool_timeout. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Added connection_pool_minsize directive. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Deprecate recycle_timeout directive. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Corrected some HTML syntax bugs in output of status worker. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Added the refresh=n parameter to the status worker. It will update the display every n seconds. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Balancer: Add attribute distance to balanced workers to express preferences between workers. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Balancer: Add attribute jvm_route to balanced workers to be able to use the same target in different balancers. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Status: Add lb_mult to status. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Balancer: Make different balancing strategies work in a similar way (use lb_value, use decay during global maintenance, use integer factors for weights. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Balancer: Improve locking. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Balancer: Workers start slower after recovering. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ 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)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Balancer: Move recovery check to global maintenance. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Balancer: Add global maintenance method, that is called in only one process. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Extend our use of autoconf to find a 32Bit and a 64Bit unsigned type and their printf formats. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Logging: piped loggers for JkLogFile and Apache 1.3. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Logging: Add PID to log lines for each log level apart from REQUEST. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Logging: flush buffered logs to keep lines in correct order. Output final newline together with log message. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Reducing shm size. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Only log removing of old worker, when we actually do it. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=37469">37469</a>: Fix shared memory close for forked childs.
+ The shared memory will be closed by the parent process. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=37332">37332</a>: Fix potential misuse of buffer length with
+ snprintf functions. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=38859">38859</a>:
+ [<a href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-7197"><b>CVE-2006-7197</b></a>]
+ Protect mod_jk against buggy or malicious
+ AJP servers in the backend. Patch provided by Ruediger Pluem. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=38889">38889</a>: Use worker map sorting depending on the path
+ elements, to comply with Servlet spec. Patch provided by
+ Steve Revilak. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=36138">36138</a>: Added Busyness lb method. Patch provided
+ by Chris Lamprecht. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ Fix pessimistic locking mode. The patch correctly handles the
+ burst load, by syncing the access to the shared memory data. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=38806">38806</a>: Reclycle worker even if it is disabled.
+ This fixes hot-standby workers in error state. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=37167">37167</a>: Allow building with BSD-ish like make. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ ISAPI plugin (isapi_redirect.dll) did not provide correct request data
+ for IIS
+ to include in the IIS log. (markt)
+ </td></tr>
+ </table>
+ </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Changes between 1.2.14 and 1.2.15"><strong>Changes between 1.2.14 and 1.2.15</strong></a></font></td></tr><tr><td><blockquote>
+ <br>
+ <table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Native"><strong>Native</strong></a></font></td></tr><tr><td><blockquote>
+ <table border="0" cellpadding="2" cellspacing="2">
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ Fix AJP13 Cookie2 parsing. Cookie2 was always send as Cookie.
+ Patch provided by Andre Gebers. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=35862">35862</a>: NSAPI plugin attempts to read freed memory and attempts to
+ dereference a null pointer. Patch provided by Brian Kavanagh. (markt)
+ </td></tr>
+ </table>
+ </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Changes between 1.2.13 and 1.2.14"><strong>Changes between 1.2.13 and 1.2.14</strong></a></font></td></tr><tr><td><blockquote>
+ <br>
+ <table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Native"><strong>Native</strong></a></font></td></tr><tr><td><blockquote>
+ <table border="0" cellpadding="2" cellspacing="2">
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ Fix lb for worker mpm's with cachesize set to lower number then
+ ThreadsPerChild is. If retries is set to value larger then 3 sleep for
+ 100 ms on each attempt. This enables to tune the connection cache,
+ and serialize incoming connections instead returning busy if connection
+ count is larger then cachesize. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=36525">36525</a>: Solaris core dump. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=36102">36102</a>: Worker actions do not persist. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=35864">35864</a>: Status worker doesn't list workers.
+ Patch provided by Martin Goldhahn. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=35809">35809</a>: JkMountCopy don't work for Apache 2.0 Patch provided by
+ Christophe Dubach. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=35298">35298</a>: Multiple JK/ISAPI redirectors on a single IIS site are not supported
+ Patch provided by Tim Whittington. (mturk)
+ </td></tr>
+ </table>
+ </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Changes between 1.2.12 and 1.2.13"><strong>Changes between 1.2.12 and 1.2.13</strong></a></font></td></tr><tr><td><blockquote>
+ <br>
+ <table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Native"><strong>Native</strong></a></font></td></tr><tr><td><blockquote>
+ <table border="0" cellpadding="2" cellspacing="2">
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=34397">34397</a>: Emergency was handled as Error. (jfclere)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=34474">34474</a>: // in URL were not handled correctly with Apache-1.3. (jfclere)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ Use 64 bits int for transferred/read bytes.
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Added JkOptions +FlushPackets used to optimize memory
+ usage when sending large data. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Added lock directive for load balancer that allows more acurate
+ load balancing in case of burst load. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Added worker.maintain directive to allow customizing default 10
+ second timeout. On busy servers this value needs to be set on
+ higher value. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ Fix for NetWare compiler to deal with different types between AP13
+ and AP2 SDKs. (fuankg)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Emit much more legible user.dmp crash analysis output for WIN32. (wrowe)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=34558">34558</a>: Fix first failover request. (mturk)
+ </td></tr>
+ </table>
+ </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Changes between 1.2.11 and 1.2.12"><strong>Changes between 1.2.11 and 1.2.12</strong></a></font></td></tr><tr><td><blockquote>
+ <br>
+ <table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Native"><strong>Native</strong></a></font></td></tr><tr><td><blockquote>
+ <table border="0" cellpadding="2" cellspacing="2">
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Added ForwardLocallAddres JkOptions flag for passing local instead remote
+ address. Useful for remote addr valve. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>Fix that worker not used, when stopped flag is true. (pero)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Add loadbalance default worker secret attribute to the documentation (pero)
+ </td></tr>
+ </table>
+ </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Changes between 1.2.10 and 1.2.11"><strong>Changes between 1.2.10 and 1.2.11</strong></a></font></td></tr><tr><td><blockquote>
+ <br>
+ <table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Native"><strong>Native</strong></a></font></td></tr><tr><td><blockquote>
+ <table border="0" cellpadding="2" cellspacing="2">
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>Backport SC_M_JK_STORED from JK2 for passing arbitrary
+ methods instead failing the request. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>Added missing SEARCH and ACL http methods. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Add worker secret attribute to the documentation (pero)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Add a stopped flag to worker configuration. Set flag True and
+ complete traffic to worker is stopped.
+ Also update the Ant JkStatusUpdateTask at Tomcat 5.5.10 release.
+ Only usefull in a replicated session cluster.(pero)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>Added worker maintain function that will maintain all
+ the workers instead just the current one. This enables to recycle
+ the connections on all workers. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>Use shutdown when recycling connections instead hard
+ breaking the socket. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>Add unique directives checking. The directives if
+ unique are now overwritten instead concatenated. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>Allow multiple worker.list directives. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=34577">34577</a>: For IIS log original request instead loging
+ the request for ISAPI extension. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=34558">34558</a>: Make sure the returned status codes are the same
+ for ajp and lb workers. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=34423">34423</a>: Use APR_USE_FLOCK_SERIALIZE for setting log lock
+ on platforms like FreeBSD. Patch provided by Allan Saddi. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=33843">33843</a>: Fix obtaining LDFLAGS that were used for building
+ Apache HTTPD. Patch provided by Beat Kneubuehl. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=34358">34358</a>: Enable load balancer method configuration. (glenn)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=34357">34357</a>: In some situations Apache 2 mod_jk could segfault
+ when the JkAutoAlias directive is used. (glenn)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Add --enable-prefork to the documentation (pero)
+ </td></tr>
+ </table>
+ </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Changes between 1.2.9 and 1.2.10"><strong>Changes between 1.2.9 and 1.2.10</strong></a></font></td></tr><tr><td><blockquote>
+ <br>
+ <table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Native"><strong>Native</strong></a></font></td></tr><tr><td><blockquote>
+ <table border="0" cellpadding="2" cellspacing="2">
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>Set default shared memory to 64K instead 1M. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>Do not mark the worker in error state if headers are
+ larger then AJP13 limit. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ On Series you should use the latest PTF for Apache 2.0
+ (which is now 2.0.52) and ad minima SI17402/SI17061 or cumulative
+ including them. (hgomez)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Change the xml status format to xml attribute syntax (pero)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=33248">33248</a>: Fix builds where apxs defines multiple
+ directories for APR includes. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=32696">32696</a>: Return 404 instead 403 when WEB-INF is requested
+ to comply with Servlet spec. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>Added ANT task for managing jkstatus. (pero)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ If socket_timeout is set, check if socket is alive before
+ sending any request to Tomcat. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Added JkMountFile for Apache web servers. This file can contain
+ uri mappings in the form (/url=worker), and is checked for
+ updates at regular 60 second interval. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Added status worker for managing worker runtime data using
+ web page. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Added load balancer method directive that is used for setting
+ the algorithm used for balancing workers. Method can be either
+ Request (default) or Traffic. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Added shared memory to allow dynamic configuration. Shared memory
+ is needed only for unix platform and web servers having multiple
+ child processes. For Apache web server two new directives has been
+ added (JkShmFile and JkShmSize). (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Added textupdate mode to status worker to handle remote updates
+ from ant tasks.(pero)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=33562">33562</a>: Fix Reply_timeout when recovery_options
+ is larger than 1. Patch provided by Takashi Satou. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=33308">33308</a>: Fix segfaults when ForwardDirectories is enabled
+ with Apache 1.3
+ </td></tr>
+ </table>
+ </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Changes between 1.2.7 and 1.2.8"><strong>Changes between 1.2.7 and 1.2.8</strong></a></font></td></tr><tr><td><blockquote>
+ <br>
+ <table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Native"><strong>Native</strong></a></font></td></tr><tr><td><blockquote>
+ <table border="0" cellpadding="2" cellspacing="2">
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Allow anyone to debug and diagnose stack dumps using windbg or any
+ other debugging tool, and (if they add the .pdb files to their
+ installation) to make sense of dr watson logs.
+ Patch provided by William A. Rowe (wrowe)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ Fix in_addr_t usage by using the real struct ignoring typedef.
+ Patch provided by William A. Rowe (wrowe)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ Fix url rewriting by restoring the in place uri from which the
+ jsessionid was removed. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Make load balancer algorithm thread safe by introducing mutex
+ to the load balancer worker. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ Fix sending error pages for IIS to client by adding Content-Type header
+ using correct api function call. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=32696">32696</a>: Prevent IIS from crushing when web-inf url was requested. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Use default cachesize for servers that support discovering the number of
+ threads per child process. (mturk).
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ Fix Apache content-length header parsing using case insensitive compare. (billbarker)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ Fix parsing AJP headers using case insensitive compare. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ Use infinite socket timeout if socket_timeout is set to zero or less then zero. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Change <b>balanced_workers</b> to <b>balance_workers</b> but keep
+ backward compatibility preserving the old directive. (mturk).
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ Fix ajp initialization for workers with cache_size set to zero. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=32317">32317</a>: Making mod_jk replication aware (Clustering Support).
+ Patch provided by Rainer Jung. (mturk).
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=31132">31132</a>: Core dump when JkLogFile is missing from conf. (mturk)
+ </td></tr>
+ </table>
+ </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Changes between 1.2.6 and 1.2.7"><strong>Changes between 1.2.6 and 1.2.7</strong></a></font></td></tr><tr><td><blockquote>
+ <br>
+ <table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Native"><strong>Native</strong></a></font></td></tr><tr><td><blockquote>
+ <table border="0" cellpadding="2" cellspacing="2">
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Added new property named recover_time that can be used to change the
+ default 60 second recover time. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Added custom retries for worker, so we don't depend on default setting.
+ If set to a number grater then 3, it will sleep for 100ms on retry greater
+ then 3 and then try again. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Added JkWorkerProperty directive that enables omiting workers.properties file.
+ For example: JkWorkerProperty worker.ajp13a.port=8009. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ Check all JSESSIONID cookies for a valid jvmRoute. If you have multiple Tomcats
+ with overlapping domains, then you can get multiple cookies without a defined order.
+ This will route correctly as long as the different domains don't have any
+ Tomcats in common. (billbarker)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Added JkUnMount directive for negative mappings that works as opposite to JkMount directives.
+ It is used for blocking of particular URL or content type. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Added wildchar match uri mappings. One can now use JkMount to
+ map /app/*/servlet/* or /app?/*/*.jsp. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Rewrite the logging by adding Trace options. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../images/update.gif"></td><td>
+ Added socket_timeout property that sets the timeout
+ for the socket itself. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ Changed socket_timeout property to recycle_timeout. This better
+ explains what the directive actually does. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../images/fix.gif"></td><td>
+ Changed the load balancer algorithm.
+ The idea behind this new scheduler is the following:
+ lbfactor is <i>how much we expect this worker to work</i>,
+ or <i>the worker's work quota</i>.
+ lbstatus is <i>how urgent this worker has to work to fulfill its quota
+ of work</i>. We distribute each worker's work quota to the worker, and then look
+ which of them needs to work most urgently (biggest lbstatus). This
+ worker is then selected for work, and its lbstatus reduced by the
+ total work quota we distributed to all workers. Thus the sum of all
+ lbstatus does not change.(*)
+ If some workers are disabled, the others will
+ still be scheduled correctly. (mturk)
+ </td></tr>
+ </table>
+ </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="JK 2"><strong>JK 2</strong></a></font></td></tr><tr><td><blockquote>
+<p>JK2 has been put in maintainer mode and no further development will take place.
+The reason for shutting down JK2 development was the lack of developers interest.
+Other reason was lack of users interest in adopting JK2, caused by configuration
+complexity when compared to JK.
+</p>
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright &copy; 1999-2011, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html> \ No newline at end of file
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/docs/miscellaneous/doccontrib.html b/rubbos/app/tomcat-connectors-1.2.32-src/docs/miscellaneous/doccontrib.html
new file mode 100644
index 00000000..06a25b5b
--- /dev/null
+++ b/rubbos/app/tomcat-connectors-1.2.32-src/docs/miscellaneous/doccontrib.html
@@ -0,0 +1,249 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>The Apache Tomcat Connector - Miscellaneous Documentation - How to Contribute to the Documentation</title><meta name="author" value="Robert Sowders"><meta name="email" value="rsowders@usgs.gov"><link href="../style.css" type="text/css" rel="stylesheet"></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="4"><!--PAGE HEADER--><tr><td colspan="2"><!--TOMCAT LOGO--><a href="http://tomcat.apache.org/"><img src="../images/tomcat.gif" align="left" alt="Apache Tomcat" border="0"></a><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="http://www.apache.org/images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><tr><!--LEFT SIDE NAVIGATION--><td width="20%" valign="top" nowrap="true"><p><strong>Links</strong></p><ul><li><a href="../index.html">Docs Home</a></li></ul><p><strong>Reference Guide</strong></p><ul><li><a href="../reference/workers.html">workers.properties</a></li><li><a href="../reference/uriworkermap.html">uriworkermap.properties</a></li><li><a href="../reference/status.html">Status Worker</a></li><li><a href="../reference/apache.html">Apache HTTP Server</a></li><li><a href="../reference/iis.html">IIS</a></li></ul><p><strong>Generic HowTo</strong></p><ul><li><a href="../generic_howto/quick.html">For the impatient</a></li><li><a href="../generic_howto/workers.html">All about workers</a></li><li><a href="../generic_howto/timeouts.html">Timeouts</a></li><li><a href="../generic_howto/loadbalancers.html">Load Balancing</a></li><li><a href="../generic_howto/proxy.html">Reverse Proxy</a></li></ul><p><strong>Webserver HowTo</strong></p><ul><li><a href="../webserver_howto/apache.html">Apache HTTP Server</a></li><li><a href="../webserver_howto/iis.html">IIS</a></li><li><a href="../webserver_howto/nes.html">Netscape/SunOne/Sun</a></li></ul><p><strong>AJP Protocol Reference</strong></p><ul><li><a href="../ajp/ajpv13a.html">AJPv13</a></li><li><a href="../ajp/ajpv13ext.html">AJPv13 Extension Proposal</a></li></ul><p><strong>Miscellaneous Documentation</strong></p><ul><li><a href="../miscellaneous/faq.html">Frequently asked questions</a></li><li><a href="../miscellaneous/changelog.html">Changelog</a></li><li><a href="http://issues.apache.org/bugzilla/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Tomcat+Connectors&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=">Current Tomcat Connectors bugs</a></li><li><a href="../miscellaneous/doccontrib.html">Contribute documentation</a></li><li><a href="../miscellaneous/jkstatustasks.html">JK Status Ant Tasks</a></li><li><a href="../miscellaneous/reporttools.html">Reporting Tools</a></li><li><a href="http://tomcat.apache.org/connectors-doc-archive/jk2/index.html">Old JK/JK2 documentation</a></li></ul><p><strong>News</strong></p><ul><li><a href="../news/20110701.html">2011</a></li><li><a href="../news/20100101.html">2010</a></li><li><a href="../news/20090301.html">2009</a></li><li><a href="../news/20081001.html">2008</a></li><li><a href="../news/20070301.html">2007</a></li><li><a href="../news/20060101.html">2006</a></li><li><a href="../news/20050101.html">2005</a></li><li><a href="../news/20041100.html">2004</a></li></ul></td><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left"><table border="0" width="100%" cellspacing="4"><tr><td align="left" valign="top"><h1>The Apache Tomcat Connector - Miscellaneous Documentation</h1><h2>How to Contribute to the Documentation</h2></td><td align="right" valign="top" nowrap="true"><small><a href="printer/doccontrib.html"><img src="../images/printer.gif" border="0" alt="Printer Friendly Version"><br>print-friendly<br>version
+ </a></small></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+ This document describes how you can easily contribute to the
+documentation. I'm going to try to make it easy for everyone to help out with
+the documentation of Tomcat, more specifically the documentation for the
+connectors. This is written from a windows user perspective as I believe they
+will most benefit from it. For people using Unix it should be easy for them to
+apply these steps. Just substitute Unix syntax where needed.
+</p>
+<p>
+ The documentation is produced using xml with xsl style sheets. This
+effectivly seperates the content of the documents from the style, so all that
+contributers need to worry about the content. It is much easier to use than
+html.
+</p>
+<p>
+ It's all really quite simple. Here is what you will need:
+<ul>
+<li>
+<b>A recent version of Ant</b>
+</li>
+<li>
+<b>The source code for the connectors from subversion</b>
+</li>
+<li>
+<b>Any ascii text editor</b>
+</li>
+</ul>
+</p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Getting Started Step by Step"><strong>Getting Started Step by Step</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+ After you get these tools they are simple to set up.
+</p>
+ <table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="STEP 1. Get Ant"><strong>STEP 1. Get Ant</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+ Install <a href="http://ant.apache.org/">Ant</a>. The only advice I
+have is to choose a simple installation path. Now set an environment variable
+for ANT_HOME, and then add the location of the Ant/bin directory to your PATH
+variable. Consult your Operating system documentation for information on how
+to do this. When you are finished verify that you can run ant from the command
+line.
+</p>
+<p>
+ Ant is used to build the documentation, among other things, and it must be
+able to see a file called <b>build.xml</b>. This file is located in the
+<b>xdocs</b> directory. In the
+<b>build.xml</b> file there is a target named <b>all</b> that will be used to build
+the docs.
+</p>
+</blockquote></td></tr></table>
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="STEP 2. Get the sources"><strong>STEP 2. Get the sources</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+ Get the sources for
+<a href="http://svn.apache.org/repos/asf/tomcat/jk/trunk/">tomcat-connectors</a>
+from the subversion repository. If you'll
+be editing from a windows platform you will need a windows subversion client. There
+are several available. I like <a href="http://tortoisesvn.tigris.org/">turtoiseSVN</a>.
+Unix users should install the subversion client of their choice,
+if they don't already have one.
+</p>
+<p>
+ You are ready to download the sources now. Change directory to the
+location where you want your repository to be. For simplicity we will call this
+your <b>SVN_HOME</b>. Mine is located in C:\build.
+</p>
+<p>
+ Run the following command to <b>checkout</b> the sources for the first time.
+You should only need to do this once.
+<p class="screen"><div align="left"><table width="80%" border="1" cellspacing="0" cellpadding="2" bgcolor="#000000"><tr><td bgcolor="#000000" align="left"><code class="screen"><nobr> </nobr></code><br><code class="screen"><nobr>C:\build\&gt;svn checkout http://svn.apache.org/repos/asf/tomcat/jk/trunk/
+tomcat-connectors</nobr></code><br><code class="screen"><nobr> </nobr></code><br></td></tr></table></div></p>
+</p>
+<p>
+ You should now be watching all the downloads come in. Now that you have
+the sources on your machine the hard part is over. From now on, to update your
+sources all you have to do is cd into any directory in your repository and run
+the <b>svn update</b> command.
+ <p class="screen"><div align="left"><table width="80%" border="1" cellspacing="0" cellpadding="2" bgcolor="#000000"><tr><td bgcolor="#000000" align="left"><div class="screen"> To update your xdocs directory simply cd into the xdocs directory
+and:</div><code class="screen"><nobr>C:\build\tomcat-connectors\&gt;cd xdocs</nobr></code><br><code class="screen"><nobr>C:\build\tomcat-connectors\xdocs\&gt;svn update</nobr></code><br></td></tr></table></div></p>
+</p>
+</blockquote></td></tr></table>
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="STEP 3. Test your build environment"><strong>STEP 3. Test your build environment</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+ Open a command prompt window and cd to the directory where you downloaded
+the source. Now cd into the xdocs directory so that <b>Ant</b> can see the
+<b>build.xml</b> file. Then from a command prompt, run the following:
+<p class="screen"><div align="left"><table width="80%" border="1" cellspacing="0" cellpadding="2" bgcolor="#000000"><tr><td bgcolor="#000000" align="left"><code class="screen"><nobr> </nobr></code><br><code class="screen"><nobr>C:\build\tomcat-connectors&gt;cd xdocs</nobr></code><br><code class="screen"><nobr>C:\build\tomcat-connectors\xdocs&gt;ant all</nobr></code><br><code class="screen"><nobr> </nobr></code><br></td></tr></table></div></p>
+</p>.
+<p>
+ You should see the ant compiler messages scrolling by rapidly and then stop
+with the following:
+<p class="screen"><div align="left"><table width="80%" border="1" cellspacing="0" cellpadding="2" bgcolor="#000000"><tr><td bgcolor="#000000" align="left"><code class="screen"><nobr>[style] Transforming into C:\build\tomcat-connectors\build\docs\news\printer&gt;</nobr></code><br><code class="screen"><nobr>[style] Processing C:\build\tomcat-connectors\xdocs\news\20041100.xml
+to</nobr></code><br><code class="screen"><nobr>C:\build\tomcat-connectors\build\docs\news/20041100.html</nobr></code><br><code class="screen"><nobr>[style] Loading stylesheet C:\build\tomcat-connectors\xdocs\style.xsl</nobr></code><br><code class="screen"><nobr>[style] Processing C:\build\tomcat-connectors\xdocs\news\20050101.xml
+to</nobr></code><br><code class="screen"><nobr>C:\build\tomcat-connectors\build\docs\news/20050101.html</nobr></code><br><code class="screen"><nobr>[style] Processing C:\build\tomcat-connectors\xdocs\news\20060101.xml
+to</nobr></code><br><code class="screen"><nobr>C:\build\tomcat-connectors\build\docs\news/20060101.html</nobr></code><br><code class="screen"><nobr>[style] Transforming into C:\build\tomcat-connectors\build\docs&gt;</nobr></code><br><code class="screen"><nobr>[style] Processing C:\build\tomcat-connectors\xdocs\index.xml
+to</nobr></code><br><code class="screen"><nobr>C:\build\tomcat-connectors\build\docs\index.html</nobr></code><br><code class="screen"><nobr>[style] Loading stylesheet C:\build\tomcat-connectors\xdocs\style.xsl</nobr></code><br><code class="screen"><nobr> </nobr></code><br><code class="screen"><nobr>BUILD SUCCESSFUL</nobr></code><br><code class="screen"><nobr>Total time: 10 seconds</nobr></code><br><code class="screen"><nobr>C:\build\tomcat-connectors&gt;</nobr></code><br></td></tr></table></div></p>
+</p>
+<p>
+ All the xml files present in the xdocs directory structure were transformed
+to html and copied to the <b>SVN_HOME\tomcat-connectors\build\docs</b>
+directory. Open one of the
+html files in your browser and see how it looks.
+</p>
+</blockquote></td></tr></table>
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="STEP 4. The editing process."><strong>STEP 4. The editing process.</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+ I find it easier to use two windows while doing my updates. One I call my
+<b>build</b> window. I keep this one in the <b>SVN_HOME\tomcat-connectors\xdocs</b>
+directory and I only run two commands in this window:
+<p class="screen"><div align="left"><table width="80%" border="1" cellspacing="0" cellpadding="2" bgcolor="#000000"><tr><td bgcolor="#000000" align="left"><code class="screen"><nobr> </nobr></code><br><div class="screen"> First I run</div><code class="screen"><nobr>ant clean</nobr></code><br><div class="screen"> Then I run</div><code class="screen"><nobr>ant all</nobr></code><br><code class="screen"><nobr> </nobr></code><br></td></tr></table></div></p>
+</p>
+<p>
+ My second window I call my <b>edit</b> window and I keep that one in the
+<b>SVN_HOME\tomcat-connectors\xdocs</b> directory where I'm doing my
+edits, diffs and svn updates.
+</p>
+<p>
+ Before you start editing you should always update your local repository to
+prevent conflicts.
+<p class="screen"><div align="left"><table width="80%" border="1" cellspacing="0" cellpadding="2" bgcolor="#000000"><tr><td bgcolor="#000000" align="left"><div class="screen"> You only need to update the xdocs directory</div><code class="screen"><nobr>C:\build\tomcat-connectors&gt;cd xdocs</nobr></code><br><code class="screen"><nobr>C:\build\tomcat-connectors\xdocs&gt;</nobr></code><br><code class="screen"><nobr>C:\build\tomcat-connectors\xdocs&gt;svn update</nobr></code><br></td></tr></table></div></p>
+</p>
+<p>
+ Now that your repository is up to date you can begin editing. Find
+something in the documentation to edit. When you find something remember the
+name of the file. In your <b>edit</b> window find and edit the xml source file
+with the same name. After you are done return to the <b>build</b> window, and
+in the <b>SVN_HOME\tomcat-connectors\xdocs</b> directory run:
+<p class="screen"><div align="left"><table width="80%" border="1" cellspacing="0" cellpadding="2" bgcolor="#000000"><tr><td bgcolor="#000000" align="left"><code class="screen"><nobr> </nobr></code><br><code class="screen"><nobr>C:\build\tomcat-connectors\xdocs&gt; ant clean</nobr></code><br><code class="screen"><nobr> </nobr></code><br></td></tr></table></div></p>
+</p>
+<p>
+ This will delete all the previous html files and make the area ready for
+updated material. Now to make fresh documents that incorporate your changes
+run:
+<p class="screen"><div align="left"><table width="80%" border="1" cellspacing="0" cellpadding="2" bgcolor="#000000"><tr><td bgcolor="#000000" align="left"><code class="screen"><nobr> </nobr></code><br><code class="screen"><nobr>C:\build\tomcat-connectors\xdocs&gt;ant all</nobr></code><br><code class="screen"><nobr> </nobr></code><br></td></tr></table></div></p>
+</p>
+<p>
+ Use your browser to view the edits you just made, they will be in the
+<b>SVN_HOME\tomcat-connectors\build\docs</b> sub-tree. If it looks
+good and is ready to go,
+all that is left to do is to create a patch and submit it.
+</p>
+</blockquote></td></tr></table>
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="STEP 5. Creating a patch and submitting it."><strong>STEP 5. Creating a patch and submitting it.</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+ From your <b>edit</b> window cd into the directory that contains the xml
+file you are working on, and run the <b>svn update</b> command. For example,
+to produce a diff of the index.xml file and call it patch.txt, you
+would cd into the directory containing the index.xml file and:
+<p class="screen"><div align="left"><table width="80%" border="1" cellspacing="0" cellpadding="2" bgcolor="#000000"><tr><td bgcolor="#000000" align="left"><code class="screen"><nobr>C:\build\tomcat-connectors\xdocs\&gt;svn diff index.xml &gt;
+patch.txt.</nobr></code><br><code class="screen"><nobr> </nobr></code><br></td></tr></table></div></p>
+</p>
+<p>
+ Now that you have your patch you are ready to send it in.
+</p>
+<p>
+ Patches to the documentation are handled just like a bug report. You
+should submit your patches to <a href="http://issues.apache.org/bugzilla/">http://issues.apache.org/bugzilla/</a>
+ and include a good one line subject. If this is your first time to use the
+bug database then you should read <a href="http://issues.apache.org/bugzilla/bugwritinghelp.html">http://issues.apach
+e.org/bugzilla/bugwritinghelp.html.</a> You will need to create a user
+account. At the web site paste your patch into the web form and don't forget
+to describe what it is your patch is for. Sooner or later a someone with
+commit privileges will review your suggestion.
+</p>
+</blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Subversion Basics"><strong>Subversion Basics</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+ After you have checked out the sources the first time it is much easier to
+use subversion. You can cd into any directory of the repository and run <b>svn
+update</b> to get the latest sources for that directory. For editing
+purposes you should always update your repository before you start editing to
+reduce conflicts.
+</p>
+<p>
+ You will need to run <b>svn diff</b> to generate patches for submission.
+Again cd into the directory containing the file you are editing and run <b>svn
+diff name_of_the_file_you_edited &gt; patch.txt</b> to generate a patch for
+submission.
+</p>
+<p>
+ Pay attention to the terminal window during the update.
+</p>
+<p>
+ Lines begining with a <b>A</b> indicate files that have been added.
+</p>
+<p>
+ Lines begining with a <b>D</b> indicate files that have been deleted.
+</p>
+<p>
+ Lines begining with a <b>U</b> mean the local copy was patched to update it
+to the current version in the master repository.
+</p>
+<p>
+ Lines begining with a <b>G</b> mean your local copy is different from the
+master copy, and the changes were successfully merged into your copy.
+</p>
+<p>
+ Lines begining with a <b>C</b> mean there was a conflict in merging the
+changes and you need to review the file and merge the changes manually. Search
+for &gt;&gt;&gt;&gt; and merge the changes.
+</p>
+<p>
+ Lines begining with a <b>?</b> indicate files that reside on your local
+system which are not part of the repository. You will normally see this when
+you are creating new files for submission.
+</p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Updating Web site"><strong>Updating Web site</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+ Only Committers are able to update the web site (http://tomcat.apache.org/connectors-doc/).
+ To do it:
+ <ul>
+ <li>Connect to people.apache.org.</li>
+ <li>umask 002</li>
+ <li>Copy the changed files to /www/tomcat.apache.org/connectors-doc/.</li>
+ <li>or use ant from a checkout tomcat/jk/trunk/xdocs repository:<br>
+ ant -Dbuild.dir=/www/tomcat.apache.org -Ddist.name=connectors-doc
+ </li>
+ <li>The changes need around 4 hours to be synced to tomcat.apache.org.</li>
+ </ul>
+</p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Guides and Resources"><strong>Guides and Resources</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+ A little help to get you started if you need it
+</p>
+<ul>
+<li>
+<a href="http://www.xml.org/xml/resources_focus_beginnerguide.shtml">XML
+Beginner's Guide</a>
+</li>
+<li>
+<a href="http://issues.apache.org/bugzilla/">Bugzilla</a>
+</li>
+<li>
+<a href="http://issues.apache.org/bugwritinghelp.html">Bugzilla Bug
+Writing Guide</a>
+</li>
+<li>
+<a href="http://ant.apache.org/">Ant</a>
+</li>
+<li>
+<a href="http://subversion.tigris.org/">Subversion Home</a>
+</li>
+<li>
+<a href="http://svn.apache.org/repos/asf/tomcat/jk/trunk/xdocs/">JK Docs repository</a>
+</li>
+</ul>
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright &copy; 1999-2011, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html> \ No newline at end of file
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/docs/miscellaneous/faq.html b/rubbos/app/tomcat-connectors-1.2.32-src/docs/miscellaneous/faq.html
new file mode 100644
index 00000000..92bdfb2c
--- /dev/null
+++ b/rubbos/app/tomcat-connectors-1.2.32-src/docs/miscellaneous/faq.html
@@ -0,0 +1,281 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>The Apache Tomcat Connector - Miscellaneous Documentation - FAQ</title><meta name="author" value="Henri Gomez"><meta name="email" value="hgomez@apache.org"><link href="../style.css" type="text/css" rel="stylesheet"></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="4"><!--PAGE HEADER--><tr><td colspan="2"><!--TOMCAT LOGO--><a href="http://tomcat.apache.org/"><img src="../images/tomcat.gif" align="left" alt="Apache Tomcat" border="0"></a><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="http://www.apache.org/images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><tr><!--LEFT SIDE NAVIGATION--><td width="20%" valign="top" nowrap="true"><p><strong>Links</strong></p><ul><li><a href="../index.html">Docs Home</a></li></ul><p><strong>Reference Guide</strong></p><ul><li><a href="../reference/workers.html">workers.properties</a></li><li><a href="../reference/uriworkermap.html">uriworkermap.properties</a></li><li><a href="../reference/status.html">Status Worker</a></li><li><a href="../reference/apache.html">Apache HTTP Server</a></li><li><a href="../reference/iis.html">IIS</a></li></ul><p><strong>Generic HowTo</strong></p><ul><li><a href="../generic_howto/quick.html">For the impatient</a></li><li><a href="../generic_howto/workers.html">All about workers</a></li><li><a href="../generic_howto/timeouts.html">Timeouts</a></li><li><a href="../generic_howto/loadbalancers.html">Load Balancing</a></li><li><a href="../generic_howto/proxy.html">Reverse Proxy</a></li></ul><p><strong>Webserver HowTo</strong></p><ul><li><a href="../webserver_howto/apache.html">Apache HTTP Server</a></li><li><a href="../webserver_howto/iis.html">IIS</a></li><li><a href="../webserver_howto/nes.html">Netscape/SunOne/Sun</a></li></ul><p><strong>AJP Protocol Reference</strong></p><ul><li><a href="../ajp/ajpv13a.html">AJPv13</a></li><li><a href="../ajp/ajpv13ext.html">AJPv13 Extension Proposal</a></li></ul><p><strong>Miscellaneous Documentation</strong></p><ul><li><a href="../miscellaneous/faq.html">Frequently asked questions</a></li><li><a href="../miscellaneous/changelog.html">Changelog</a></li><li><a href="http://issues.apache.org/bugzilla/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Tomcat+Connectors&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=">Current Tomcat Connectors bugs</a></li><li><a href="../miscellaneous/doccontrib.html">Contribute documentation</a></li><li><a href="../miscellaneous/jkstatustasks.html">JK Status Ant Tasks</a></li><li><a href="../miscellaneous/reporttools.html">Reporting Tools</a></li><li><a href="http://tomcat.apache.org/connectors-doc-archive/jk2/index.html">Old JK/JK2 documentation</a></li></ul><p><strong>News</strong></p><ul><li><a href="../news/20110701.html">2011</a></li><li><a href="../news/20100101.html">2010</a></li><li><a href="../news/20090301.html">2009</a></li><li><a href="../news/20081001.html">2008</a></li><li><a href="../news/20070301.html">2007</a></li><li><a href="../news/20060101.html">2006</a></li><li><a href="../news/20050101.html">2005</a></li><li><a href="../news/20041100.html">2004</a></li></ul></td><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left"><table border="0" width="100%" cellspacing="4"><tr><td align="left" valign="top"><h1>The Apache Tomcat Connector - Miscellaneous Documentation</h1><h2>FAQ</h2></td><td align="right" valign="top" nowrap="true"><small><a href="printer/faq.html"><img src="../images/printer.gif" border="0" alt="Printer Friendly Version"><br>print-friendly<br>version
+ </a></small></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="General"><strong>General</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+General Informations and FAQ about JK
+</p>
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Where can I get help/support for JK ?"><strong>Where can I get help/support for JK ?</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+The primary mechanism for support is through the JK
+documentation included in the doc directory.
+Documentation is also available on the Apache Tomcat web site devoted to the
+<a href="http://tomcat.apache.org/connectors-doc/">
+Apache Tomcat Connectors Project</a>
+For additional help, the best resource is the Tomcat Users Discussion list.
+You should start by searching
+<a href="http://mail-archives.apache.org/mod_mbox/tomcat-users/">
+the mail list archive</a>
+before you post questions to the list.
+If you are unable to locate the answer to your question in the archive,
+you can post questions about JK to the user list for assistance.
+Make sure that you include the version of your Webserver,
+that you are using as well as the platform you are running on
+and go
+<a href="http://tomcat.apache.org/lists.html">
+here</a>
+to determine how to subscribe to tomcat mailing list.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="I can't find JK anywhere. Where is it?"><strong>I can't find JK anywhere. Where is it?</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+Now that JK moved to the <b>tomcat-connectors</b> repository,
+the source and the binaries for JK can be downloaded from a mirror at the
+<a href="http://tomcat.apache.org/download-connectors.cgi">
+Tomcat Connectors (mod_jk, mod_jk2) Downloads</a> page.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="What's the difference between JK and mod_jk ?"><strong>What's the difference between JK and mod_jk ?</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+<b>JK</b> is a project covering web-servers to Tomcat connectors,
+whereas <b>mod_jk</b> is the <a href="../webserver_howto/apache.html">Apache module</a> developed in JK.
+</p>
+
+<p>
+<a href="../webserver_howto/iis.html">IIS webserver</a>support is implemented on JK, using a redirector
+called <b>isapi redirector</b>.
+</p>
+
+<p>
+<a href="../webserver_howto/nes.html">Netscape/SunONE/Sun webserver</a>webserver support is implemented on JK, using a redirector
+called <b>nsapi redirector</b>.
+</p>
+
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Where can I get more information ?"><strong>Where can I get more information ?</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+For <b>JK 1.2.x</b>, you should read :
+</p>
+
+<ul>
+
+<li>
+<a href="../generic_howto/quick.html">For the impatient</a>
+</li>
+
+<li>
+<a href="../webserver_howto/apache.html">Apache and JK</a>
+</li>
+
+<li>
+<a href="../webserver_howto/iis.html">IIS and JK</a>
+</li>
+
+<li>
+<a href="../webserver_howto/nes.html">Netscape/SunONE/Sun and JK</a>
+</li>
+
+<li>
+<a href="../generic_howto/workers.html">Workers configuration</a>
+</li>
+</ul>
+
+<p>
+For more detailed information, have a look at the Reference Guide.
+You could also try searching the mailing list archives for "JK" or look at the source.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Which protocol should I use? Ajp12 or Ajp13?"><strong>Which protocol should I use? Ajp12 or Ajp13?</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+<a href="../ajp/ajpv13a.html">Ajp13</a> is a newer protocol, it's faster, and it works better with SSL.
+You almost certainly want to use it now that <strong>ajp12 is deprecated</strong>.
+</p>
+<p>
+Also ajp13 is supported by all Apache Tomcat including 3.2.x , 3.3.x, 4.0.x, 4.1.x, 5.0.x, 5.5.x
+and the new tomcat 6.
+</p>
+
+<p>
+Others Servlet engines like <b>jetty</b> have support for Ajp13.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="I've got a firewall between my web server and Tomcat which drops ajp13 connections after some time"><strong>I've got a firewall between my web server and Tomcat which drops ajp13 connections after some time</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+Ajp13 uses persistant connections where the traffic could be null if there is no request to be sent to Tomcat.
+Firewalls use to drop inactive connections and will make your web server and Tomcat think the connection is valid.
+</p>
+<p>
+Starting with JK 1.2.0, a <b>socket_keepalive</b> property as been added to ajp13 settings, and you should take a look at
+it in <a href="../generic_howto/workers.html">Workers HowTo</a> and
+<a href="../reference/workers.html">workers.properties reference</a>.
+If nothing else helps, you can try <b>JkOptions +DisableReuse</b>, but this will have strong performance implications.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Under heavy load, I've got many threads in Tomcat even if my Apache Web Server handles much of the load"><strong>Under heavy load, I've got many threads in Tomcat even if my Apache Web Server handles much of the load</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+Under heavy load, Apache Web Server creates many children to handle the load,
+which will in turn create many connections
+to Tomcat to forward the requests they should handle.
+Apache Web Server will normally kill the children/threads when the load decreases.
+But if the load is still there and even if only Apache handles the requests,
+ie static contents, the children are kept and with them all the ajp13 connections,
+even if they are no more used.
+</p>
+<p>
+To close connections after some time of inactivity you can use <b>connection_pool_timeout</b>,
+for more informations refer to <a href="../reference/workers.html">workers.properties reference</a>.
+</p>
+</blockquote></td></tr></table>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Apache"><strong>Apache</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+Informations and FAQ about mod_jk and Apache Web Servers.
+</p>
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Whenever I restart Tomcat, Apache locks up!"><strong>Whenever I restart Tomcat, Apache locks up!</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+The Ajp13 protocol keeps an open socket between Tomcat and Apache.
+Release of mod_jk present in J-T-C handles the network failure.
+But with very ancient releases of mod_jk, you may have to restart Apache as well.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Why do there exist two files mod_jk.so (-eapi ad -noeapi) in download directories for Apache 1.3?"><strong>Why do there exist two files mod_jk.so (-eapi ad -noeapi) in download directories for Apache 1.3?</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+Many versions of Apache use a modified API, known at Extended API, developed for use with the
+<a href="http://www.modssl.org">mod_ssl module</a>. Starting with Apache 2.0 there is no more difference.
+</p>
+
+<p>
+For example, Apache 1.3 present in certains recent Linux distributions include the
+<b>mod_ssl</b> module.
+</p>
+
+<p>
+So if you got such 'Extended Apache', you need to use <b>mod_jk.so-eapi</b>.
+</p>
+
+<p>
+You should use <b>mod_jk.so-noeapi</b> only for 'Standard Apache' (ie without mod_ssl).
+</p>
+
+<p>
+It's wise to avoid using EAPI modules on STD API Apache or to use standard API modules on EAPI Apache.
+Allways be sure to have the <b>mod_jk.so</b> witch match your version of Apache
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="What's that message about 'garbled DSO ?'"><strong>What's that message about 'garbled DSO ?'</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+It's related to Apache EAPI, the message <b class="code">'mod_jk.so is garbled - perhaps this is not an Apache module DSO ?'</b>
+just told you, that your're trying to install a mod_jk.so DSO module that was compiled on an Apache using EAPI,
+like apache-mod_ssl or apache from Redhat distro 6.2/7.0 but your system use the standard apache with normal API.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="And the message about 'module might crash under EAPI!"><strong>And the message about 'module might crash under EAPI!</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+Also related to EAPI, the message <b class="code">'[warn] Loaded DSO /usr/lib/apache/mod_jk.so uses plain Apache 1.3 API,
+this module might crash under EAPI! (please recompile it with -DEAPI)'</b>, the mod_jk.so was compiled under normal
+Apache with standard API and you try to install the module on an Apache using EAPI.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="APXS is getting an error during the build of mod_jk, like rc=0 or rc=255. I tried all of the steps in the build section, what do I do now ?"><strong>APXS is getting an error during the build of mod_jk, like rc=0 or rc=255. I tried all of the steps in the build section, what do I do now ?</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+APXS is a Perl script that is created when you build the Apache web server from source.
+Chances are that if you are getting these errors and you obtained Apache as a binary distribution,
+that APXS is not configured correctly for your system.
+Your best bet is to get the Apache source from http://httpd.apache.org and build it yourself.
+Use the following for a basic build (read the Apache docs for other options):
+<p class="screen"><div align="left"><table width="80%" border="1" cellspacing="0" cellpadding="2" bgcolor="#000000"><tr><td bgcolor="#000000" align="left"><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">cd /usr/local/src</b></nobr></code><br><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">gzip -dc apache_1.3.19.tar.gz|tar xvf -</b></nobr></code><br><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">cd apache_1.3.19</b></nobr></code><br><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">./configure --prefix=/usr/local/apache \</b></nobr></code><br><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen"> --enable-module=most \</b></nobr></code><br><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen"> --enable-shared=max</b></nobr></code><br><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">make</b></nobr></code><br><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">make install</b></nobr></code><br></td></tr></table></div></p>
+</p>
+<p>
+Note: The above steps assume that you downloaded the Apache source and placed it in your /usr/local/src directory.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Apache 2.0 complains about incorrect module version"><strong>Apache 2.0 complains about incorrect module version</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+Since Apache 2.0 API still change often, the Apache 2.0 teams decide to put in headers of compiled modules the
+Apache 2.0 version used to compile the module. This check is called Magic Module Number bump.
+</p>
+<p>
+At start time Apache 2.0 check that version in modules headers and stop if it detect that a module was compiled
+for another Apache 2.0 version. As such you should allways use modules compiled for the same Apache 2.0 version.
+This check may be removed if the future.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Does it work for Apache 2.2?"><strong>Does it work for Apache 2.2?</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+mod_jk works well with Apache 2.2. You need a binary module compiled for version 2.2 of the Apache web server.
+A binary compiled for version 2.0 will not work.
+</p>
+<p>
+Important parts of the functionality of mod_jk have been reimplemented as Apache httpd modules mod_proxy_ajp
+and mod_proxy_balancer. These are part of the standard distributoin of Apache 2.2. The new modules do not contain
+all features of mod_jk, but you get them automatically with every Apache 2.2.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="JNI doesn't work with Apache 1.3"><strong>JNI doesn't work with Apache 1.3</strong></a></font></td></tr><tr><td><blockquote>
+<p><font color="#ff0000">JNI workers have been deprecated. They will likely not work. Do not use them.</font></p>
+<p>
+JNI support requires a multi-threaded environment which is not the general case for Apache 1.3.
+You should verify if Apache 1.3 has been build with thread support and if not you could add the
+the pthreads library to your <b>httpd.conf</b> file.
+</p>
+
+<div class="example"><pre>
+ # Add pthread to Apache in httpd.conf
+ LoadModule "/usr/lib/libpthreads.so"
+</pre></div>
+
+<p>
+Also keep in mind that JNI is suited for multi-threaded servers and you should consider upgrading
+to Apache 2.x to support JNI.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="JNI report that JVM couldn't be started under Linux"><strong>JNI report that JVM couldn't be started under Linux</strong></a></font></td></tr><tr><td><blockquote>
+<p><font color="#ff0000">JNI workers have been deprecated. They will likely not work. Do not use them.</font></p>
+<p>
+Under Linux, you should set some environment variables BEFORE launching your Apache server :
+</p>
+
+<p class="screen"><div align="left"><table width="80%" border="1" cellspacing="0" cellpadding="2" bgcolor="#000000"><tr><td bgcolor="#000000" align="left"><code class="screen"><nobr>export LD_LIBRARY_PATH=$jre/bin:$jre/bin/classic:$LD_LIBRARY_PATH</nobr></code><br></td></tr></table></div></p>
+
+<p>
+Also some Linux distributions have enabled a GLIBC feature called 'floating stacks' which may not works with kernel
+less than 2.4.10 on SMP machines. You should disable floating stacks by exporting an environment variable :
+</p>
+
+<p class="screen"><div align="left"><table width="80%" border="1" cellspacing="0" cellpadding="2" bgcolor="#000000"><tr><td bgcolor="#000000" align="left"><code class="screen"><nobr>export LD_ASSUME_KERNEL=2.2.5</nobr></code><br></td></tr></table></div></p>
+
+<p>
+You could have to update your service scripts, ie <b>/etc/rc.d/init.d/httpd</b>, to set these env vars
+before your httpd server starts.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Mixed errors when building via configure"><strong>Mixed errors when building via configure</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+configure assume you have some GNU tools already installed and configured for your system, and ad minima <b>libtool</b>.
+</p>
+<p>
+Also some systems may have mixed cc and gcc setup which may make you puzzled when trying to link an Apache built with native
+c compiler with a jk/jk2 build with gcc.
+</p>
+<p>
+In case the make processing doesn't work as expected, you should use a GNU make <b>gmake</b>.
+</p>
+</blockquote></td></tr></table>
+
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright &copy; 1999-2011, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html> \ No newline at end of file
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/docs/miscellaneous/jkstatustasks.html b/rubbos/app/tomcat-connectors-1.2.32-src/docs/miscellaneous/jkstatustasks.html
new file mode 100644
index 00000000..f610c968
--- /dev/null
+++ b/rubbos/app/tomcat-connectors-1.2.32-src/docs/miscellaneous/jkstatustasks.html
@@ -0,0 +1,184 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>The Apache Tomcat Connector - Miscellaneous Documentation - Status Worker Ant Tasks</title><meta name="author" value="Peter Rossbach"><meta name="email" value=""><link href="../style.css" type="text/css" rel="stylesheet"></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="4"><!--PAGE HEADER--><tr><td colspan="2"><!--TOMCAT LOGO--><a href="http://tomcat.apache.org/"><img src="../images/tomcat.gif" align="left" alt="Apache Tomcat" border="0"></a><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="http://www.apache.org/images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><tr><!--LEFT SIDE NAVIGATION--><td width="20%" valign="top" nowrap="true"><p><strong>Links</strong></p><ul><li><a href="../index.html">Docs Home</a></li></ul><p><strong>Reference Guide</strong></p><ul><li><a href="../reference/workers.html">workers.properties</a></li><li><a href="../reference/uriworkermap.html">uriworkermap.properties</a></li><li><a href="../reference/status.html">Status Worker</a></li><li><a href="../reference/apache.html">Apache HTTP Server</a></li><li><a href="../reference/iis.html">IIS</a></li></ul><p><strong>Generic HowTo</strong></p><ul><li><a href="../generic_howto/quick.html">For the impatient</a></li><li><a href="../generic_howto/workers.html">All about workers</a></li><li><a href="../generic_howto/timeouts.html">Timeouts</a></li><li><a href="../generic_howto/loadbalancers.html">Load Balancing</a></li><li><a href="../generic_howto/proxy.html">Reverse Proxy</a></li></ul><p><strong>Webserver HowTo</strong></p><ul><li><a href="../webserver_howto/apache.html">Apache HTTP Server</a></li><li><a href="../webserver_howto/iis.html">IIS</a></li><li><a href="../webserver_howto/nes.html">Netscape/SunOne/Sun</a></li></ul><p><strong>AJP Protocol Reference</strong></p><ul><li><a href="../ajp/ajpv13a.html">AJPv13</a></li><li><a href="../ajp/ajpv13ext.html">AJPv13 Extension Proposal</a></li></ul><p><strong>Miscellaneous Documentation</strong></p><ul><li><a href="../miscellaneous/faq.html">Frequently asked questions</a></li><li><a href="../miscellaneous/changelog.html">Changelog</a></li><li><a href="http://issues.apache.org/bugzilla/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Tomcat+Connectors&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=">Current Tomcat Connectors bugs</a></li><li><a href="../miscellaneous/doccontrib.html">Contribute documentation</a></li><li><a href="../miscellaneous/jkstatustasks.html">JK Status Ant Tasks</a></li><li><a href="../miscellaneous/reporttools.html">Reporting Tools</a></li><li><a href="http://tomcat.apache.org/connectors-doc-archive/jk2/index.html">Old JK/JK2 documentation</a></li></ul><p><strong>News</strong></p><ul><li><a href="../news/20110701.html">2011</a></li><li><a href="../news/20100101.html">2010</a></li><li><a href="../news/20090301.html">2009</a></li><li><a href="../news/20081001.html">2008</a></li><li><a href="../news/20070301.html">2007</a></li><li><a href="../news/20060101.html">2006</a></li><li><a href="../news/20050101.html">2005</a></li><li><a href="../news/20041100.html">2004</a></li></ul></td><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left"><table border="0" width="100%" cellspacing="4"><tr><td align="left" valign="top"><h1>The Apache Tomcat Connector - Miscellaneous Documentation</h1><h2>Status Worker Ant Tasks</h2></td><td align="right" valign="top" nowrap="true"><small><a href="printer/jkstatustasks.html"><img src="../images/printer.gif" border="0" alt="Printer Friendly Version"><br>print-friendly<br>version
+ </a></small></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
+<p>Since version 1.2.19 the JK release contains additional ant tasks.
+They can be used to manage the JK web server plugins via the special status worker.
+</p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Manage JK with remote Ant Tasks"><strong>Manage JK with remote Ant Tasks</strong></a></font></td></tr><tr><td><blockquote>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Simple antlib integration"><strong>Simple antlib integration</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+<div class="example"><pre>
+&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+
+&lt;project name="modjk-status"
+ xmlns:jk="urn:org-apache-jk-status"
+ default="status" basedir="."&gt;
+
+ &lt;property name="profile" value=""/&gt;
+ &lt;property file="jkstatus${profile}.properties"/&gt;
+ &lt;property file="jkstatus.properties.default"/&gt;
+
+ &lt;path id="jkstatus.classpath"&gt;
+ &lt;fileset dir="${catalina.home}/bin"&gt;
+ &lt;include name="commons-logging-api-*.jar"/&gt;
+ &lt;/fileset&gt;
+ &lt;pathelement location="${catalina.home}/server/lib/catalina-ant.jar"/&gt;
+ &lt;pathelement location="../dist/tomcat-jkstatus-ant.jar"/&gt;
+ &lt;pathelement location="${catalina.home}/server/lib/tomcat-util.jar"/&gt;
+ &lt;/path&gt;
+
+ &lt;typedef resource="org/apache/jk/status/antlib.xml"
+ uri="urn:org-apache-jk-status" classpathref="jkstatus.classpath"/&gt;
+
+ &lt;target name="status" &gt;
+ &lt;jk:status url="${jkstatus.url}"
+ username="${jkstatus.username}"
+ password="${jkstatus.password}"
+ resultproperty="worker"
+ echo="off"
+ failOnError="off"/&gt;
+ &lt;echoproperties prefix="worker" /&gt;
+ &lt;/target&gt;
+&lt;/project&gt;
+</pre></div>
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Test Result"><strong>Test Result</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+<div class="example"><pre>
+[echoproperties] #Ant properties
+[echoproperties] #Sun Dec 10 20:40:21 CET 2006
+[echoproperties] worker.node01.lbmult=1
+[echoproperties] worker.loadbalancer.lock=Optimistic
+[echoproperties] worker.node02.transferred=0
+[echoproperties] worker.loadbalancer.sticky_session=false
+[echoproperties] worker.node01.distance=0
+[echoproperties] worker.node01.client_errors=0
+[echoproperties] worker.node02.lbmult=1
+[echoproperties] worker.node01.port=7309
+[echoproperties] worker.node01.elected=0
+[echoproperties] worker.loadbalancer.good=2
+[echoproperties] worker.loadbalancer.method=Sessions
+[echoproperties] worker.server.port=2090
+[echoproperties] worker.loadbalancer.map.2.type=Wildchar
+[echoproperties] worker.node02.route=node02
+[echoproperties] worker.node01.route=node01
+[echoproperties] worker.node01.lbvalue=0
+[echoproperties] worker.node01.lbfactor=1
+[echoproperties] worker.node01.max_busy=0
+[echoproperties] worker.node01.busy=0
+[echoproperties] worker.node01.redirect=
+[echoproperties] worker.node02.distance=0
+[echoproperties] worker.loadbalancer.name=loadbalancer
+[echoproperties] worker.loadbalancer.sticky_session_force=false
+[echoproperties] worker.node02.state=N/A
+[echoproperties] worker.node01.state=N/A
+[echoproperties] worker.node01.transferred=0
+[echoproperties] worker.loadbalancer.map.length=2
+[echoproperties] worker.node01.type=ajp13
+[echoproperties] worker.node01.address=127.0.0.1\:7309
+[echoproperties] worker.result.type=OK
+[echoproperties] worker.loadbalancer.member_count=2
+[echoproperties] worker.loadbalancer.map_count=2
+[echoproperties] worker.loadbalancer.mtime_to_maintenance_min=12
+[echoproperties] worker.loadbalancer.mtime_to_maintenance_max=75
+[echoproperties] worker.node02.lbfactor=1
+[echoproperties] worker.node02.max_busy=0
+[echoproperties] worker.jk_version=mod_jk/1.2.21-dev
+[echoproperties] worker.loadbalancer.bad=0
+[echoproperties] worker.node02.redirect=
+[echoproperties] worker.node01.host=localhost
+[echoproperties] worker.node02.activation=ACT
+[echoproperties] worker.loadbalancer.map.1.source=JkMount
+[echoproperties] worker.loadbalancer.retries=2
+[echoproperties] worker.node02.elected=0
+[echoproperties] worker.loadbalancer.map.2.source=JkMount
+[echoproperties] worker.node02.port=7409
+[echoproperties] worker.loadbalancer.length=2
+[echoproperties] worker.node02.lbvalue=0
+[echoproperties] worker.loadbalancer.degraded=0
+[echoproperties] worker.loadbalancer.map.1.type=Wildchar
+[echoproperties] worker.loadbalancer.map.2.uri=/myapps*
+[echoproperties] worker.node02.client_errors=0
+[echoproperties] worker.length=1
+[echoproperties] worker.node01.domain=d20
+[echoproperties] worker.loadbalancer.recover_time=60
+[echoproperties] worker.server.name=localhost
+[echoproperties] worker.node02.domain=
+[echoproperties] worker.result.message=Action finished
+[echoproperties] worker.node02.busy=0
+[echoproperties] worker.node01.readed=0
+[echoproperties] worker.node01.errors=0
+[echoproperties] worker.node02.address=127.0.0.1\:7409
+[echoproperties] worker.node02.readed=0
+[echoproperties] worker.loadbalancer.busy=0
+[echoproperties] worker.web_server=Apache/2.0.59 (Unix) mod_jk/1.2.21-dev
+[echoproperties] worker.node02.errors=0
+[echoproperties] worker.node02.type=ajp13
+[echoproperties] worker.loadbalancer.map.1.uri=/ClusterTest*
+[echoproperties] worker.node01.activation=ACT
+[echoproperties] worker.loadbalancer.max_busy=0
+[echoproperties] worker.loadbalancer.type=lb
+[echoproperties] worker.node02.host=localhost
+</pre></div>
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Update Load Balancer"><strong>Update Load Balancer</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+<div class="example"><pre>
+ &lt;target name="updatelb" &gt;
+ &lt;jk:updateloadbalancer url="${jkstatus.url}"
+ username="${jkstatus.username}"
+ password="${jkstatus.password}"
+ loadbalancer="loadbalancer"
+ method="Busyness"
+ retries="2"
+ recoverWaitTime="60"
+ lock="Optimistic"
+ forceStickySession="false"
+ stickySession="false"/&gt;
+ &lt;/target&gt;
+</pre></div>
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Update Worker"><strong>Update Worker</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+<div class="example"><pre>
+ &lt;target name="updatew" &gt;
+ &lt;jk:updateworker url="${jkstatus.url}"
+ username="${jkstatus.username}"
+ password="${jkstatus.password}"
+ loadbalancer="loadbalancer"
+ worker="node01"
+ lbfactor="2"
+ activation="Active"
+ redirect=""
+ domain=""
+ route="node01"
+ distance="0"/&gt;
+ &lt;/target&gt;
+</pre></div>
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Reset Worker"><strong>Reset Worker</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+<div class="example"><pre>
+ &lt;target name="reset" &gt;
+ &lt;jk:reset url="${jkstatus.url}"
+ username="${jkstatus.username}"
+ password="${jkstatus.password}"
+ loadbalancer="loadbalancer"
+ worker="node01"
+ /&gt;
+ &lt;/target&gt;
+</pre></div>
+</p>
+</blockquote></td></tr></table>
+
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright &copy; 1999-2011, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html> \ No newline at end of file
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/docs/miscellaneous/printer/changelog.html b/rubbos/app/tomcat-connectors-1.2.32-src/docs/miscellaneous/printer/changelog.html
new file mode 100644
index 00000000..ff2105a0
--- /dev/null
+++ b/rubbos/app/tomcat-connectors-1.2.32-src/docs/miscellaneous/printer/changelog.html
@@ -0,0 +1,2095 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>The Apache Tomcat Connector - Miscellaneous Documentation - Changelog</title><meta name="author" value="Mladen Turk"><meta name="email" value="mturk@apache.org"><meta name="author" value="Rainer Jung"><meta name="email" value="rjung@apache.org"><meta name="author" value="Henri Gomez"><meta name="email" value="hgomez@apache.org"><meta name="author" value="Tim Whittington"><meta name="email" value="timw@apache.org"><link href="../../style.css" type="text/css" rel="stylesheet"></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="4"><!--PAGE HEADER--><tr><td colspan="2"><!--TOMCAT LOGO--><a href="http://tomcat.apache.org/"><img src="../../images/tomcat.gif" align="left" alt="Apache Tomcat" border="0"></a><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="http://www.apache.org/images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><tr><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left"><table border="0" width="100%" cellspacing="4"><tr><td align="left" valign="top"><h1>The Apache Tomcat Connector - Miscellaneous Documentation</h1><h2>Changelog</h2></td><td align="right" valign="top" nowrap="true"><img src="../../images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Preface"><strong>Preface</strong></a></font></td></tr><tr><td><blockquote>
+ <p>
+ This is the Changelog for Tomcat Connectors. This changelog
+ does not contain all updates and fixes to the Tomcat connectors (yet).
+ It should contain fixes made only after November 10th 2004, when the
+ new documentation project for JK was started.
+ </p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Changes between 1.2.31 and 1.2.32"><strong>Changes between 1.2.31 and 1.2.32</strong></a></font></td></tr><tr><td><blockquote>
+ <br>
+ <table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Native"><strong>Native</strong></a></font></td></tr><tr><td><blockquote>
+ <table border="0" cellpadding="2" cellspacing="2">
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=51417">51417</a>: Fix worker busy detection by querying the
+ worker endpoint. Abandoned connections can leave a worker
+ in busy state without decrementing busy counter. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=50339">50339</a>: Fix whitespace trimming when parsing attribute
+ lists. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=41263">41263</a>: Support Servlet API getRemotePort().
+ Works for Tomcat 5.5.28, 6.0.20 and 7.0.0 and Apache and ISAPI
+ plugins. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=41923">41923</a>: AJP: Close AJP connection to Tomcat on client write
+ error when recovery_options 4 is specified, aborting the response
+ write on the Tomcat side. (timw)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ AJP: Cap the lingering bytes that will be read
+ when shutting down an AJP socket at 32k to prevent CPU spikes
+ in the web server when a client aborts on a large response body.
+ Also reduce total linger time to 2s. (timw)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=50839">50839</a>: AJP: Fix 30sec CPU spike due to incorrect counting
+ of lingering bytes causing a busy loop when a client aborts
+ connection during a response write.
+ Fixes regression in 1.2.31. (timw)
+ </td></tr>
+ <tr><td valign="top"><img alt="add" class="icon" src="../../images/add.gif"></td><td>
+ LB: Forward worker activation state as request attribute
+ "JK_LB_ACTIVATION". Possible values are "ACT" (active),
+ "DIS" (disabled) and "STP" (stopped). (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ HTTPD: Forward WWW-Authenticate from backend when status is 401
+ and server generated error pages are used. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=50363">50363</a>: IIS: Prevent chunk encoding of empty message
+ bodies for 204, 205 and 304 responses. (timw)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=50975">50975</a>: IIS: Fix hanging of Transfer-Encoding: chunked
+ requests when Content-Length header is present in request as well.
+ Also addresses situation where IIS appears to create a Content-Length
+ header for a small chunk encoded request when none was present in the
+ original request. (timw)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=47679">47679</a>: IIS: stop truncation of request headers when
+ ISAPI redirector used as an extension without the corresponding
+ filter installed. (timw)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ NSAPI: Use lower case header names for responses.
+ Otherwise the web server might add chunked transfer encoding header
+ in addition to our content length header.
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Docs: Improve load balancer documentation. (rjung)
+ </td></tr>
+ </table>
+ </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Changes between 1.2.30 and 1.2.31"><strong>Changes between 1.2.30 and 1.2.31</strong></a></font></td></tr><tr><td><blockquote>
+ <br>
+ <table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Native"><strong>Native</strong></a></font></td></tr><tr><td><blockquote>
+ <table border="0" cellpadding="2" cellspacing="2">
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=49413">49413</a>: AJP13: Drop flush packets send by the backend
+ after the response has been finished. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ AJP: Log the local and remote socket address. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Watchdog: Move the maintain workers outside the critical
+ section allowing other threads to use the connection
+ pool during maintenance. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Common: Add svn revision to init log message. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ Common: Don't destroy errno during trace logging. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Apache: Add support for Apache 2.3/2.4. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Apache: Added version number resource for mod_jk.so on Windows. (timw)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48501">48501</a>: IIS: Added rotatelogs style log rotation to ISAPI
+ Redirector. (timw)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=38895">38895</a>: IIS: Use RAW headers instead of CGI headers by default
+ to prevent conversion of underscores '_' to hyphens '-' in header names.
+ Old behaviour can be enabled by defining USE_CGI_HEADERS. (timw)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=49511">49511</a>: IIS: Do not override IIS log information when subsequent
+ requests on a keep-alive connection are not mapped into the ISAPI Redirector. (timw)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ Docs: Document SSLOptions needed for SSL information forwarding. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Docs: Grammar and style improvements and clarification about serving
+ static content by IIS.
+ Patch provided by Andr&eacute; Warnier. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ Docs: Update subversion paths used in docs. (rjung)
+ </td></tr>
+ </table>
+ </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Changes between 1.2.28 and 1.2.30"><strong>Changes between 1.2.28 and 1.2.30</strong></a></font></td></tr><tr><td><blockquote>
+ <br>
+ <table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Native"><strong>Native</strong></a></font></td></tr><tr><td><blockquote>
+ <table border="0" cellpadding="2" cellspacing="2">
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Apache: Improve compatibility with Apache 2.3. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46632">46632</a>: Apache: Do not register child cleanup for
+ our pools. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46893">46893</a>: Apache: Log warning only if JkShmSize was actually
+ set in the configuration. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ IIS: Include optional chunking support. Off by default. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48763">48763</a>: IIS: Do not send Content-Length when using chunked encoding
+ or length larger 4GB. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48223">48223</a>: IIS: Propagate correct backend error code to IIS. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=47867">47867</a>: IIS: crash during startup, when compiled with VS2008
+ and workers.properties contains unsupported properties.
+ Patch provided by Indrek Juhani (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=47628">47628</a>: IIS: Fix deadlock when restarting the Application Pool
+ caused by not releasing the critical section lock.
+ Patch provided by Bret Prucha. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ IIS/NSAPI: Correct log file flushing after each line. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="add" class="icon" src="../../images/add.gif"></td><td>
+ NSAPI: Add Microsoft Visual C++ Makefile. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ AJP: Improve socket shutdown handling. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ AJP: Ensure we never reuse a non reusable socket. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ AJP: Tolerate a single excess packet when waiting for cpong. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ AJP: Check protocol correctness more strictly. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48410">48410</a>: AJP: Use poll instead select so we can work with more
+ then 1024 sockets. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46503">46503</a>: AJP/Status: Garbage data in worker domain and route. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48276">48276</a>: AJP: When worker contact cannot be resolved mark the
+ worker as disabled instead failing to start the server. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48169">48169</a>: AJP: Improve CGI interoperability by closing all
+ sockets during EXEC. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="add" class="icon" src="../../images/add.gif"></td><td>
+ Status: Add number of open backend connections to status worker.
+ This feature is experimental, the displayed value might not be
+ accurate. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=47224">47224</a>: Status: When address gets changed invalidate
+ all opened sockets in the endpoint cache. This will cause new
+ backend connections to get opened using new address. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48305">48305</a>: Status: Do not show "secret" property when
+ doing dump. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=45610">45610</a>: Status: Don't accept requests with
+ empty value for sub worker parameter. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=45610">45610</a>: Status: Fix erroneous unsetting of
+ sticky_session and sticky_session_force when updating other
+ load balancer attributes via the status worker. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=47222">47222</a>: Status: Add ping_timeout to the shared memory
+ and allow dynamic configuration. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ Status: Remove duplicate "errors" line in property view of
+ AJP13 workers that are part of a load balancer. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ LB: Fix route logging. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Logging: Automatically detect size of thread id for logging. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Logging: Add optional log file locking for Windows when defining
+ JK_LOG_LOCKING. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Configuration: Update example configuration. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Docs: Update information about tools needed to create a release. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=47983">47983</a>: Docs: Fix typo in example config
+ which breaks startup. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Build: Force copy of automake files. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Build: Tomcat code repository structure cleanup reflected in documentation
+ and build script. (rjung, mturk)
+ </td></tr>
+ </table>
+ </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Changes between 1.2.27 and 1.2.28"><strong>Changes between 1.2.27 and 1.2.28</strong></a></font></td></tr><tr><td><blockquote>
+ <br>
+ <table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Native"><strong>Native</strong></a></font></td></tr><tr><td><blockquote>
+ <table border="0" cellpadding="2" cellspacing="2">
+ <tr><td valign="top"><img alt="add" class="icon" src="../../images/add.gif"></td><td>
+ Apache: Add more environment variables to overwrite request
+ information. Useful in case a proxy is in front of Apache and sends
+ us original request information e.g. via custom headers. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Apache: No longer preallocate entries for JK request log. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46352">46352</a>: Apache: Fix crash when using SetHandler jakarta-servlet
+ in VHost without any JkMount. Crash due to incorrect initialization
+ of mount extensions. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ Apache: JkWatchdogInterval had wrong interval calculation
+ causing a 10 times higher watchdog interval then configured. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ Apache: Activate forwarding of SSL key size by default. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46169">46169</a>: Apache 1.3: Backport use_server_errors mount extension. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46763">46763</a>: Apache 2.0: Survive the log mutex during graceful
+ restart. Patch provided by Eiji Takahashi. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46416">46416</a>: Apache 2.0 on Windows: Include mstcipip.h even if
+ the apr doesn't include it. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ IIS: Update uriworkermap.properties file on
+ a regular interval. This requires both worker_mount_reload
+ and watchdog_interval to be defined. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ IIS: Remove obsolete entries from registry file. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46579">46579</a>: IIS: Use local environment table instead environment
+ variables for setting the JKISAPI_PATH and JKISAPI_NAME. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ LB: Add new property error_escalation_time to fine tune
+ escalation of local errors to global errors. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ LB: If the sticky session affinity mark contains a dot, treat the
+ part before the dot as the domain name. This allows to have full node
+ session affinity with domain failover. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ LB: make forced recovery work with local error states. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ LB: Only update error state and error time, if we actually have a new state. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ LB: Set global worker state to error when we reach max_reply_timeouts,
+ or fail_on_status triggered hard error. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ AJP: Add a new error type JK_AJP_PROTOCOL_ERROR. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ AJP: Allow worker ports lower or equal to 1024. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ AJP: Improve some AJP error log messages. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Status: Allow changing worker address and port of AJP workers.
+ The address is resolved on next request for that worker. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Status: Allow update actions to show error messages in the result page. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Status: Refactor update actions. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Status: Do not redirect to the show or list page, if an error occured
+ during an action. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Status: Include error time in display. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Status: Remove redundant port information from worker display.
+ Rename address column and remove its explanation from the legend. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Status: Optimize forced uriworkermap.properties reload. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ Status: Fix crash in text display. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ Status: Show - Edit - Show always ends in single lb member show,
+ even when started from all members lb show. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ Status: Wildcards in sub worker names were broken for update actions. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ Status: Add use_server_errors to map display. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ SHM: Move locking into the data pull and push methods. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ JNI: Deprecate JNI workers. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ Netware: Missing define for MAX_PATH. Patch by Guenter Knauf. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Docs: Add a new HowTo page about reverse proxies. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Docs: Add an explanation of local error states to the timeouts documentation. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Docs: Clarify relation between socket_timeout and socket_connect_timeout. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Docs: Clarify IIS URL rewrite feature. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46834">46834</a>,<a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46734">46734</a>: Docs: Fix a couple of missing or broken links. (markt,rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ Docs: Add 2008 news to main page and menues. (mturk, rjung)
+ </td></tr>
+ </table>
+ </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Changes between 1.2.26 and 1.2.27"><strong>Changes between 1.2.26 and 1.2.27</strong></a></font></td></tr><tr><td><blockquote>
+ <br>
+ <table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Native"><strong>Native</strong></a></font></td></tr><tr><td><blockquote>
+ <table border="0" cellpadding="2" cellspacing="2">
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46109">46109</a>: Decay reply_timeouts even when lb method is
+ busyness. Also reset reply_timeouts during forced recovery. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ AJP13: Recycle connection if previous request didn't complete. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Maintain should not run multiple times in parallel. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ Apache: Fix small memory leak during restart. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Improve signal handling during socket shutdown. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="add" class="icon" src="../../images/add.gif"></td><td>
+ URI Map: Add debug dump function for uri worker map. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Add revision number to version info for non-release builds. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="add" class="icon" src="../../images/add.gif"></td><td>
+ IIS: Optionally allow chunked encoding for responses.
+ At the moment only usable, if build with ISAPI_ALLOW_CHUNKING
+ defined. Based on patch by Tim Whittington. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ IIS: Optionally use raw headers instead of CGI
+ headers. Fixes problem "underscore=dash" problem in
+ header names. At the moment only available, if build with USE_RAW_HEADERS
+ defined. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ IIS: Optionally improve IIS 5.1 compatibility.
+ At the moment only available, if build with AUTOMATIC_AUTH_NOTIFICATION
+ defined. Based on patch by Tim Whittington. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ IIS: Fix memory corruption due to parallel initialization
+ by multiple threads. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Windows: Use non-default socket keepalive interval. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="add" class="icon" src="../../images/add.gif"></td><td>
+ IIS: Add environment variables JKISAPI_PATH and JKISAPI_NAME. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="add" class="icon" src="../../images/add.gif"></td><td>
+ Added socket_connect_timeout directive for setting the
+ connect timeout for the socket. This enables to have low
+ connection timeout but higher operational timeouts. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ AJP13:
+ [<a href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2008-5519"><b>CVE-2008-5519</b></a>]
+ Always send initial POST packet even if the client
+ disconnected after sending request but before providing
+ POST data. In that case or in case the client broke the
+ connection in a middle of read send an zero size packet
+ informing container about broken client connection. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="add" class="icon" src="../../images/add.gif"></td><td>
+ AJP13: Added connection_acquire_timeout directive for setting the
+ absolute timeout the worker will wait for a free endpoint. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Apache: Allow to set path parameter used when doing JkStripSession. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Refactor retries implementation and change semantics of retries attributes. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Status: Allow showing only a single member for a load balancer. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Status: Add display of seconds since last statistics reset and access and
+ transfer rates. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="add" class="icon" src="../../images/add.gif"></td><td>
+ AJP13: Add a configurable retry_interval time. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Documentation: Enhance description of connection_pool_size. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ IIS: Refactor error page generation. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ IIS: SERVER_NAME variable can be the same for
+ multiple different server instances if requests
+ are handled according to the ip:port combination.
+ Use INSTANCE_ID variable to which the request
+ belongs instead. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="add" class="icon" src="../../images/add.gif"></td><td>
+ Allow forwarding server error pages. This can be done
+ on per-uri basis using new use_server_errors extension.
+ (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="add" class="icon" src="../../images/add.gif"></td><td>
+ Added session_cookie and session_path for configuring
+ default session identifiers. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Use max_packet_size also as TCP send and receive buffer size. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Apache: Do not allow Apache to start in multi-threaded mode if mod_jk
+ was only build for single threaded server (prefork). (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=45812">45812</a>: Add done() service method that
+ causes sending EOS bucket for Apache httpd 2.x.
+ This allows filter chain to work properly. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="add" class="icon" src="../../images/add.gif"></td><td>
+ Added connection_ping_interval, ping_timeout and ping_mode directives.
+ (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ Apache: Use correct ld flags provided by apxs when building module.
+ Prevents some crashes on AIX for httpd 1.3 module. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ Documentation: "val" attribute numbering in status worker
+ needs to start with 0 instead of 1. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Documentation: Remove JNI parameters from sample configuration
+ in the workers generic howto. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=45026">45026</a>: For Apache httpd 2.x add "Unknown Reason"
+ as the reason phrase, if we get an empty one from the backend.
+ Otherwise httpd 2.x returns status 500. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ Build: Fix Cygwin build. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Documentation: Add info to docs, that variables sent via JkEnvVar
+ are not listed in request.getAttributeNames(). (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="add" class="icon" src="../../images/add.gif"></td><td>
+ Add watchdog background thread for Apache 2.x and IIS
+ doing internal maintenance (idle connection checks, backend probing).
+ See JkWatchdogInternal (Apache) and watchdog_interval (IIS). (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Change log level of some messages from error to info. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ Documentation: Fix docs for worker attribute "secret". (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Detect correct plugin name for various web servers via additional
+ preprocessor defines. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ LB: Do not put loadbalancer node in error state if there is opened
+ channel. This fixes the bug when new connection fails due to
+ busyness, causing opened connections fail stickyness.
+ This brings back per-node busy counter and private state array
+ for each request. We can mark the state as error for failover to
+ work while still operating and reporting node as OK if there are
+ opened working connections. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=44738">44738</a>: Fix merging of JkOption ForwardURI* between virtual hosts.
+ Patch contributed by Toshihiro Sasajima. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="add" class="icon" src="../../images/add.gif"></td><td>
+ URI Map: Add extension attributes to uri worker map.
+ Allowed are reply_timeout, active/disabled/stopped
+ and fail_on_status.
+ Usage currently only implemented for httpd and IIS. (rjung+mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ URI Map: Make dynamic reloading atomic and free memory
+ not needed any longer. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="add" class="icon" src="../../images/add.gif"></td><td>
+ Configure: Don't use post httpd 2.2.0 API functions when building
+ with new --enable-api-compatibility configure switch. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ Apache: JkAutoAlias does not work in combination with JkMountCopy
+ if there are no JkMount in virtual host. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ LB: Optimize state macros to improve performance. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="add" class="icon" src="../../images/add.gif"></td><td>
+ Apache: Allow dynamic setting of reply timeout using the environment
+ variable JK_REPLY_TIMEOUT. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="add" class="icon" src="../../images/add.gif"></td><td>
+ Status: Add manageability for ajp parameters of ajp
+ workers and ajp lb members. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Status: Change parameter names of update action to
+ make them more easily distinguishable from other parameters. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="add" class="icon" src="../../images/add.gif"></td><td>
+ Status: Add ajp worker statistics also for
+ workers, that are not lb members. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ AJP: Refactor factories, move ajp13/ajp14 common parts into
+ ajp_factory. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Status: Only sync shm worker config values of the workers
+ for which we changed values. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ Status: Set lb_factor instead of distance. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Status: Minor layout changes, use drop down instead of multiple
+ text links. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ SHM: Use local copies of read mostly attributes of lb sub workers
+ in lb and status worker. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Status: Add "dump" action to dump our initial configuration. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Status: Use property table to decide which cmd action uses which
+ output elements. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Common: Include original configuration map in worker_env
+ to make it available for workers, e.g. the status worker. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ LB: Refactor "route" return for httpd note. Don't use a
+ member of the worker_record, because that's not thread safe. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Common: Refactor "retries", remove from service and jk_worker,
+ move into ajp worker instead. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ SHM: Use distinct structs for lb and ajp13 in shm.
+ Improves type safety and saves a few bytes. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ SHM: Remove unused attributes. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ SHM: Automatically determine shm size for all web servers. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ SHM: Make open/attach logging consistent for all web servers. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Status: Include server local time in output. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=44116">44116</a>: Fix handling of multiple JSESSIONID cookies. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=37850">37850</a>: Use thread safe localtime_r where appropriate. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ Use thread safe strtok_r on more platforms, especially AIX. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Status: Improve XSS hardening. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=35303">35303</a>: Move initialization of service members with defaults from
+ web server specific code to our generic jk_init_ws_service() function. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=36385">36385</a>: Add missing prepost CPing/CPong directly after connect
+ in case prepost CPing is used, but no connect CPing. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=37322">37322</a>: Apache: Enhance robustness of message formating
+ in jk_error_exit(). (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=44147">44147</a>: Multiple load balancing workers problem. (rjung)
+ </td></tr>
+ </table>
+ </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Changes between 1.2.25 and 1.2.26"><strong>Changes between 1.2.25 and 1.2.26</strong></a></font></td></tr><tr><td><blockquote>
+ <br>
+ <table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Native"><strong>Native</strong></a></font></td></tr><tr><td><blockquote>
+ <table border="0" cellpadding="2" cellspacing="2">
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=42003">42003</a>: Allocate memory instead using fixed size from
+ the stack. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43229">43229</a>: Load balancer does not do fail over after
+ reply timeouts. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ JKStatus: Repair detailed Apache httpd version display.
+ This was broken for httpd version 2.2.4+. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ LB/AJP: Refactoring of jk_connect.c, jk_ajp_common.c,
+ jk_lb_worker.c (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ Configure: Repair broken apxs auto-detection. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Configure: Remove trace logging from compiled code
+ via new --disable-trace configure switch. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Common: Maintain idle connections in decreasing (LRU)
+ slot order. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Apache: Create JK_WORKER_ROUTE and JK_REQUEST_DURATION notes for
+ access log even if no JkRequestLogFormat is set. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ JKStatus: Enhance URI to worker map listing for Apache httpd.
+ We now list maps for all virtual servers and not only
+ the one, in which JKStatus itself was called. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ JKStatus: Enhance URI to worker map listing.
+ Update stale uriworkermap.properties immediately. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43873">43873</a>: Fix small memory leak occuring during httpd restart. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Common: Allow '*' for the worker name in exclusion rules (resp. JkUnMount)
+ which will override all workers. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=42038">42038</a>: Correct overlay of mounts and unmounts for IIS. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43684">43684</a>: Replace JkMountFile by JkMountFileReload in
+ uriworkermap.properties docs. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Apache: Add new value "All" for JkMountCopy. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43516">43516</a>: Memory leak for Apache httpd module
+ of size 8KB for every virtual host without JK directive
+ after each restart. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Apache: Cleanup init and destroy of server configuration. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Apache: Remove global configuration items from per server
+ configuration. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Apache: Remove unused attributes secret_key and
+ automount/JkAutoMount. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Cleanup of jk_uri_worker_map. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Documentation: Small additions to JkShmFile documentation.
+ Contributed by Gerhardus Geldenhuis. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ AJP13: Ignore flush packets before we received the response headers. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ Fix crash during startup when using worker configuration inheritance
+ (attribute "reference") and log level debug. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ AJP13: Match header names exactly against pre defined constants. Avoid
+ possible confusion with custom header names using a standard header name
+ as a prefix. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ jkstatus: Fix correct parameter validation at JkStatusUpdateTask and
+ JkStatusUpdateLoadbalancerTask ant tasks. Reported by Christian Mittendorf. (pero)
+ </td></tr>
+ </table>
+ </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Changes between 1.2.24 and 1.2.25"><strong>Changes between 1.2.24 and 1.2.25</strong></a></font></td></tr><tr><td><blockquote>
+ <br>
+ <table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Native"><strong>Native</strong></a></font></td></tr><tr><td><blockquote>
+ <table border="0" cellpadding="2" cellspacing="2">
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ IIS: Fix shm shutdown behaviour. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ General: fail_on_status used in a load balancer can optionally
+ do fail over without putting the failed worker in error state. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ NSAPI: Improve build description for Unix. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ NSAPI: Add initialization startup message containing JK version. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ General: Declare static functions as static. (jim)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Documentation: Clarify fail_on_status behaviour. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ General: Do fail_on_status before returning the response headers. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ NSAPI: Fix shm shutdown behaviour. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ NSAPI: Set return status even if request ended with an error. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ NSAPI: Allow using without shm_file on WIN32 and Netware. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ NSAPI: Fix Crash of nsapi for log level debug and unset refect_unsafe. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ NSAPI: Improve Solaris and Linux Makefiles for nsapi build. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ Build: Improve pid_t type detection during configure on Solaris. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Build: Experimental build support for gcc on WIN32 and Netware. (fuankg)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Build: Makefile optimizations for Apache httpd 1.3/Netware . (fuankg)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ General: Fix missing flush bug introduced in 1.2.24. (rjung)
+ </td></tr>
+ </table>
+ </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Changes between 1.2.23 and 1.2.24"><strong>Changes between 1.2.23 and 1.2.24</strong></a></font></td></tr><tr><td><blockquote>
+ <br>
+ <table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Native"><strong>Native</strong></a></font></td></tr><tr><td><blockquote>
+ <table border="0" cellpadding="2" cellspacing="2">
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Documentation: Improved workers.properties description in the
+ reference guide. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Documentation: Add a HowTo about the various timeouts. rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Logging: add milliseconds to the default timestamp format,
+ if we have gettimeofday(). (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Apache: add milliseconds (%Q) and microseconds (%q) as possible
+ JkLogStampFormat conversion specifiers. This does not use strftime(),
+ but needs gettimeofday(). (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ IIS &amp; Sun: Log service failures also, if return code is negative. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=42849">42849</a>: Abort startup of Apache httpd 1.3 in case
+ mod_jk initialization failed. We already do the same
+ for Apache httpd 2.x. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=42849">42849</a>: Refuse to operate with IIS in case the
+ initialization failed. Instead requesting isapi_redirect.dll
+ 500 will be returned to the user. This is as closest as it
+ can get to Apache Httpd where we refuse to start the server
+ in case of fatal initialization errors. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ Load Balancer: Fix a deadlock in lb worker, which was exposed on Solaris
+ for threaded Apache MPMs. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Logging: handle LWP IDs as 32 Bit unsigned. Try to make
+ it work, although pthread IDs are opaque. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ JkStatus: Added manipulation of max_reply_timeouts. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ LB, Status: Add feature max_reply_timeouts, to make lb tolerant against
+ occasional long running requests. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ JkStatus: Added OK/IDLE as the successor of N/A. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Status worker: Renamed runtime states. All states have a major
+ state (OK or ERR) and a substate. Changed the name N/A to OK/IDLE.
+ Added docs about the meaning of the states to the status worker
+ page in the reference guide.
+ No new states have been added to code. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Common: Add recovery options for recovering idempotent http methods
+ HEAD and GET. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ Correct documentation for worker attributes retries and
+ recovery_options. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ Make writing log lines and line endings more atomic. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Common: Refactored and unified jk_map_read_prop* and jk_map_load_prop*
+ for all use cases. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Common/Apache/IIS/Netscape: Add an option to check decoded URLs for
+ potentially malicious constructions. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ IIS: Document auth_complete and uri_select. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Apache/IIS/Netscape: Change the default forwarding encoding to the new
+ proxy method. (jfclere, rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Common: Optionally reencode URIs before forwarding to the backend.
+ Based on the URI reencoding done bei httpd mod_proxy. (jfclere, rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Common: auto-detect correct print format for pid_t.
+ This fixes at least compiler warnings on Solaris. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=42608">42608</a>: Handle Content-length as unsigned 64Bit
+ to allow for huge up- and downloads. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Apache: Add forwarding uri to debug log. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Docs: Clarify relation between worker names and jvmRoute for load balancing. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ Use initial zero timeout for jk_is_socket_connected. The resulting
+ detection is the same but offers a huge performance increase
+ with mod_jk. In most cases the Operating System does not favor
+ the 1 microsecond timeout, but it rather rounds that up to much
+ higher value (frequency of interrupt timer which on most systems
+ defaults to 100Hz).
+ Patch provided by David McLaughlin. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ NSAPI: Check correct log file and shm file configuration during startup. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ NSAPI: Add support for the general options concerning retries, flushing
+ and connection persistance. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ NSAPI: fix crashes due to use of mount attribute in workers.properties.
+ Changed initialization order. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ Improved handling of libtool and discrepancies between CC env variable and
+ CC used during apache build by configure script. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ Always build with thread support, unless flag --enable-prefork
+ is set during for configure. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Use snprintf/vsnprintf from ap_snprintf.c for platforms other
+ than Windows, which might lack snprintf/vsnprintf implementations
+ when NOT build for Apache httpd 2.x/APR (e.g. Sub Web Server)
+ or without using configure. (fuankg)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Imported ap_snprintf() from Apache 1.3. (fuankg)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ Fix incorrect log object cleanup during statup,
+ leading to crashes at least on iSeries. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Add jk_stat() and jk_file_exists() as wrapper functions.
+ i5/OS V5R4 expects filename in ASCII for fopen but requires them
+ in EBCDIC for stat(). (hgomez)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ i5/OS (AS/400) V5R4 port where Apache 2.0 modules should now use UTF8. (hgomez)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Docs: Add comments on i5/OS build for V5R4 and previous releases. (hgomez)
+ </td></tr>
+ </table>
+ </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Changes between 1.2.22 and 1.2.23"><strong>Changes between 1.2.22 and 1.2.23</strong></a></font></td></tr><tr><td><blockquote>
+ <br>
+ <table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Native"><strong>Native</strong></a></font></td></tr><tr><td><blockquote>
+ <table border="0" cellpadding="2" cellspacing="2">
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ [<a href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-0450"><b>CVE-2007-0450</b></a>]
+ and
+ [<a href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-1860"><b>CVE-2007-1860</b></a>]:
+ Change the default value of JkOptions to ForwardURICompatUnparsed.
+ The old default value was ForwardURICompat.
+ This should make URL interpretation between Apache httpd and
+ Tomcat consistent (prevent double decoding problems). (rjung)
+ </td></tr>
+ </table>
+ </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Changes between 1.2.21 and 1.2.22"><strong>Changes between 1.2.21 and 1.2.22</strong></a></font></td></tr><tr><td><blockquote>
+ <br>
+ <table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Native"><strong>Native</strong></a></font></td></tr><tr><td><blockquote>
+ <table border="0" cellpadding="2" cellspacing="2">
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ Refactor line endings logging to make it correct for all
+ platforms and webservers. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Added command line windows make files. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Allow fail_on_status directive to be multi line. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=42076">42076</a>: Fix name of new option from ForwardCertChain to
+ ForwardSSLCertChain as documented. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ Docs: Fix a couple of typos, change format of a few tables,
+ fix links to news pages. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ Fix correct URL for TC 6 examples in new IIS rewrite.properties
+ configuration example file. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ Add svn properties to several files. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Add TC 6 examples to uriworkermap.properties in config examples. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Allow multiple status codes for fail_on_status directive.
+ The status codes can be delimited by space or comma characters. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ IIS. Added pcre like regular expressions for url rewrite rules. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=41922">41922</a>: Apache 1.3. Enable JkEnvVar. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Apache. Add --enable-flock configure parameter for explicit
+ compilation of faster flock() system calls for OS supporting
+ those calls. By default the fcntl system call for locking will
+ be used that is a little bit slower but it can work on NFS
+ mounted volumes as well. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=41562">41562</a>: Add Debug logging for read from client in ISAPI Redirector.
+ Contributed by Tim Whittington. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Apache. Add ForwardSSLCertChain JkOption.
+ Contributed by Patrik Schnellmann. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ IIS. Do not forbid access to web-inf or meta-inf if there is
+ no mapped worker. This allows to have resource with those names
+ that are outside mapped contexts. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Apache. Use process id for creating shared memory name and delete shared
+ memory and shared memory lock files on exit. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ IIS. Fix Keep-Alive regression introduced in 1.2.21. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Delete unused check for empty init_map during startup. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=41770">41770</a>: Fix startup error if no JkWorkersFile is used. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Use JK_TRUE/JK_FALSE instead of OK/!OK as return values in init_jk(). (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Minor adjustments to apache startup log messages (when to use STDERR, remove
+ deprecated NOERRNO flag, shm warning and warnings for usage of default files). (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Replace APR precompiler directive by httpd mpm_query to detect MPM threading.
+ Add a debug log message about auto-detected pool size. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ Make MMN check easier to understand and a little more precise
+ (for new ap_get_server_banner()/ap_get_server_description()).
+ We use the new API only for Apache httpd 2.3. This way our binaries are not
+ tightly coupled to a minor 2.0 version, and we don't use ap_get_server_banner()
+ any way. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ Use the full description string ap_get_server_description() instead of
+ the truncated info from ap_get_server_banner(), because this info gets used internally
+ (status worker display and ajp14 backend communication) and is not send back to the
+ normal user. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=41757">41757</a>: Document the "--enable-prefork" flag of configure. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Enhance log messages for failures when parsing attribute maps. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ Correct log message during worker initialization, in case remote host could not be
+ resolved. We logged the default host name "localhost" instead of the configured one. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=41770">41770</a>: Fix the second part of the bug: local_worker and local_worker_only
+ is missing from the list of deprecated attributes (and not supported either), so prevents
+ the web server from startup. (rjung)
+ </td></tr>
+ </table>
+ </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Changes between 1.2.20 and 1.2.21"><strong>Changes between 1.2.20 and 1.2.21</strong></a></font></td></tr><tr><td><blockquote>
+ <br>
+ <table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Native"><strong>Native</strong></a></font></td></tr><tr><td><blockquote>
+ <table border="0" cellpadding="2" cellspacing="2">
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ [<a href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-0774"><b>CVE-2007-0774</b></a>]:
+ A denial of service and critical remote code execution vulnerability.
+ Caused by buffer overflow in map_uri_to_worker() when URL were longer that 4095 bytes.
+ Reported by ZDI (www.zerodayintiative.com).
+ Please note this issue only affected versions 1.2.19 and 1.2.20 of the
+ Apache Tomcat JK Web Server Connector and not previous versions.
+ Tomcat 5.5.20 and Tomcat 4.1.34
+ included a vulnerable version in their source packages.
+ Other versions of Tomcat were not affected.
+ </td></tr>
+ <tr><td valign="top"><img alt="add" class="icon" src="../../images/add.gif"></td><td>
+ Check the worker. parameters and don't start if the parameter is not a valid one. (jfclere)
+ </td></tr>
+ <tr><td valign="top"><img alt="add" class="icon" src="../../images/add.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=41439">41439</a>: Allow session IDs to get stripped off URLs of static
+ content in Apache by adding JkStripSession
+ directive (configurable per vhost). (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="add" class="icon" src="../../images/add.gif"></td><td>
+ Change semantics of empty defaults for JkEnvVar variables.
+ Until 1.2.19: not allowed. In 1.2.20: send variables as empty strings, if
+ neither set to non empty in config, nor during runtime.
+ Starting with 1.2.21: If config has no second argument only send
+ variable if set (even when set to empty string) during runtime.
+ Allows good combination with condition attribute in tomcat access log. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=41610">41610</a>: Fix incorrect detection of missing Content-Length
+ header leading to duplicate headers. Contributed by Boris Maras. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ Better build support for SunONE (Netscape/iPlanet) webservers. (jim)
+ </td></tr>
+ <tr><td valign="top"><img alt="add" class="icon" src="../../images/add.gif"></td><td>
+ Add warning if duplicate map keys are read and are not allowed,
+ e.g. when parsing uriworkermap.properties. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ Don't concat worker names, if uriworkermap.properties has a duplicate
+ pattern, instead overwrite the worker. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ Log deprecation message even in duplication case. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ uriworkermap.properties: Fix off-by-one problem when deleting
+ URL mapping during reloading of uriworkermap.properties. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="add" class="icon" src="../../images/add.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=41439">41439</a>: Allow session IDs to get stripped off URLs of static
+ content in IIS (configurable). (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="add" class="icon" src="../../images/add.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=41333">41333</a>: Refactoring isapi_plugin configuration reading. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="add" class="icon" src="../../images/add.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=41332">41332</a>: Add some more errno logging and unify the format. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="add" class="icon" src="../../images/add.gif"></td><td>
+ JkStatus: Improved logging by adding status worker name to messages.
+ Added messages to the recover worker action. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="add" class="icon" src="../../images/add.gif"></td><td>
+ JkStatus: Refactoring searching for workers and sub workers. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="add" class="icon" src="../../images/add.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=41318">41318</a>: Add configuration to make status worker user
+ name checks case insensitive. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="add" class="icon" src="../../images/add.gif"></td><td>
+ JkStatus: Add estimated time until next global maintenance to other
+ mime types and adopt jkstatus ant task. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="add" class="icon" src="../../images/add.gif"></td><td>
+ JkStatus: Show estimated time until next global maintenance.
+ Change displayed time until next recovery to a min/max pair. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="add" class="icon" src="../../images/add.gif"></td><td>
+ JkStatus: Allow a user of a read/write status worker to switch it
+ to and from read_only mode temporarily. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ JkStatus: Do not show read/write commands in a read_only status worker. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="add" class="icon" src="../../images/add.gif"></td><td>
+ JkStatus: Allow lb sub workers in error state to be marked for recovery
+ administratively from the status worker. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="add" class="icon" src="../../images/add.gif"></td><td>
+ Load Balancer: Do not try to recover multiple times in parallel.
+ Use additional runtime states "PROBE" and "FORCED". (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ JkStatus: Improve data synchronization between different processes. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=41381">41381</a>: Fix segfault in feature fail_on_status
+ (wrong order of log arguments). Patch by Juri Haberland. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ Use correct windows line endings for log file on WIN32 platform. (rjung)
+ </td></tr>
+ </table>
+ </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Changes between 1.2.19 and 1.2.20"><strong>Changes between 1.2.19 and 1.2.20</strong></a></font></td></tr><tr><td><blockquote>
+ <br>
+ <table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Native"><strong>Native</strong></a></font></td></tr><tr><td><blockquote>
+ <table border="0" cellpadding="2" cellspacing="2">
+ <tr><td valign="top"><img alt="add" class="icon" src="../../images/add.gif"></td><td>
+ JkStatus Ant Task documentation page. (pero/rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="add" class="icon" src="../../images/add.gif"></td><td>
+ JkStatus Ant Tasks: Add new tasks for update and reset. (pero)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ JkStatus Ant Tasks: Update for new xml status format. (pero)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Allow integer and string values when setting enumeration/boolean
+ attributes via status worker update action. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="add" class="icon" src="../../images/add.gif"></td><td>
+ Docs: New reference guide page for status worker. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Docs: Renaming the config dir to reference and using the title
+ Reference Guide in the docs. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Added retry_on_status for workers directive. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Status Worker: Add directive to make property prefix
+ and good/bad rule configurable. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Status Worker: Omit lb members when att=nosw. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Status Worker: New command cmd=version for a short version output. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Status Worker: New output stype mime=prop produces property lists. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ Apache: Fix incorrect handling of JkEnvVar when Vars are set multiple times. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Renamed jvm_route to route. Deprecated jvm_route, but still use it as fallback
+ when parsing the worker configuration. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ IIS: Make uriworkermap file reload check interval configurable. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Apache: Make uriworkermap file reload check interval configurable. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Status Worker: Add directives for customizing the XML
+ output (ns, xmlns, doctype). (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="add" class="icon" src="../../images/add.gif"></td><td>
+ Docs: New page with description of uriworkermap. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Docs: Added short description of max_packet_size to worker
+ reference. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Status Worker: All functions accessible also for xml and txt
+ mime types (list, show, update, reset). (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Status Worker: New global health indicators for load balancers
+ named bad (error, recovering or stopped), degraded (busy or disabled)
+ and good (the rest, active and OK or N/A). (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Status Worker: New edit page, to change one attribute for all
+ members of a load balancer. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Status Worker: Standard logging for status worker. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Status Worker: code refactoring. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Status Worker: New attribute user (list) denies access, if
+ the request user in the sense of remote_user is not in this list.
+ Empty list = no deny (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Status Worker: New attribute read_only disables the parts
+ of the status worker, that change states and configurations. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=36121">36121</a>: Don't change main uri when mod_jk serves
+ included uri. (markt)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Apache VHosts: Merge JkOptions +base - -base + +vhost - -vhost. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Apache Docs: Adding requirements, context information, default values and
+ inheritance rules to the Apache config documentation. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Status Worker: Add source type to status worker, remove the redundant "context"
+ column in the map listing (context=uri). (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ uriworkermap: On reload of the file, all old entries from the previous file
+ version get deleted, before the new ones are being read. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ Keep normal maps and exclusion maps internally separate. Don't treat them
+ as the same when adding a rule. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Status Worker: Display mapping rules also for non-lb workers and in global view. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Apache VHosts: Use the vhost log files instead of the main log. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Apache VHosts: Allow individual timestamp formats by refactoring the formatting
+ method. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Apache VHosts: Adding all missing config items to the virtual host level.
+ Don't overwrite the settings from the global server, but inherit them
+ in case they are not set in the virtual host. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Apache: remove unnecessary function names from log messages. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Apache: add a default log file location and a message, if the default gets used. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Apache: add missing JK_IS_DEBUG_LEVEL() (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Apache VHosts: Allow JkWorkersFile, JKWorkerProperty, JkShmFile and JkShmFileSize
+ only in global virtual server. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Add some more jk_close_socket() and reduce log level for some info messages. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Load Balancer: Added the Sessions strategy. Contributed by Takayuki Kaneko. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Docs: Minor enhancements and syncing with more recent versions. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=40997">40997</a>: Separate uri mappings from their '!'
+ counterpart when checking for duplicates in uriworkermap
+ reloading. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=40877">40877</a>: Make sure the shared memory is reset on
+ attach for multiple web server child processes. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ IIS: Added shm_size property to be able to deal with over 64
+ workers configurations. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ IIS: Increase default thread count to 250, so its the same as Apache Httpd
+ default configuration. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=40966">40966</a>: Fix socket descriptor checks on windows. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=40965">40965</a>: Initialize missing service parameters. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=40938">40938</a>: Fix releasing of rewrite map.
+ Thanks to Chris Adams for spotting that. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Apache: Added +FlushHeader JkOptions. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Added explicit flush when AJP body packet size is zero. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=40856">40856</a>: Fixing case sensitivity bug in URL mapping. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=40793">40793</a>: Documentation: Improvements to Apache HowTo provided by
+ Paul Charles Leddy. (markt)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=40774">40774</a>: Fixing wrong recursion termination. This one restricted the
+ "reference" feature unintentionally to 20 workers. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=40716">40716</a>: Adding "reference" feature to IIS and Netscape. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ Documentation: Corrected SetEnvIf syntax in JK_WORKER_NAME example. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ Documentation: Added forgotten STATE and ACTIVATION notes for load balancer logging in Apache. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Apache: Use instdso.sh instead libtool: libtool does not work on HP-UX for example. (jfclere)
+ </td></tr>
+ </table>
+ </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Changes between 1.2.18 and 1.2.19"><strong>Changes between 1.2.18 and 1.2.19</strong></a></font></td></tr><tr><td><blockquote>
+ <br>
+ <table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Native"><strong>Native</strong></a></font></td></tr><tr><td><blockquote>
+ <table border="0" cellpadding="2" cellspacing="2">
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Docs: Add SetHandler and new env var to Apache config docs. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Apache 1.3: Backport "no-jk" feature. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Apache: Add an environment variable to make SetHandler "jakarta-servlet" more
+ useful. The variable is JK_WORKER_NAME, but can be changed by the
+ new directive JkWorkerIndicator. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ LB: Don't use single worker shortcut, if the single worker is being diabled. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ Status worker: Add short explanation of activation and error states to legend. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ Docs: Add meaning of zero timeout values for various timeouts
+ in workers.properties. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ LB: Cleanup of Mladens forced recovery. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ LB: Do not change lb_value for recovering workers to max, if
+ we are using BUSYNESS method. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ Apache: Since 1.2.14 mod_jk failed to detect client abort. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ Docs: Corrected description of JkEnvVar. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ Solaris: Detect filio.h in configure to make the new connection detection
+ build on solaris (r432825). (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Add feature to force the recovery of workers that are
+ member of loadbalancer if all the members are in error
+ state. This fixes the time gap where 503 was returned
+ caused by recovery_timeout although the backend was
+ ready to handle the requests. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Docs: Seperate deprecated directives in their own table. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Docs: Allow "-" and "_" in worker names. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Allow multiple lines with attributes "balance_workers" and "mount". (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ Make jk_is_some_property match more precisely. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ JkStatus: Make refresh interval changeable. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ JkStatus: Adjust display of recover time wrt. global maintenance. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ LB: Resetting worker state from OK to NA, if worker has been idle
+ too long. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ Avoid compiler warnings concerning the use of lb_*_type arrays.
+ Use functions instead. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Added %R JkRequestLogFormat option for Apache 1 and Apache 2. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Allow changing jvm Route from status manager. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ Do not retun 400 if Tomcat fails in the midle of the post
+ request. Return 500 insted. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ LB: Combine ok/error/recovering/busy runtime states into a single scalar. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ LB: Combine active/disabled/stopped configuration states into a single scalar. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ LB: Add several Apache notes to enable standard logging for load balancer results. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ LB: Reorganisation of the main load balancer service loop. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Implement hierarchical worker configuration via attribute "reference". (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Log deprecated properties. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ IIS: Fix simple_rewrite for the cases where the
+ rewritten url is larger then the original one. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ New JkOption "DisableReuse" to disable connection persistence. (jim)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ LB: Move sessionid retrieval out of get_most_suitable_worker into service. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Code cleanup for all service methods (use TRACE, JK_LOG_NULL_PARAMS, null pointer checks). (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ JKSTATUS: add refresh link. No refresh for updates. Redirect to list view after update. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Add new hook add_log_items into servers. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ APACHE httpd: Rename apache logging notes. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ LB: Rename lock and method constants. Add constants for defaults. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ Default log level should be INFO and not DEBUG.
+ Default log level should be the same for all server types. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ Make rewrite_rule_map and log_level as non mandatory
+ directives for isapi_redirect. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=40107">40107</a>: Rewrite is_socket_connected function.
+ Non blocking socket is not used any more. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Allow building with VS2005 without too many warnings. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ Decide by MMN, which piped log API we should use.
+ mod_jk 1.2.18 broke compilation with Apache 1.3 pre 1.3.28. (rjung)
+ </td></tr>
+ </table>
+ </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Changes between 1.2.17 and 1.2.18"><strong>Changes between 1.2.17 and 1.2.18</strong></a></font></td></tr><tr><td><blockquote>
+ <br>
+ <table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Native"><strong>Native</strong></a></font></td></tr><tr><td><blockquote>
+ <table border="0" cellpadding="2" cellspacing="2">
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ Using socklen_t in getsockopt. Also introducing jk_sock_t. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Allow recovery wait time below 60 seconds (new minimum is 1 second). (mturk)
+ </td></tr>
+ </table>
+ </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Changes between 1.2.16 and JK 1.2.17"><strong>Changes between 1.2.16 and JK 1.2.17</strong></a></font></td></tr><tr><td><blockquote>
+ <br>
+ <table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Native"><strong>Native</strong></a></font></td></tr><tr><td><blockquote>
+ <table border="0" cellpadding="2" cellspacing="2">
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ Fix hanging jk status worker when certain attributes are being updated
+ due to double locking. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Allow JkMount to behave like uriworkermap.properties
+ by parsing pipe symbol as two directive marker. (mturk)
+ </td></tr>
+ </table>
+ </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Changes between 1.2.15 and JK 1.2.16"><strong>Changes between 1.2.15 and JK 1.2.16</strong></a></font></td></tr><tr><td><blockquote>
+ <br>
+ <table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Native"><strong>Native</strong></a></font></td></tr><tr><td><blockquote>
+ <table border="0" cellpadding="2" cellspacing="2">
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Added simple rewrite capability for IIS. Although simple it
+ will fulfill most needs. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Added RECOVER_ABORT_IF_CLIENTERROR recovery_option that closes
+ the connection if client connection is broken during the request. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Renamed cache_timeout directive to connection_pool_timeout. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Added connection_pool_minsize directive. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Deprecate recycle_timeout directive. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Corrected some HTML syntax bugs in output of status worker. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Added the refresh=n parameter to the status worker. It will update the display every n seconds. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Balancer: Add attribute distance to balanced workers to express preferences between workers. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Balancer: Add attribute jvm_route to balanced workers to be able to use the same target in different balancers. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Status: Add lb_mult to status. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Balancer: Make different balancing strategies work in a similar way (use lb_value, use decay during global maintenance, use integer factors for weights. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Balancer: Improve locking. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Balancer: Workers start slower after recovering. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ 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)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Balancer: Move recovery check to global maintenance. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Balancer: Add global maintenance method, that is called in only one process. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Extend our use of autoconf to find a 32Bit and a 64Bit unsigned type and their printf formats. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Logging: piped loggers for JkLogFile and Apache 1.3. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Logging: Add PID to log lines for each log level apart from REQUEST. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Logging: flush buffered logs to keep lines in correct order. Output final newline together with log message. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Reducing shm size. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Only log removing of old worker, when we actually do it. (rjung)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=37469">37469</a>: Fix shared memory close for forked childs.
+ The shared memory will be closed by the parent process. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=37332">37332</a>: Fix potential misuse of buffer length with
+ snprintf functions. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=38859">38859</a>:
+ [<a href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-7197"><b>CVE-2006-7197</b></a>]
+ Protect mod_jk against buggy or malicious
+ AJP servers in the backend. Patch provided by Ruediger Pluem. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=38889">38889</a>: Use worker map sorting depending on the path
+ elements, to comply with Servlet spec. Patch provided by
+ Steve Revilak. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=36138">36138</a>: Added Busyness lb method. Patch provided
+ by Chris Lamprecht. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ Fix pessimistic locking mode. The patch correctly handles the
+ burst load, by syncing the access to the shared memory data. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=38806">38806</a>: Reclycle worker even if it is disabled.
+ This fixes hot-standby workers in error state. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=37167">37167</a>: Allow building with BSD-ish like make. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ ISAPI plugin (isapi_redirect.dll) did not provide correct request data
+ for IIS
+ to include in the IIS log. (markt)
+ </td></tr>
+ </table>
+ </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Changes between 1.2.14 and 1.2.15"><strong>Changes between 1.2.14 and 1.2.15</strong></a></font></td></tr><tr><td><blockquote>
+ <br>
+ <table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Native"><strong>Native</strong></a></font></td></tr><tr><td><blockquote>
+ <table border="0" cellpadding="2" cellspacing="2">
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ Fix AJP13 Cookie2 parsing. Cookie2 was always send as Cookie.
+ Patch provided by Andre Gebers. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=35862">35862</a>: NSAPI plugin attempts to read freed memory and attempts to
+ dereference a null pointer. Patch provided by Brian Kavanagh. (markt)
+ </td></tr>
+ </table>
+ </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Changes between 1.2.13 and 1.2.14"><strong>Changes between 1.2.13 and 1.2.14</strong></a></font></td></tr><tr><td><blockquote>
+ <br>
+ <table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Native"><strong>Native</strong></a></font></td></tr><tr><td><blockquote>
+ <table border="0" cellpadding="2" cellspacing="2">
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ Fix lb for worker mpm's with cachesize set to lower number then
+ ThreadsPerChild is. If retries is set to value larger then 3 sleep for
+ 100 ms on each attempt. This enables to tune the connection cache,
+ and serialize incoming connections instead returning busy if connection
+ count is larger then cachesize. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=36525">36525</a>: Solaris core dump. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=36102">36102</a>: Worker actions do not persist. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=35864">35864</a>: Status worker doesn't list workers.
+ Patch provided by Martin Goldhahn. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=35809">35809</a>: JkMountCopy don't work for Apache 2.0 Patch provided by
+ Christophe Dubach. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=35298">35298</a>: Multiple JK/ISAPI redirectors on a single IIS site are not supported
+ Patch provided by Tim Whittington. (mturk)
+ </td></tr>
+ </table>
+ </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Changes between 1.2.12 and 1.2.13"><strong>Changes between 1.2.12 and 1.2.13</strong></a></font></td></tr><tr><td><blockquote>
+ <br>
+ <table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Native"><strong>Native</strong></a></font></td></tr><tr><td><blockquote>
+ <table border="0" cellpadding="2" cellspacing="2">
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=34397">34397</a>: Emergency was handled as Error. (jfclere)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=34474">34474</a>: // in URL were not handled correctly with Apache-1.3. (jfclere)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ Use 64 bits int for transferred/read bytes.
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Added JkOptions +FlushPackets used to optimize memory
+ usage when sending large data. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Added lock directive for load balancer that allows more acurate
+ load balancing in case of burst load. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Added worker.maintain directive to allow customizing default 10
+ second timeout. On busy servers this value needs to be set on
+ higher value. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ Fix for NetWare compiler to deal with different types between AP13
+ and AP2 SDKs. (fuankg)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Emit much more legible user.dmp crash analysis output for WIN32. (wrowe)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=34558">34558</a>: Fix first failover request. (mturk)
+ </td></tr>
+ </table>
+ </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Changes between 1.2.11 and 1.2.12"><strong>Changes between 1.2.11 and 1.2.12</strong></a></font></td></tr><tr><td><blockquote>
+ <br>
+ <table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Native"><strong>Native</strong></a></font></td></tr><tr><td><blockquote>
+ <table border="0" cellpadding="2" cellspacing="2">
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Added ForwardLocallAddres JkOptions flag for passing local instead remote
+ address. Useful for remote addr valve. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>Fix that worker not used, when stopped flag is true. (pero)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Add loadbalance default worker secret attribute to the documentation (pero)
+ </td></tr>
+ </table>
+ </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Changes between 1.2.10 and 1.2.11"><strong>Changes between 1.2.10 and 1.2.11</strong></a></font></td></tr><tr><td><blockquote>
+ <br>
+ <table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Native"><strong>Native</strong></a></font></td></tr><tr><td><blockquote>
+ <table border="0" cellpadding="2" cellspacing="2">
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>Backport SC_M_JK_STORED from JK2 for passing arbitrary
+ methods instead failing the request. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>Added missing SEARCH and ACL http methods. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Add worker secret attribute to the documentation (pero)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Add a stopped flag to worker configuration. Set flag True and
+ complete traffic to worker is stopped.
+ Also update the Ant JkStatusUpdateTask at Tomcat 5.5.10 release.
+ Only usefull in a replicated session cluster.(pero)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>Added worker maintain function that will maintain all
+ the workers instead just the current one. This enables to recycle
+ the connections on all workers. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>Use shutdown when recycling connections instead hard
+ breaking the socket. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>Add unique directives checking. The directives if
+ unique are now overwritten instead concatenated. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>Allow multiple worker.list directives. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=34577">34577</a>: For IIS log original request instead loging
+ the request for ISAPI extension. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=34558">34558</a>: Make sure the returned status codes are the same
+ for ajp and lb workers. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=34423">34423</a>: Use APR_USE_FLOCK_SERIALIZE for setting log lock
+ on platforms like FreeBSD. Patch provided by Allan Saddi. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=33843">33843</a>: Fix obtaining LDFLAGS that were used for building
+ Apache HTTPD. Patch provided by Beat Kneubuehl. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=34358">34358</a>: Enable load balancer method configuration. (glenn)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=34357">34357</a>: In some situations Apache 2 mod_jk could segfault
+ when the JkAutoAlias directive is used. (glenn)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Add --enable-prefork to the documentation (pero)
+ </td></tr>
+ </table>
+ </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Changes between 1.2.9 and 1.2.10"><strong>Changes between 1.2.9 and 1.2.10</strong></a></font></td></tr><tr><td><blockquote>
+ <br>
+ <table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Native"><strong>Native</strong></a></font></td></tr><tr><td><blockquote>
+ <table border="0" cellpadding="2" cellspacing="2">
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>Set default shared memory to 64K instead 1M. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>Do not mark the worker in error state if headers are
+ larger then AJP13 limit. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ On Series you should use the latest PTF for Apache 2.0
+ (which is now 2.0.52) and ad minima SI17402/SI17061 or cumulative
+ including them. (hgomez)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Change the xml status format to xml attribute syntax (pero)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=33248">33248</a>: Fix builds where apxs defines multiple
+ directories for APR includes. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=32696">32696</a>: Return 404 instead 403 when WEB-INF is requested
+ to comply with Servlet spec. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>Added ANT task for managing jkstatus. (pero)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ If socket_timeout is set, check if socket is alive before
+ sending any request to Tomcat. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Added JkMountFile for Apache web servers. This file can contain
+ uri mappings in the form (/url=worker), and is checked for
+ updates at regular 60 second interval. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Added status worker for managing worker runtime data using
+ web page. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Added load balancer method directive that is used for setting
+ the algorithm used for balancing workers. Method can be either
+ Request (default) or Traffic. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Added shared memory to allow dynamic configuration. Shared memory
+ is needed only for unix platform and web servers having multiple
+ child processes. For Apache web server two new directives has been
+ added (JkShmFile and JkShmSize). (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Added textupdate mode to status worker to handle remote updates
+ from ant tasks.(pero)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=33562">33562</a>: Fix Reply_timeout when recovery_options
+ is larger than 1. Patch provided by Takashi Satou. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=33308">33308</a>: Fix segfaults when ForwardDirectories is enabled
+ with Apache 1.3
+ </td></tr>
+ </table>
+ </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Changes between 1.2.7 and 1.2.8"><strong>Changes between 1.2.7 and 1.2.8</strong></a></font></td></tr><tr><td><blockquote>
+ <br>
+ <table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Native"><strong>Native</strong></a></font></td></tr><tr><td><blockquote>
+ <table border="0" cellpadding="2" cellspacing="2">
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Allow anyone to debug and diagnose stack dumps using windbg or any
+ other debugging tool, and (if they add the .pdb files to their
+ installation) to make sense of dr watson logs.
+ Patch provided by William A. Rowe (wrowe)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ Fix in_addr_t usage by using the real struct ignoring typedef.
+ Patch provided by William A. Rowe (wrowe)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ Fix url rewriting by restoring the in place uri from which the
+ jsessionid was removed. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Make load balancer algorithm thread safe by introducing mutex
+ to the load balancer worker. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ Fix sending error pages for IIS to client by adding Content-Type header
+ using correct api function call. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=32696">32696</a>: Prevent IIS from crushing when web-inf url was requested. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Use default cachesize for servers that support discovering the number of
+ threads per child process. (mturk).
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ Fix Apache content-length header parsing using case insensitive compare. (billbarker)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ Fix parsing AJP headers using case insensitive compare. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ Use infinite socket timeout if socket_timeout is set to zero or less then zero. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Change <b>balanced_workers</b> to <b>balance_workers</b> but keep
+ backward compatibility preserving the old directive. (mturk).
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ Fix ajp initialization for workers with cache_size set to zero. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=32317">32317</a>: Making mod_jk replication aware (Clustering Support).
+ Patch provided by Rainer Jung. (mturk).
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=31132">31132</a>: Core dump when JkLogFile is missing from conf. (mturk)
+ </td></tr>
+ </table>
+ </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Changes between 1.2.6 and 1.2.7"><strong>Changes between 1.2.6 and 1.2.7</strong></a></font></td></tr><tr><td><blockquote>
+ <br>
+ <table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Native"><strong>Native</strong></a></font></td></tr><tr><td><blockquote>
+ <table border="0" cellpadding="2" cellspacing="2">
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Added new property named recover_time that can be used to change the
+ default 60 second recover time. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Added custom retries for worker, so we don't depend on default setting.
+ If set to a number grater then 3, it will sleep for 100ms on retry greater
+ then 3 and then try again. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Added JkWorkerProperty directive that enables omiting workers.properties file.
+ For example: JkWorkerProperty worker.ajp13a.port=8009. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ Check all JSESSIONID cookies for a valid jvmRoute. If you have multiple Tomcats
+ with overlapping domains, then you can get multiple cookies without a defined order.
+ This will route correctly as long as the different domains don't have any
+ Tomcats in common. (billbarker)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Added JkUnMount directive for negative mappings that works as opposite to JkMount directives.
+ It is used for blocking of particular URL or content type. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Added wildchar match uri mappings. One can now use JkMount to
+ map /app/*/servlet/* or /app?/*/*.jsp. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Rewrite the logging by adding Trace options. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="update" class="icon" src="../../images/update.gif"></td><td>
+ Added socket_timeout property that sets the timeout
+ for the socket itself. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ Changed socket_timeout property to recycle_timeout. This better
+ explains what the directive actually does. (mturk)
+ </td></tr>
+ <tr><td valign="top"><img alt="fix" class="icon" src="../../images/fix.gif"></td><td>
+ Changed the load balancer algorithm.
+ The idea behind this new scheduler is the following:
+ lbfactor is <i>how much we expect this worker to work</i>,
+ or <i>the worker's work quota</i>.
+ lbstatus is <i>how urgent this worker has to work to fulfill its quota
+ of work</i>. We distribute each worker's work quota to the worker, and then look
+ which of them needs to work most urgently (biggest lbstatus). This
+ worker is then selected for work, and its lbstatus reduced by the
+ total work quota we distributed to all workers. Thus the sum of all
+ lbstatus does not change.(*)
+ If some workers are disabled, the others will
+ still be scheduled correctly. (mturk)
+ </td></tr>
+ </table>
+ </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="JK 2"><strong>JK 2</strong></a></font></td></tr><tr><td><blockquote>
+<p>JK2 has been put in maintainer mode and no further development will take place.
+The reason for shutting down JK2 development was the lack of developers interest.
+Other reason was lack of users interest in adopting JK2, caused by configuration
+complexity when compared to JK.
+</p>
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright &copy; 1999-2011, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html> \ No newline at end of file
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/docs/miscellaneous/printer/doccontrib.html b/rubbos/app/tomcat-connectors-1.2.32-src/docs/miscellaneous/printer/doccontrib.html
new file mode 100644
index 00000000..6c9c92c1
--- /dev/null
+++ b/rubbos/app/tomcat-connectors-1.2.32-src/docs/miscellaneous/printer/doccontrib.html
@@ -0,0 +1,248 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>The Apache Tomcat Connector - Miscellaneous Documentation - How to Contribute to the Documentation</title><meta name="author" value="Robert Sowders"><meta name="email" value="rsowders@usgs.gov"><link href="../../style.css" type="text/css" rel="stylesheet"></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="4"><!--PAGE HEADER--><tr><td colspan="2"><!--TOMCAT LOGO--><a href="http://tomcat.apache.org/"><img src="../../images/tomcat.gif" align="left" alt="Apache Tomcat" border="0"></a><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="http://www.apache.org/images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><tr><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left"><table border="0" width="100%" cellspacing="4"><tr><td align="left" valign="top"><h1>The Apache Tomcat Connector - Miscellaneous Documentation</h1><h2>How to Contribute to the Documentation</h2></td><td align="right" valign="top" nowrap="true"><img src="../../images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+ This document describes how you can easily contribute to the
+documentation. I'm going to try to make it easy for everyone to help out with
+the documentation of Tomcat, more specifically the documentation for the
+connectors. This is written from a windows user perspective as I believe they
+will most benefit from it. For people using Unix it should be easy for them to
+apply these steps. Just substitute Unix syntax where needed.
+</p>
+<p>
+ The documentation is produced using xml with xsl style sheets. This
+effectivly seperates the content of the documents from the style, so all that
+contributers need to worry about the content. It is much easier to use than
+html.
+</p>
+<p>
+ It's all really quite simple. Here is what you will need:
+<ul>
+<li>
+<b>A recent version of Ant</b>
+</li>
+<li>
+<b>The source code for the connectors from subversion</b>
+</li>
+<li>
+<b>Any ascii text editor</b>
+</li>
+</ul>
+</p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Getting Started Step by Step"><strong>Getting Started Step by Step</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+ After you get these tools they are simple to set up.
+</p>
+ <table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="STEP 1. Get Ant"><strong>STEP 1. Get Ant</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+ Install <a href="http://ant.apache.org/">Ant</a>. The only advice I
+have is to choose a simple installation path. Now set an environment variable
+for ANT_HOME, and then add the location of the Ant/bin directory to your PATH
+variable. Consult your Operating system documentation for information on how
+to do this. When you are finished verify that you can run ant from the command
+line.
+</p>
+<p>
+ Ant is used to build the documentation, among other things, and it must be
+able to see a file called <b>build.xml</b>. This file is located in the
+<b>xdocs</b> directory. In the
+<b>build.xml</b> file there is a target named <b>all</b> that will be used to build
+the docs.
+</p>
+</blockquote></td></tr></table>
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="STEP 2. Get the sources"><strong>STEP 2. Get the sources</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+ Get the sources for
+<a href="http://svn.apache.org/repos/asf/tomcat/jk/trunk/">tomcat-connectors</a>
+from the subversion repository. If you'll
+be editing from a windows platform you will need a windows subversion client. There
+are several available. I like <a href="http://tortoisesvn.tigris.org/">turtoiseSVN</a>.
+Unix users should install the subversion client of their choice,
+if they don't already have one.
+</p>
+<p>
+ You are ready to download the sources now. Change directory to the
+location where you want your repository to be. For simplicity we will call this
+your <b>SVN_HOME</b>. Mine is located in C:\build.
+</p>
+<p>
+ Run the following command to <b>checkout</b> the sources for the first time.
+You should only need to do this once.
+<p class="screen"><div align="left"><table width="80%" border="1" cellspacing="0" cellpadding="2" bgcolor="#000000"><tr><td bgcolor="#000000" align="left"><code class="screen"><nobr> </nobr></code><br><code class="screen"><nobr>C:\build\&gt;svn checkout http://svn.apache.org/repos/asf/tomcat/jk/trunk/
+tomcat-connectors</nobr></code><br><code class="screen"><nobr> </nobr></code><br></td></tr></table></div></p>
+</p>
+<p>
+ You should now be watching all the downloads come in. Now that you have
+the sources on your machine the hard part is over. From now on, to update your
+sources all you have to do is cd into any directory in your repository and run
+the <b>svn update</b> command.
+ <p class="screen"><div align="left"><table width="80%" border="1" cellspacing="0" cellpadding="2" bgcolor="#000000"><tr><td bgcolor="#000000" align="left"><div class="screen"> To update your xdocs directory simply cd into the xdocs directory
+and:</div><code class="screen"><nobr>C:\build\tomcat-connectors\&gt;cd xdocs</nobr></code><br><code class="screen"><nobr>C:\build\tomcat-connectors\xdocs\&gt;svn update</nobr></code><br></td></tr></table></div></p>
+</p>
+</blockquote></td></tr></table>
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="STEP 3. Test your build environment"><strong>STEP 3. Test your build environment</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+ Open a command prompt window and cd to the directory where you downloaded
+the source. Now cd into the xdocs directory so that <b>Ant</b> can see the
+<b>build.xml</b> file. Then from a command prompt, run the following:
+<p class="screen"><div align="left"><table width="80%" border="1" cellspacing="0" cellpadding="2" bgcolor="#000000"><tr><td bgcolor="#000000" align="left"><code class="screen"><nobr> </nobr></code><br><code class="screen"><nobr>C:\build\tomcat-connectors&gt;cd xdocs</nobr></code><br><code class="screen"><nobr>C:\build\tomcat-connectors\xdocs&gt;ant all</nobr></code><br><code class="screen"><nobr> </nobr></code><br></td></tr></table></div></p>
+</p>.
+<p>
+ You should see the ant compiler messages scrolling by rapidly and then stop
+with the following:
+<p class="screen"><div align="left"><table width="80%" border="1" cellspacing="0" cellpadding="2" bgcolor="#000000"><tr><td bgcolor="#000000" align="left"><code class="screen"><nobr>[style] Transforming into C:\build\tomcat-connectors\build\docs\news\printer&gt;</nobr></code><br><code class="screen"><nobr>[style] Processing C:\build\tomcat-connectors\xdocs\news\20041100.xml
+to</nobr></code><br><code class="screen"><nobr>C:\build\tomcat-connectors\build\docs\news/20041100.html</nobr></code><br><code class="screen"><nobr>[style] Loading stylesheet C:\build\tomcat-connectors\xdocs\style.xsl</nobr></code><br><code class="screen"><nobr>[style] Processing C:\build\tomcat-connectors\xdocs\news\20050101.xml
+to</nobr></code><br><code class="screen"><nobr>C:\build\tomcat-connectors\build\docs\news/20050101.html</nobr></code><br><code class="screen"><nobr>[style] Processing C:\build\tomcat-connectors\xdocs\news\20060101.xml
+to</nobr></code><br><code class="screen"><nobr>C:\build\tomcat-connectors\build\docs\news/20060101.html</nobr></code><br><code class="screen"><nobr>[style] Transforming into C:\build\tomcat-connectors\build\docs&gt;</nobr></code><br><code class="screen"><nobr>[style] Processing C:\build\tomcat-connectors\xdocs\index.xml
+to</nobr></code><br><code class="screen"><nobr>C:\build\tomcat-connectors\build\docs\index.html</nobr></code><br><code class="screen"><nobr>[style] Loading stylesheet C:\build\tomcat-connectors\xdocs\style.xsl</nobr></code><br><code class="screen"><nobr> </nobr></code><br><code class="screen"><nobr>BUILD SUCCESSFUL</nobr></code><br><code class="screen"><nobr>Total time: 10 seconds</nobr></code><br><code class="screen"><nobr>C:\build\tomcat-connectors&gt;</nobr></code><br></td></tr></table></div></p>
+</p>
+<p>
+ All the xml files present in the xdocs directory structure were transformed
+to html and copied to the <b>SVN_HOME\tomcat-connectors\build\docs</b>
+directory. Open one of the
+html files in your browser and see how it looks.
+</p>
+</blockquote></td></tr></table>
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="STEP 4. The editing process."><strong>STEP 4. The editing process.</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+ I find it easier to use two windows while doing my updates. One I call my
+<b>build</b> window. I keep this one in the <b>SVN_HOME\tomcat-connectors\xdocs</b>
+directory and I only run two commands in this window:
+<p class="screen"><div align="left"><table width="80%" border="1" cellspacing="0" cellpadding="2" bgcolor="#000000"><tr><td bgcolor="#000000" align="left"><code class="screen"><nobr> </nobr></code><br><div class="screen"> First I run</div><code class="screen"><nobr>ant clean</nobr></code><br><div class="screen"> Then I run</div><code class="screen"><nobr>ant all</nobr></code><br><code class="screen"><nobr> </nobr></code><br></td></tr></table></div></p>
+</p>
+<p>
+ My second window I call my <b>edit</b> window and I keep that one in the
+<b>SVN_HOME\tomcat-connectors\xdocs</b> directory where I'm doing my
+edits, diffs and svn updates.
+</p>
+<p>
+ Before you start editing you should always update your local repository to
+prevent conflicts.
+<p class="screen"><div align="left"><table width="80%" border="1" cellspacing="0" cellpadding="2" bgcolor="#000000"><tr><td bgcolor="#000000" align="left"><div class="screen"> You only need to update the xdocs directory</div><code class="screen"><nobr>C:\build\tomcat-connectors&gt;cd xdocs</nobr></code><br><code class="screen"><nobr>C:\build\tomcat-connectors\xdocs&gt;</nobr></code><br><code class="screen"><nobr>C:\build\tomcat-connectors\xdocs&gt;svn update</nobr></code><br></td></tr></table></div></p>
+</p>
+<p>
+ Now that your repository is up to date you can begin editing. Find
+something in the documentation to edit. When you find something remember the
+name of the file. In your <b>edit</b> window find and edit the xml source file
+with the same name. After you are done return to the <b>build</b> window, and
+in the <b>SVN_HOME\tomcat-connectors\xdocs</b> directory run:
+<p class="screen"><div align="left"><table width="80%" border="1" cellspacing="0" cellpadding="2" bgcolor="#000000"><tr><td bgcolor="#000000" align="left"><code class="screen"><nobr> </nobr></code><br><code class="screen"><nobr>C:\build\tomcat-connectors\xdocs&gt; ant clean</nobr></code><br><code class="screen"><nobr> </nobr></code><br></td></tr></table></div></p>
+</p>
+<p>
+ This will delete all the previous html files and make the area ready for
+updated material. Now to make fresh documents that incorporate your changes
+run:
+<p class="screen"><div align="left"><table width="80%" border="1" cellspacing="0" cellpadding="2" bgcolor="#000000"><tr><td bgcolor="#000000" align="left"><code class="screen"><nobr> </nobr></code><br><code class="screen"><nobr>C:\build\tomcat-connectors\xdocs&gt;ant all</nobr></code><br><code class="screen"><nobr> </nobr></code><br></td></tr></table></div></p>
+</p>
+<p>
+ Use your browser to view the edits you just made, they will be in the
+<b>SVN_HOME\tomcat-connectors\build\docs</b> sub-tree. If it looks
+good and is ready to go,
+all that is left to do is to create a patch and submit it.
+</p>
+</blockquote></td></tr></table>
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="STEP 5. Creating a patch and submitting it."><strong>STEP 5. Creating a patch and submitting it.</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+ From your <b>edit</b> window cd into the directory that contains the xml
+file you are working on, and run the <b>svn update</b> command. For example,
+to produce a diff of the index.xml file and call it patch.txt, you
+would cd into the directory containing the index.xml file and:
+<p class="screen"><div align="left"><table width="80%" border="1" cellspacing="0" cellpadding="2" bgcolor="#000000"><tr><td bgcolor="#000000" align="left"><code class="screen"><nobr>C:\build\tomcat-connectors\xdocs\&gt;svn diff index.xml &gt;
+patch.txt.</nobr></code><br><code class="screen"><nobr> </nobr></code><br></td></tr></table></div></p>
+</p>
+<p>
+ Now that you have your patch you are ready to send it in.
+</p>
+<p>
+ Patches to the documentation are handled just like a bug report. You
+should submit your patches to <a href="http://issues.apache.org/bugzilla/">http://issues.apache.org/bugzilla/</a>
+ and include a good one line subject. If this is your first time to use the
+bug database then you should read <a href="http://issues.apache.org/bugzilla/bugwritinghelp.html">http://issues.apach
+e.org/bugzilla/bugwritinghelp.html.</a> You will need to create a user
+account. At the web site paste your patch into the web form and don't forget
+to describe what it is your patch is for. Sooner or later a someone with
+commit privileges will review your suggestion.
+</p>
+</blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Subversion Basics"><strong>Subversion Basics</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+ After you have checked out the sources the first time it is much easier to
+use subversion. You can cd into any directory of the repository and run <b>svn
+update</b> to get the latest sources for that directory. For editing
+purposes you should always update your repository before you start editing to
+reduce conflicts.
+</p>
+<p>
+ You will need to run <b>svn diff</b> to generate patches for submission.
+Again cd into the directory containing the file you are editing and run <b>svn
+diff name_of_the_file_you_edited &gt; patch.txt</b> to generate a patch for
+submission.
+</p>
+<p>
+ Pay attention to the terminal window during the update.
+</p>
+<p>
+ Lines begining with a <b>A</b> indicate files that have been added.
+</p>
+<p>
+ Lines begining with a <b>D</b> indicate files that have been deleted.
+</p>
+<p>
+ Lines begining with a <b>U</b> mean the local copy was patched to update it
+to the current version in the master repository.
+</p>
+<p>
+ Lines begining with a <b>G</b> mean your local copy is different from the
+master copy, and the changes were successfully merged into your copy.
+</p>
+<p>
+ Lines begining with a <b>C</b> mean there was a conflict in merging the
+changes and you need to review the file and merge the changes manually. Search
+for &gt;&gt;&gt;&gt; and merge the changes.
+</p>
+<p>
+ Lines begining with a <b>?</b> indicate files that reside on your local
+system which are not part of the repository. You will normally see this when
+you are creating new files for submission.
+</p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Updating Web site"><strong>Updating Web site</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+ Only Committers are able to update the web site (http://tomcat.apache.org/connectors-doc/).
+ To do it:
+ <ul>
+ <li>Connect to people.apache.org.</li>
+ <li>umask 002</li>
+ <li>Copy the changed files to /www/tomcat.apache.org/connectors-doc/.</li>
+ <li>or use ant from a checkout tomcat/jk/trunk/xdocs repository:<br>
+ ant -Dbuild.dir=/www/tomcat.apache.org -Ddist.name=connectors-doc
+ </li>
+ <li>The changes need around 4 hours to be synced to tomcat.apache.org.</li>
+ </ul>
+</p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Guides and Resources"><strong>Guides and Resources</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+ A little help to get you started if you need it
+</p>
+<ul>
+<li>
+<a href="http://www.xml.org/xml/resources_focus_beginnerguide.shtml">XML
+Beginner's Guide</a>
+</li>
+<li>
+<a href="http://issues.apache.org/bugzilla/">Bugzilla</a>
+</li>
+<li>
+<a href="http://issues.apache.org/bugwritinghelp.html">Bugzilla Bug
+Writing Guide</a>
+</li>
+<li>
+<a href="http://ant.apache.org/">Ant</a>
+</li>
+<li>
+<a href="http://subversion.tigris.org/">Subversion Home</a>
+</li>
+<li>
+<a href="http://svn.apache.org/repos/asf/tomcat/jk/trunk/xdocs/">JK Docs repository</a>
+</li>
+</ul>
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright &copy; 1999-2011, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html> \ No newline at end of file
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/docs/miscellaneous/printer/faq.html b/rubbos/app/tomcat-connectors-1.2.32-src/docs/miscellaneous/printer/faq.html
new file mode 100644
index 00000000..8daeac64
--- /dev/null
+++ b/rubbos/app/tomcat-connectors-1.2.32-src/docs/miscellaneous/printer/faq.html
@@ -0,0 +1,280 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>The Apache Tomcat Connector - Miscellaneous Documentation - FAQ</title><meta name="author" value="Henri Gomez"><meta name="email" value="hgomez@apache.org"><link href="../../style.css" type="text/css" rel="stylesheet"></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="4"><!--PAGE HEADER--><tr><td colspan="2"><!--TOMCAT LOGO--><a href="http://tomcat.apache.org/"><img src="../../images/tomcat.gif" align="left" alt="Apache Tomcat" border="0"></a><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="http://www.apache.org/images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><tr><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left"><table border="0" width="100%" cellspacing="4"><tr><td align="left" valign="top"><h1>The Apache Tomcat Connector - Miscellaneous Documentation</h1><h2>FAQ</h2></td><td align="right" valign="top" nowrap="true"><img src="../../images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="General"><strong>General</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+General Informations and FAQ about JK
+</p>
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Where can I get help/support for JK ?"><strong>Where can I get help/support for JK ?</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+The primary mechanism for support is through the JK
+documentation included in the doc directory.
+Documentation is also available on the Apache Tomcat web site devoted to the
+<a href="http://tomcat.apache.org/connectors-doc/">
+Apache Tomcat Connectors Project</a>
+For additional help, the best resource is the Tomcat Users Discussion list.
+You should start by searching
+<a href="http://mail-archives.apache.org/mod_mbox/tomcat-users/">
+the mail list archive</a>
+before you post questions to the list.
+If you are unable to locate the answer to your question in the archive,
+you can post questions about JK to the user list for assistance.
+Make sure that you include the version of your Webserver,
+that you are using as well as the platform you are running on
+and go
+<a href="http://tomcat.apache.org/lists.html">
+here</a>
+to determine how to subscribe to tomcat mailing list.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="I can't find JK anywhere. Where is it?"><strong>I can't find JK anywhere. Where is it?</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+Now that JK moved to the <b>tomcat-connectors</b> repository,
+the source and the binaries for JK can be downloaded from a mirror at the
+<a href="http://tomcat.apache.org/download-connectors.cgi">
+Tomcat Connectors (mod_jk, mod_jk2) Downloads</a> page.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="What's the difference between JK and mod_jk ?"><strong>What's the difference between JK and mod_jk ?</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+<b>JK</b> is a project covering web-servers to Tomcat connectors,
+whereas <b>mod_jk</b> is the <a href="../../webserver_howto/apache.html">Apache module</a> developed in JK.
+</p>
+
+<p>
+<a href="../../webserver_howto/iis.html">IIS webserver</a>support is implemented on JK, using a redirector
+called <b>isapi redirector</b>.
+</p>
+
+<p>
+<a href="../../webserver_howto/nes.html">Netscape/SunONE/Sun webserver</a>webserver support is implemented on JK, using a redirector
+called <b>nsapi redirector</b>.
+</p>
+
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Where can I get more information ?"><strong>Where can I get more information ?</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+For <b>JK 1.2.x</b>, you should read :
+</p>
+
+<ul>
+
+<li>
+<a href="../../generic_howto/quick.html">For the impatient</a>
+</li>
+
+<li>
+<a href="../../webserver_howto/apache.html">Apache and JK</a>
+</li>
+
+<li>
+<a href="../../webserver_howto/iis.html">IIS and JK</a>
+</li>
+
+<li>
+<a href="../../webserver_howto/nes.html">Netscape/SunONE/Sun and JK</a>
+</li>
+
+<li>
+<a href="../../generic_howto/workers.html">Workers configuration</a>
+</li>
+</ul>
+
+<p>
+For more detailed information, have a look at the Reference Guide.
+You could also try searching the mailing list archives for "JK" or look at the source.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Which protocol should I use? Ajp12 or Ajp13?"><strong>Which protocol should I use? Ajp12 or Ajp13?</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+<a href="../../ajp/ajpv13a.html">Ajp13</a> is a newer protocol, it's faster, and it works better with SSL.
+You almost certainly want to use it now that <strong>ajp12 is deprecated</strong>.
+</p>
+<p>
+Also ajp13 is supported by all Apache Tomcat including 3.2.x , 3.3.x, 4.0.x, 4.1.x, 5.0.x, 5.5.x
+and the new tomcat 6.
+</p>
+
+<p>
+Others Servlet engines like <b>jetty</b> have support for Ajp13.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="I've got a firewall between my web server and Tomcat which drops ajp13 connections after some time"><strong>I've got a firewall between my web server and Tomcat which drops ajp13 connections after some time</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+Ajp13 uses persistant connections where the traffic could be null if there is no request to be sent to Tomcat.
+Firewalls use to drop inactive connections and will make your web server and Tomcat think the connection is valid.
+</p>
+<p>
+Starting with JK 1.2.0, a <b>socket_keepalive</b> property as been added to ajp13 settings, and you should take a look at
+it in <a href="../../generic_howto/workers.html">Workers HowTo</a> and
+<a href="../../reference/workers.html">workers.properties reference</a>.
+If nothing else helps, you can try <b>JkOptions +DisableReuse</b>, but this will have strong performance implications.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Under heavy load, I've got many threads in Tomcat even if my Apache Web Server handles much of the load"><strong>Under heavy load, I've got many threads in Tomcat even if my Apache Web Server handles much of the load</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+Under heavy load, Apache Web Server creates many children to handle the load,
+which will in turn create many connections
+to Tomcat to forward the requests they should handle.
+Apache Web Server will normally kill the children/threads when the load decreases.
+But if the load is still there and even if only Apache handles the requests,
+ie static contents, the children are kept and with them all the ajp13 connections,
+even if they are no more used.
+</p>
+<p>
+To close connections after some time of inactivity you can use <b>connection_pool_timeout</b>,
+for more informations refer to <a href="../../reference/workers.html">workers.properties reference</a>.
+</p>
+</blockquote></td></tr></table>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Apache"><strong>Apache</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+Informations and FAQ about mod_jk and Apache Web Servers.
+</p>
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Whenever I restart Tomcat, Apache locks up!"><strong>Whenever I restart Tomcat, Apache locks up!</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+The Ajp13 protocol keeps an open socket between Tomcat and Apache.
+Release of mod_jk present in J-T-C handles the network failure.
+But with very ancient releases of mod_jk, you may have to restart Apache as well.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Why do there exist two files mod_jk.so (-eapi ad -noeapi) in download directories for Apache 1.3?"><strong>Why do there exist two files mod_jk.so (-eapi ad -noeapi) in download directories for Apache 1.3?</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+Many versions of Apache use a modified API, known at Extended API, developed for use with the
+<a href="http://www.modssl.org">mod_ssl module</a>. Starting with Apache 2.0 there is no more difference.
+</p>
+
+<p>
+For example, Apache 1.3 present in certains recent Linux distributions include the
+<b>mod_ssl</b> module.
+</p>
+
+<p>
+So if you got such 'Extended Apache', you need to use <b>mod_jk.so-eapi</b>.
+</p>
+
+<p>
+You should use <b>mod_jk.so-noeapi</b> only for 'Standard Apache' (ie without mod_ssl).
+</p>
+
+<p>
+It's wise to avoid using EAPI modules on STD API Apache or to use standard API modules on EAPI Apache.
+Allways be sure to have the <b>mod_jk.so</b> witch match your version of Apache
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="What's that message about 'garbled DSO ?'"><strong>What's that message about 'garbled DSO ?'</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+It's related to Apache EAPI, the message <b class="code">'mod_jk.so is garbled - perhaps this is not an Apache module DSO ?'</b>
+just told you, that your're trying to install a mod_jk.so DSO module that was compiled on an Apache using EAPI,
+like apache-mod_ssl or apache from Redhat distro 6.2/7.0 but your system use the standard apache with normal API.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="And the message about 'module might crash under EAPI!"><strong>And the message about 'module might crash under EAPI!</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+Also related to EAPI, the message <b class="code">'[warn] Loaded DSO /usr/lib/apache/mod_jk.so uses plain Apache 1.3 API,
+this module might crash under EAPI! (please recompile it with -DEAPI)'</b>, the mod_jk.so was compiled under normal
+Apache with standard API and you try to install the module on an Apache using EAPI.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="APXS is getting an error during the build of mod_jk, like rc=0 or rc=255. I tried all of the steps in the build section, what do I do now ?"><strong>APXS is getting an error during the build of mod_jk, like rc=0 or rc=255. I tried all of the steps in the build section, what do I do now ?</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+APXS is a Perl script that is created when you build the Apache web server from source.
+Chances are that if you are getting these errors and you obtained Apache as a binary distribution,
+that APXS is not configured correctly for your system.
+Your best bet is to get the Apache source from http://httpd.apache.org and build it yourself.
+Use the following for a basic build (read the Apache docs for other options):
+<p class="screen"><div align="left"><table width="80%" border="1" cellspacing="0" cellpadding="2" bgcolor="#000000"><tr><td bgcolor="#000000" align="left"><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">cd /usr/local/src</b></nobr></code><br><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">gzip -dc apache_1.3.19.tar.gz|tar xvf -</b></nobr></code><br><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">cd apache_1.3.19</b></nobr></code><br><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">./configure --prefix=/usr/local/apache \</b></nobr></code><br><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen"> --enable-module=most \</b></nobr></code><br><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen"> --enable-shared=max</b></nobr></code><br><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">make</b></nobr></code><br><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">make install</b></nobr></code><br></td></tr></table></div></p>
+</p>
+<p>
+Note: The above steps assume that you downloaded the Apache source and placed it in your /usr/local/src directory.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Apache 2.0 complains about incorrect module version"><strong>Apache 2.0 complains about incorrect module version</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+Since Apache 2.0 API still change often, the Apache 2.0 teams decide to put in headers of compiled modules the
+Apache 2.0 version used to compile the module. This check is called Magic Module Number bump.
+</p>
+<p>
+At start time Apache 2.0 check that version in modules headers and stop if it detect that a module was compiled
+for another Apache 2.0 version. As such you should allways use modules compiled for the same Apache 2.0 version.
+This check may be removed if the future.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Does it work for Apache 2.2?"><strong>Does it work for Apache 2.2?</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+mod_jk works well with Apache 2.2. You need a binary module compiled for version 2.2 of the Apache web server.
+A binary compiled for version 2.0 will not work.
+</p>
+<p>
+Important parts of the functionality of mod_jk have been reimplemented as Apache httpd modules mod_proxy_ajp
+and mod_proxy_balancer. These are part of the standard distributoin of Apache 2.2. The new modules do not contain
+all features of mod_jk, but you get them automatically with every Apache 2.2.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="JNI doesn't work with Apache 1.3"><strong>JNI doesn't work with Apache 1.3</strong></a></font></td></tr><tr><td><blockquote>
+<p><font color="#ff0000">JNI workers have been deprecated. They will likely not work. Do not use them.</font></p>
+<p>
+JNI support requires a multi-threaded environment which is not the general case for Apache 1.3.
+You should verify if Apache 1.3 has been build with thread support and if not you could add the
+the pthreads library to your <b>httpd.conf</b> file.
+</p>
+
+<div class="example"><pre>
+ # Add pthread to Apache in httpd.conf
+ LoadModule "/usr/lib/libpthreads.so"
+</pre></div>
+
+<p>
+Also keep in mind that JNI is suited for multi-threaded servers and you should consider upgrading
+to Apache 2.x to support JNI.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="JNI report that JVM couldn't be started under Linux"><strong>JNI report that JVM couldn't be started under Linux</strong></a></font></td></tr><tr><td><blockquote>
+<p><font color="#ff0000">JNI workers have been deprecated. They will likely not work. Do not use them.</font></p>
+<p>
+Under Linux, you should set some environment variables BEFORE launching your Apache server :
+</p>
+
+<p class="screen"><div align="left"><table width="80%" border="1" cellspacing="0" cellpadding="2" bgcolor="#000000"><tr><td bgcolor="#000000" align="left"><code class="screen"><nobr>export LD_LIBRARY_PATH=$jre/bin:$jre/bin/classic:$LD_LIBRARY_PATH</nobr></code><br></td></tr></table></div></p>
+
+<p>
+Also some Linux distributions have enabled a GLIBC feature called 'floating stacks' which may not works with kernel
+less than 2.4.10 on SMP machines. You should disable floating stacks by exporting an environment variable :
+</p>
+
+<p class="screen"><div align="left"><table width="80%" border="1" cellspacing="0" cellpadding="2" bgcolor="#000000"><tr><td bgcolor="#000000" align="left"><code class="screen"><nobr>export LD_ASSUME_KERNEL=2.2.5</nobr></code><br></td></tr></table></div></p>
+
+<p>
+You could have to update your service scripts, ie <b>/etc/rc.d/init.d/httpd</b>, to set these env vars
+before your httpd server starts.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Mixed errors when building via configure"><strong>Mixed errors when building via configure</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+configure assume you have some GNU tools already installed and configured for your system, and ad minima <b>libtool</b>.
+</p>
+<p>
+Also some systems may have mixed cc and gcc setup which may make you puzzled when trying to link an Apache built with native
+c compiler with a jk/jk2 build with gcc.
+</p>
+<p>
+In case the make processing doesn't work as expected, you should use a GNU make <b>gmake</b>.
+</p>
+</blockquote></td></tr></table>
+
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright &copy; 1999-2011, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html> \ No newline at end of file
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/docs/miscellaneous/printer/jkstatustasks.html b/rubbos/app/tomcat-connectors-1.2.32-src/docs/miscellaneous/printer/jkstatustasks.html
new file mode 100644
index 00000000..ed0d0cfa
--- /dev/null
+++ b/rubbos/app/tomcat-connectors-1.2.32-src/docs/miscellaneous/printer/jkstatustasks.html
@@ -0,0 +1,183 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>The Apache Tomcat Connector - Miscellaneous Documentation - Status Worker Ant Tasks</title><meta name="author" value="Peter Rossbach"><meta name="email" value=""><link href="../../style.css" type="text/css" rel="stylesheet"></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="4"><!--PAGE HEADER--><tr><td colspan="2"><!--TOMCAT LOGO--><a href="http://tomcat.apache.org/"><img src="../../images/tomcat.gif" align="left" alt="Apache Tomcat" border="0"></a><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="http://www.apache.org/images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><tr><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left"><table border="0" width="100%" cellspacing="4"><tr><td align="left" valign="top"><h1>The Apache Tomcat Connector - Miscellaneous Documentation</h1><h2>Status Worker Ant Tasks</h2></td><td align="right" valign="top" nowrap="true"><img src="../../images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
+<p>Since version 1.2.19 the JK release contains additional ant tasks.
+They can be used to manage the JK web server plugins via the special status worker.
+</p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Manage JK with remote Ant Tasks"><strong>Manage JK with remote Ant Tasks</strong></a></font></td></tr><tr><td><blockquote>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Simple antlib integration"><strong>Simple antlib integration</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+<div class="example"><pre>
+&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+
+&lt;project name="modjk-status"
+ xmlns:jk="urn:org-apache-jk-status"
+ default="status" basedir="."&gt;
+
+ &lt;property name="profile" value=""/&gt;
+ &lt;property file="jkstatus${profile}.properties"/&gt;
+ &lt;property file="jkstatus.properties.default"/&gt;
+
+ &lt;path id="jkstatus.classpath"&gt;
+ &lt;fileset dir="${catalina.home}/bin"&gt;
+ &lt;include name="commons-logging-api-*.jar"/&gt;
+ &lt;/fileset&gt;
+ &lt;pathelement location="${catalina.home}/server/lib/catalina-ant.jar"/&gt;
+ &lt;pathelement location="../dist/tomcat-jkstatus-ant.jar"/&gt;
+ &lt;pathelement location="${catalina.home}/server/lib/tomcat-util.jar"/&gt;
+ &lt;/path&gt;
+
+ &lt;typedef resource="org/apache/jk/status/antlib.xml"
+ uri="urn:org-apache-jk-status" classpathref="jkstatus.classpath"/&gt;
+
+ &lt;target name="status" &gt;
+ &lt;jk:status url="${jkstatus.url}"
+ username="${jkstatus.username}"
+ password="${jkstatus.password}"
+ resultproperty="worker"
+ echo="off"
+ failOnError="off"/&gt;
+ &lt;echoproperties prefix="worker" /&gt;
+ &lt;/target&gt;
+&lt;/project&gt;
+</pre></div>
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Test Result"><strong>Test Result</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+<div class="example"><pre>
+[echoproperties] #Ant properties
+[echoproperties] #Sun Dec 10 20:40:21 CET 2006
+[echoproperties] worker.node01.lbmult=1
+[echoproperties] worker.loadbalancer.lock=Optimistic
+[echoproperties] worker.node02.transferred=0
+[echoproperties] worker.loadbalancer.sticky_session=false
+[echoproperties] worker.node01.distance=0
+[echoproperties] worker.node01.client_errors=0
+[echoproperties] worker.node02.lbmult=1
+[echoproperties] worker.node01.port=7309
+[echoproperties] worker.node01.elected=0
+[echoproperties] worker.loadbalancer.good=2
+[echoproperties] worker.loadbalancer.method=Sessions
+[echoproperties] worker.server.port=2090
+[echoproperties] worker.loadbalancer.map.2.type=Wildchar
+[echoproperties] worker.node02.route=node02
+[echoproperties] worker.node01.route=node01
+[echoproperties] worker.node01.lbvalue=0
+[echoproperties] worker.node01.lbfactor=1
+[echoproperties] worker.node01.max_busy=0
+[echoproperties] worker.node01.busy=0
+[echoproperties] worker.node01.redirect=
+[echoproperties] worker.node02.distance=0
+[echoproperties] worker.loadbalancer.name=loadbalancer
+[echoproperties] worker.loadbalancer.sticky_session_force=false
+[echoproperties] worker.node02.state=N/A
+[echoproperties] worker.node01.state=N/A
+[echoproperties] worker.node01.transferred=0
+[echoproperties] worker.loadbalancer.map.length=2
+[echoproperties] worker.node01.type=ajp13
+[echoproperties] worker.node01.address=127.0.0.1\:7309
+[echoproperties] worker.result.type=OK
+[echoproperties] worker.loadbalancer.member_count=2
+[echoproperties] worker.loadbalancer.map_count=2
+[echoproperties] worker.loadbalancer.mtime_to_maintenance_min=12
+[echoproperties] worker.loadbalancer.mtime_to_maintenance_max=75
+[echoproperties] worker.node02.lbfactor=1
+[echoproperties] worker.node02.max_busy=0
+[echoproperties] worker.jk_version=mod_jk/1.2.21-dev
+[echoproperties] worker.loadbalancer.bad=0
+[echoproperties] worker.node02.redirect=
+[echoproperties] worker.node01.host=localhost
+[echoproperties] worker.node02.activation=ACT
+[echoproperties] worker.loadbalancer.map.1.source=JkMount
+[echoproperties] worker.loadbalancer.retries=2
+[echoproperties] worker.node02.elected=0
+[echoproperties] worker.loadbalancer.map.2.source=JkMount
+[echoproperties] worker.node02.port=7409
+[echoproperties] worker.loadbalancer.length=2
+[echoproperties] worker.node02.lbvalue=0
+[echoproperties] worker.loadbalancer.degraded=0
+[echoproperties] worker.loadbalancer.map.1.type=Wildchar
+[echoproperties] worker.loadbalancer.map.2.uri=/myapps*
+[echoproperties] worker.node02.client_errors=0
+[echoproperties] worker.length=1
+[echoproperties] worker.node01.domain=d20
+[echoproperties] worker.loadbalancer.recover_time=60
+[echoproperties] worker.server.name=localhost
+[echoproperties] worker.node02.domain=
+[echoproperties] worker.result.message=Action finished
+[echoproperties] worker.node02.busy=0
+[echoproperties] worker.node01.readed=0
+[echoproperties] worker.node01.errors=0
+[echoproperties] worker.node02.address=127.0.0.1\:7409
+[echoproperties] worker.node02.readed=0
+[echoproperties] worker.loadbalancer.busy=0
+[echoproperties] worker.web_server=Apache/2.0.59 (Unix) mod_jk/1.2.21-dev
+[echoproperties] worker.node02.errors=0
+[echoproperties] worker.node02.type=ajp13
+[echoproperties] worker.loadbalancer.map.1.uri=/ClusterTest*
+[echoproperties] worker.node01.activation=ACT
+[echoproperties] worker.loadbalancer.max_busy=0
+[echoproperties] worker.loadbalancer.type=lb
+[echoproperties] worker.node02.host=localhost
+</pre></div>
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Update Load Balancer"><strong>Update Load Balancer</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+<div class="example"><pre>
+ &lt;target name="updatelb" &gt;
+ &lt;jk:updateloadbalancer url="${jkstatus.url}"
+ username="${jkstatus.username}"
+ password="${jkstatus.password}"
+ loadbalancer="loadbalancer"
+ method="Busyness"
+ retries="2"
+ recoverWaitTime="60"
+ lock="Optimistic"
+ forceStickySession="false"
+ stickySession="false"/&gt;
+ &lt;/target&gt;
+</pre></div>
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Update Worker"><strong>Update Worker</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+<div class="example"><pre>
+ &lt;target name="updatew" &gt;
+ &lt;jk:updateworker url="${jkstatus.url}"
+ username="${jkstatus.username}"
+ password="${jkstatus.password}"
+ loadbalancer="loadbalancer"
+ worker="node01"
+ lbfactor="2"
+ activation="Active"
+ redirect=""
+ domain=""
+ route="node01"
+ distance="0"/&gt;
+ &lt;/target&gt;
+</pre></div>
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Reset Worker"><strong>Reset Worker</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+<div class="example"><pre>
+ &lt;target name="reset" &gt;
+ &lt;jk:reset url="${jkstatus.url}"
+ username="${jkstatus.username}"
+ password="${jkstatus.password}"
+ loadbalancer="loadbalancer"
+ worker="node01"
+ /&gt;
+ &lt;/target&gt;
+</pre></div>
+</p>
+</blockquote></td></tr></table>
+
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright &copy; 1999-2011, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html> \ No newline at end of file
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/docs/miscellaneous/printer/reporttools.html b/rubbos/app/tomcat-connectors-1.2.32-src/docs/miscellaneous/printer/reporttools.html
new file mode 100644
index 00000000..9e265bba
--- /dev/null
+++ b/rubbos/app/tomcat-connectors-1.2.32-src/docs/miscellaneous/printer/reporttools.html
@@ -0,0 +1,61 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>The Apache Tomcat Connector - Miscellaneous Documentation - Reporting Tools</title><meta name="author" value="Glenn Nielsen"><meta name="email" value=""><link href="../../style.css" type="text/css" rel="stylesheet"></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="4"><!--PAGE HEADER--><tr><td colspan="2"><!--TOMCAT LOGO--><a href="http://tomcat.apache.org/"><img src="../../images/tomcat.gif" align="left" alt="Apache Tomcat" border="0"></a><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="http://www.apache.org/images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><tr><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left"><table border="0" width="100%" cellspacing="4"><tr><td align="left" valign="top"><h1>The Apache Tomcat Connector - Miscellaneous Documentation</h1><h2>Reporting Tools</h2></td><td align="right" valign="top" nowrap="true"><img src="../../images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Reporting Tools"><strong>Reporting Tools</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+The mod_jk source distribution contains two perl scripts in the
+tools/reports directory which can be used to analyze the mod_jk
+logs, save statistical data, and generate report graphs.
+</p>
+
+<p><b class="code">tomcat_trend.pl log_dir archive_dir</b></p>
+<p>
+Script for analyzing mod_jk.log data when logging tomcat request data using
+the <b class="code">JkRequestLogFormat</b> Apache mod_jk configuration.
+Generates statistics for request latency and errors. Archives the generated
+data to files for later use in long term trend graphs and reports.
+</p>
+
+<p><b class="code">tomcat_reports.pl archive_dir reports_dir</b></p>
+<p>
+Script for generating reports and graphs using statistical data generated
+by the <b class="code">tomcat_trend.pl</b> script.
+
+The following graphs are created:
+<ul>
+ <li>tomcat_request.png - Long term trend graph of total number of tomcat
+ requests handled.</li>
+ <li>tomcat_median.png - Long term overall trend graph of tomcat request
+ latency median.</li>
+ <li>tomcat_deviation.png - Long term overall trend graph of tomcat request
+ mean and standard deviation.</li>
+ <li>tomcat_error.png - Long term trend graph of requests rejected by tomcat.
+ Shows requests rejected when tomcat has no request processors available.
+ Can be an indicator that tomcat is overloaded or having other scaling
+ problems.</li>
+ <li>tomcat_client.png - Long term trend graph of requests forward to tomcat
+ which were aborted by the remote client (browser). You will normally see
+ some aborted requests. High numbers of these can be an indicator that
+ tomcat is overloaded or there are requests which have very high latency.</li>
+</ul>
+</p>
+
+<p>
+A great deal of statistical data is generated but at this time
+only long term trend graphs are being created and no reports.
+This is only a start. Many more graphs and reports could be
+generated from the data. Please consider contributing back any
+new reports or graphs you create. Thanks.
+</p>
+
+<p>
+These perl scripts depend upon the following perl modules and libraries:
+<ul>
+ <li>GD 1.8.x graphics library <a href="http://www.boutell.com/gd/">
+ http://www.boutell.com/gd/</a></li>
+ <li>GD 1.4.x perl module</li>
+ <li>GD Graph perl module</li>
+ <li>GD TextUtil perl module</li>
+ <li>StatisticsDescriptive perl module</li>
+</ul>
+</p>
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright &copy; 1999-2011, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html> \ No newline at end of file
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/docs/miscellaneous/reporttools.html b/rubbos/app/tomcat-connectors-1.2.32-src/docs/miscellaneous/reporttools.html
new file mode 100644
index 00000000..36ac4b6d
--- /dev/null
+++ b/rubbos/app/tomcat-connectors-1.2.32-src/docs/miscellaneous/reporttools.html
@@ -0,0 +1,62 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>The Apache Tomcat Connector - Miscellaneous Documentation - Reporting Tools</title><meta name="author" value="Glenn Nielsen"><meta name="email" value=""><link href="../style.css" type="text/css" rel="stylesheet"></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="4"><!--PAGE HEADER--><tr><td colspan="2"><!--TOMCAT LOGO--><a href="http://tomcat.apache.org/"><img src="../images/tomcat.gif" align="left" alt="Apache Tomcat" border="0"></a><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="http://www.apache.org/images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><tr><!--LEFT SIDE NAVIGATION--><td width="20%" valign="top" nowrap="true"><p><strong>Links</strong></p><ul><li><a href="../index.html">Docs Home</a></li></ul><p><strong>Reference Guide</strong></p><ul><li><a href="../reference/workers.html">workers.properties</a></li><li><a href="../reference/uriworkermap.html">uriworkermap.properties</a></li><li><a href="../reference/status.html">Status Worker</a></li><li><a href="../reference/apache.html">Apache HTTP Server</a></li><li><a href="../reference/iis.html">IIS</a></li></ul><p><strong>Generic HowTo</strong></p><ul><li><a href="../generic_howto/quick.html">For the impatient</a></li><li><a href="../generic_howto/workers.html">All about workers</a></li><li><a href="../generic_howto/timeouts.html">Timeouts</a></li><li><a href="../generic_howto/loadbalancers.html">Load Balancing</a></li><li><a href="../generic_howto/proxy.html">Reverse Proxy</a></li></ul><p><strong>Webserver HowTo</strong></p><ul><li><a href="../webserver_howto/apache.html">Apache HTTP Server</a></li><li><a href="../webserver_howto/iis.html">IIS</a></li><li><a href="../webserver_howto/nes.html">Netscape/SunOne/Sun</a></li></ul><p><strong>AJP Protocol Reference</strong></p><ul><li><a href="../ajp/ajpv13a.html">AJPv13</a></li><li><a href="../ajp/ajpv13ext.html">AJPv13 Extension Proposal</a></li></ul><p><strong>Miscellaneous Documentation</strong></p><ul><li><a href="../miscellaneous/faq.html">Frequently asked questions</a></li><li><a href="../miscellaneous/changelog.html">Changelog</a></li><li><a href="http://issues.apache.org/bugzilla/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Tomcat+Connectors&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=">Current Tomcat Connectors bugs</a></li><li><a href="../miscellaneous/doccontrib.html">Contribute documentation</a></li><li><a href="../miscellaneous/jkstatustasks.html">JK Status Ant Tasks</a></li><li><a href="../miscellaneous/reporttools.html">Reporting Tools</a></li><li><a href="http://tomcat.apache.org/connectors-doc-archive/jk2/index.html">Old JK/JK2 documentation</a></li></ul><p><strong>News</strong></p><ul><li><a href="../news/20110701.html">2011</a></li><li><a href="../news/20100101.html">2010</a></li><li><a href="../news/20090301.html">2009</a></li><li><a href="../news/20081001.html">2008</a></li><li><a href="../news/20070301.html">2007</a></li><li><a href="../news/20060101.html">2006</a></li><li><a href="../news/20050101.html">2005</a></li><li><a href="../news/20041100.html">2004</a></li></ul></td><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left"><table border="0" width="100%" cellspacing="4"><tr><td align="left" valign="top"><h1>The Apache Tomcat Connector - Miscellaneous Documentation</h1><h2>Reporting Tools</h2></td><td align="right" valign="top" nowrap="true"><small><a href="printer/reporttools.html"><img src="../images/printer.gif" border="0" alt="Printer Friendly Version"><br>print-friendly<br>version
+ </a></small></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Reporting Tools"><strong>Reporting Tools</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+The mod_jk source distribution contains two perl scripts in the
+tools/reports directory which can be used to analyze the mod_jk
+logs, save statistical data, and generate report graphs.
+</p>
+
+<p><b class="code">tomcat_trend.pl log_dir archive_dir</b></p>
+<p>
+Script for analyzing mod_jk.log data when logging tomcat request data using
+the <b class="code">JkRequestLogFormat</b> Apache mod_jk configuration.
+Generates statistics for request latency and errors. Archives the generated
+data to files for later use in long term trend graphs and reports.
+</p>
+
+<p><b class="code">tomcat_reports.pl archive_dir reports_dir</b></p>
+<p>
+Script for generating reports and graphs using statistical data generated
+by the <b class="code">tomcat_trend.pl</b> script.
+
+The following graphs are created:
+<ul>
+ <li>tomcat_request.png - Long term trend graph of total number of tomcat
+ requests handled.</li>
+ <li>tomcat_median.png - Long term overall trend graph of tomcat request
+ latency median.</li>
+ <li>tomcat_deviation.png - Long term overall trend graph of tomcat request
+ mean and standard deviation.</li>
+ <li>tomcat_error.png - Long term trend graph of requests rejected by tomcat.
+ Shows requests rejected when tomcat has no request processors available.
+ Can be an indicator that tomcat is overloaded or having other scaling
+ problems.</li>
+ <li>tomcat_client.png - Long term trend graph of requests forward to tomcat
+ which were aborted by the remote client (browser). You will normally see
+ some aborted requests. High numbers of these can be an indicator that
+ tomcat is overloaded or there are requests which have very high latency.</li>
+</ul>
+</p>
+
+<p>
+A great deal of statistical data is generated but at this time
+only long term trend graphs are being created and no reports.
+This is only a start. Many more graphs and reports could be
+generated from the data. Please consider contributing back any
+new reports or graphs you create. Thanks.
+</p>
+
+<p>
+These perl scripts depend upon the following perl modules and libraries:
+<ul>
+ <li>GD 1.8.x graphics library <a href="http://www.boutell.com/gd/">
+ http://www.boutell.com/gd/</a></li>
+ <li>GD 1.4.x perl module</li>
+ <li>GD Graph perl module</li>
+ <li>GD TextUtil perl module</li>
+ <li>StatisticsDescriptive perl module</li>
+</ul>
+</p>
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright &copy; 1999-2011, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html> \ No newline at end of file
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/docs/news/20041100.html b/rubbos/app/tomcat-connectors-1.2.32-src/docs/news/20041100.html
new file mode 100644
index 00000000..c292e775
--- /dev/null
+++ b/rubbos/app/tomcat-connectors-1.2.32-src/docs/news/20041100.html
@@ -0,0 +1,126 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>The Apache Tomcat Connector - News - 2004 News and Status</title><meta name="author" value="Apache Jakarta Project"><meta name="email" value="general.AT.tomcat.DOT.apache.DOT.org"><link href="../style.css" type="text/css" rel="stylesheet"></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="4"><!--PAGE HEADER--><tr><td colspan="2"><!--TOMCAT LOGO--><a href="http://tomcat.apache.org/"><img src="../images/tomcat.gif" align="left" alt="Apache Tomcat" border="0"></a><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="http://www.apache.org/images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><tr><!--LEFT SIDE NAVIGATION--><td width="20%" valign="top" nowrap="true"><p><strong>Links</strong></p><ul><li><a href="../index.html">Docs Home</a></li></ul><p><strong>Reference Guide</strong></p><ul><li><a href="../reference/workers.html">workers.properties</a></li><li><a href="../reference/uriworkermap.html">uriworkermap.properties</a></li><li><a href="../reference/status.html">Status Worker</a></li><li><a href="../reference/apache.html">Apache HTTP Server</a></li><li><a href="../reference/iis.html">IIS</a></li></ul><p><strong>Generic HowTo</strong></p><ul><li><a href="../generic_howto/quick.html">For the impatient</a></li><li><a href="../generic_howto/workers.html">All about workers</a></li><li><a href="../generic_howto/timeouts.html">Timeouts</a></li><li><a href="../generic_howto/loadbalancers.html">Load Balancing</a></li><li><a href="../generic_howto/proxy.html">Reverse Proxy</a></li></ul><p><strong>Webserver HowTo</strong></p><ul><li><a href="../webserver_howto/apache.html">Apache HTTP Server</a></li><li><a href="../webserver_howto/iis.html">IIS</a></li><li><a href="../webserver_howto/nes.html">Netscape/SunOne/Sun</a></li></ul><p><strong>AJP Protocol Reference</strong></p><ul><li><a href="../ajp/ajpv13a.html">AJPv13</a></li><li><a href="../ajp/ajpv13ext.html">AJPv13 Extension Proposal</a></li></ul><p><strong>Miscellaneous Documentation</strong></p><ul><li><a href="../miscellaneous/faq.html">Frequently asked questions</a></li><li><a href="../miscellaneous/changelog.html">Changelog</a></li><li><a href="http://issues.apache.org/bugzilla/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Tomcat+Connectors&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=">Current Tomcat Connectors bugs</a></li><li><a href="../miscellaneous/doccontrib.html">Contribute documentation</a></li><li><a href="../miscellaneous/jkstatustasks.html">JK Status Ant Tasks</a></li><li><a href="../miscellaneous/reporttools.html">Reporting Tools</a></li><li><a href="http://tomcat.apache.org/connectors-doc-archive/jk2/index.html">Old JK/JK2 documentation</a></li></ul><p><strong>News</strong></p><ul><li><a href="../news/20110701.html">2011</a></li><li><a href="../news/20100101.html">2010</a></li><li><a href="../news/20090301.html">2009</a></li><li><a href="../news/20081001.html">2008</a></li><li><a href="../news/20070301.html">2007</a></li><li><a href="../news/20060101.html">2006</a></li><li><a href="../news/20050101.html">2005</a></li><li><a href="../news/20041100.html">2004</a></li></ul></td><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left"><table border="0" width="100%" cellspacing="4"><tr><td align="left" valign="top"><h1>The Apache Tomcat Connector - News</h1><h2>2004 News and Status</h2></td><td align="right" valign="top" nowrap="true"><small><a href="printer/20041100.html"><img src="../images/printer.gif" border="0" alt="Printer Friendly Version"><br>print-friendly<br>version
+ </a></small></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="2004 News &amp; Status"><strong>2004 News &amp; Status</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+
+<a name="20041224.1">
+<h3>17 December - JK-1.2.8 released</h3>
+</a>
+<p>The Apache Jakarta Tomcat team is proud to announce the immediate availability
+of Jakarta Tomcat Connectors 1.2.8.
+</p>
+<p>
+ Please see the <a href="../miscellaneous/changelog.html">ChangeLog</a> for a full list of changes.
+</p>
+<p>If you find any bugs during testing this release, please fill in the
+<a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Tomcat%205">Bugzilla</a>
+Bug Report. When entering bug select <b>Native:JK</b> Component.
+</p>
+<hr size="1" noshade>
+<a name="20041218.1">
+<h3>17 December - JK-1.2.8-rc-1 released</h3>
+</a>
+<p>The Apache Jakarta Tomcat team is proud to announce the immediate availability
+of Jakarta Tomcat Connectors 1.2.8-rc-1 (Relase Canditate 1).
+</p>
+<p>
+We expect it to be ratified as a Stable release when the vote takes place
+in the next week.
+</p>
+<p>
+ Please see the <a href="../miscellaneous/changelog.html">ChangeLog</a> for a full list of changes.
+</p>
+<p>If you find any bugs during testing this release, please fill in the
+<a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Tomcat%205">Bugzilla</a>
+Bug Report. When entering bug select <b>Native:JK</b> Component.
+</p>
+<hr size="1" noshade>
+<a name="20041213.1">
+<h3>13 December - JK-1.2.7-beta-3 released</h3>
+</a>
+<p>The Apache Jakarta Tomcat team is proud to announce the immediate availability
+of Jakarta Tomcat Connectors 1.2.7-beta-3. The release contains a fix to few configuration
+problems detected with JK-1.2.7-beta-2 version.
+</p>
+<p>
+We expect it to be ratified as a Stable release when the vote takes place
+in the next week.
+</p>
+<p>
+ Please see the <a href="../miscellaneous/changelog.html">ChangeLog</a> for a full list of changes.
+</p>
+<p>If you find any bugs during testing this release, please fill in the
+<a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Tomcat%205">Bugzilla</a>
+Bug Report. When entering bug select <b>Native:JK</b> Component.
+</p>
+<hr size="1" noshade>
+<a name="20041207.1">
+<h3>7 December - JK-1.2.7-beta-2 released</h3>
+</a>
+<p>The Apache Jakarta Tomcat team is proud to announce the immediate availability
+of Jakarta Tomcat Connectors 1.2.7-beta-2. The release contains a fix to few compilation
+problems detected with JK-1.2.7-beta version. This release also introduces a new
+<b>domain</b> concept clustering support. See <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=32317">32317</a> for details.
+</p>
+<p>
+We expect it to be ratified as a Stable release when the vote takes place
+in the next two weeks.
+</p>
+<p>
+ Please see the <a href="../miscellaneous/changelog.html">ChangeLog</a> for a full list of changes.
+</p>
+<p>If you find any bugs during testing this release, please fill in the
+<a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Tomcat%205">Bugzilla</a>
+Bug Report. When entering bug select <b>Native:JK</b> Component.
+</p>
+<hr size="1" noshade>
+
+<a name="20041130.1">
+<h3>30 November - JK-1.2.7-beta released</h3>
+</a>
+<p>The Apache Jakarta Tomcat team is proud to announce the immediate availability
+of Jakarta Tomcat Connectors 1.2.7-beta. The release contains a significant number
+of bug fixes and new features.
+</p>
+<p>
+We expect it to be ratified as a Stable release when the vote takes place
+in the next two weeks.
+</p>
+<p>
+ Please see the <a href="../miscellaneous/changelog.html">ChangeLog</a> for a full list of changes.
+</p>
+<p><font color="#ff0000">
+Since release 1.2.7 the <b>socket_timeout</b> property has been renamed to
+<b>recycle_timeout</b>.
+The socket_timeout now sets the real timeout for socket operations.
+</font></p>
+<p>If you find any bugs during testing this release, please fill in the
+<a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Tomcat%205">Bugzilla</a>
+Bug Report. When entering bug select <b>Native:JK</b> Component.
+</p>
+
+<hr size="1" noshade>
+
+<a name="20041115.1">
+<h3>15 November - JK2 is officially unsupported</h3>
+</a>
+<p>JK2 has been put in maintainer mode and no further development will take place.
+The reason for shutting down JK2 development was the lack of developers interest.
+Other reason was lack of users interest in adopting JK2, caused by configuration
+complexity when compared to JK.
+</p>
+<p>The latest official JK2 release is 2.0.4.
+</p>
+<p>JK2 will have it's successor within core Apache2.1/2.2 distribution.
+We have developed new <b>proxy_ajp</b> that is an addition to
+the mod_proxy and uses Tomcat's AJP protocol stack. It is developped in httpd-2.1
+and integrated in it. We have also developed a new <b>proxy_balancer</b> module
+for load balancing http and ajp protocol stacks.
+</p>
+<p>JK will be fully supported for all other web servers. The next JK release is
+planned for the end of November. Lots of code from JK2 has been ported to JK
+</p>
+<hr size="1" noshade>
+
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright &copy; 1999-2011, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html> \ No newline at end of file
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/docs/news/20050101.html b/rubbos/app/tomcat-connectors-1.2.32-src/docs/news/20050101.html
new file mode 100644
index 00000000..21c7f801
--- /dev/null
+++ b/rubbos/app/tomcat-connectors-1.2.32-src/docs/news/20050101.html
@@ -0,0 +1,139 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>The Apache Tomcat Connector - News - 2005 News and Status</title><meta name="author" value="Apache Jakarta Project"><meta name="email" value="general.AT.tomcat.DOT.apache.DOT.org"><link href="../style.css" type="text/css" rel="stylesheet"></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="4"><!--PAGE HEADER--><tr><td colspan="2"><!--TOMCAT LOGO--><a href="http://tomcat.apache.org/"><img src="../images/tomcat.gif" align="left" alt="Apache Tomcat" border="0"></a><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="http://www.apache.org/images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><tr><!--LEFT SIDE NAVIGATION--><td width="20%" valign="top" nowrap="true"><p><strong>Links</strong></p><ul><li><a href="../index.html">Docs Home</a></li></ul><p><strong>Reference Guide</strong></p><ul><li><a href="../reference/workers.html">workers.properties</a></li><li><a href="../reference/uriworkermap.html">uriworkermap.properties</a></li><li><a href="../reference/status.html">Status Worker</a></li><li><a href="../reference/apache.html">Apache HTTP Server</a></li><li><a href="../reference/iis.html">IIS</a></li></ul><p><strong>Generic HowTo</strong></p><ul><li><a href="../generic_howto/quick.html">For the impatient</a></li><li><a href="../generic_howto/workers.html">All about workers</a></li><li><a href="../generic_howto/timeouts.html">Timeouts</a></li><li><a href="../generic_howto/loadbalancers.html">Load Balancing</a></li><li><a href="../generic_howto/proxy.html">Reverse Proxy</a></li></ul><p><strong>Webserver HowTo</strong></p><ul><li><a href="../webserver_howto/apache.html">Apache HTTP Server</a></li><li><a href="../webserver_howto/iis.html">IIS</a></li><li><a href="../webserver_howto/nes.html">Netscape/SunOne/Sun</a></li></ul><p><strong>AJP Protocol Reference</strong></p><ul><li><a href="../ajp/ajpv13a.html">AJPv13</a></li><li><a href="../ajp/ajpv13ext.html">AJPv13 Extension Proposal</a></li></ul><p><strong>Miscellaneous Documentation</strong></p><ul><li><a href="../miscellaneous/faq.html">Frequently asked questions</a></li><li><a href="../miscellaneous/changelog.html">Changelog</a></li><li><a href="http://issues.apache.org/bugzilla/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Tomcat+Connectors&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=">Current Tomcat Connectors bugs</a></li><li><a href="../miscellaneous/doccontrib.html">Contribute documentation</a></li><li><a href="../miscellaneous/jkstatustasks.html">JK Status Ant Tasks</a></li><li><a href="../miscellaneous/reporttools.html">Reporting Tools</a></li><li><a href="http://tomcat.apache.org/connectors-doc-archive/jk2/index.html">Old JK/JK2 documentation</a></li></ul><p><strong>News</strong></p><ul><li><a href="../news/20110701.html">2011</a></li><li><a href="../news/20100101.html">2010</a></li><li><a href="../news/20090301.html">2009</a></li><li><a href="../news/20081001.html">2008</a></li><li><a href="../news/20070301.html">2007</a></li><li><a href="../news/20060101.html">2006</a></li><li><a href="../news/20050101.html">2005</a></li><li><a href="../news/20041100.html">2004</a></li></ul></td><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left"><table border="0" width="100%" cellspacing="4"><tr><td align="left" valign="top"><h1>The Apache Tomcat Connector - News</h1><h2>2005 News and Status</h2></td><td align="right" valign="top" nowrap="true"><small><a href="printer/20050101.html"><img src="../images/printer.gif" border="0" alt="Printer Friendly Version"><br>print-friendly<br>version
+ </a></small></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="2005 News &amp; Status"><strong>2005 News &amp; Status</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+
+<a name="20051108.1">
+<h3>8 November - JK-1.2.15 released</h3>
+</a>
+<p>The Apache Tomcat team is proud to announce the immediate availability
+of Jakarta Tomcat Connectors 1.2.15. This is Stable release and it contains
+few bug fixes found in 1.2.14 version.
+</p>
+<p>
+ Please see the <a href="../miscellaneous/changelog.html">ChangeLog</a> for a full list of changes.
+</p>
+<p>If you find any bugs while using this release, please fill in the
+<a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Tomcat%205">Bugzilla</a>
+Bug Report. When entering bug select <b>Native:JK</b> Component.
+</p>
+<hr size="1" noshade>
+
+<a name="20050713.1">
+<h3>13 July - JK-1.2.14 released</h3>
+</a>
+<p>The Apache Tomcat team is proud to announce the immediate availability
+of Jakarta Tomcat Connectors 1.2.14. This is Stable release and it contains
+few bug fixes found in 1.2.13 version.
+</p>
+<p>
+ Please see the <a href="../miscellaneous/changelog.html">ChangeLog</a> for a full list of changes.
+</p>
+<p>If you find any bugs while using this release, please fill in the
+<a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Tomcat%205">Bugzilla</a>
+Bug Report. When entering bug select <b>Native:JK</b> Component.
+</p>
+<hr size="1" noshade>
+<a name="20050516.1">
+<h3>7 May - JK-1.2.13 released</h3>
+</a>
+<p>The Apache Jakarta Tomcat team is proud to announce the immediate availability
+of Jakarta Tomcat Connectors 1.2.13. This is development release and contains
+few bug fixes found in 1.2.12 version.
+</p>
+<p>
+ Please see the <a href="../miscellaneous/changelog.html">ChangeLog</a> for a full list of changes.
+</p>
+<p>If you find any bugs while using this release, please fill in the
+<a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Tomcat%205">Bugzilla</a>
+Bug Report. When entering bug select <b>Native:JK</b> Component.
+</p>
+<hr size="1" noshade>
+<a name="20050507.1">
+<h3>7 May - JK-1.2.12 released</h3>
+</a>
+<p>The Apache Jakarta Tomcat team is proud to announce the immediate availability
+of Jakarta Tomcat Connectors 1.2.12 The release contains a significant number
+of bug fixes and new features.
+</p>
+<p>
+We expect it to be ratified as a Stable release when the vote takes place
+in the next week.
+</p>
+<p>
+ Please see the <a href="../miscellaneous/changelog.html">ChangeLog</a> for a full list of changes.
+</p>
+<p>If you find any bugs while using this release, please fill in the
+<a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Tomcat%205">Bugzilla</a>
+Bug Report. When entering bug select <b>Native:JK</b> Component.
+</p>
+<hr size="1" noshade>
+<a name="20050429.1">
+<h3>29 April - JK-1.2.11 released</h3>
+</a>
+<p>The Apache Jakarta Tomcat team is proud to announce the immediate availability
+of Jakarta Tomcat Connectors 1.2.11 The release contains a significant number
+of bug fixes and new features.
+</p>
+<p>
+This version has not been released.
+</p>
+<p>
+ Please see the <a href="../miscellaneous/changelog.html">ChangeLog</a> for a full list of changes.
+</p>
+<p>If you find any bugs while using this release, please fill in the
+<a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Tomcat%205">Bugzilla</a>
+Bug Report. When entering bug select <b>Native:JK</b> Component.
+</p>
+<hr size="1" noshade>
+<a name="20050330.1">
+<h3>30 March - JK-1.2.10 released</h3>
+</a>
+<p>The Apache Jakarta Tomcat team is proud to announce the immediate availability
+of Jakarta Tomcat Connectors 1.2.10 The release contains a significant number
+of bug fixes and new features.
+</p>
+<p>
+We expect it to be ratified as a Stable release when the vote takes place
+in the next two weeks.
+</p>
+<p>
+ Please see the <a href="../miscellaneous/changelog.html">ChangeLog</a> for a full list of changes.
+</p>
+<p><font color="#ff0000">
+Since release 1.2.10 the <b>JkShmFile</b> property has been added for
+Apache 1.3.x and Apache 2.x web servers on UNIX and LINUX platforms.
+Load balancer will not work properly if this directive is not present.
+</font></p>
+<p>If you find any bugs while using this release, please fill in the
+<a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Tomcat%205">Bugzilla</a>
+Bug Report. When entering bug select <b>Native:JK</b> Component.
+</p>
+<hr size="1" noshade>
+<a name="20050318.1">
+<h3>18 March - JK-1.2.9-beta released</h3>
+</a>
+<p>The Apache Jakarta Tomcat team is proud to announce the immediate availability
+of Jakarta Tomcat Connectors 1.2.9-beta. The release contains a significant number
+of bug fixes and new features.
+</p>
+<p>
+We expect it to be ratified as a Stable release when the vote takes place
+in the next two weeks.
+</p>
+<p>
+ Please see the <a href="../miscellaneous/changelog.html">ChangeLog</a> for a full list of changes.
+</p>
+<p><font color="#ff0000">
+Since release 1.2.9 the <b>JkShmFile</b> property has been added for
+Apache 1.3.x and Apache 2.x web servers on UNIX and LINUX platforms.
+Load balancer will not work properly if this directive is not present.
+</font></p>
+<p>If you find any bugs during testing this release, please fill in the
+<a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Tomcat%205">Bugzilla</a>
+Bug Report. When entering bug select <b>Native:JK</b> Component.
+</p>
+<hr size="1" noshade>
+
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright &copy; 1999-2011, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html> \ No newline at end of file
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/docs/news/20060101.html b/rubbos/app/tomcat-connectors-1.2.32-src/docs/news/20060101.html
new file mode 100644
index 00000000..06958caa
--- /dev/null
+++ b/rubbos/app/tomcat-connectors-1.2.32-src/docs/news/20060101.html
@@ -0,0 +1,80 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>The Apache Tomcat Connector - News - 2006 News and Status</title><meta name="author" value="Apache Tomcat Connectors Project"><meta name="email" value="general.AT.tomcat.DOT.apache.DOT.org"><link href="../style.css" type="text/css" rel="stylesheet"></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="4"><!--PAGE HEADER--><tr><td colspan="2"><!--TOMCAT LOGO--><a href="http://tomcat.apache.org/"><img src="../images/tomcat.gif" align="left" alt="Apache Tomcat" border="0"></a><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="http://www.apache.org/images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><tr><!--LEFT SIDE NAVIGATION--><td width="20%" valign="top" nowrap="true"><p><strong>Links</strong></p><ul><li><a href="../index.html">Docs Home</a></li></ul><p><strong>Reference Guide</strong></p><ul><li><a href="../reference/workers.html">workers.properties</a></li><li><a href="../reference/uriworkermap.html">uriworkermap.properties</a></li><li><a href="../reference/status.html">Status Worker</a></li><li><a href="../reference/apache.html">Apache HTTP Server</a></li><li><a href="../reference/iis.html">IIS</a></li></ul><p><strong>Generic HowTo</strong></p><ul><li><a href="../generic_howto/quick.html">For the impatient</a></li><li><a href="../generic_howto/workers.html">All about workers</a></li><li><a href="../generic_howto/timeouts.html">Timeouts</a></li><li><a href="../generic_howto/loadbalancers.html">Load Balancing</a></li><li><a href="../generic_howto/proxy.html">Reverse Proxy</a></li></ul><p><strong>Webserver HowTo</strong></p><ul><li><a href="../webserver_howto/apache.html">Apache HTTP Server</a></li><li><a href="../webserver_howto/iis.html">IIS</a></li><li><a href="../webserver_howto/nes.html">Netscape/SunOne/Sun</a></li></ul><p><strong>AJP Protocol Reference</strong></p><ul><li><a href="../ajp/ajpv13a.html">AJPv13</a></li><li><a href="../ajp/ajpv13ext.html">AJPv13 Extension Proposal</a></li></ul><p><strong>Miscellaneous Documentation</strong></p><ul><li><a href="../miscellaneous/faq.html">Frequently asked questions</a></li><li><a href="../miscellaneous/changelog.html">Changelog</a></li><li><a href="http://issues.apache.org/bugzilla/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Tomcat+Connectors&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=">Current Tomcat Connectors bugs</a></li><li><a href="../miscellaneous/doccontrib.html">Contribute documentation</a></li><li><a href="../miscellaneous/jkstatustasks.html">JK Status Ant Tasks</a></li><li><a href="../miscellaneous/reporttools.html">Reporting Tools</a></li><li><a href="http://tomcat.apache.org/connectors-doc-archive/jk2/index.html">Old JK/JK2 documentation</a></li></ul><p><strong>News</strong></p><ul><li><a href="../news/20110701.html">2011</a></li><li><a href="../news/20100101.html">2010</a></li><li><a href="../news/20090301.html">2009</a></li><li><a href="../news/20081001.html">2008</a></li><li><a href="../news/20070301.html">2007</a></li><li><a href="../news/20060101.html">2006</a></li><li><a href="../news/20050101.html">2005</a></li><li><a href="../news/20041100.html">2004</a></li></ul></td><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left"><table border="0" width="100%" cellspacing="4"><tr><td align="left" valign="top"><h1>The Apache Tomcat Connector - News</h1><h2>2006 News and Status</h2></td><td align="right" valign="top" nowrap="true"><small><a href="printer/20060101.html"><img src="../images/printer.gif" border="0" alt="Printer Friendly Version"><br>print-friendly<br>version
+ </a></small></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="2006 News &amp; Status"><strong>2006 News &amp; Status</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<a name="20061210.1">
+<h3>10 December - JK-1.2.20 released</h3>
+</a>
+<p>The Apache Tomcat team is proud to announce the immediate availability
+of Tomcat Connectors 1.2.20. This is a stable release adding new features
+and a few bug fixes to version 1.2.19.
+Furthermore the documentation has been reorganised.
+</p>
+<p>
+ Please see the <a href="../miscellaneous/changelog.html">ChangeLog</a> for a full list of changes.
+</p>
+<p>If you find any bugs while using this release, please fill in the
+<a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Tomcat%205">Bugzilla</a>
+Bug Report. When entering bug select <b>Native:JK</b> Component.
+</p>
+<hr size="1" noshade>
+
+<a name="20060917.1">
+<h3>17 September - JK-1.2.19 released</h3>
+</a>
+<p>The Apache Tomcat team is proud to announce the immediate availability
+of Tomcat Connectors 1.2.19. This is a stable release adding some features
+and a few bug fixes to version 1.2.18.
+Furthermore the non-functional code trees for isapi and domino have been removed.
+</p>
+<p>
+ Please see the <a href="../miscellaneous/changelog.html">ChangeLog</a> for a full list of changes.
+</p>
+<p>If you find any bugs while using this release, please fill in the
+<a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Tomcat%205">Bugzilla</a>
+Bug Report. When entering bug select <b>Native:JK</b> Component.
+</p>
+<hr size="1" noshade>
+
+<a name="20060720.1">
+<h3>13 July - JK-1.2.18 released</h3>
+</a>
+<p>The Apache Tomcat team is proud to announce the immediate availability
+of Tomcat Connectors 1.2.18. This is a stable release adding
+a few bug fixes to the not released 1.2.17 version.
+</p>
+<p>
+ Please see the <a href="../miscellaneous/changelog.html">ChangeLog</a> for a full list of changes.
+</p>
+<p>If you find any bugs while using this release, please fill in the
+<a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Tomcat%205">Bugzilla</a>
+Bug Report. When entering bug select <b>Native:JK</b> Component.
+</p>
+<hr size="1" noshade>
+
+<a name="20060708.1">
+<h3>JK-1.2.17 not released</h3>
+</a>
+<p>Version 1.2.17 of Tomcat Connectors 1.2.17 has not been released
+due to a bug in the types chosen for socket arguments.
+</p>
+<p>
+ Please see the <a href="../miscellaneous/changelog.html">ChangeLog</a> for a full list of changes.
+</p>
+<hr size="1" noshade>
+
+<a name="20060606.1">
+<h3>JK-1.2.16 not released</h3>
+</a>
+<p>Version 1.2.16 of Tomcat Connectors 1.2.16 has not been released
+due to a bug in the jk status worker. This version adds some features
+and a few bug fixes to the 1.2.15 version. Furthermore some worker attributes
+have been <a href="../reference/workers.html">deprecated</a>.
+</p>
+<p>
+ Please see the <a href="../miscellaneous/changelog.html">ChangeLog</a> for a full list of changes.
+</p>
+<hr size="1" noshade>
+
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright &copy; 1999-2011, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html> \ No newline at end of file
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/docs/news/20070301.html b/rubbos/app/tomcat-connectors-1.2.32-src/docs/news/20070301.html
new file mode 100644
index 00000000..a3b43d26
--- /dev/null
+++ b/rubbos/app/tomcat-connectors-1.2.32-src/docs/news/20070301.html
@@ -0,0 +1,87 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>The Apache Tomcat Connector - News - 2007 News and Status</title><meta name="author" value="Apache Tomcat Connectors Project"><meta name="email" value="general.AT.tomcat.DOT.apache.DOT.org"><link href="../style.css" type="text/css" rel="stylesheet"></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="4"><!--PAGE HEADER--><tr><td colspan="2"><!--TOMCAT LOGO--><a href="http://tomcat.apache.org/"><img src="../images/tomcat.gif" align="left" alt="Apache Tomcat" border="0"></a><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="http://www.apache.org/images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><tr><!--LEFT SIDE NAVIGATION--><td width="20%" valign="top" nowrap="true"><p><strong>Links</strong></p><ul><li><a href="../index.html">Docs Home</a></li></ul><p><strong>Reference Guide</strong></p><ul><li><a href="../reference/workers.html">workers.properties</a></li><li><a href="../reference/uriworkermap.html">uriworkermap.properties</a></li><li><a href="../reference/status.html">Status Worker</a></li><li><a href="../reference/apache.html">Apache HTTP Server</a></li><li><a href="../reference/iis.html">IIS</a></li></ul><p><strong>Generic HowTo</strong></p><ul><li><a href="../generic_howto/quick.html">For the impatient</a></li><li><a href="../generic_howto/workers.html">All about workers</a></li><li><a href="../generic_howto/timeouts.html">Timeouts</a></li><li><a href="../generic_howto/loadbalancers.html">Load Balancing</a></li><li><a href="../generic_howto/proxy.html">Reverse Proxy</a></li></ul><p><strong>Webserver HowTo</strong></p><ul><li><a href="../webserver_howto/apache.html">Apache HTTP Server</a></li><li><a href="../webserver_howto/iis.html">IIS</a></li><li><a href="../webserver_howto/nes.html">Netscape/SunOne/Sun</a></li></ul><p><strong>AJP Protocol Reference</strong></p><ul><li><a href="../ajp/ajpv13a.html">AJPv13</a></li><li><a href="../ajp/ajpv13ext.html">AJPv13 Extension Proposal</a></li></ul><p><strong>Miscellaneous Documentation</strong></p><ul><li><a href="../miscellaneous/faq.html">Frequently asked questions</a></li><li><a href="../miscellaneous/changelog.html">Changelog</a></li><li><a href="http://issues.apache.org/bugzilla/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Tomcat+Connectors&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=">Current Tomcat Connectors bugs</a></li><li><a href="../miscellaneous/doccontrib.html">Contribute documentation</a></li><li><a href="../miscellaneous/jkstatustasks.html">JK Status Ant Tasks</a></li><li><a href="../miscellaneous/reporttools.html">Reporting Tools</a></li><li><a href="http://tomcat.apache.org/connectors-doc-archive/jk2/index.html">Old JK/JK2 documentation</a></li></ul><p><strong>News</strong></p><ul><li><a href="../news/20110701.html">2011</a></li><li><a href="../news/20100101.html">2010</a></li><li><a href="../news/20090301.html">2009</a></li><li><a href="../news/20081001.html">2008</a></li><li><a href="../news/20070301.html">2007</a></li><li><a href="../news/20060101.html">2006</a></li><li><a href="../news/20050101.html">2005</a></li><li><a href="../news/20041100.html">2004</a></li></ul></td><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left"><table border="0" width="100%" cellspacing="4"><tr><td align="left" valign="top"><h1>The Apache Tomcat Connector - News</h1><h2>2007 News and Status</h2></td><td align="right" valign="top" nowrap="true"><small><a href="printer/20070301.html"><img src="../images/printer.gif" border="0" alt="Printer Friendly Version"><br>print-friendly<br>version
+ </a></small></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="2007 News &amp; Status"><strong>2007 News &amp; Status</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<a name="20071221.1">
+<h3>21 December - JK-1.2.26 released</h3>
+</a>
+<p>The Apache Tomcat team is proud to announce the immediate availability
+of Tomcat Connectors 1.2.26. This is a stable release adding few new features
+and some bug fixes.
+</p><p>
+ Please see the <a href="../miscellaneous/changelog.html">ChangeLog</a> for a full list of changes.
+</p>
+<p>If you find any bugs while using this release, please fill in the
+<a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Tomcat%206">Bugzilla</a>
+Bug Report. When entering bug select <b>Native:JK</b> Component.
+</p>
+<hr size="1" noshade>
+<a name="20070807.1">
+<h3>7 August - JK-1.2.25 released</h3>
+</a>
+<p>The Apache Tomcat team is proud to announce the immediate availability
+of Tomcat Connectors 1.2.25. This is a stable release adding new features
+and a few bug fixes.
+</p><p>
+ Please see the <a href="../miscellaneous/changelog.html">ChangeLog</a> for a full list of changes.
+</p>
+<p>If you find any bugs while using this release, please fill in the
+<a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Tomcat%206">Bugzilla</a>
+Bug Report. When entering bug select <b>Native:JK</b> Component.
+</p>
+<hr size="1" noshade>
+<a name="20070727.1">
+<h3>27 July - JK-1.2.24 released</h3>
+</a>
+<p><b>This release has been withdrawn.</b>
+</p>
+<hr size="1" noshade>
+<a name="20070518.1">
+<h3>18 May - JK-1.2.23 released</h3>
+</a>
+<p>The Apache Tomcat team is proud to announce the immediate availability
+of Tomcat Connectors 1.2.23. This is a stable release adding new features
+and a few bug fixes to version 1.2.23.
+</p><p>
+It fixes an <a href="http://tomcat.apache.org/security-jk.html">Important vulnerability</a>.
+</p><p>
+ Please see the <a href="../miscellaneous/changelog.html">ChangeLog</a> for a full list of changes.
+</p>
+<p>If you find any bugs while using this release, please fill in the
+<a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Tomcat%205">Bugzilla</a>
+Bug Report. When entering bug select <b>Native:JK</b> Component.
+</p>
+<hr size="1" noshade>
+<a name="20070417.1">
+<h3>17 April - JK-1.2.22 released</h3>
+</a>
+<p>The Apache Tomcat team is proud to announce the immediate availability
+of Tomcat Connectors 1.2.22. This is a stable release adding new features
+and a few bug fixes to version 1.2.22.
+</p><p>
+ Please see the <a href="../miscellaneous/changelog.html">ChangeLog</a> for a full list of changes.
+</p>
+<p>If you find any bugs while using this release, please fill in the
+<a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Tomcat%205">Bugzilla</a>
+Bug Report. When entering bug select <b>Native:JK</b> Component.
+</p>
+<hr size="1" noshade>
+<a name="20070301.1">
+<h3>1 March - JK-1.2.21 released</h3>
+</a>
+<p>The Apache Tomcat team is proud to announce the immediate availability
+of Tomcat Connectors 1.2.21. This is a stable release adding new features
+and a few bug fixes to version 1.2.20.
+</p><p>
+It fixes a <a href="http://tomcat.apache.org/security-jk.html">Critical vulnerability</a> introduced in version 1.2.19
+</p><p>
+ Please see the <a href="../miscellaneous/changelog.html">ChangeLog</a> for a full list of changes.
+</p>
+<p>If you find any bugs while using this release, please fill in the
+<a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Tomcat%205">Bugzilla</a>
+Bug Report. When entering bug select <b>Native:JK</b> Component.
+</p>
+<hr size="1" noshade>
+
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright &copy; 1999-2011, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html> \ No newline at end of file
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/docs/news/20081001.html b/rubbos/app/tomcat-connectors-1.2.32-src/docs/news/20081001.html
new file mode 100644
index 00000000..1a263074
--- /dev/null
+++ b/rubbos/app/tomcat-connectors-1.2.32-src/docs/news/20081001.html
@@ -0,0 +1,158 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>The Apache Tomcat Connector - News - 2008 News and Status</title><meta name="author" value="Apache Tomcat Connectors Project"><meta name="email" value="dev.AT.tomcat.DOT.apache.DOT.org"><link href="../style.css" type="text/css" rel="stylesheet"></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="4"><!--PAGE HEADER--><tr><td colspan="2"><!--TOMCAT LOGO--><a href="http://tomcat.apache.org/"><img src="../images/tomcat.gif" align="left" alt="Apache Tomcat" border="0"></a><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="http://www.apache.org/images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><tr><!--LEFT SIDE NAVIGATION--><td width="20%" valign="top" nowrap="true"><p><strong>Links</strong></p><ul><li><a href="../index.html">Docs Home</a></li></ul><p><strong>Reference Guide</strong></p><ul><li><a href="../reference/workers.html">workers.properties</a></li><li><a href="../reference/uriworkermap.html">uriworkermap.properties</a></li><li><a href="../reference/status.html">Status Worker</a></li><li><a href="../reference/apache.html">Apache HTTP Server</a></li><li><a href="../reference/iis.html">IIS</a></li></ul><p><strong>Generic HowTo</strong></p><ul><li><a href="../generic_howto/quick.html">For the impatient</a></li><li><a href="../generic_howto/workers.html">All about workers</a></li><li><a href="../generic_howto/timeouts.html">Timeouts</a></li><li><a href="../generic_howto/loadbalancers.html">Load Balancing</a></li><li><a href="../generic_howto/proxy.html">Reverse Proxy</a></li></ul><p><strong>Webserver HowTo</strong></p><ul><li><a href="../webserver_howto/apache.html">Apache HTTP Server</a></li><li><a href="../webserver_howto/iis.html">IIS</a></li><li><a href="../webserver_howto/nes.html">Netscape/SunOne/Sun</a></li></ul><p><strong>AJP Protocol Reference</strong></p><ul><li><a href="../ajp/ajpv13a.html">AJPv13</a></li><li><a href="../ajp/ajpv13ext.html">AJPv13 Extension Proposal</a></li></ul><p><strong>Miscellaneous Documentation</strong></p><ul><li><a href="../miscellaneous/faq.html">Frequently asked questions</a></li><li><a href="../miscellaneous/changelog.html">Changelog</a></li><li><a href="http://issues.apache.org/bugzilla/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Tomcat+Connectors&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=">Current Tomcat Connectors bugs</a></li><li><a href="../miscellaneous/doccontrib.html">Contribute documentation</a></li><li><a href="../miscellaneous/jkstatustasks.html">JK Status Ant Tasks</a></li><li><a href="../miscellaneous/reporttools.html">Reporting Tools</a></li><li><a href="http://tomcat.apache.org/connectors-doc-archive/jk2/index.html">Old JK/JK2 documentation</a></li></ul><p><strong>News</strong></p><ul><li><a href="../news/20110701.html">2011</a></li><li><a href="../news/20100101.html">2010</a></li><li><a href="../news/20090301.html">2009</a></li><li><a href="../news/20081001.html">2008</a></li><li><a href="../news/20070301.html">2007</a></li><li><a href="../news/20060101.html">2006</a></li><li><a href="../news/20050101.html">2005</a></li><li><a href="../news/20041100.html">2004</a></li></ul></td><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left"><table border="0" width="100%" cellspacing="4"><tr><td align="left" valign="top"><h1>The Apache Tomcat Connector - News</h1><h2>2008 News and Status</h2></td><td align="right" valign="top" nowrap="true"><small><a href="printer/20081001.html"><img src="../images/printer.gif" border="0" alt="Printer Friendly Version"><br>print-friendly<br>version
+ </a></small></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="2008 News &amp; Status"><strong>2008 News &amp; Status</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="28 October - JK-1.2.27 released"><strong>28 October - JK-1.2.27 released</strong></a></font></td></tr><tr><td><blockquote>
+<a name="20081028.1"></a>
+<br>
+<p>The Apache Tomcat team is proud to announce the immediate availability
+of Tomcat Connectors 1.2.27. This is a stable release adding lots of new features
+and some bug fixes.
+</p><p>
+ Please see the <a href="../miscellaneous/changelog.html">ChangeLog</a> for a full list of changes.
+</p>
+<p>If you find any bugs while using this release, please fill in the
+<a href="https://issues.apache.org/bugzilla/enter_bug.cgi?product=Tomcat%20Connectors">Bugzilla</a>
+Bug Report.
+</p>
+<p>
+The most important new features in this version are:
+</p>
+<h3>Watchdog Thread for Periodic Tasks</h3>
+<p>
+The connector has to run some periodic tasks independant of
+request processing. Examples are probing or closing down idle backend
+connections, adjusting load numbers and recovering workers from error state.
+</p>
+<p>
+Before version 1.2.27 these tasks were done inside the request processing loop.
+When a new request came in and the task was due, the thread handling the
+request first executed the internal task and then handled the request.
+If there were no requests coming in, the tasks would not run. If any of
+the tasks took unexpectedly long, the response time of the request waiting
+for the finishing of the task went up.
+</p>
+<p>
+Starting with this release you can configure a separate watchdog thread inside
+the web server to run all those tasks independantly of request processing.
+This new feature is avaliable for the connector when used with Apache httpd 2.x
+or with Microsoft IIS. To keep the behaviour of the new version consistent
+with previous releases, this feature is turned off by default.
+You can activate the watchdog thread via
+<a href="../reference/apache.html"><b class="code">JkWatchdogInterval</b></a>
+for Apache or
+<a href="../reference/iis.html"><b class="code">watchdog_interval</b></a>
+for IIS.
+</p>
+<h3>Connection Probing</h3>
+<p>
+In previous releases connection probing (checking whether connections still work)
+could only be done immediately after a new connection was established and
+directly before sending each request. Since we now have the watchdog
+thread available, we also added a periodic probing option, which you
+can activate with the worker attribute
+<a href="../reference/workers.html"><b class="code">ping_mode</b></a>.
+This will also be useful as a protection against the infamous firewall
+idle connection drop.
+</p>
+<p>
+The older attributes <b class="code">connect_timeout</b> and <b class="code">prepost_timeout</b>
+still exist and work the same way they did in previous releases.
+Since there are now three different probing options, we recommend to migrate
+your configuration to the newer attributes <b class="code">ping_mode</b>,
+<b class="code">ping_timeout</b> and <b class="code">connection_ping_interval</b>.
+</p>
+<h3>Mount Extensions</h3>
+<p>
+Usually one defines workers and mounts for the connector.
+A worker defines a backend we want to talk to and the configuration parameters of the
+communication, connection pools etc. The mounts define which URIs we want to forward to
+which worker (so we also call a mount an URI map rule).
+In version 1.2.27 you can overwrite certain worker parameter per mount.
+</p>
+<p>
+One easy to understand example is reply timeouts. Until this release you had to specify
+a reply timeout for the whole worker. But reply times depend a lot on the type of
+request. So normally you want to define a general reply timeout and
+for some special URLs you need to relax the reply timeout, because you know those
+URLs take much longer to process (like e.g. reporting or other compute intensive tasks).
+</p>
+<p>
+Another possible case is the activation status. You might use a load balancer worker to
+forward requests to certain webapps in a farm of Tomcat nodes. If you wanted
+to update some webapp on one node, you previously had to stop forwarding requests for
+all webapps on this Tomcat node. What was not possible until now, was stopping forwarding
+requests restricted to the webapp and the node you wanted to update.
+</p>
+<p>
+Starting with this release, you can add so-called
+<a href="../reference/uriworkermap.html#Rule extensions">rule extensions</a>
+to your uriworkermap file to influence worker parameters per mount. This will
+work for all Apache versions and for IIS. Remember, that
+the uriworkermap file automatically gets reloaded after changes without web server
+restart.
+</p>
+<h3>Improved IIS support</h3>
+<p>
+We improved IIS support im various ways. It is now possible to use
+multiple IIS 6 application pools with the ISAPI redirector.
+</p>
+<p>
+Furthermore some improvements were added as compile time features.
+The most notable one is chunked encoding support, which was a major
+refactoring and is therefore still considered experimental. You can
+download binaries with and without chunked encoding support. In future
+versions, chunked encoding will likely be availabe in all builds.
+</p>
+<p>
+Another new feature is an elegant way of configuring error page redirects.
+All new features are documented on the documentation page about
+<a href="../reference/iis.html">configuring IIS</a>.
+</p>
+<h3>Enhanced Status Worker</h3>
+<p>
+The
+<a href="../reference/status.html">status worker</a>
+now can also manage and show statistics for AJP workers that
+are not part of a load balancer. Other improvements are the new <b class="code">dump</b>
+action, the integration of the new configuration attributes, showing average
+request and transfer rates since the last statistics reset and the ability to
+display only a single member of a load balancer.
+</p>
+<p>
+Unfortunately we had to change
+<a href="../reference/status.html#Data Parameters for the standard Update Action">some request parameters</a>
+used for the <b class="code">update</b> action of the status worker.
+</p>
+<h3>Miscellaneous Improvements</h3>
+<p>
+Further enhancements are:
+<ul>
+<li>
+Configurable session stickyness indicator: cookie name and URL path
+parameter name can be freely chosen instead of the servlet spec compliant
+<b class="code">JSESSIONID</b> and <b class="code">;jsessionid</b>.
+</li>
+<li>
+Automatically determining the size of the shared memory segment needed
+to accommodate all workers.
+</li>
+<li>
+New connection establishment timeout <b class="code">socket_connect_timeout</b>.
+</li>
+<li>
+New timeout <b class="code">connection_acquire_timeout</b> for acquiring a free connection from
+the pool.
+</li>
+<li>
+Improved retry handling by adjusting the meaning of the attribute <b class="code">retries</b> for
+AJP workers and for load balancers and by adding the new <b class="code">retry_interval</b>.
+</li>
+<li>
+Allowing the web server to provide error pages instead of Tomcat.
+</li>
+</ul>
+</p>
+</blockquote></td></tr></table>
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright &copy; 1999-2011, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html> \ No newline at end of file
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/docs/news/20090301.html b/rubbos/app/tomcat-connectors-1.2.32-src/docs/news/20090301.html
new file mode 100644
index 00000000..f8ac8584
--- /dev/null
+++ b/rubbos/app/tomcat-connectors-1.2.32-src/docs/news/20090301.html
@@ -0,0 +1,63 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>The Apache Tomcat Connector - News - 2009 News and Status</title><meta name="author" value="Apache Tomcat Connectors Project"><meta name="email" value="dev.AT.tomcat.DOT.apache.DOT.org"><link href="../style.css" type="text/css" rel="stylesheet"></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="4"><!--PAGE HEADER--><tr><td colspan="2"><!--TOMCAT LOGO--><a href="http://tomcat.apache.org/"><img src="../images/tomcat.gif" align="left" alt="Apache Tomcat" border="0"></a><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="http://www.apache.org/images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><tr><!--LEFT SIDE NAVIGATION--><td width="20%" valign="top" nowrap="true"><p><strong>Links</strong></p><ul><li><a href="../index.html">Docs Home</a></li></ul><p><strong>Reference Guide</strong></p><ul><li><a href="../reference/workers.html">workers.properties</a></li><li><a href="../reference/uriworkermap.html">uriworkermap.properties</a></li><li><a href="../reference/status.html">Status Worker</a></li><li><a href="../reference/apache.html">Apache HTTP Server</a></li><li><a href="../reference/iis.html">IIS</a></li></ul><p><strong>Generic HowTo</strong></p><ul><li><a href="../generic_howto/quick.html">For the impatient</a></li><li><a href="../generic_howto/workers.html">All about workers</a></li><li><a href="../generic_howto/timeouts.html">Timeouts</a></li><li><a href="../generic_howto/loadbalancers.html">Load Balancing</a></li><li><a href="../generic_howto/proxy.html">Reverse Proxy</a></li></ul><p><strong>Webserver HowTo</strong></p><ul><li><a href="../webserver_howto/apache.html">Apache HTTP Server</a></li><li><a href="../webserver_howto/iis.html">IIS</a></li><li><a href="../webserver_howto/nes.html">Netscape/SunOne/Sun</a></li></ul><p><strong>AJP Protocol Reference</strong></p><ul><li><a href="../ajp/ajpv13a.html">AJPv13</a></li><li><a href="../ajp/ajpv13ext.html">AJPv13 Extension Proposal</a></li></ul><p><strong>Miscellaneous Documentation</strong></p><ul><li><a href="../miscellaneous/faq.html">Frequently asked questions</a></li><li><a href="../miscellaneous/changelog.html">Changelog</a></li><li><a href="http://issues.apache.org/bugzilla/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Tomcat+Connectors&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=">Current Tomcat Connectors bugs</a></li><li><a href="../miscellaneous/doccontrib.html">Contribute documentation</a></li><li><a href="../miscellaneous/jkstatustasks.html">JK Status Ant Tasks</a></li><li><a href="../miscellaneous/reporttools.html">Reporting Tools</a></li><li><a href="http://tomcat.apache.org/connectors-doc-archive/jk2/index.html">Old JK/JK2 documentation</a></li></ul><p><strong>News</strong></p><ul><li><a href="../news/20110701.html">2011</a></li><li><a href="../news/20100101.html">2010</a></li><li><a href="../news/20090301.html">2009</a></li><li><a href="../news/20081001.html">2008</a></li><li><a href="../news/20070301.html">2007</a></li><li><a href="../news/20060101.html">2006</a></li><li><a href="../news/20050101.html">2005</a></li><li><a href="../news/20041100.html">2004</a></li></ul></td><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left"><table border="0" width="100%" cellspacing="4"><tr><td align="left" valign="top"><h1>The Apache Tomcat Connector - News</h1><h2>2009 News and Status</h2></td><td align="right" valign="top" nowrap="true"><small><a href="printer/20090301.html"><img src="../images/printer.gif" border="0" alt="Printer Friendly Version"><br>print-friendly<br>version
+ </a></small></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="2009 News &amp; Status"><strong>2009 News &amp; Status</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="22 March - JK-1.2.28 released"><strong>22 March - JK-1.2.28 released</strong></a></font></td></tr><tr><td><blockquote>
+<a name="20090322.1"></a>
+<br>
+<p>The Apache Tomcat team is proud to announce the immediate availability
+of Tomcat Connectors 1.2.28. This is a stable release concentrating mainly on
+some bug fixes.
+</p><p>
+ Please see the <a href="../miscellaneous/changelog.html">ChangeLog</a> for a full list of changes.
+</p>
+<p>If you find any bugs while using this release, please fill in the
+<a href="https://issues.apache.org/bugzilla/enter_bug.cgi?product=Tomcat%20Connectors">Bugzilla</a>
+Bug Report.
+</p>
+<p>
+The most important new features in this version are:
+</p>
+<h3>Better Error Detection for Load Balancer Workers</h3>
+<p>
+Local and global error states have been improved. You can fine tune the
+behaviour with the new "error_escalation_time" attribute
+(see the <a href="../generic_howto/timeouts.html">timeouts documentation</a>).
+</p>
+<h3>Dynamic Address and Port Change Using the Status Worker</h3>
+<p>
+The status worker now allows you to change the address and the port
+of an AJP13 worker on the fly. You can e.g. provision dummy workers with a port
+equal to "0", which will be automatically put into stopped mode during startup.
+Later, when you want to actually use thse workers, you set their address and
+port to the final values.
+</p>
+<p>
+Note that already existing connections will go on using the old
+address and port. This will be improved in future versions.
+</p>
+<h3>New Data in Status Worker Display</h3>
+<p>
+The status worker display now also contains the timestamp of the last
+worker errors.
+</p>
+<h3>Improved Proxy Flexibility</h3>
+<p>
+You can now overwrite more request metadata before the request gets send to the backend.
+This is helpful in case there are other reverse proxies in front of your web server.
+A new <a href="../generic_howto/proxy.html">documentation page</a> explains this in detail.
+</p>
+<h3>Improved IIS Support</h3>
+<p>
+IIS support has been improved especially when using mutltiple application pools.
+Furthermore you can now configure the ISAPI plugin to update the uriworkermap.properies
+file on a regular interval using the watchdog thread.
+</p>
+<h3>JNI Worker Deprecation</h3>
+<p>
+Workers of type jni are broken since a long time. Since there is no more
+use for them, they have been deprecated now, and will be removed in a future release.
+</p>
+</blockquote></td></tr></table>
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright &copy; 1999-2011, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html> \ No newline at end of file
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/docs/news/20100101.html b/rubbos/app/tomcat-connectors-1.2.32-src/docs/news/20100101.html
new file mode 100644
index 00000000..8fb89125
--- /dev/null
+++ b/rubbos/app/tomcat-connectors-1.2.32-src/docs/news/20100101.html
@@ -0,0 +1,62 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>The Apache Tomcat Connector - News - 2010 News and Status</title><meta name="author" value="Apache Tomcat Connectors Project"><meta name="email" value="dev.AT.tomcat.DOT.apache.DOT.org"><link href="../style.css" type="text/css" rel="stylesheet"></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="4"><!--PAGE HEADER--><tr><td colspan="2"><!--TOMCAT LOGO--><a href="http://tomcat.apache.org/"><img src="../images/tomcat.gif" align="left" alt="Apache Tomcat" border="0"></a><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="http://www.apache.org/images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><tr><!--LEFT SIDE NAVIGATION--><td width="20%" valign="top" nowrap="true"><p><strong>Links</strong></p><ul><li><a href="../index.html">Docs Home</a></li></ul><p><strong>Reference Guide</strong></p><ul><li><a href="../reference/workers.html">workers.properties</a></li><li><a href="../reference/uriworkermap.html">uriworkermap.properties</a></li><li><a href="../reference/status.html">Status Worker</a></li><li><a href="../reference/apache.html">Apache HTTP Server</a></li><li><a href="../reference/iis.html">IIS</a></li></ul><p><strong>Generic HowTo</strong></p><ul><li><a href="../generic_howto/quick.html">For the impatient</a></li><li><a href="../generic_howto/workers.html">All about workers</a></li><li><a href="../generic_howto/timeouts.html">Timeouts</a></li><li><a href="../generic_howto/loadbalancers.html">Load Balancing</a></li><li><a href="../generic_howto/proxy.html">Reverse Proxy</a></li></ul><p><strong>Webserver HowTo</strong></p><ul><li><a href="../webserver_howto/apache.html">Apache HTTP Server</a></li><li><a href="../webserver_howto/iis.html">IIS</a></li><li><a href="../webserver_howto/nes.html">Netscape/SunOne/Sun</a></li></ul><p><strong>AJP Protocol Reference</strong></p><ul><li><a href="../ajp/ajpv13a.html">AJPv13</a></li><li><a href="../ajp/ajpv13ext.html">AJPv13 Extension Proposal</a></li></ul><p><strong>Miscellaneous Documentation</strong></p><ul><li><a href="../miscellaneous/faq.html">Frequently asked questions</a></li><li><a href="../miscellaneous/changelog.html">Changelog</a></li><li><a href="http://issues.apache.org/bugzilla/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Tomcat+Connectors&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=">Current Tomcat Connectors bugs</a></li><li><a href="../miscellaneous/doccontrib.html">Contribute documentation</a></li><li><a href="../miscellaneous/jkstatustasks.html">JK Status Ant Tasks</a></li><li><a href="../miscellaneous/reporttools.html">Reporting Tools</a></li><li><a href="http://tomcat.apache.org/connectors-doc-archive/jk2/index.html">Old JK/JK2 documentation</a></li></ul><p><strong>News</strong></p><ul><li><a href="../news/20110701.html">2011</a></li><li><a href="../news/20100101.html">2010</a></li><li><a href="../news/20090301.html">2009</a></li><li><a href="../news/20081001.html">2008</a></li><li><a href="../news/20070301.html">2007</a></li><li><a href="../news/20060101.html">2006</a></li><li><a href="../news/20050101.html">2005</a></li><li><a href="../news/20041100.html">2004</a></li></ul></td><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left"><table border="0" width="100%" cellspacing="4"><tr><td align="left" valign="top"><h1>The Apache Tomcat Connector - News</h1><h2>2010 News and Status</h2></td><td align="right" valign="top" nowrap="true"><small><a href="printer/20100101.html"><img src="../images/printer.gif" border="0" alt="Printer Friendly Version"><br>print-friendly<br>version
+ </a></small></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="2010 News &amp; Status"><strong>2010 News &amp; Status</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="1 November - JK-1.2.31 released"><strong>1 November - JK-1.2.31 released</strong></a></font></td></tr><tr><td><blockquote>
+ <a name="20101101.1"></a>
+ <br>
+ <p>The Apache Tomcat team is proud to announce the immediate availability
+ of Tomcat Connectors 1.2.31. This is a stable release concentrating mainly on
+ some bug fixes.
+ </p><p>
+ Please see the <a href="../miscellaneous/changelog.html">ChangeLog</a> for a full list of changes.
+ </p>
+ <p>If you find any bugs while using this release, please fill in the
+ <a href="https://issues.apache.org/bugzilla/enter_bug.cgi?product=Tomcat%20Connectors">Bugzilla</a>
+ Bug Report.
+ </p>
+</blockquote></td></tr></table>
+
+<br>
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="1 March - JK-1.2.30 released"><strong>1 March - JK-1.2.30 released</strong></a></font></td></tr><tr><td><blockquote>
+<a name="20100301.1"></a>
+<br>
+<p>The Apache Tomcat team is proud to announce the immediate availability
+of Tomcat Connectors 1.2.30. This is a stable release concentrating mainly on
+some bug fixes.
+</p><p>
+ Please see the <a href="../miscellaneous/changelog.html">ChangeLog</a> for a full list of changes.
+</p>
+<p>If you find any bugs while using this release, please fill in the
+<a href="https://issues.apache.org/bugzilla/enter_bug.cgi?product=Tomcat%20Connectors">Bugzilla</a>
+Bug Report.
+</p>
+</blockquote></td></tr></table>
+
+<br>
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="1 March - JK-1.2.29 withdrawn"><strong>1 March - JK-1.2.29 withdrawn</strong></a></font></td></tr><tr><td><blockquote>
+<a name="20100301.2"></a>
+<br>
+<p>Tomcat Connectors 1.2.29 has been withdrawn because of regression inside
+Microsoft IIS connector.
+</p>
+</blockquote></td></tr></table>
+
+<br>
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="26 February - JK-1.2.29 released"><strong>26 February - JK-1.2.29 released</strong></a></font></td></tr><tr><td><blockquote>
+<a name="20100226.3"></a>
+<br>
+<p>The Apache Tomcat team is proud to announce the immediate availability
+of Tomcat Connectors 1.2.29. This is a stable release concentrating mainly on
+some bug fixes.
+</p><p>
+ Please see the <a href="../miscellaneous/changelog.html">ChangeLog</a> for a full list of changes.
+</p>
+<p>If you find any bugs while using this release, please fill in the
+<a href="https://issues.apache.org/bugzilla/enter_bug.cgi?product=Tomcat%20Connectors">Bugzilla</a>
+Bug Report.
+</p>
+
+</blockquote></td></tr></table>
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright &copy; 1999-2011, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html> \ No newline at end of file
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/docs/news/20110701.html b/rubbos/app/tomcat-connectors-1.2.32-src/docs/news/20110701.html
new file mode 100644
index 00000000..3a03fd0d
--- /dev/null
+++ b/rubbos/app/tomcat-connectors-1.2.32-src/docs/news/20110701.html
@@ -0,0 +1,22 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>The Apache Tomcat Connector - News - 2011 News and Status</title><meta name="author" value="Apache Tomcat Connectors Project"><meta name="email" value="dev.AT.tomcat.DOT.apache.DOT.org"><link href="../style.css" type="text/css" rel="stylesheet"></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="4"><!--PAGE HEADER--><tr><td colspan="2"><!--TOMCAT LOGO--><a href="http://tomcat.apache.org/"><img src="../images/tomcat.gif" align="left" alt="Apache Tomcat" border="0"></a><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="http://www.apache.org/images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><tr><!--LEFT SIDE NAVIGATION--><td width="20%" valign="top" nowrap="true"><p><strong>Links</strong></p><ul><li><a href="../index.html">Docs Home</a></li></ul><p><strong>Reference Guide</strong></p><ul><li><a href="../reference/workers.html">workers.properties</a></li><li><a href="../reference/uriworkermap.html">uriworkermap.properties</a></li><li><a href="../reference/status.html">Status Worker</a></li><li><a href="../reference/apache.html">Apache HTTP Server</a></li><li><a href="../reference/iis.html">IIS</a></li></ul><p><strong>Generic HowTo</strong></p><ul><li><a href="../generic_howto/quick.html">For the impatient</a></li><li><a href="../generic_howto/workers.html">All about workers</a></li><li><a href="../generic_howto/timeouts.html">Timeouts</a></li><li><a href="../generic_howto/loadbalancers.html">Load Balancing</a></li><li><a href="../generic_howto/proxy.html">Reverse Proxy</a></li></ul><p><strong>Webserver HowTo</strong></p><ul><li><a href="../webserver_howto/apache.html">Apache HTTP Server</a></li><li><a href="../webserver_howto/iis.html">IIS</a></li><li><a href="../webserver_howto/nes.html">Netscape/SunOne/Sun</a></li></ul><p><strong>AJP Protocol Reference</strong></p><ul><li><a href="../ajp/ajpv13a.html">AJPv13</a></li><li><a href="../ajp/ajpv13ext.html">AJPv13 Extension Proposal</a></li></ul><p><strong>Miscellaneous Documentation</strong></p><ul><li><a href="../miscellaneous/faq.html">Frequently asked questions</a></li><li><a href="../miscellaneous/changelog.html">Changelog</a></li><li><a href="http://issues.apache.org/bugzilla/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Tomcat+Connectors&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=">Current Tomcat Connectors bugs</a></li><li><a href="../miscellaneous/doccontrib.html">Contribute documentation</a></li><li><a href="../miscellaneous/jkstatustasks.html">JK Status Ant Tasks</a></li><li><a href="../miscellaneous/reporttools.html">Reporting Tools</a></li><li><a href="http://tomcat.apache.org/connectors-doc-archive/jk2/index.html">Old JK/JK2 documentation</a></li></ul><p><strong>News</strong></p><ul><li><a href="../news/20110701.html">2011</a></li><li><a href="../news/20100101.html">2010</a></li><li><a href="../news/20090301.html">2009</a></li><li><a href="../news/20081001.html">2008</a></li><li><a href="../news/20070301.html">2007</a></li><li><a href="../news/20060101.html">2006</a></li><li><a href="../news/20050101.html">2005</a></li><li><a href="../news/20041100.html">2004</a></li></ul></td><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left"><table border="0" width="100%" cellspacing="4"><tr><td align="left" valign="top"><h1>The Apache Tomcat Connector - News</h1><h2>2011 News and Status</h2></td><td align="right" valign="top" nowrap="true"><small><a href="printer/20110701.html"><img src="../images/printer.gif" border="0" alt="Printer Friendly Version"><br>print-friendly<br>version
+ </a></small></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="2011 News &amp; Status"><strong>2011 News &amp; Status</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="8 July - JK-1.2.32 released"><strong>8 July - JK-1.2.32 released</strong></a></font></td></tr><tr><td><blockquote>
+ <a name="20110701.1"></a>
+ <br>
+ <p>The Apache Tomcat team is proud to announce the immediate availability
+ of Tomcat Connectors 1.2.32. This is a stable release concentrating mainly on
+ some bug fixes.
+ </p><p>
+ Please see the <a href="../miscellaneous/changelog.html">ChangeLog</a> for a full list of changes.
+ </p>
+ <p>If you find any bugs while using this release, please fill in the
+ <a href="https://issues.apache.org/bugzilla/enter_bug.cgi?product=Tomcat%20Connectors">Bugzilla</a>
+ Bug Report.
+ </p>
+</blockquote></td></tr></table>
+
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright &copy; 1999-2011, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html> \ No newline at end of file
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/docs/news/printer/20041100.html b/rubbos/app/tomcat-connectors-1.2.32-src/docs/news/printer/20041100.html
new file mode 100644
index 00000000..88151b57
--- /dev/null
+++ b/rubbos/app/tomcat-connectors-1.2.32-src/docs/news/printer/20041100.html
@@ -0,0 +1,125 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>The Apache Tomcat Connector - News - 2004 News and Status</title><meta name="author" value="Apache Jakarta Project"><meta name="email" value="general.AT.tomcat.DOT.apache.DOT.org"><link href="../../style.css" type="text/css" rel="stylesheet"></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="4"><!--PAGE HEADER--><tr><td colspan="2"><!--TOMCAT LOGO--><a href="http://tomcat.apache.org/"><img src="../../images/tomcat.gif" align="left" alt="Apache Tomcat" border="0"></a><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="http://www.apache.org/images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><tr><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left"><table border="0" width="100%" cellspacing="4"><tr><td align="left" valign="top"><h1>The Apache Tomcat Connector - News</h1><h2>2004 News and Status</h2></td><td align="right" valign="top" nowrap="true"><img src="../../images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="2004 News &amp; Status"><strong>2004 News &amp; Status</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+
+<a name="20041224.1">
+<h3>17 December - JK-1.2.8 released</h3>
+</a>
+<p>The Apache Jakarta Tomcat team is proud to announce the immediate availability
+of Jakarta Tomcat Connectors 1.2.8.
+</p>
+<p>
+ Please see the <a href="../../miscellaneous/changelog.html">ChangeLog</a> for a full list of changes.
+</p>
+<p>If you find any bugs during testing this release, please fill in the
+<a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Tomcat%205">Bugzilla</a>
+Bug Report. When entering bug select <b>Native:JK</b> Component.
+</p>
+<hr size="1" noshade>
+<a name="20041218.1">
+<h3>17 December - JK-1.2.8-rc-1 released</h3>
+</a>
+<p>The Apache Jakarta Tomcat team is proud to announce the immediate availability
+of Jakarta Tomcat Connectors 1.2.8-rc-1 (Relase Canditate 1).
+</p>
+<p>
+We expect it to be ratified as a Stable release when the vote takes place
+in the next week.
+</p>
+<p>
+ Please see the <a href="../../miscellaneous/changelog.html">ChangeLog</a> for a full list of changes.
+</p>
+<p>If you find any bugs during testing this release, please fill in the
+<a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Tomcat%205">Bugzilla</a>
+Bug Report. When entering bug select <b>Native:JK</b> Component.
+</p>
+<hr size="1" noshade>
+<a name="20041213.1">
+<h3>13 December - JK-1.2.7-beta-3 released</h3>
+</a>
+<p>The Apache Jakarta Tomcat team is proud to announce the immediate availability
+of Jakarta Tomcat Connectors 1.2.7-beta-3. The release contains a fix to few configuration
+problems detected with JK-1.2.7-beta-2 version.
+</p>
+<p>
+We expect it to be ratified as a Stable release when the vote takes place
+in the next week.
+</p>
+<p>
+ Please see the <a href="../../miscellaneous/changelog.html">ChangeLog</a> for a full list of changes.
+</p>
+<p>If you find any bugs during testing this release, please fill in the
+<a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Tomcat%205">Bugzilla</a>
+Bug Report. When entering bug select <b>Native:JK</b> Component.
+</p>
+<hr size="1" noshade>
+<a name="20041207.1">
+<h3>7 December - JK-1.2.7-beta-2 released</h3>
+</a>
+<p>The Apache Jakarta Tomcat team is proud to announce the immediate availability
+of Jakarta Tomcat Connectors 1.2.7-beta-2. The release contains a fix to few compilation
+problems detected with JK-1.2.7-beta version. This release also introduces a new
+<b>domain</b> concept clustering support. See <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=32317">32317</a> for details.
+</p>
+<p>
+We expect it to be ratified as a Stable release when the vote takes place
+in the next two weeks.
+</p>
+<p>
+ Please see the <a href="../../miscellaneous/changelog.html">ChangeLog</a> for a full list of changes.
+</p>
+<p>If you find any bugs during testing this release, please fill in the
+<a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Tomcat%205">Bugzilla</a>
+Bug Report. When entering bug select <b>Native:JK</b> Component.
+</p>
+<hr size="1" noshade>
+
+<a name="20041130.1">
+<h3>30 November - JK-1.2.7-beta released</h3>
+</a>
+<p>The Apache Jakarta Tomcat team is proud to announce the immediate availability
+of Jakarta Tomcat Connectors 1.2.7-beta. The release contains a significant number
+of bug fixes and new features.
+</p>
+<p>
+We expect it to be ratified as a Stable release when the vote takes place
+in the next two weeks.
+</p>
+<p>
+ Please see the <a href="../../miscellaneous/changelog.html">ChangeLog</a> for a full list of changes.
+</p>
+<p><font color="#ff0000">
+Since release 1.2.7 the <b>socket_timeout</b> property has been renamed to
+<b>recycle_timeout</b>.
+The socket_timeout now sets the real timeout for socket operations.
+</font></p>
+<p>If you find any bugs during testing this release, please fill in the
+<a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Tomcat%205">Bugzilla</a>
+Bug Report. When entering bug select <b>Native:JK</b> Component.
+</p>
+
+<hr size="1" noshade>
+
+<a name="20041115.1">
+<h3>15 November - JK2 is officially unsupported</h3>
+</a>
+<p>JK2 has been put in maintainer mode and no further development will take place.
+The reason for shutting down JK2 development was the lack of developers interest.
+Other reason was lack of users interest in adopting JK2, caused by configuration
+complexity when compared to JK.
+</p>
+<p>The latest official JK2 release is 2.0.4.
+</p>
+<p>JK2 will have it's successor within core Apache2.1/2.2 distribution.
+We have developed new <b>proxy_ajp</b> that is an addition to
+the mod_proxy and uses Tomcat's AJP protocol stack. It is developped in httpd-2.1
+and integrated in it. We have also developed a new <b>proxy_balancer</b> module
+for load balancing http and ajp protocol stacks.
+</p>
+<p>JK will be fully supported for all other web servers. The next JK release is
+planned for the end of November. Lots of code from JK2 has been ported to JK
+</p>
+<hr size="1" noshade>
+
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright &copy; 1999-2011, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html> \ No newline at end of file
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/docs/news/printer/20050101.html b/rubbos/app/tomcat-connectors-1.2.32-src/docs/news/printer/20050101.html
new file mode 100644
index 00000000..35ef948f
--- /dev/null
+++ b/rubbos/app/tomcat-connectors-1.2.32-src/docs/news/printer/20050101.html
@@ -0,0 +1,138 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>The Apache Tomcat Connector - News - 2005 News and Status</title><meta name="author" value="Apache Jakarta Project"><meta name="email" value="general.AT.tomcat.DOT.apache.DOT.org"><link href="../../style.css" type="text/css" rel="stylesheet"></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="4"><!--PAGE HEADER--><tr><td colspan="2"><!--TOMCAT LOGO--><a href="http://tomcat.apache.org/"><img src="../../images/tomcat.gif" align="left" alt="Apache Tomcat" border="0"></a><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="http://www.apache.org/images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><tr><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left"><table border="0" width="100%" cellspacing="4"><tr><td align="left" valign="top"><h1>The Apache Tomcat Connector - News</h1><h2>2005 News and Status</h2></td><td align="right" valign="top" nowrap="true"><img src="../../images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="2005 News &amp; Status"><strong>2005 News &amp; Status</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+
+<a name="20051108.1">
+<h3>8 November - JK-1.2.15 released</h3>
+</a>
+<p>The Apache Tomcat team is proud to announce the immediate availability
+of Jakarta Tomcat Connectors 1.2.15. This is Stable release and it contains
+few bug fixes found in 1.2.14 version.
+</p>
+<p>
+ Please see the <a href="../../miscellaneous/changelog.html">ChangeLog</a> for a full list of changes.
+</p>
+<p>If you find any bugs while using this release, please fill in the
+<a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Tomcat%205">Bugzilla</a>
+Bug Report. When entering bug select <b>Native:JK</b> Component.
+</p>
+<hr size="1" noshade>
+
+<a name="20050713.1">
+<h3>13 July - JK-1.2.14 released</h3>
+</a>
+<p>The Apache Tomcat team is proud to announce the immediate availability
+of Jakarta Tomcat Connectors 1.2.14. This is Stable release and it contains
+few bug fixes found in 1.2.13 version.
+</p>
+<p>
+ Please see the <a href="../../miscellaneous/changelog.html">ChangeLog</a> for a full list of changes.
+</p>
+<p>If you find any bugs while using this release, please fill in the
+<a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Tomcat%205">Bugzilla</a>
+Bug Report. When entering bug select <b>Native:JK</b> Component.
+</p>
+<hr size="1" noshade>
+<a name="20050516.1">
+<h3>7 May - JK-1.2.13 released</h3>
+</a>
+<p>The Apache Jakarta Tomcat team is proud to announce the immediate availability
+of Jakarta Tomcat Connectors 1.2.13. This is development release and contains
+few bug fixes found in 1.2.12 version.
+</p>
+<p>
+ Please see the <a href="../../miscellaneous/changelog.html">ChangeLog</a> for a full list of changes.
+</p>
+<p>If you find any bugs while using this release, please fill in the
+<a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Tomcat%205">Bugzilla</a>
+Bug Report. When entering bug select <b>Native:JK</b> Component.
+</p>
+<hr size="1" noshade>
+<a name="20050507.1">
+<h3>7 May - JK-1.2.12 released</h3>
+</a>
+<p>The Apache Jakarta Tomcat team is proud to announce the immediate availability
+of Jakarta Tomcat Connectors 1.2.12 The release contains a significant number
+of bug fixes and new features.
+</p>
+<p>
+We expect it to be ratified as a Stable release when the vote takes place
+in the next week.
+</p>
+<p>
+ Please see the <a href="../../miscellaneous/changelog.html">ChangeLog</a> for a full list of changes.
+</p>
+<p>If you find any bugs while using this release, please fill in the
+<a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Tomcat%205">Bugzilla</a>
+Bug Report. When entering bug select <b>Native:JK</b> Component.
+</p>
+<hr size="1" noshade>
+<a name="20050429.1">
+<h3>29 April - JK-1.2.11 released</h3>
+</a>
+<p>The Apache Jakarta Tomcat team is proud to announce the immediate availability
+of Jakarta Tomcat Connectors 1.2.11 The release contains a significant number
+of bug fixes and new features.
+</p>
+<p>
+This version has not been released.
+</p>
+<p>
+ Please see the <a href="../../miscellaneous/changelog.html">ChangeLog</a> for a full list of changes.
+</p>
+<p>If you find any bugs while using this release, please fill in the
+<a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Tomcat%205">Bugzilla</a>
+Bug Report. When entering bug select <b>Native:JK</b> Component.
+</p>
+<hr size="1" noshade>
+<a name="20050330.1">
+<h3>30 March - JK-1.2.10 released</h3>
+</a>
+<p>The Apache Jakarta Tomcat team is proud to announce the immediate availability
+of Jakarta Tomcat Connectors 1.2.10 The release contains a significant number
+of bug fixes and new features.
+</p>
+<p>
+We expect it to be ratified as a Stable release when the vote takes place
+in the next two weeks.
+</p>
+<p>
+ Please see the <a href="../../miscellaneous/changelog.html">ChangeLog</a> for a full list of changes.
+</p>
+<p><font color="#ff0000">
+Since release 1.2.10 the <b>JkShmFile</b> property has been added for
+Apache 1.3.x and Apache 2.x web servers on UNIX and LINUX platforms.
+Load balancer will not work properly if this directive is not present.
+</font></p>
+<p>If you find any bugs while using this release, please fill in the
+<a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Tomcat%205">Bugzilla</a>
+Bug Report. When entering bug select <b>Native:JK</b> Component.
+</p>
+<hr size="1" noshade>
+<a name="20050318.1">
+<h3>18 March - JK-1.2.9-beta released</h3>
+</a>
+<p>The Apache Jakarta Tomcat team is proud to announce the immediate availability
+of Jakarta Tomcat Connectors 1.2.9-beta. The release contains a significant number
+of bug fixes and new features.
+</p>
+<p>
+We expect it to be ratified as a Stable release when the vote takes place
+in the next two weeks.
+</p>
+<p>
+ Please see the <a href="../../miscellaneous/changelog.html">ChangeLog</a> for a full list of changes.
+</p>
+<p><font color="#ff0000">
+Since release 1.2.9 the <b>JkShmFile</b> property has been added for
+Apache 1.3.x and Apache 2.x web servers on UNIX and LINUX platforms.
+Load balancer will not work properly if this directive is not present.
+</font></p>
+<p>If you find any bugs during testing this release, please fill in the
+<a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Tomcat%205">Bugzilla</a>
+Bug Report. When entering bug select <b>Native:JK</b> Component.
+</p>
+<hr size="1" noshade>
+
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright &copy; 1999-2011, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html> \ No newline at end of file
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/docs/news/printer/20060101.html b/rubbos/app/tomcat-connectors-1.2.32-src/docs/news/printer/20060101.html
new file mode 100644
index 00000000..9ee056e2
--- /dev/null
+++ b/rubbos/app/tomcat-connectors-1.2.32-src/docs/news/printer/20060101.html
@@ -0,0 +1,79 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>The Apache Tomcat Connector - News - 2006 News and Status</title><meta name="author" value="Apache Tomcat Connectors Project"><meta name="email" value="general.AT.tomcat.DOT.apache.DOT.org"><link href="../../style.css" type="text/css" rel="stylesheet"></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="4"><!--PAGE HEADER--><tr><td colspan="2"><!--TOMCAT LOGO--><a href="http://tomcat.apache.org/"><img src="../../images/tomcat.gif" align="left" alt="Apache Tomcat" border="0"></a><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="http://www.apache.org/images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><tr><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left"><table border="0" width="100%" cellspacing="4"><tr><td align="left" valign="top"><h1>The Apache Tomcat Connector - News</h1><h2>2006 News and Status</h2></td><td align="right" valign="top" nowrap="true"><img src="../../images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="2006 News &amp; Status"><strong>2006 News &amp; Status</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<a name="20061210.1">
+<h3>10 December - JK-1.2.20 released</h3>
+</a>
+<p>The Apache Tomcat team is proud to announce the immediate availability
+of Tomcat Connectors 1.2.20. This is a stable release adding new features
+and a few bug fixes to version 1.2.19.
+Furthermore the documentation has been reorganised.
+</p>
+<p>
+ Please see the <a href="../../miscellaneous/changelog.html">ChangeLog</a> for a full list of changes.
+</p>
+<p>If you find any bugs while using this release, please fill in the
+<a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Tomcat%205">Bugzilla</a>
+Bug Report. When entering bug select <b>Native:JK</b> Component.
+</p>
+<hr size="1" noshade>
+
+<a name="20060917.1">
+<h3>17 September - JK-1.2.19 released</h3>
+</a>
+<p>The Apache Tomcat team is proud to announce the immediate availability
+of Tomcat Connectors 1.2.19. This is a stable release adding some features
+and a few bug fixes to version 1.2.18.
+Furthermore the non-functional code trees for isapi and domino have been removed.
+</p>
+<p>
+ Please see the <a href="../../miscellaneous/changelog.html">ChangeLog</a> for a full list of changes.
+</p>
+<p>If you find any bugs while using this release, please fill in the
+<a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Tomcat%205">Bugzilla</a>
+Bug Report. When entering bug select <b>Native:JK</b> Component.
+</p>
+<hr size="1" noshade>
+
+<a name="20060720.1">
+<h3>13 July - JK-1.2.18 released</h3>
+</a>
+<p>The Apache Tomcat team is proud to announce the immediate availability
+of Tomcat Connectors 1.2.18. This is a stable release adding
+a few bug fixes to the not released 1.2.17 version.
+</p>
+<p>
+ Please see the <a href="../../miscellaneous/changelog.html">ChangeLog</a> for a full list of changes.
+</p>
+<p>If you find any bugs while using this release, please fill in the
+<a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Tomcat%205">Bugzilla</a>
+Bug Report. When entering bug select <b>Native:JK</b> Component.
+</p>
+<hr size="1" noshade>
+
+<a name="20060708.1">
+<h3>JK-1.2.17 not released</h3>
+</a>
+<p>Version 1.2.17 of Tomcat Connectors 1.2.17 has not been released
+due to a bug in the types chosen for socket arguments.
+</p>
+<p>
+ Please see the <a href="../../miscellaneous/changelog.html">ChangeLog</a> for a full list of changes.
+</p>
+<hr size="1" noshade>
+
+<a name="20060606.1">
+<h3>JK-1.2.16 not released</h3>
+</a>
+<p>Version 1.2.16 of Tomcat Connectors 1.2.16 has not been released
+due to a bug in the jk status worker. This version adds some features
+and a few bug fixes to the 1.2.15 version. Furthermore some worker attributes
+have been <a href="../../reference/workers.html">deprecated</a>.
+</p>
+<p>
+ Please see the <a href="../../miscellaneous/changelog.html">ChangeLog</a> for a full list of changes.
+</p>
+<hr size="1" noshade>
+
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright &copy; 1999-2011, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html> \ No newline at end of file
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/docs/news/printer/20070301.html b/rubbos/app/tomcat-connectors-1.2.32-src/docs/news/printer/20070301.html
new file mode 100644
index 00000000..c6a84044
--- /dev/null
+++ b/rubbos/app/tomcat-connectors-1.2.32-src/docs/news/printer/20070301.html
@@ -0,0 +1,86 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>The Apache Tomcat Connector - News - 2007 News and Status</title><meta name="author" value="Apache Tomcat Connectors Project"><meta name="email" value="general.AT.tomcat.DOT.apache.DOT.org"><link href="../../style.css" type="text/css" rel="stylesheet"></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="4"><!--PAGE HEADER--><tr><td colspan="2"><!--TOMCAT LOGO--><a href="http://tomcat.apache.org/"><img src="../../images/tomcat.gif" align="left" alt="Apache Tomcat" border="0"></a><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="http://www.apache.org/images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><tr><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left"><table border="0" width="100%" cellspacing="4"><tr><td align="left" valign="top"><h1>The Apache Tomcat Connector - News</h1><h2>2007 News and Status</h2></td><td align="right" valign="top" nowrap="true"><img src="../../images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="2007 News &amp; Status"><strong>2007 News &amp; Status</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<a name="20071221.1">
+<h3>21 December - JK-1.2.26 released</h3>
+</a>
+<p>The Apache Tomcat team is proud to announce the immediate availability
+of Tomcat Connectors 1.2.26. This is a stable release adding few new features
+and some bug fixes.
+</p><p>
+ Please see the <a href="../../miscellaneous/changelog.html">ChangeLog</a> for a full list of changes.
+</p>
+<p>If you find any bugs while using this release, please fill in the
+<a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Tomcat%206">Bugzilla</a>
+Bug Report. When entering bug select <b>Native:JK</b> Component.
+</p>
+<hr size="1" noshade>
+<a name="20070807.1">
+<h3>7 August - JK-1.2.25 released</h3>
+</a>
+<p>The Apache Tomcat team is proud to announce the immediate availability
+of Tomcat Connectors 1.2.25. This is a stable release adding new features
+and a few bug fixes.
+</p><p>
+ Please see the <a href="../../miscellaneous/changelog.html">ChangeLog</a> for a full list of changes.
+</p>
+<p>If you find any bugs while using this release, please fill in the
+<a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Tomcat%206">Bugzilla</a>
+Bug Report. When entering bug select <b>Native:JK</b> Component.
+</p>
+<hr size="1" noshade>
+<a name="20070727.1">
+<h3>27 July - JK-1.2.24 released</h3>
+</a>
+<p><b>This release has been withdrawn.</b>
+</p>
+<hr size="1" noshade>
+<a name="20070518.1">
+<h3>18 May - JK-1.2.23 released</h3>
+</a>
+<p>The Apache Tomcat team is proud to announce the immediate availability
+of Tomcat Connectors 1.2.23. This is a stable release adding new features
+and a few bug fixes to version 1.2.23.
+</p><p>
+It fixes an <a href="http://tomcat.apache.org/security-jk.html">Important vulnerability</a>.
+</p><p>
+ Please see the <a href="../../miscellaneous/changelog.html">ChangeLog</a> for a full list of changes.
+</p>
+<p>If you find any bugs while using this release, please fill in the
+<a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Tomcat%205">Bugzilla</a>
+Bug Report. When entering bug select <b>Native:JK</b> Component.
+</p>
+<hr size="1" noshade>
+<a name="20070417.1">
+<h3>17 April - JK-1.2.22 released</h3>
+</a>
+<p>The Apache Tomcat team is proud to announce the immediate availability
+of Tomcat Connectors 1.2.22. This is a stable release adding new features
+and a few bug fixes to version 1.2.22.
+</p><p>
+ Please see the <a href="../../miscellaneous/changelog.html">ChangeLog</a> for a full list of changes.
+</p>
+<p>If you find any bugs while using this release, please fill in the
+<a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Tomcat%205">Bugzilla</a>
+Bug Report. When entering bug select <b>Native:JK</b> Component.
+</p>
+<hr size="1" noshade>
+<a name="20070301.1">
+<h3>1 March - JK-1.2.21 released</h3>
+</a>
+<p>The Apache Tomcat team is proud to announce the immediate availability
+of Tomcat Connectors 1.2.21. This is a stable release adding new features
+and a few bug fixes to version 1.2.20.
+</p><p>
+It fixes a <a href="http://tomcat.apache.org/security-jk.html">Critical vulnerability</a> introduced in version 1.2.19
+</p><p>
+ Please see the <a href="../../miscellaneous/changelog.html">ChangeLog</a> for a full list of changes.
+</p>
+<p>If you find any bugs while using this release, please fill in the
+<a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Tomcat%205">Bugzilla</a>
+Bug Report. When entering bug select <b>Native:JK</b> Component.
+</p>
+<hr size="1" noshade>
+
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright &copy; 1999-2011, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html> \ No newline at end of file
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/docs/news/printer/20081001.html b/rubbos/app/tomcat-connectors-1.2.32-src/docs/news/printer/20081001.html
new file mode 100644
index 00000000..c8d5dcf2
--- /dev/null
+++ b/rubbos/app/tomcat-connectors-1.2.32-src/docs/news/printer/20081001.html
@@ -0,0 +1,157 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>The Apache Tomcat Connector - News - 2008 News and Status</title><meta name="author" value="Apache Tomcat Connectors Project"><meta name="email" value="dev.AT.tomcat.DOT.apache.DOT.org"><link href="../../style.css" type="text/css" rel="stylesheet"></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="4"><!--PAGE HEADER--><tr><td colspan="2"><!--TOMCAT LOGO--><a href="http://tomcat.apache.org/"><img src="../../images/tomcat.gif" align="left" alt="Apache Tomcat" border="0"></a><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="http://www.apache.org/images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><tr><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left"><table border="0" width="100%" cellspacing="4"><tr><td align="left" valign="top"><h1>The Apache Tomcat Connector - News</h1><h2>2008 News and Status</h2></td><td align="right" valign="top" nowrap="true"><img src="../../images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="2008 News &amp; Status"><strong>2008 News &amp; Status</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="28 October - JK-1.2.27 released"><strong>28 October - JK-1.2.27 released</strong></a></font></td></tr><tr><td><blockquote>
+<a name="20081028.1"></a>
+<br>
+<p>The Apache Tomcat team is proud to announce the immediate availability
+of Tomcat Connectors 1.2.27. This is a stable release adding lots of new features
+and some bug fixes.
+</p><p>
+ Please see the <a href="../../miscellaneous/changelog.html">ChangeLog</a> for a full list of changes.
+</p>
+<p>If you find any bugs while using this release, please fill in the
+<a href="https://issues.apache.org/bugzilla/enter_bug.cgi?product=Tomcat%20Connectors">Bugzilla</a>
+Bug Report.
+</p>
+<p>
+The most important new features in this version are:
+</p>
+<h3>Watchdog Thread for Periodic Tasks</h3>
+<p>
+The connector has to run some periodic tasks independant of
+request processing. Examples are probing or closing down idle backend
+connections, adjusting load numbers and recovering workers from error state.
+</p>
+<p>
+Before version 1.2.27 these tasks were done inside the request processing loop.
+When a new request came in and the task was due, the thread handling the
+request first executed the internal task and then handled the request.
+If there were no requests coming in, the tasks would not run. If any of
+the tasks took unexpectedly long, the response time of the request waiting
+for the finishing of the task went up.
+</p>
+<p>
+Starting with this release you can configure a separate watchdog thread inside
+the web server to run all those tasks independantly of request processing.
+This new feature is avaliable for the connector when used with Apache httpd 2.x
+or with Microsoft IIS. To keep the behaviour of the new version consistent
+with previous releases, this feature is turned off by default.
+You can activate the watchdog thread via
+<a href="../../reference/apache.html"><b class="code">JkWatchdogInterval</b></a>
+for Apache or
+<a href="../../reference/iis.html"><b class="code">watchdog_interval</b></a>
+for IIS.
+</p>
+<h3>Connection Probing</h3>
+<p>
+In previous releases connection probing (checking whether connections still work)
+could only be done immediately after a new connection was established and
+directly before sending each request. Since we now have the watchdog
+thread available, we also added a periodic probing option, which you
+can activate with the worker attribute
+<a href="../../reference/workers.html"><b class="code">ping_mode</b></a>.
+This will also be useful as a protection against the infamous firewall
+idle connection drop.
+</p>
+<p>
+The older attributes <b class="code">connect_timeout</b> and <b class="code">prepost_timeout</b>
+still exist and work the same way they did in previous releases.
+Since there are now three different probing options, we recommend to migrate
+your configuration to the newer attributes <b class="code">ping_mode</b>,
+<b class="code">ping_timeout</b> and <b class="code">connection_ping_interval</b>.
+</p>
+<h3>Mount Extensions</h3>
+<p>
+Usually one defines workers and mounts for the connector.
+A worker defines a backend we want to talk to and the configuration parameters of the
+communication, connection pools etc. The mounts define which URIs we want to forward to
+which worker (so we also call a mount an URI map rule).
+In version 1.2.27 you can overwrite certain worker parameter per mount.
+</p>
+<p>
+One easy to understand example is reply timeouts. Until this release you had to specify
+a reply timeout for the whole worker. But reply times depend a lot on the type of
+request. So normally you want to define a general reply timeout and
+for some special URLs you need to relax the reply timeout, because you know those
+URLs take much longer to process (like e.g. reporting or other compute intensive tasks).
+</p>
+<p>
+Another possible case is the activation status. You might use a load balancer worker to
+forward requests to certain webapps in a farm of Tomcat nodes. If you wanted
+to update some webapp on one node, you previously had to stop forwarding requests for
+all webapps on this Tomcat node. What was not possible until now, was stopping forwarding
+requests restricted to the webapp and the node you wanted to update.
+</p>
+<p>
+Starting with this release, you can add so-called
+<a href="../../reference/uriworkermap.html#Rule extensions">rule extensions</a>
+to your uriworkermap file to influence worker parameters per mount. This will
+work for all Apache versions and for IIS. Remember, that
+the uriworkermap file automatically gets reloaded after changes without web server
+restart.
+</p>
+<h3>Improved IIS support</h3>
+<p>
+We improved IIS support im various ways. It is now possible to use
+multiple IIS 6 application pools with the ISAPI redirector.
+</p>
+<p>
+Furthermore some improvements were added as compile time features.
+The most notable one is chunked encoding support, which was a major
+refactoring and is therefore still considered experimental. You can
+download binaries with and without chunked encoding support. In future
+versions, chunked encoding will likely be availabe in all builds.
+</p>
+<p>
+Another new feature is an elegant way of configuring error page redirects.
+All new features are documented on the documentation page about
+<a href="../../reference/iis.html">configuring IIS</a>.
+</p>
+<h3>Enhanced Status Worker</h3>
+<p>
+The
+<a href="../../reference/status.html">status worker</a>
+now can also manage and show statistics for AJP workers that
+are not part of a load balancer. Other improvements are the new <b class="code">dump</b>
+action, the integration of the new configuration attributes, showing average
+request and transfer rates since the last statistics reset and the ability to
+display only a single member of a load balancer.
+</p>
+<p>
+Unfortunately we had to change
+<a href="../../reference/status.html#Data Parameters for the standard Update Action">some request parameters</a>
+used for the <b class="code">update</b> action of the status worker.
+</p>
+<h3>Miscellaneous Improvements</h3>
+<p>
+Further enhancements are:
+<ul>
+<li>
+Configurable session stickyness indicator: cookie name and URL path
+parameter name can be freely chosen instead of the servlet spec compliant
+<b class="code">JSESSIONID</b> and <b class="code">;jsessionid</b>.
+</li>
+<li>
+Automatically determining the size of the shared memory segment needed
+to accommodate all workers.
+</li>
+<li>
+New connection establishment timeout <b class="code">socket_connect_timeout</b>.
+</li>
+<li>
+New timeout <b class="code">connection_acquire_timeout</b> for acquiring a free connection from
+the pool.
+</li>
+<li>
+Improved retry handling by adjusting the meaning of the attribute <b class="code">retries</b> for
+AJP workers and for load balancers and by adding the new <b class="code">retry_interval</b>.
+</li>
+<li>
+Allowing the web server to provide error pages instead of Tomcat.
+</li>
+</ul>
+</p>
+</blockquote></td></tr></table>
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright &copy; 1999-2011, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html> \ No newline at end of file
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/docs/news/printer/20090301.html b/rubbos/app/tomcat-connectors-1.2.32-src/docs/news/printer/20090301.html
new file mode 100644
index 00000000..eb54c79e
--- /dev/null
+++ b/rubbos/app/tomcat-connectors-1.2.32-src/docs/news/printer/20090301.html
@@ -0,0 +1,62 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>The Apache Tomcat Connector - News - 2009 News and Status</title><meta name="author" value="Apache Tomcat Connectors Project"><meta name="email" value="dev.AT.tomcat.DOT.apache.DOT.org"><link href="../../style.css" type="text/css" rel="stylesheet"></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="4"><!--PAGE HEADER--><tr><td colspan="2"><!--TOMCAT LOGO--><a href="http://tomcat.apache.org/"><img src="../../images/tomcat.gif" align="left" alt="Apache Tomcat" border="0"></a><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="http://www.apache.org/images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><tr><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left"><table border="0" width="100%" cellspacing="4"><tr><td align="left" valign="top"><h1>The Apache Tomcat Connector - News</h1><h2>2009 News and Status</h2></td><td align="right" valign="top" nowrap="true"><img src="../../images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="2009 News &amp; Status"><strong>2009 News &amp; Status</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="22 March - JK-1.2.28 released"><strong>22 March - JK-1.2.28 released</strong></a></font></td></tr><tr><td><blockquote>
+<a name="20090322.1"></a>
+<br>
+<p>The Apache Tomcat team is proud to announce the immediate availability
+of Tomcat Connectors 1.2.28. This is a stable release concentrating mainly on
+some bug fixes.
+</p><p>
+ Please see the <a href="../../miscellaneous/changelog.html">ChangeLog</a> for a full list of changes.
+</p>
+<p>If you find any bugs while using this release, please fill in the
+<a href="https://issues.apache.org/bugzilla/enter_bug.cgi?product=Tomcat%20Connectors">Bugzilla</a>
+Bug Report.
+</p>
+<p>
+The most important new features in this version are:
+</p>
+<h3>Better Error Detection for Load Balancer Workers</h3>
+<p>
+Local and global error states have been improved. You can fine tune the
+behaviour with the new "error_escalation_time" attribute
+(see the <a href="../../generic_howto/timeouts.html">timeouts documentation</a>).
+</p>
+<h3>Dynamic Address and Port Change Using the Status Worker</h3>
+<p>
+The status worker now allows you to change the address and the port
+of an AJP13 worker on the fly. You can e.g. provision dummy workers with a port
+equal to "0", which will be automatically put into stopped mode during startup.
+Later, when you want to actually use thse workers, you set their address and
+port to the final values.
+</p>
+<p>
+Note that already existing connections will go on using the old
+address and port. This will be improved in future versions.
+</p>
+<h3>New Data in Status Worker Display</h3>
+<p>
+The status worker display now also contains the timestamp of the last
+worker errors.
+</p>
+<h3>Improved Proxy Flexibility</h3>
+<p>
+You can now overwrite more request metadata before the request gets send to the backend.
+This is helpful in case there are other reverse proxies in front of your web server.
+A new <a href="../../generic_howto/proxy.html">documentation page</a> explains this in detail.
+</p>
+<h3>Improved IIS Support</h3>
+<p>
+IIS support has been improved especially when using mutltiple application pools.
+Furthermore you can now configure the ISAPI plugin to update the uriworkermap.properies
+file on a regular interval using the watchdog thread.
+</p>
+<h3>JNI Worker Deprecation</h3>
+<p>
+Workers of type jni are broken since a long time. Since there is no more
+use for them, they have been deprecated now, and will be removed in a future release.
+</p>
+</blockquote></td></tr></table>
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright &copy; 1999-2011, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html> \ No newline at end of file
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/docs/news/printer/20100101.html b/rubbos/app/tomcat-connectors-1.2.32-src/docs/news/printer/20100101.html
new file mode 100644
index 00000000..bc57d826
--- /dev/null
+++ b/rubbos/app/tomcat-connectors-1.2.32-src/docs/news/printer/20100101.html
@@ -0,0 +1,61 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>The Apache Tomcat Connector - News - 2010 News and Status</title><meta name="author" value="Apache Tomcat Connectors Project"><meta name="email" value="dev.AT.tomcat.DOT.apache.DOT.org"><link href="../../style.css" type="text/css" rel="stylesheet"></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="4"><!--PAGE HEADER--><tr><td colspan="2"><!--TOMCAT LOGO--><a href="http://tomcat.apache.org/"><img src="../../images/tomcat.gif" align="left" alt="Apache Tomcat" border="0"></a><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="http://www.apache.org/images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><tr><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left"><table border="0" width="100%" cellspacing="4"><tr><td align="left" valign="top"><h1>The Apache Tomcat Connector - News</h1><h2>2010 News and Status</h2></td><td align="right" valign="top" nowrap="true"><img src="../../images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="2010 News &amp; Status"><strong>2010 News &amp; Status</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="1 November - JK-1.2.31 released"><strong>1 November - JK-1.2.31 released</strong></a></font></td></tr><tr><td><blockquote>
+ <a name="20101101.1"></a>
+ <br>
+ <p>The Apache Tomcat team is proud to announce the immediate availability
+ of Tomcat Connectors 1.2.31. This is a stable release concentrating mainly on
+ some bug fixes.
+ </p><p>
+ Please see the <a href="../../miscellaneous/changelog.html">ChangeLog</a> for a full list of changes.
+ </p>
+ <p>If you find any bugs while using this release, please fill in the
+ <a href="https://issues.apache.org/bugzilla/enter_bug.cgi?product=Tomcat%20Connectors">Bugzilla</a>
+ Bug Report.
+ </p>
+</blockquote></td></tr></table>
+
+<br>
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="1 March - JK-1.2.30 released"><strong>1 March - JK-1.2.30 released</strong></a></font></td></tr><tr><td><blockquote>
+<a name="20100301.1"></a>
+<br>
+<p>The Apache Tomcat team is proud to announce the immediate availability
+of Tomcat Connectors 1.2.30. This is a stable release concentrating mainly on
+some bug fixes.
+</p><p>
+ Please see the <a href="../../miscellaneous/changelog.html">ChangeLog</a> for a full list of changes.
+</p>
+<p>If you find any bugs while using this release, please fill in the
+<a href="https://issues.apache.org/bugzilla/enter_bug.cgi?product=Tomcat%20Connectors">Bugzilla</a>
+Bug Report.
+</p>
+</blockquote></td></tr></table>
+
+<br>
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="1 March - JK-1.2.29 withdrawn"><strong>1 March - JK-1.2.29 withdrawn</strong></a></font></td></tr><tr><td><blockquote>
+<a name="20100301.2"></a>
+<br>
+<p>Tomcat Connectors 1.2.29 has been withdrawn because of regression inside
+Microsoft IIS connector.
+</p>
+</blockquote></td></tr></table>
+
+<br>
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="26 February - JK-1.2.29 released"><strong>26 February - JK-1.2.29 released</strong></a></font></td></tr><tr><td><blockquote>
+<a name="20100226.3"></a>
+<br>
+<p>The Apache Tomcat team is proud to announce the immediate availability
+of Tomcat Connectors 1.2.29. This is a stable release concentrating mainly on
+some bug fixes.
+</p><p>
+ Please see the <a href="../../miscellaneous/changelog.html">ChangeLog</a> for a full list of changes.
+</p>
+<p>If you find any bugs while using this release, please fill in the
+<a href="https://issues.apache.org/bugzilla/enter_bug.cgi?product=Tomcat%20Connectors">Bugzilla</a>
+Bug Report.
+</p>
+
+</blockquote></td></tr></table>
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright &copy; 1999-2011, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html> \ No newline at end of file
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/docs/news/printer/20110701.html b/rubbos/app/tomcat-connectors-1.2.32-src/docs/news/printer/20110701.html
new file mode 100644
index 00000000..5576fd6c
--- /dev/null
+++ b/rubbos/app/tomcat-connectors-1.2.32-src/docs/news/printer/20110701.html
@@ -0,0 +1,21 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>The Apache Tomcat Connector - News - 2011 News and Status</title><meta name="author" value="Apache Tomcat Connectors Project"><meta name="email" value="dev.AT.tomcat.DOT.apache.DOT.org"><link href="../../style.css" type="text/css" rel="stylesheet"></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="4"><!--PAGE HEADER--><tr><td colspan="2"><!--TOMCAT LOGO--><a href="http://tomcat.apache.org/"><img src="../../images/tomcat.gif" align="left" alt="Apache Tomcat" border="0"></a><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="http://www.apache.org/images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><tr><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left"><table border="0" width="100%" cellspacing="4"><tr><td align="left" valign="top"><h1>The Apache Tomcat Connector - News</h1><h2>2011 News and Status</h2></td><td align="right" valign="top" nowrap="true"><img src="../../images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="2011 News &amp; Status"><strong>2011 News &amp; Status</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="8 July - JK-1.2.32 released"><strong>8 July - JK-1.2.32 released</strong></a></font></td></tr><tr><td><blockquote>
+ <a name="20110701.1"></a>
+ <br>
+ <p>The Apache Tomcat team is proud to announce the immediate availability
+ of Tomcat Connectors 1.2.32. This is a stable release concentrating mainly on
+ some bug fixes.
+ </p><p>
+ Please see the <a href="../../miscellaneous/changelog.html">ChangeLog</a> for a full list of changes.
+ </p>
+ <p>If you find any bugs while using this release, please fill in the
+ <a href="https://issues.apache.org/bugzilla/enter_bug.cgi?product=Tomcat%20Connectors">Bugzilla</a>
+ Bug Report.
+ </p>
+</blockquote></td></tr></table>
+
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright &copy; 1999-2011, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html> \ No newline at end of file
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/docs/printer/index.html b/rubbos/app/tomcat-connectors-1.2.32-src/docs/printer/index.html
new file mode 100644
index 00000000..5d0e6d83
--- /dev/null
+++ b/rubbos/app/tomcat-connectors-1.2.32-src/docs/printer/index.html
@@ -0,0 +1,250 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>The Apache Tomcat Connector - Documentation Index</title><meta name="author" value="Mladen Turk"><meta name="email" value="mturk@apache.org"><meta name="author" value="Rainer Jung"><meta name="email" value="rjung@apache.org"><link href="./../style.css" type="text/css" rel="stylesheet"></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="4"><!--PAGE HEADER--><tr><td colspan="2"><!--TOMCAT LOGO--><a href="http://tomcat.apache.org/"><img src="./../images/tomcat.gif" align="left" alt="Apache Tomcat" border="0"></a><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="http://www.apache.org/images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><tr><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left"><table border="0" width="100%" cellspacing="4"><tr><td align="left" valign="top"><h1>The Apache Tomcat Connector</h1><h2>Documentation Index</h2></td><td align="right" valign="top" nowrap="true"><img src="./../images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
+
+<p>This is the top-level entry point of the documentation bundle for the
+<strong>Apache Tomcat Connectors</strong>
+
+</p>
+<p>Select one of the links from the navigation menu (to the left) to drill
+down to the more detailed documentation that is available. Each available
+manual is described in more detail below.</p>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Headlines"><strong>Headlines</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<ul>
+
+<li><a href="../news/20110701.html#8 July - JK-1.2.32 released">8 July 2011 - <b>JK-1.2.32 released</b></a>
+<p>The Apache Tomcat team is proud to announce the immediate availability
+ of Tomcat Connectors 1.2.32 Stable. This release contains mainly bug fixes
+</p>
+<p>Download the <a href="http://www.apache.org/dist/tomcat/tomcat-connectors/jk/source/jk-1.2.32/tomcat-connectors-1.2.32-src.tar.gz">JK 1.2.32 release sources</a>
+ | <a href="http://www.apache.org/dist/tomcat/tomcat-connectors/jk/source/jk-1.2.32/tomcat-connectors-1.2.32-src.tar.gz.asc">PGP signature</a>
+</p>
+<p>Download the <a href="http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/">binaries</a> for selected platforms.
+</p>
+</li>
+
+<li><a href="../news/20100101.html#1 November - JK-1.2.31 released">1 November 2010 - <b>JK-1.2.31 released</b></a>
+<p>The Apache Tomcat team is proud to announce the immediate availability
+ of Tomcat Connectors 1.2.31 Stable. This release contains mainly bug fixes
+</p>
+<p>Download the <a href="http://www.apache.org/dist/tomcat/tomcat-connectors/jk/source/jk-1.2.31/tomcat-connectors-1.2.31-src.tar.gz">JK 1.2.31 release sources</a>
+ | <a href="http://www.apache.org/dist/tomcat/tomcat-connectors/jk/source/jk-1.2.31/tomcat-connectors-1.2.31-src.tar.gz.asc">PGP signature</a>
+</p>
+<p>Download the <a href="http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/">binaries</a> for selected platforms.
+</p>
+</li>
+
+<li><a href="../news/20100101.html#1 March - JK-1.2.30 released">1 March 2010 - <b>JK-1.2.30 released</b></a>
+<p>The Apache Tomcat team is proud to announce the immediate availability
+of Tomcat Connectors 1.2.30 Stable. This release contains mainly bug fixes
+</p>
+<p>Download the <a href="http://www.apache.org/dist/tomcat/tomcat-connectors/jk/source/jk-1.2.30/tomcat-connectors-1.2.30-src.tar.gz">JK 1.2.30 release sources</a>
+ | <a href="http://www.apache.org/dist/tomcat/tomcat-connectors/jk/source/jk-1.2.30/tomcat-connectors-1.2.30-src.tar.gz.asc">PGP signature</a>
+</p>
+<p>Download the <a href="http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/">binaries</a> for selected platforms.
+</p>
+</li>
+<li><a href="../news/20090301.html#22 March - JK-1.2.28 released">22 March 2009 - <b>JK-1.2.28 released</b></a>
+<p>The Apache Tomcat team is proud to announce the immediate availability
+of Tomcat Connectors 1.2.28 Stable. This release contains mainly bug fixes and some small <a href="../news/20090301.html#22 March - JK-1.2.28 released">improvements</a>.
+</p>
+<p>Download the <a href="http://www.apache.org/dist/tomcat/tomcat-connectors/jk/source/jk-1.2.28/tomcat-connectors-1.2.28-src.tar.gz">JK 1.2.28 release sources</a>
+ | <a href="http://www.apache.org/dist/tomcat/tomcat-connectors/jk/source/jk-1.2.28/tomcat-connectors-1.2.28-src.tar.gz.asc">PGP signature</a>
+</p>
+<p>Download the <a href="http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/">binaries</a> for selected platforms.
+</p>
+</li>
+<li><a href="../news/20081001.html#28 October - JK-1.2.27 released">28 October 2008 - <b>JK-1.2.27 released</b></a>
+<p>The Apache Tomcat team is proud to announce the immediate availability
+of Tomcat Connectors 1.2.27 Stable. This release contains interesting <a href="../news/20081001.html#28 October - JK-1.2.27 released">improvements</a>.
+</p>
+<p>Download the <a href="http://www.apache.org/dist/tomcat/tomcat-connectors/jk/source/jk-1.2.27/tomcat-connectors-1.2.27-src.tar.gz">JK 1.2.27 release sources</a>
+ | <a href="http://www.apache.org/dist/tomcat/tomcat-connectors/jk/source/jk-1.2.27/tomcat-connectors-1.2.27-src.tar.gz.asc">PGP signature</a>
+</p>
+<p>Download the <a href="http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/">binaries</a> for selected platforms.
+</p>
+</li>
+<li><a href="../news/20070301.html#20071221.1">21 December 2007 - <b>JK-1.2.26 released</b></a>
+<p>The Apache Tomcat team is proud to announce the immediate availability
+of Tomcat Connectors 1.2.26 Stable.
+</p>
+<p>Download the <a href="http://www.apache.org/dist/tomcat/tomcat-connectors/jk/source/jk-1.2.26/tomcat-connectors-1.2.26-src.tar.gz">JK 1.2.26 release sources</a>
+ | <a href="http://www.apache.org/dist/tomcat/tomcat-connectors/jk/source/jk-1.2.26/tomcat-connectors-1.2.26-src.tar.gz.asc">PGP signature</a>
+</p>
+<p>Download the <a href="http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/">binaries</a> for selected platforms.
+</p>
+</li>
+<li><a href="../news/20070301.html#20070807.1">7 August 2007 - <b>JK-1.2.25 released</b></a>
+<p>The Apache Tomcat team is proud to announce the immediate availability
+of Tomcat Connectors 1.2.25 Stable.
+</p>
+<p>Download the <a href="http://www.apache.org/dist/tomcat/tomcat-connectors/jk/source/jk-1.2.25/tomcat-connectors-1.2.25-src.tar.gz">JK 1.2.25 release sources</a>
+ | <a href="http://www.apache.org/dist/tomcat/tomcat-connectors/jk/source/jk-1.2.25/tomcat-connectors-1.2.25-src.tar.gz.asc">PGP signature</a>
+</p>
+<p>Download the <a href="http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/">binaries</a> for selected platforms.
+</p>
+</li>
+</ul>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Reference Guide"><strong>Reference Guide</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<ul>
+<li><a href="../reference/workers.html"><b>workers.properties</b></a>
+<p>A Tomcat worker is a Tomcat instance that is waiting to execute servlets
+on behalf of some web server. For example, we can have a web server such as Apache
+forwarding servlet requests to a Tomcat process (the worker) running behind it.
+</p>
+<p>This page contains detailed description of all workers.properties
+directives.
+</p>
+</li>
+
+<li><a href="../reference/uriworkermap.html"><b>uriworkermap.properties</b></a>
+<p>
+The forwarding of requests from the web server to tomcat gets configured by defining mapping rules.
+The so-called <b>uriworkermap</b> file is a mechanism of defining those rules.
+</p>
+</li>
+
+<li><a href="../reference/status.html"><b>Status Worker</b></a>
+<p>
+The status worker is a builtin management worker. It displays state information
+and can also be used to dynamically reconfigure JK.
+</p>
+</li>
+
+<li><a href="../reference/apache.html"><b>Apache</b></a>
+<p>This page contains detailed description of all directives related to
+Apache web server.
+</p>
+</li>
+
+<li><a href="../reference/iis.html"><b>IIS</b></a>
+<p>This page contains detailed description of all IIS directives.
+</p>
+</li>
+
+</ul>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Generic HowTo"><strong>Generic HowTo</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<ul>
+
+<li><a href="../generic_howto/quick.html"><b>Quick Start</b></a>
+<p>This page describes the configuration files used by JK on the
+Web Server side for the 'impatients'.
+</p>
+</li>
+<li><a href="../generic_howto/workers.html"><b>All about workers</b></a>
+<p>This page contains an overview about the various aspects of defining
+and using workers.
+</p>
+</li>
+<li><a href="../generic_howto/timeouts.html"><b>Timeouts</b></a>
+<p>This page describes the possible timeout settings you can use.
+</p>
+</li>
+<li><a href="../generic_howto/loadbalancers.html"><b>Load Balancing</b></a>
+<p>This page contains an introduction on load balancing with JK.
+</p>
+</li>
+<li><a href="../generic_howto/proxy.html"><b>Reverse Proxy</b></a>
+<p>This page contains an introduction to reverse proxies, how JK
+handles this situation and how you can influence the JK proxying behaviour.
+</p>
+</li>
+
+</ul>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Webserver HowTo"><strong>Webserver HowTo</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>These pages contain detailed descriptions of how to build and
+install JK for the various web servers.
+</p>
+<ul>
+
+<li><a href="../webserver_howto/apache.html"><b>Apache HTTP Server</b></a>
+</li>
+<li><a href="../webserver_howto/iis.html"><b>IIS</b></a>
+</li>
+<li><a href="../webserver_howto/nes.html"><b>Netscape/SunOne/Sun</b></a>
+</li>
+
+</ul>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="AJP Protocol Reference"><strong>AJP Protocol Reference</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<ul>
+<li><a href="../ajp/ajpv13a.html"><b>AJPv13</b></a>
+<p>This page describes the Apache JServ Protocol version 1.3 (hereafter
+<b>ajp13</b>).
+</p>
+</li>
+<li><a href="../ajp/ajpv13ext.html"><b>AJPv13 Extension Proposal</b></a>
+<p>This page describes an extension proposal for ajp13.
+</p>
+</li>
+</ul>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Miscellaneous documentation"><strong>Miscellaneous documentation</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<ul>
+<li><a href="../miscellaneous/faq.html"><b>Frequently asked questions</b></a>
+<p>
+</p>
+</li>
+<li><a href="../miscellaneous/changelog.html"><b>Changelog</b></a>
+<p>
+This page contains the detailed list of all changes made in each version of JK.
+</p>
+</li>
+<li><a href="http://issues.apache.org/bugzilla/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Tomcat+Connectors&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=">
+<b>Current Tomcat Connectors bugs</b></a>
+<p>This is the Bugzilla Bug List related to Tomcat Connectors.
+</p>
+</li>
+<li><a href="../miscellaneous/doccontrib.html"><b>Contribute documentation</b></a>
+<p>
+This page describes, how to contribute to the JK documentation.
+</p>
+</li>
+<li><a href="../miscellaneous/jkstatustasks.html"><b>JK Status Ant Tasks</b></a>
+<p>
+This page describes ant tasks to automate JK management via the status worker.
+</p>
+</li>
+<li><a href="../miscellaneous/reporttools.html"><b>Reporting Tools</b></a>
+<p>
+This page contains information, on some report analysis scripts contained in the JK distribution.
+</p>
+</li>
+<li><a href="http://tomcat.apache.org/connectors-doc-archive/jk2/index.html">
+<b>Old JK/JK2 documentation archive.</b></a>
+<p>Here you can find old JK and JK2 documentation.
+</p>
+</li>
+</ul>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="News"><strong>News</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>Release news from various years.
+</p>
+
+<ul>
+<li><a href="../news/20110701.html"><b>2011</b></a>
+</li>
+<li><a href="../news/20100101.html"><b>2010</b></a>
+</li>
+<li><a href="../news/20090301.html"><b>2009</b></a>
+</li>
+<li><a href="../news/20081001.html"><b>2008</b></a>
+</li>
+<li><a href="../news/20070301.html"><b>2007</b></a>
+</li>
+<li><a href="../news/20060101.html"><b>2006</b></a>
+</li>
+<li><a href="../news/20050101.html"><b>2005</b></a>
+</li>
+<li><a href="../news/20041100.html"><b>2004</b></a>
+</li>
+
+</ul>
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright &copy; 1999-2011, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html> \ No newline at end of file
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/docs/reference/apache.html b/rubbos/app/tomcat-connectors-1.2.32-src/docs/reference/apache.html
new file mode 100644
index 00000000..9e7a7aa5
--- /dev/null
+++ b/rubbos/app/tomcat-connectors-1.2.32-src/docs/reference/apache.html
@@ -0,0 +1,1011 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>The Apache Tomcat Connector - Reference Guide - Configuring Apache</title><meta name="author" value="Mladen Turk"><meta name="email" value="mturk@apache.org"><link href="../style.css" type="text/css" rel="stylesheet"></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="4"><!--PAGE HEADER--><tr><td colspan="2"><!--TOMCAT LOGO--><a href="http://tomcat.apache.org/"><img src="../images/tomcat.gif" align="left" alt="Apache Tomcat" border="0"></a><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="http://www.apache.org/images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><tr><!--LEFT SIDE NAVIGATION--><td width="20%" valign="top" nowrap="true"><p><strong>Links</strong></p><ul><li><a href="../index.html">Docs Home</a></li></ul><p><strong>Reference Guide</strong></p><ul><li><a href="../reference/workers.html">workers.properties</a></li><li><a href="../reference/uriworkermap.html">uriworkermap.properties</a></li><li><a href="../reference/status.html">Status Worker</a></li><li><a href="../reference/apache.html">Apache HTTP Server</a></li><li><a href="../reference/iis.html">IIS</a></li></ul><p><strong>Generic HowTo</strong></p><ul><li><a href="../generic_howto/quick.html">For the impatient</a></li><li><a href="../generic_howto/workers.html">All about workers</a></li><li><a href="../generic_howto/timeouts.html">Timeouts</a></li><li><a href="../generic_howto/loadbalancers.html">Load Balancing</a></li><li><a href="../generic_howto/proxy.html">Reverse Proxy</a></li></ul><p><strong>Webserver HowTo</strong></p><ul><li><a href="../webserver_howto/apache.html">Apache HTTP Server</a></li><li><a href="../webserver_howto/iis.html">IIS</a></li><li><a href="../webserver_howto/nes.html">Netscape/SunOne/Sun</a></li></ul><p><strong>AJP Protocol Reference</strong></p><ul><li><a href="../ajp/ajpv13a.html">AJPv13</a></li><li><a href="../ajp/ajpv13ext.html">AJPv13 Extension Proposal</a></li></ul><p><strong>Miscellaneous Documentation</strong></p><ul><li><a href="../miscellaneous/faq.html">Frequently asked questions</a></li><li><a href="../miscellaneous/changelog.html">Changelog</a></li><li><a href="http://issues.apache.org/bugzilla/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Tomcat+Connectors&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=">Current Tomcat Connectors bugs</a></li><li><a href="../miscellaneous/doccontrib.html">Contribute documentation</a></li><li><a href="../miscellaneous/jkstatustasks.html">JK Status Ant Tasks</a></li><li><a href="../miscellaneous/reporttools.html">Reporting Tools</a></li><li><a href="http://tomcat.apache.org/connectors-doc-archive/jk2/index.html">Old JK/JK2 documentation</a></li></ul><p><strong>News</strong></p><ul><li><a href="../news/20110701.html">2011</a></li><li><a href="../news/20100101.html">2010</a></li><li><a href="../news/20090301.html">2009</a></li><li><a href="../news/20081001.html">2008</a></li><li><a href="../news/20070301.html">2007</a></li><li><a href="../news/20060101.html">2006</a></li><li><a href="../news/20050101.html">2005</a></li><li><a href="../news/20041100.html">2004</a></li></ul></td><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left"><table border="0" width="100%" cellspacing="4"><tr><td align="left" valign="top"><h1>The Apache Tomcat Connector - Reference Guide</h1><h2>Configuring Apache</h2></td><td align="right" valign="top" nowrap="true"><small><a href="printer/apache.html"><img src="../images/printer.gif" border="0" alt="Printer Friendly Version"><br>print-friendly<br>version
+ </a></small></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Configuration Directives"><strong>Configuration Directives</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+Most of the directives are allowed once in the global part of the Apache httpd
+configuration and once in every &lt;VirtualHost&gt; elements. Exceptions from this rule are
+explicitly listed in the table below.
+</p>
+<p>
+Most values are inherited from the main server to the virtual hosts.
+Since version 1.2.20 they can be overwritten in the virtual hosts.
+Exceptions from this rule are again explicitly listed in the table below.
+See especially JkMountCopy.
+</p>
+<p><font color="#ff0000">
+Warning: If Apache httpd and Tomcat are configured to serve content from
+the same filing system location then care must be taken to ensure that httpd is
+not able to serve inappropriate content such as the contents of the WEB-INF
+directory or JSP source code.
+</font></p>
+<p>
+This could occur if the httpd DocumentRoot
+overlaps with a Tomcat Host's appBase or the docBase of any Context. It could
+also occur when using the httpd Alias directive with a Tomcat Host's appBase or
+the docBase of any Context.
+</p>
+<p>
+Here are the all directives supported by Apache:
+</p>
+<table border="1" cellpadding="5"><tr><th width="20%" bgcolor="#023264"><font color="#ffffff">Directive</font></th><th width="80%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code>JkWorkersFile</code></td><td align="left" valign="center"><p>
+The name of a worker file for the Tomcat servlet containers.
+<br>
+This directive is only allowed once. It must be put into
+the global part of the configuration.
+<br>
+If you don't use the JkWorkerProperty directives, then you must
+define your workers with a valid JkWorkersFile. There is no default
+value.
+</p></td></tr><tr><td align="left" valign="center"><code>JkWorkerProperty</code></td><td align="left" valign="center"><p>
+Enables setting worker properties inside Apache configuration file.
+The syntax is the same as in the JkWorkersFile (usually workers.properties).
+Simply prefix each line with "JkWorkerProperty" to put it directly into
+the Apache httpd config files.
+<br>
+This directive is allowed multiple times.
+It must be put into the global part of the configuration.
+<br>
+If you don't use the JkWorkerProperty directives, then you must
+define your workers with a valid JkWorkersFile. There is no default
+value.
+<br>
+This directive is available in jk1.2.7 version and later.
+</p></td></tr><tr><td align="left" valign="center"><code>JkShmFile</code></td><td align="left" valign="center"><p>
+Shared memory file name. Used only on unix platforms.
+The shm file is used by balancer and status workers.
+<br>
+This directive is only allowed once. It must be put into
+the global part of the configuration.
+<br>
+The default value is logs/jk-runtime-status.
+It is highly recommended that the shm file be placed on a local
+drive and not an NFS share.
+</p>
+<p>
+The shared memory contains configuration and runtime information for load balancer
+workers and their members. It is need in order that all apache children
+<ul>
+<li>share the same status information for load balancing members (OK, ERROR, ...),</li>
+<li>share the information about load taken by the individual workers,</li>
+<li>share the information for the parts of the configuration, which are changeable
+during runtime by status workers.</li>
+</ul>
+</p>
+</td></tr><tr><td align="left" valign="center"><code>JkShmSize</code></td><td align="left" valign="center"><p>
+Size of the shared memory file name.
+<br>
+This directive is only allowed once. It must be put into
+the global part of the configuration.
+<br>
+The default value depends on the platform. It is usually less than 64KB.
+</p></td></tr><tr><td align="left" valign="center"><code>JkMountFile</code></td><td align="left" valign="center"><p>
+File containing multiple mappings from a context to a Tomcat worker.
+It is usually called uriworkermap.properties.
+<br>
+For inheritance rules, see: JkMountCopy.
+<br>
+There is no default value.
+</p></td></tr><tr><td align="left" valign="center"><code>JkMountFileReload</code></td><td align="left" valign="center"><p>
+This directive configures the reload check interval in seconds.
+The JkMountFile is checked periodically for changes.
+A changed file gets reloaded automatically. If you set
+this directive to "0", reload checking is turned off.
+<br>
+The default value is 60 seconds.
+<br>
+This directive has been added in version 1.2.20 of mod_jk.
+</p></td></tr><tr><td align="left" valign="center"><code>JkMount</code></td><td align="left" valign="center"><p>
+A mount point from a context to a Tomcat worker.
+<br>
+This directive is allowed multiple times.
+It is allowed in the global configuration and in VirtualHost.
+You can also use it inside Location with a different syntax.
+Inside Location, one omits the first argument (path),
+which gets inherited from the Location.
+<br>
+By default JkMount entries are not inherited from the global
+server to other VirtualHosts or between VirtualHosts.
+For the complete inheritance rules, see: JkMountCopy.
+</p></td></tr><tr><td align="left" valign="center"><code>JkUnMount</code></td><td align="left" valign="center"><p>
+An exclusion mount point from a context to a Tomcat worker.
+All exclusion mounts are checked after mapping a request
+to a tomcat worker. If the request maps also to an exclusion,
+it will not be forwarded to tomcat, and instead be served locally.
+<br>
+This directive is allowed multiple times.
+It is allowed in the global configuration and in VirtualHost.
+You can also use it inside Location with a different syntax.
+Inside Location, one omits the first argument (path),
+which gets inherited from the Location.
+For inheritance rules, see: JkMountCopy.
+<br>
+This directive is available in jk1.2.7 version and later.
+</p></td></tr><tr><td align="left" valign="center"><code>JkAutoAlias</code></td><td align="left" valign="center"><p>
+Automatically Alias webapp context directories into the Apache
+document space.
+<br>
+Care should be taken to ensure that only static content is served via httpd as a
+result of using this directive. Any static content served by httpd will bypass any
+security constraints defined in the application's web.xml.
+<br>
+For inheritance rules, see: JkMountCopy.
+<br>
+There is no default value.
+</p></td></tr><tr><td align="left" valign="center"><code>JkMountCopy</code></td><td align="left" valign="center"><p>
+If this directive is set to "On" in some virtual server,
+the mounts from the global server will be copied to this
+virtual server, more precisely all mounts defined by JkMount
+or JkUnMount. The Mounts defined by JkMountFile and JkAutoAlias
+will only be inherited, if the VirtualHost does not define
+it's own JkMountFile or JkAutoAlias.
+<br>
+If you want all vhost to inherit mounts from the main server,
+you can set JkMountCopy to 'All' in the main server.
+<br>
+This directive is only allowed inside VirtualHost (with value "On")
+and in the global server (with value "All").
+<br>
+The default is Off, so no mounts will be inherited from the global
+server to any VirtualHost.
+<br>
+Starting with version 1.2.26 you can also set it to "All" in the
+global virtual server. This will switch the default to On.
+</p></td></tr><tr><td align="left" valign="center"><code>JkWorkerIndicator</code></td><td align="left" valign="center"><p>
+Name of the Apache environment variable that can be used to set worker names
+in combination with SetHandler jakarta-servlet.
+<br>
+This directive is only allowed once per virtual server.
+It is allowed in the global configuration and in VirtualHost.
+<br>
+The default value is JK_WORKER_NAME.
+</p></td></tr><tr><td align="left" valign="center"><code>JkWatchdogInterval</code></td><td align="left" valign="center"><p>
+This directive configures the watchdog thread interval in seconds.
+The workers are maintained periodically by a background thread
+running periodically every watchdog_interval seconds. Worker maintenance
+checks for idle connections, corrects load status and is able
+to detect backend health status.
+<br>
+The maintenance only happens, if since the last maintenance at
+least <a href="workers.html"><b class="code">worker.maintain</b></a>
+seconds have passed. So setting the JkWatchdogInterval
+much smaller than <b class="code">worker.maintain</b> is not useful.
+<br>
+The default value is 0 seconds, meaning the watchdog thread
+will not be created, and the maintenance is done in combination
+with normal requests instead.
+<br>
+This directive is only allowed once. It must be put into
+the global part of the configuration.
+<br>
+This directive has been added in version 1.2.27 of mod_jk.
+It is available only for httpd 2.x and above using APR libraries
+including thread support.
+</p></td></tr><tr><td align="left" valign="center"><code>JkLogFile</code></td><td align="left" valign="center"><p>
+Full or server relative path to the Tomcat Connector module log file.
+It will also work with pipe, by using a value of the form "| ...".
+<br>
+The default value is logs/mod_jk.log.
+<br>
+Pipes are supported for Apache 1.3 only since version 1.2.16.
+The default value exists only since version 1.2.20.
+</p></td></tr><tr><td align="left" valign="center"><code>JkLogLevel</code></td><td align="left" valign="center"><p>
+The Tomcat Connector module log level, can be debug, info, warn
+error or trace.
+<br>
+The default value is info.
+</p></td></tr><tr><td align="left" valign="center"><code>JkLogStampFormat</code></td><td align="left" valign="center"><p>
+The Tomcat Connector module <b>date</b> log format, using an
+extended strftime syntax.
+This format will be used for the time stamps in the JkLogFile.
+The maximum length of the format is 63 characters.
+<br>
+Starting with version 1.2.24 of mod_jk you can also use %Q
+for adding milliseconds to the log and %q for microseconds.
+These conversion specifiers are an extension to strftime.
+They will only work on platforms with a gettimeofday() function.
+You can use %Q and %q only once in the pattern and also not both
+together in the same pattern.
+<br>
+The default value is "[%a %b %d %H:%M:%S %Y] " and beginning
+with version 1.2.24 on platforms with a gettimeofday()
+function it is "[%a %b %d %H:%M:%S.%Q %Y] ".
+</p></td></tr><tr><td align="left" valign="center"><code>JkRequestLogFormat</code></td><td align="left" valign="center"><p>
+Request log format string. See detailed description below.
+<br>
+There is no default value. Without defining a value, the request logging
+is turned off.
+</p></td></tr><tr><td align="left" valign="center"><code>JkExtractSSL</code></td><td align="left" valign="center"><p>
+Turns on SSL processing and information gathering by mod_jk
+<br>
+The default value is On.
+<br>
+In order to make SSL data available for mod_jk in Apache, you need to
+set <b class="code">SSLOptions +StdEnvVars</b>. For the certificate information you also need
+to add <b class="code">SSLOptions +ExportCertData</b>.
+</p>
+<p>
+ Specifically, mod_jk will export the following environment variables from
+ Apache httpd to Tomcat under these request attributes as per the
+ Servlet Specification 3.0, section 3.8:
+</p>
+<table>
+ <tr><th>Env Var</th><th>Request Attribute Name</th><th>Type</th><th>Example</th></tr>
+ <tr>
+ <td>SSL_CIPHER<br>(or <b class="code">JkKEYSIZEIndicator</b>)</td>
+ <td>javax.servlet.request.cipher_suite</td>
+ <td>java.lang.String</td>
+ <td>DHE-RSA-AES256-SHA</td>
+ </tr>
+ <tr>
+ <td>SSL_CIPHER_USEKEYSIZE<br>(or <b class="code">JkKEYSIZEIndicator</b>)</td>
+ <td>javax.servlet.request.key_size</td>
+ <td>java.lang.Integer</td>
+ <td>256</td>
+ </tr>
+ <tr>
+ <td>SSL_SESSION_ID<br>(or <b class="code">JkSESSIONIndicator</b>)</td>
+ <td>javax.servlet.request.ssl_session</td>
+ <td>java.lang.String</td>
+ <td>905...32E (a hex string)</td>
+ </tr>
+ <tr>
+ <td>SSL_CLIENT_CERT_CHAIN_<i>n</i><br>(or <b class="code">JkCERTCHAINPrefix</b><i>n</i>)</td>
+ <td>javax.servlet.request.X509Certificate</td>
+ <td>java.security.X509Certificate[]</td>
+ <td>(A chain of certs in ascending order of trust, the first one being
+ ths client's certificate, the second being the signer of that
+ certificate, and so on)</td>
+ </tr>
+</table>
+<p>
+ For all other SSL-related variables, use <b class="code">JkEnvVar</b> for each
+ variable you want. Please note that, like <b class="code">JkEnvVar</b>, these
+ variables are available from the request <i><b>attributes</b></i>, not as
+ environment variables or as request headers.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>JkHTTPSIndicator</code></td><td align="left" valign="center"><p>
+Name of the Apache environment variable that contains SSL indication.
+<br>
+The default value is "HTTPS".
+</p></td></tr><tr><td align="left" valign="center"><code>JkCERTSIndicator</code></td><td align="left" valign="center"><p>
+Name of the Apache environment variable that contains SSL client certificates.
+<br>
+The default value is "SSL_CLIENT_CERT".
+</p></td></tr><tr><td align="left" valign="center"><code>JkCIPHERIndicator</code></td><td align="left" valign="center"><p>
+Name of the Apache environment variable that contains SSL client cipher.
+<br>
+The default value is "SSL_CIPHER".
+</p></td></tr><tr><td align="left" valign="center"><code>JkCERTCHAINPrefix</code></td><td align="left" valign="center"><p>
+Name of the Apache environment (prefix) that contains SSL client chain certificates.
+<br>
+The default value is "SSL_CLIENT_CERT_CHAIN_".
+</p></td></tr><tr><td align="left" valign="center"><code>JkSESSIONIndicator</code></td><td align="left" valign="center"><p>
+Name of the Apache environment variable that contains SSL session.
+<br>
+The default value is "SSL_SESSION_ID".
+</p></td></tr><tr><td align="left" valign="center"><code>JkKEYSIZEIndicator</code></td><td align="left" valign="center"><p>
+Name of the Apache environment variable that contains SSL key size in use.
+<br>
+The default value is "SSL_CIPHER_USEKEYSIZE".
+</p></td></tr><tr><td align="left" valign="center"><code>JkLocalNameIndicator</code></td><td align="left" valign="center"><p>
+Name of the Apache environment variable which can be used to overwrite
+the forwarded local name.
+Use this only if you need to adjust the data (see the
+<a href="../generic_howto/proxy.html">proxy</a> documentation).
+<br>
+The default value is "JK_LOCAL_NAME".
+<br>
+This directive has been added in version 1.2.28 of mod_jk.
+</p></td></tr><tr><td align="left" valign="center"><code>JkLocalPortIndicator</code></td><td align="left" valign="center"><p>
+Name of the Apache environment variable which can be used to overwrite
+the forwarded local port.
+Use this only if you need to adjust the data (see the
+<a href="../generic_howto/proxy.html">proxy</a> documentation).
+<br>
+The default value is "JK_LOCAL_PORT".
+<br>
+This directive has been added in version 1.2.28 of mod_jk.
+</p></td></tr><tr><td align="left" valign="center"><code>JkRemoteHostIndicator</code></td><td align="left" valign="center"><p>
+Name of the Apache environment variable which can be used to overwrite
+the forwarded remote (client) host name.
+Use this only if you need to adjust the data (see the
+<a href="../generic_howto/proxy.html">proxy</a> documentation).
+<br>
+The default value is "JK_REMOTE_HOST".
+<br>
+This directive has been added in version 1.2.28 of mod_jk.
+</p></td></tr><tr><td align="left" valign="center"><code>JkRemoteAddrIndicator</code></td><td align="left" valign="center"><p>
+Name of the Apache environment variable which can be used to overwrite
+the forwarded remote (client) IP address.
+Use this only if you need to adjust the data (see the
+<a href="../generic_howto/proxy.html">proxy</a> documentation).
+<br>
+The default value is "JK_REMOTE_ADDR".
+<br>
+This directive has been added in version 1.2.28 of mod_jk.
+</p></td></tr><tr><td align="left" valign="center"><code>JkRemotePortIndicator</code></td><td align="left" valign="center"><p>
+Name of the Apache environment variable which can be used to overwrite
+the forwarded remote (client) IP address.
+Use this only if you need to adjust the data (see the
+<a href="../generic_howto/proxy.html">proxy</a> documentation).
+<br>
+The default value is "JK_REMOTE_PORT".
+<br>
+This directive has been added in version 1.2.32 of mod_jk.
+</p></td></tr><tr><td align="left" valign="center"><code>JkRemoteUserIndicator</code></td><td align="left" valign="center"><p>
+Name of the Apache environment variable which can be used to overwrite
+the forwarded user name.
+Use this only if you need to adjust the data (see the
+<a href="../generic_howto/proxy.html">proxy</a> documentation).
+<br>
+The default value is "JK_REMOTE_USER".
+<br>
+This directive has been added in version 1.2.28 of mod_jk.
+</p></td></tr><tr><td align="left" valign="center"><code>JkAuthTypeIndicator</code></td><td align="left" valign="center"><p>
+Name of the Apache environment variable which can be used to overwrite
+the forwarded authentication type.
+Use this only if you need to adjust the data (see the
+<a href="../generic_howto/proxy.html">proxy</a> documentation).
+<br>
+The default value is "JK_AUTH_TYPE".
+<br>
+This directive has been added in version 1.2.28 of mod_jk.
+</p></td></tr><tr><td align="left" valign="center"><code>JkOptions</code></td><td align="left" valign="center"><p>
+Set one of more options to configure the mod_jk module. See below for
+details about this directive.
+<br>
+This directive can be used multiple times per virtual server.
+<br>
+The default value is "ForwardURIProxy" since version 1.2.24.
+It was "ForwardURICompatUnparsed" in version 1.2.23 and
+"ForwardURICompat" until version 1.2.22.
+</p></td></tr><tr><td align="left" valign="center"><code>JkEnvVar</code></td><td align="left" valign="center"><p>
+Adds a name and an optional default value of environment variable
+that should be sent to servlet-engine as a request attribute.
+If the default value is not given explicitly, the variable
+will only be send, if it is set during runtime.
+<br>
+The default is empty, so no additional variables will be sent.
+<br>
+This directive can be used multiple times per virtual server.
+The settings will be merged between the global server and any
+virtual server.
+<br>
+You can retrieve the variables on Tomcat as request attributes
+via request.getAttribute(attributeName). Note that the variables
+send via JkEnvVar will not be listed in request.getAttributeNames().
+<br>
+Empty default values are supported since version 1.2.20.
+Not sending variables with empty defaults and empty runtime value
+has been introduced in version 1.2.21.
+</p></td></tr><tr><td align="left" valign="center"><code>JkStripSession</code></td><td align="left" valign="center"><p>
+If this directive is set to On in some virtual server,
+the session IDs <b class="code">;jsessionid=...</b> will be
+removed for non matched URLs.
+<br>
+This directive is only allowed inside VirtualHost.
+<br>
+The default is Off.
+<br>
+This directive has been introduced in version 1.2.21.
+<br>With version 1.2.27 and later this directive can have optional
+session ID identifier. If not specified it defaults to
+<b class="code">;jsessionid</b>.
+</p>
+</td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Configuration Directives Types"><strong>Configuration Directives Types</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+We'll discuss here the mod_jk directive types.
+</p>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Define workers"><strong>Define workers</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+<b>JkWorkersFile</b> specify the location where mod_jk will find the workers definitions.
+Take a look at <a href="workers.html">Workers documentation</a> for detailed description.
+
+<div class="example"><pre>
+ JkWorkersFile /etc/httpd/conf/workers.properties
+</pre></div>
+
+<br>
+<br>
+</p>
+
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Logging"><strong>Logging</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+<b>JkLogFile</b> specify the location where mod_jk is going to place its log file.
+</p>
+
+<div class="example"><pre>
+ JkLogFile /var/log/httpd/mod_jk.log
+</pre></div>
+
+<p>
+Since JK 1.2.3 for Apache 2.x and JK 1.2.16 for Apache 1.3 this can also
+be used for piped logging:
+</p>
+
+<div class="example"><pre>
+ JkLogFile "|/usr/bin/rotatelogs /var/log/httpd/mod_jk.log 86400"
+</pre></div>
+
+<p>
+<b>JkLogLevel</b>
+set the log level between :
+</p>
+
+<ul>
+<li>
+<b>info</b> log will contain standard mod_jk activity (default).
+</li>
+<li>
+<b>warn</b> log will contain non fatal error reports.
+</li>
+<li>
+<b>error</b> log will contain also error reports.
+</li>
+<li>
+<b>debug</b> log will contain all information on mod_jk activity
+</li>
+<li>
+<b>trace</b> log will contain all tracing information on mod_jk activity
+</li>
+</ul>
+
+<div class="example"><pre>
+ JkLogLevel info
+</pre></div>
+
+<p>
+<b class="code">info</b> should be your default selection for normal operations.
+<br>
+<br>
+</p>
+
+<p>
+<b>JkLogStampFormat</b> will configure the date/time format found on mod_jk log file.
+Using the strftime() format string it's set by<br>
+default to <b>"[%a %b %d %H:%M:%S %Y]"</b>
+</p>
+
+<div class="example"><pre>
+ JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
+</pre></div>
+
+<p>
+<br>
+<br>
+</p>
+
+<p>
+<b>JkRequestLogFormat</b> will configure the format of mod_jk individual request logging.
+Request logging is configured and enabled on a per virtual host basis.
+To enable request logging for a virtual host just add a JkRequestLogFormat config.
+The syntax of the format string is similar to the Apache LogFormat command,
+here is a list of the available request log format options:
+</p>
+
+<p>
+<table border="1" cellpadding="5"><tr><th width="20%" bgcolor="#023264"><font color="#ffffff">Options</font></th><th width="80%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code>%b</code></td><td align="left" valign="center">Bytes sent, excluding HTTP headers (CLF format)</td></tr><tr><td align="left" valign="center"><code>%B</code></td><td align="left" valign="center">Bytes sent, excluding HTTP headers</td></tr><tr><td align="left" valign="center"><code>%H</code></td><td align="left" valign="center">The request protocol</td></tr><tr><td align="left" valign="center"><code>%m</code></td><td align="left" valign="center">The request method</td></tr><tr><td align="left" valign="center"><code>%p</code></td><td align="left" valign="center">The canonical Port of the server serving the request</td></tr><tr><td align="left" valign="center"><code>%q</code></td><td align="left" valign="center">The query string (prepended with a ? if a query string exists, otherwise an empty string)</td></tr><tr><td align="left" valign="center"><code>%r</code></td><td align="left" valign="center">First line of request</td></tr><tr><td align="left" valign="center"><code>%s</code></td><td align="left" valign="center">Request HTTP status code</td></tr><tr><td align="left" valign="center"><code>%T</code></td><td align="left" valign="center">Request duration, elapsed time to handle request in seconds '.' micro seconds</td></tr><tr><td align="left" valign="center"><code>%U</code></td><td align="left" valign="center">The URL path requested, not including any query string.</td></tr><tr><td align="left" valign="center"><code>%v</code></td><td align="left" valign="center">The canonical ServerName of the server serving the request</td></tr><tr><td align="left" valign="center"><code>%V</code></td><td align="left" valign="center">The server name according to the UseCanonicalName setting</td></tr><tr><td align="left" valign="center"><code>%w</code></td><td align="left" valign="center">Tomcat worker name</td></tr><tr><td align="left" valign="center"><code>%R</code></td><td align="left" valign="center">Real worker name</td></tr></table>
+
+<div class="example"><pre>
+ JkRequestLogFormat "%w %V %T"
+</pre></div>
+
+<br>
+<br>
+</p>
+
+<p>
+You can also log mod_jk information using the Apache standard module <b>mod_log_config</b>.
+The module sets several notes in the Apache httpd notes table.
+Most of them are are only useful in combination with a load balancer worker.
+</p>
+
+<p>
+<table border="1" cellpadding="5"><tr><th width="20%" bgcolor="#023264"><font color="#ffffff">Note</font></th><th width="80%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code>JK_WORKER_NAME</code></td><td align="left" valign="center">Name of the worker selected by the URI mapping</td></tr><tr><td align="left" valign="center"><code>JK_WORKER_TYPE</code></td><td align="left" valign="center">Type of the worker selected by the URI mapping</td></tr><tr><td align="left" valign="center"><code>JK_WORKER_ROUTE</code></td><td align="left" valign="center">Actual worker name selected by the URI mapping (usually a member of the load balancer).<br>
+ Before version 1.2.26 only available if JkRequestLogFormat is set.</td></tr><tr><td align="left" valign="center"><code>JK_REQUEST_DURATION</code></td><td align="left" valign="center">Request duration in seconds and microseconds.<br>
+ Before version 1.2.26 only available if JkRequestLogFormat is set.</td></tr><tr><td align="left" valign="center"><code>JK_LB_FIRST_NAME</code></td><td align="left" valign="center">Load-Balancer: Name of the first worker tried</td></tr><tr><td align="left" valign="center"><code>JK_LB_FIRST_TYPE</code></td><td align="left" valign="center">Load-Balancer: Type of the first worker tried</td></tr><tr><td align="left" valign="center"><code>JK_LB_FIRST_ACCESSED</code></td><td align="left" valign="center">Load-Balancer: Access count for the first worker tried</td></tr><tr><td align="left" valign="center"><code>JK_LB_FIRST_READ</code></td><td align="left" valign="center">Load-Balancer: Bytes read for the first worker tried</td></tr><tr><td align="left" valign="center"><code>JK_LB_FIRST_TRANSFERRED</code></td><td align="left" valign="center">Load-Balancer: Bytes transferred for the first worker tried</td></tr><tr><td align="left" valign="center"><code>JK_LB_FIRST_ERRORS</code></td><td align="left" valign="center">Load-Balancer: Error count for the first worker tried</td></tr><tr><td align="left" valign="center"><code>JK_LB_FIRST_BUSY</code></td><td align="left" valign="center">Load-Balancer: Busy count for the first worker tried</td></tr><tr><td align="left" valign="center"><code>JK_LB_FIRST_ACTIVATION</code></td><td align="left" valign="center">Load-Balancer: Activation state for the first worker tried</td></tr><tr><td align="left" valign="center"><code>JK_LB_FIRST_STATE</code></td><td align="left" valign="center">Load-Balancer: Error state for the first worker tried</td></tr><tr><td align="left" valign="center"><code>JK_LB_LAST_NAME</code></td><td align="left" valign="center">Load-Balancer: Name of the last worker tried</td></tr><tr><td align="left" valign="center"><code>JK_LB_LAST_TYPE</code></td><td align="left" valign="center">Load-Balancer: Type of the last worker tried</td></tr><tr><td align="left" valign="center"><code>JK_LB_LAST_ACCESSED</code></td><td align="left" valign="center">Load-Balancer: Access count for the last worker tried</td></tr><tr><td align="left" valign="center"><code>JK_LB_LAST_READ</code></td><td align="left" valign="center">Load-Balancer: Bytes read for the last worker tried</td></tr><tr><td align="left" valign="center"><code>JK_LB_LAST_TRANSFERRED</code></td><td align="left" valign="center">Load-Balancer: Bytes transferred for the last worker tried</td></tr><tr><td align="left" valign="center"><code>JK_LB_LAST_ERRORS</code></td><td align="left" valign="center">Load-Balancer: Error count for the last worker tried</td></tr><tr><td align="left" valign="center"><code>JK_LB_LAST_BUSY</code></td><td align="left" valign="center">Load-Balancer: Busy count for the last worker tried</td></tr><tr><td align="left" valign="center"><code>JK_LB_LAST_ACTIVATION</code></td><td align="left" valign="center">Load-Balancer: Activation state for the last worker tried</td></tr><tr><td align="left" valign="center"><code>JK_LB_LAST_STATE</code></td><td align="left" valign="center">Load-Balancer: Error state for the last worker tried</td></tr></table>
+
+<div class="example"><pre>
+ LogFormat "%h %l %u %t \"%r\" %&gt;s %b %{JK_WORKER_NAME}n %{JK_LB_FIRST_NAME}n \
+ %{JK_LB_FIRST_BUSY}n %{JK_LB_LAST_NAME}n %{JK_LB_LAST_BUSY}n" mod_jk_log
+ CustomLog logs/access_log mod_jk_log
+</pre></div>
+
+<br>
+<br>
+</p>
+
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Forwarding"><strong>Forwarding</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+The directive JkOptions allow you to set many forwarding options which will enable (+)
+or disable (-) following option. Without any leading signs, options will be enabled.
+<br>
+<br>
+</p>
+
+<p>
+The four following options <b>+ForwardURIxxx</b> are mutually exclusive.
+Exactly one of them is required, a negative sign prefix is not allowed with them.
+The default value is "ForwardURIProxy" since version 1.2.24.
+It was "ForwardURICompatUnparsed" in version 1.2.23 and
+"ForwardURICompat" until version 1.2.22.
+You can turn the default off by switching on one of the other two options.
+You should leave this at it's default value, unless you have a very good
+reason to change it.
+<br>
+<br>
+</p>
+
+<p>
+All options are inherited from the global server to virtual hosts.
+Options that support enabling (plus options) and disabling (minus options),
+are inherited in the following way:
+<br>
+<br>
+options(vhost) = plus_options(global) - minus_options(global) + plus_options(vhost) - minus_options(vhost)
+<br>
+<br>
+</p>
+
+<p>
+Using JkOptions <b>ForwardURIProxy</b>, the forwarded URI
+will be partially reencoded after processing inside Apache httpd and
+before forwarding to Tomcat. This will be compatible with local
+URL manipulation by mod_rewrite and with URL encoded session ids.
+
+<div class="example"><pre>
+ JkOptions +ForwardURIProxy
+</pre></div>
+
+<br>
+<br>
+</p>
+
+<p>
+Using JkOptions <b>ForwardURICompatUnparsed</b>, the forwarded URI
+will be unparsed. It's spec compliant and secure.
+It will always forward the original request URI, so rewriting
+URIs with mod_rewrite and then forwarding the rewritten URI
+will not work.
+
+<div class="example"><pre>
+ JkOptions +ForwardURICompatUnparsed
+</pre></div>
+
+<br>
+<br>
+</p>
+
+<p>
+Using JkOptions <b>ForwardURICompat</b>, the forwarded URI will
+be decoded by Apache httpd. Encoded characters will be decoded and
+explicit path components like ".." will already be resolved.
+This is less spec compliant and is <b>not safe</b> if you are using
+prefix JkMount. This option will allow to rewrite URIs with
+mod_rewrite before forwarding.
+
+<div class="example"><pre>
+ JkOptions +ForwardURICompat
+</pre></div>
+
+<br>
+<br>
+</p>
+
+<p>
+Using JkOptions <b>ForwardURIEscaped</b>, the forwarded URI will
+be the encoded form of the URI used by ForwardURICompat.
+Explicit path components like ".." will already be resolved.
+This will not work in combination with URL encoded session IDs,
+but it will allow to rewrite URIs with mod_rewrite before forwarding.
+
+<div class="example"><pre>
+ JkOptions +ForwardURIEscaped
+</pre></div>
+
+<br>
+<br>
+</p>
+
+<p>
+JkOptions <b>RejectUnsafeURI</b> will block all
+URLs, which contain percent signs '%' or backslashes '\'
+after decoding.
+<br>
+<br>
+</p>
+<p>
+Most web apps do not use such URLs. Using the option RejectUnsafeURI, you
+can block several well known URL encoding attacks. By default, this option
+is not set.
+</p>
+<p>
+You can also realise such a check with mod_rewrite, which is more powerful
+but also slightly more complicated.
+
+<div class="example"><pre>
+ JkOptions +RejectUnsafeURI
+</pre></div>
+
+<br>
+<br>
+</p>
+
+<p>
+JkOptions <b>ForwardDirectories</b> is used in conjunction with <b>DirectoryIndex</b>
+directive of Apache web server. As such mod_dir should be available to Apache,
+statically or dynamically (DSO)
+<br>
+<br>
+</p>
+
+<p>
+When DirectoryIndex is configured, Apache will create sub-requests for
+each of the local-url's specified in the directive, to determine if there is a
+local file that matches (this is done by stat-ing the file).
+</p>
+
+<p>
+If ForwardDirectories is set to false (default) and Apache doesn't find any
+files that match, Apache will serve the content of the directory (if directive
+Options specifies Indexes for that directory) or a <b class="code">403 Forbidden</b> response (if
+directive Options doesn't specify Indexes for that directory).
+</p>
+
+<p>
+If ForwardDirectories is set to true and Apache doesn't find any files that
+match, the request will be forwarded to Tomcat for resolution. This is used in
+cases when Apache cannot see the index files on the file system for various
+reasons: Tomcat is running on a different machine, the JSP file has been
+precompiled etc.
+</p>
+
+<p>Note that locally visible files will take precedence over the
+ones visible only to Tomcat (i.e. if Apache can see the file, that's the one
+that's going to get served). This is important if there is more then one type of
+file that Tomcat normally serves - for instance Velocity pages and JSP pages.
+
+<div class="example"><pre>
+ JkOptions +ForwardDirectories
+</pre></div>
+<br>
+<br>
+</p>
+
+<p>
+JkOptions <b>ForwardLocalAddress</b>, you ask mod_jk to send the local address,
+of the Apache web server instead remote client address. This can be used by
+Tomcat remote address valve for allowing connections only from registered Apache
+web servers.
+
+<div class="example"><pre>
+ JkOptions +ForwardLocalAddress
+</pre></div>
+
+<br>
+<br>
+</p>
+
+<p>
+JkOptions <b>FlushPackets</b>, you ask mod_jk to flush Apache's connection
+buffer after each AJP packet chunk received from Tomcat. This option can have
+a strong performance penalty for Apache and Tomcat as writes are performed
+more often than would normally be required (ie: at the end of each
+response).
+
+<div class="example"><pre>
+ JkOptions +FlushPackets
+</pre></div>
+
+<br>
+<br>
+</p>
+
+<p>
+JkOptions <b>FlushHeader</b>, you ask mod_jk to flush Apache's connection
+buffer after the response headers have been received from Tomcat.
+
+<div class="example"><pre>
+ JkOptions +FlushHeader
+</pre></div>
+
+<br>
+<br>
+</p>
+
+<p>
+JkOptions <b>DisableReuse</b>, you ask mod_jk to close connections immediately
+after their use. Normally mod_jk uses persistent connections and pools idle
+connections to reuse them, when new requests have to be sent to Tomcat.
+</p>
+
+<p>
+Using this option will have a strong performance penalty for Apache and Tomcat.
+Use this only as a last resort in case of unfixable network problems.
+If a firewall between Apache and Tomcat silently kills idle connections,
+try to use the worker attribute socket_keepalive in combination with an appropriate
+TCP keepalive value in your OS.
+
+<div class="example"><pre>
+ JkOptions +DisableReuse
+</pre></div>
+
+<br>
+<br>
+</p>
+
+<p>
+JkOptions <b>ForwardKeySize</b>, you ask mod_jk, when using ajp13, to forward also the SSL Key Size as
+required by Servlet API 2.3.
+This flag shouldn't be set when servlet engine is Tomcat 3.2.x (on by default).
+
+<div class="example"><pre>
+ JkOptions +ForwardKeySize
+</pre></div>
+
+<br>
+<br>
+</p>
+
+<p>
+JkOptions <b>ForwardSSLCertChain</b>, you ask mod_jk, when using ajp13,
+to forward SSL certificate chain (off by default).
+Mod_jk only passes the <b class="code">SSL_CLIENT_CERT</b> to the AJP connector. This is not a
+problem with self-signed certificates or certificates directly signed by the
+root CA certificate. However, there's a large number of certificates signed by
+an intermediate CA certificate, where this is a significant problem: A servlet
+will not have the possibility to validate the client certificate on its own. The
+bug would be fixed by passing on the <b class="code">SSL_CLIENT_CERT_CHAIN</b> to Tomcat via the AJP connector.
+<br>
+This directive exists only since version 1.2.22.
+<div class="example"><pre>
+ JkOptions +ForwardSSLCertChain
+</pre></div>
+
+<br>
+<br>
+</p>
+
+<p>
+The directive <b>JkEnvVar</b> allows you to forward environment variables
+from Apache server to Tomcat engine.
+You can add a default value as a second parameter to the directive.
+If the default value is not given explicitly, the variable
+will only be send, if it is set during runtime.
+<br>
+The variables can be retrieved on the Tomcat side as request attributes
+via request.getAttribute(attributeName).
+Note that the variables send via JkEnvVar will not be listed
+in request.getAttributeNames().
+<br>
+<br>
+The variables are inherited from the global server to virtual hosts.
+
+<div class="example"><pre>
+ JkEnvVar SSL_CLIENT_V_START undefined
+</pre></div>
+<br>
+<br>
+</p>
+
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Assigning URLs to Tomcat"><strong>Assigning URLs to Tomcat</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+If you have created a custom or local version of mod_jk.conf-local as noted above,
+you can change settings such as the workers or URL prefix.
+</p>
+<p>
+<b>JkMount</b> directive assign specific URLs to Tomcat.
+In general the structure of a JkMount directive is:
+</p>
+
+<div class="example"><pre>
+ JkMount [URL prefix] [Worker name]
+</pre></div>
+
+<div class="example"><pre>
+ # send all requests ending in .jsp to worker1
+ JkMount /*.jsp worker1
+ # send all requests ending /servlet to worker1
+ JkMount /*/servlet/ worker1
+ # send all requests jsp requests to files located in /otherworker will go worker2
+ JkMount /otherworker/*.jsp worker2
+</pre></div>
+
+<p>
+You can use the JkMount directive at the top level or inside &lt;VirtualHost&gt;
+sections of your httpd.conf file.
+</p>
+<p><b>JkUnMount</b> directive acts as an opposite to JkMount and blocks access
+to a particular URL. The purpose is to be able to filter out the particular content
+types from mounted context. The following example mounts /servlet/*
+context, but all .gif files that belongs to that context are not served.
+</p>
+<div class="example"><pre>
+ # send all requests ending with /servlet to worker1
+ JkMount /servlet/* worker1
+ # do not send requests ending with .gif to worker1
+ JkUnMount /servlet/*.gif worker1
+</pre></div>
+<p>
+JkUnMount takes precedence over JkMount directives, meaning that the JK
+will first try to mount and then checks, if there is an exclusion defined by a
+JkUnMount. A JkUnMount overrides a JkMount only, if the worker names in the
+JkMount and in the JkUnMount are the same.
+</p>
+<p>
+The following example will block all .gif files although there is a JkMount for them:
+</p>
+<div class="example"><pre>
+ # do not send requests ending with .gif to worker1
+ JkUnMount /*.gif worker1
+ # The .gif files will not be mounted cause JkUnMount takes
+ # precedence over JkMount directive
+ JkMount /servlet/*.gif worker1
+</pre></div>
+<p>
+Starting with version 1.2.26 of JK you can apply a JkUnMount to any worker,
+by using the star character '*' as the worker name in the JkUnMount.
+More complex patterns in JkUnMount worker names are not allowed.
+</p>
+<div class="example"><pre>
+ # Mapping the webapps myapp1 and myapp2:
+ /myapp1/*=worker1
+ /myapp2/*=worker2
+ # Exclude the all subdirectories static for all workers:
+ !/*/static/*=*
+ # Exclude some suffixes for all workers:
+ !*.html=*
+</pre></div>
+<p>
+<b>JkAutoAlias</b> directive automatically <b>Alias</b> webapp context directories into
+the Apache document space. It enables Apache to serve a static context while Tomcat
+serving dynamic context. This directive is used for convenience so that you don't
+have to put an apache Alias directive for each application directory inside Tomcat's
+webapp directory. For security reasons is is strongly recommended that JkMount
+is used to pass all requests to Tomcat by default and JkUnMount is used to
+explicitly exclude static content to be served by httpd. It should also be noted
+that content served by httpd will bypass any security constraints defined in the
+application's web.xml.
+</p>
+<div class="example"><pre>
+ # enter the full path to the tomcat webapps directory
+ JkAutoAlias /opt/tomtact/webapps
+</pre></div>
+<p>The following example shows how to serve a dynamic context by
+Tomcat and static using Apache. The webapps directory has to
+be accessible by apache.</p>
+
+<div class="example"><pre>
+ # enter the full path to the tomcat webapps directory
+ JkAutoAlias /opt/tomtact/webapps
+
+ # Mount 'servlets-examples' directory. It's physical location
+ # is assumed to be in the /opt/tomtact/webapps/servlets-examples
+ # ajp13w is a worker defined in the workers.properties
+ JkMount /servlets-examples/* ajp13w
+
+ # Unmount desired static content from servlets-examples webapp.
+ # This content will be served by the httpd directly.
+ JkUnMount /servlets-examples/*.gif ajp13w
+ JkUnMount /servlets-examples/*.jpg ajp13w
+</pre></div>
+<p>Note that you can have a single JkAutoAlias directive per virtual
+host inside your httpd.conf
+</p>
+<p>
+<b>JkWorkerProperty</b> is a new directive available from JK 1.2.7
+version. It is a convenient method for setting directives that are
+usually set inside <b>workers.propeties</b> file. The parameter for
+that directive is raw line from workers.properties file.
+</p>
+<div class="example"><pre>
+ # Just like workers.properties but exact line is prefixed
+ # with JkWorkerProperty
+
+ # Minimal jk configuration
+ JkWorkerProperty worker.list=ajp13w
+ JkWorkerProperty worker.ajp13w.type=ajp13
+ JkWorkerProperty worker.ajp13w.host=localhost
+ JkWorkerProperty worker.ajp13w.port=8009
+</pre></div>
+<p>
+<b>JkMountFile</b> is a new directive available from JK 1.2.9
+version. It is used for dynamic updates of mount points at runtime.
+When the mount file is changed, JK will reload it's content.
+</p>
+<div class="example"><pre>
+ # Load mount points
+
+ JkMountFile conf/uriworkermap.properties
+</pre></div>
+<p>If the mount point uri starts with an exclamation mark '!'
+it defines an exclusion in the same way JkUnMount does.
+If the mount point uri starts with minus sign '-'
+the mount point will only be disabled. A disabled mount can be reenabled
+by deleting the minus sign and waiting for the JkMountFile to reload.
+An exclusion can be disabled by prefixing it with a minus sign.
+</p>
+<div class="example"><pre>
+ # Sample uriworkermap.properties file
+
+ /servlets-examples/*=ajp13w
+ # Do not map .jpeg files
+ !/servlets-examples/*.jpeg=ajp13w
+ # Make jsp examples initially disabled
+ -/jsp-examples/*=ajp13w
+</pre></div>
+<p>At run time you can change the content of this file. For example
+removing minus signs will enable the previously disabled uri mappings.
+You can add any number of new entries at runtime that reflects the newly deployed
+applications. Apache will reload the file and update the mount
+points within 60 second interval.
+</p>
+<p>
+There is no way to delete entries by dynamic reloading, but you can disable or
+exclude mappings.
+<br>
+<br>
+</p>
+
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Using SetHandler and Environment Variables"><strong>Using SetHandler and Environment Variables</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+Alternatively to the mod_jk specific directives, you can also use
+SetHandler and environment variables to control, which requests
+are being forwarded via which worker. This gives you more flexibility,
+but the results might be more difficult to understand. If you mix both
+ways of defining the forwards, in general to mod_jk directives will win.
+</p>
+<p>
+<b>SetHandler jakarta-servlet</b> forces requests to be handled by mod_jk.
+If you neither specify any workers via JkMount and the related directives,
+not via the environment variable described below,
+the first worker in the list of all worker will be chosen. You can use SetHandler
+for example in Location blocks or with Apache 2.2 also in RewriteRule.
+</p>
+<p>
+In order to control the worker using <b>SetEnvIf</b> or <b>RewriteRule</b>
+for more complex rules, you can set the environment variable <b>JK_WORKER_NAME</b>
+to the name of your chosen target worker. This enables you to decide on
+the chosen worker in a more flexible way, including dependencies on cookie values.
+This feature has been added in version 1.2.19 of mod_jk.
+</p>
+<p>
+In order to use another variable than <b>JK_WORKER_NAME</b>, you can set the name
+of this variable via the <b>JkWorkerIndicator</b> directive.
+</p>
+<p>
+You can also define exclusions from mod_jk forwards by setting the environment
+variable <b>no-jk</b>.
+</p>
+<div class="example"><pre>
+ # Automatically map all encoded urls
+ &lt;Location *;jsessionid=&gt;
+ SetHandler jakarta-servlet
+ SetEnv JK_WORKER_NAME my_worker
+ &lt;/Location&gt;
+
+ # Map all subdirs to workers via naming rule
+ # and exclude static content.
+ &lt;Location /apps/&gt;
+ SetHandler jakarta-servlet
+ SetEnvIf REQUEST_URI ^/apps/([^/]*)/ JK_WORKER_NAME=$1
+ SetEnvIf REQUEST_URI ^/apps/([^/]*)/static no-jk
+ &lt;/Location&gt;
+</pre></div>
+<p>
+Finally, starting with version 1.2.27 you can use the environment variable
+<b>JK_REPLY_TIMEOUT</b> to dynamically set a reply timeout.
+</p>
+</blockquote></td></tr></table>
+ </blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright &copy; 1999-2011, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html> \ No newline at end of file
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/docs/reference/iis.html b/rubbos/app/tomcat-connectors-1.2.32-src/docs/reference/iis.html
new file mode 100644
index 00000000..e767d281
--- /dev/null
+++ b/rubbos/app/tomcat-connectors-1.2.32-src/docs/reference/iis.html
@@ -0,0 +1,332 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>The Apache Tomcat Connector - Reference Guide - Configuring IIS</title><meta name="author" value="Mladen Turk"><meta name="email" value="mturk@apache.org"><link href="../style.css" type="text/css" rel="stylesheet"></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="4"><!--PAGE HEADER--><tr><td colspan="2"><!--TOMCAT LOGO--><a href="http://tomcat.apache.org/"><img src="../images/tomcat.gif" align="left" alt="Apache Tomcat" border="0"></a><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="http://www.apache.org/images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><tr><!--LEFT SIDE NAVIGATION--><td width="20%" valign="top" nowrap="true"><p><strong>Links</strong></p><ul><li><a href="../index.html">Docs Home</a></li></ul><p><strong>Reference Guide</strong></p><ul><li><a href="../reference/workers.html">workers.properties</a></li><li><a href="../reference/uriworkermap.html">uriworkermap.properties</a></li><li><a href="../reference/status.html">Status Worker</a></li><li><a href="../reference/apache.html">Apache HTTP Server</a></li><li><a href="../reference/iis.html">IIS</a></li></ul><p><strong>Generic HowTo</strong></p><ul><li><a href="../generic_howto/quick.html">For the impatient</a></li><li><a href="../generic_howto/workers.html">All about workers</a></li><li><a href="../generic_howto/timeouts.html">Timeouts</a></li><li><a href="../generic_howto/loadbalancers.html">Load Balancing</a></li><li><a href="../generic_howto/proxy.html">Reverse Proxy</a></li></ul><p><strong>Webserver HowTo</strong></p><ul><li><a href="../webserver_howto/apache.html">Apache HTTP Server</a></li><li><a href="../webserver_howto/iis.html">IIS</a></li><li><a href="../webserver_howto/nes.html">Netscape/SunOne/Sun</a></li></ul><p><strong>AJP Protocol Reference</strong></p><ul><li><a href="../ajp/ajpv13a.html">AJPv13</a></li><li><a href="../ajp/ajpv13ext.html">AJPv13 Extension Proposal</a></li></ul><p><strong>Miscellaneous Documentation</strong></p><ul><li><a href="../miscellaneous/faq.html">Frequently asked questions</a></li><li><a href="../miscellaneous/changelog.html">Changelog</a></li><li><a href="http://issues.apache.org/bugzilla/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Tomcat+Connectors&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=">Current Tomcat Connectors bugs</a></li><li><a href="../miscellaneous/doccontrib.html">Contribute documentation</a></li><li><a href="../miscellaneous/jkstatustasks.html">JK Status Ant Tasks</a></li><li><a href="../miscellaneous/reporttools.html">Reporting Tools</a></li><li><a href="http://tomcat.apache.org/connectors-doc-archive/jk2/index.html">Old JK/JK2 documentation</a></li></ul><p><strong>News</strong></p><ul><li><a href="../news/20110701.html">2011</a></li><li><a href="../news/20100101.html">2010</a></li><li><a href="../news/20090301.html">2009</a></li><li><a href="../news/20081001.html">2008</a></li><li><a href="../news/20070301.html">2007</a></li><li><a href="../news/20060101.html">2006</a></li><li><a href="../news/20050101.html">2005</a></li><li><a href="../news/20041100.html">2004</a></li></ul></td><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left"><table border="0" width="100%" cellspacing="4"><tr><td align="left" valign="top"><h1>The Apache Tomcat Connector - Reference Guide</h1><h2>Configuring IIS</h2></td><td align="right" valign="top" nowrap="true"><small><a href="printer/iis.html"><img src="../images/printer.gif" border="0" alt="Printer Friendly Version"><br>print-friendly<br>version
+ </a></small></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Requirements"><strong>Requirements</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+The Tomcat redirector requires three entities:
+
+<ul>
+<li>
+<b>isapi_redirect.dll</b> - The IIS server plugin, either obtain a pre-built DLL or build it yourself (see the build section).
+</li>
+<li>
+<b>workers.properties</b> - A file that describes the host(s) and port(s) used by the workers (Tomcat processes).
+A sample workers.properties can be found under the conf directory.
+</li>
+<li>
+<b>uriworkermap.properties</b> - A file that maps URL-Path patterns to workers.
+A sample uriworkermap.properties can be found under the conf directory as well.
+</li>
+</ul>
+</p>
+
+<p>
+The installation includes the following parts:
+
+<ul>
+<li>
+Configuring the ISAPI redirector with a default /examples context and checking that you can serve servlets with IIS.
+</li>
+<li>
+Adding more contexts to the configuration.
+</li>
+</ul>
+</p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Registry settings"><strong>Registry settings</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+ISAPI redirector reads configuration from the registry, create a new registry key named :
+</p>
+<p>
+<b>"HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Jakarta Isapi Redirector\1.0"</b>
+</p>
+<table border="1" cellpadding="5"><tr><th width="20%" bgcolor="#023264"><font color="#ffffff">Key Name</font></th><th width="80%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><strong><code>extension_uri</code></strong></td><td align="left" valign="center"><p>
+A string value pointing to the ISAPI extension <b>/jakarta/isapi_redirect.dll</b>
+</p></td></tr><tr><td align="left" valign="center"><code>log_file</code></td><td align="left" valign="center"><p>
+A value pointing to location where log file will be created.
+(for example <b>c:\tomcat\logs\isapi.log</b>)
+<br>If one of the log rotation settings (<b>log_rotationtime</b> or <b>log_filesize</b>) are specified then the actual log file name is based on this setting.
+If the log file name includes any '%' characters, then it is treated as a format string for <b class="code">strftime(3)</b>,
+e.g. <b>c:\tomcat\logs\isapi-%Y-%m-%d-%H_%M_%S.log</b>. Otherwise, the suffix <em>.nnnnnnnnnn</em> is automatically added and is the time in seconds.
+A full list of format string substitutions can be found in the <a href="http://httpd.apache.org/docs/2.0/programs/rotatelogs.html">Apache rotatelogs documentation</a>
+</p></td></tr><tr><td align="left" valign="center"><code>log_level</code></td><td align="left" valign="center"><p>
+A string value for log level
+(can be debug, info, warn, error or trace).</p>
+<p>This directive was added in version 1.2.31</p>
+</td></tr><tr><td align="left" valign="center"><code>log_rotationtime</code></td><td align="left" valign="center"><p>
+The time between log file rotations in seconds.
+Setting this to 0 (the default) disables log rotation based on time.</p>
+<p>This directive was added in version 1.2.31</p>
+</td></tr><tr><td align="left" valign="center"><code>log_filesize</code></td><td align="left" valign="center"><p>
+The maximum log file size in megabytes, after which the log file will be rotated. Setting this to 0 (the default) disables log rotation based on file size.
+<br>The value can have an optional <b>M</b> suffix, i.e. both <b>5</b> and <b>5M</b> will rotate the log file when it grows to 5MB.
+<br>If <b>log_rotationtime</b> is specified, then this setting is ignored.
+</p></td></tr><tr><td align="left" valign="center"><strong><code>worker_file</code></strong></td><td align="left" valign="center"><p>
+A string value which is the full path to workers.properties file
+(for example <b>c:\tomcat\conf\workers.properties</b>)
+</p></td></tr><tr><td align="left" valign="center"><strong><code>worker_mount_file</code></strong></td><td align="left" valign="center"><p>
+A string value which is the full path to uriworkermap.properties file
+(for example <b>c:\tomcat\conf\uriworkermap.properties</b>)
+</p></td></tr><tr><td align="left" valign="center"><code>rewrite_rule_file</code></td><td align="left" valign="center"><p>
+A string value which is the full path to rewrite.properties file
+(for example <b>c:\tomcat\conf\rewrite.properties</b>)
+</p></td></tr><tr><td align="left" valign="center"><code>shm_size</code></td><td align="left" valign="center"><p>
+A DWORD value size of the shared memory. Set this value to be
+the number of all defined workers * 400.
+(Set this value only if you have <b>more</b> then <b>64</b> workers)
+</p>
+<p>This directive has been added in version 1.2.20</p>
+<p>Starting with version 1.2.27 the size of the shared memory is determined
+automatically, even for large numbers of workers. This attribute is not
+needed any longer.</p>
+</td></tr><tr><td align="left" valign="center"><code>worker_mount_reload</code></td><td align="left" valign="center"><p>
+A DWORD value specifying the time in seconds upon which the
+<b>worker_mount_file</b> will be reloaded.
+</p>
+<p>This directive has been added in version 1.2.20</p>
+</td></tr><tr><td align="left" valign="center"><code>strip_session</code></td><td align="left" valign="center"><p>
+A string value representing a boolean. If it is set to true,
+URL session suffixes of the form ";jsessionid=..." get stripped of URLs,
+even if the are served locally by the web server.
+</p>
+<p>
+A true value can be represented by the string "1" or any string starting
+with the letters "T" or "t". A false value will be assumed for "0"
+or any string starting with "F" or "f". The default value is false.
+</p>
+<p>This directive has been added in version 1.2.21</p>
+</td></tr><tr><td align="left" valign="center"><code>auth_complete</code></td><td align="left" valign="center"><p>
+A DWORD value representing "0" or "1". This is needed because
+of minor incompatibilities with IIS 5.1.
+</p>
+<p>
+By default its value is 1, which means we use the SF_NOTIFY_AUTH_COMPLETE
+event. If you set this to 0, then we use SF_NOTIFY_PREPROC_HEADERS.
+This might be needed for IIS 5.1 when handling requests using the
+PUT HTTP method.
+</p>
+<p>This directive has been added in version 1.2.21</p>
+</td></tr><tr><td align="left" valign="center"><code>uri_select</code></td><td align="left" valign="center"><p>
+A string value which influences, how URIs are decoded and re-encoded
+between IIS and Tomcat. You should leave this at it's default value,
+unless you have a very good reason to change it.
+</p>
+<p>
+If the value is "parsed", the forwarded URI
+will be decoded and explicit path components like ".." will already
+be resolved. This is less spec compliant and is <b>not safe</b>
+if you are using prefix forwarding rules.
+</p>
+<p>
+If the value is "unparsed", the forwarded URI
+will be the original request URI. It's spec compliant and also
+the safest option. Rewriting the URI and then forwarding the rewritten
+URI will not work.
+</p>
+<p>
+If the value is "escaped", the forwarded URI
+will be the re-encoded form of the URI used by "parsed".
+Explicit path components like ".." will already be resolved.
+This will not work in combination with URL encoded session IDs.
+</p>
+<p>
+If the value is "proxy", the forwarded URI
+will be a partially re-encoded form of the URI used by "parsed".
+Explicit path components like ".." will already be resolved.
+and problematic are re-encoded.
+</p>
+<p>The default value since version 1.2.24 is "proxy". Before it was "parsed".</p>
+</td></tr><tr><td align="left" valign="center"><code>reject_unsafe</code></td><td align="left" valign="center"><p>
+A string value representing a boolean. If it is set to true,
+URLs containing percent signs '%' or backslashes '\'
+after decoding will be rejected.
+</p>
+<p>
+Most web apps do not use such URLs. By enabling "reject_unsafe" you
+can block several well known URL encoding attacks.
+</p>
+<p>
+A true value can be represented by the string "1" or any string starting
+with the letters "T" or "t". A false value will be assumed for "0"
+or any string starting with "F" or "f". The default value is false.
+</p>
+<p>This directive has been added in version 1.2.24</p>
+</td></tr><tr><td align="left" valign="center"><code>watchdog_interval</code></td><td align="left" valign="center"><p>
+A DWORD value representing the watchdog thread interval in seconds.
+The workers are maintained periodically by a background thread
+running periodically every watchdog_interval seconds. Worker maintenance
+checks for idle connections, corrects load status and is able
+to detect backend health status.
+</p>
+<p>
+The maintenance only happens, if since the last maintenance at
+least <a href="workers.html"><b class="code">worker.maintain</b></a>
+seconds have passed. So setting the watchdog_interval
+much smaller than <b class="code">worker.maintain</b> is not useful.
+</p>
+<p>
+The default value is 0 seconds, meaning the watchdog thread
+will not be created, and the maintenance is done in combination
+with normal requests instead.
+</p>
+<p>This directive has been added in version 1.2.27</p>
+</td></tr><tr><td align="left" valign="center"><code>error_page</code></td><td align="left" valign="center"><p>
+A string value representing the error page url redirection when
+backend returns non-200 response. This directive can be used
+to customise the error messages returned from backend server.
+</p>
+<p>The url must point to a valid server url and can contain
+format string number <b class="code">(%d)</b> that can be used to
+separate the pages by error number. The redirect url in that
+case is formatted by replacing <b class="code">%d</b> from
+<b class="code">error_page</b> to returned error number.
+</p>
+<p>This directive has been added in version 1.2.27</p>
+</td></tr><tr><td align="left" valign="center"><code>enable_chunked_encoding</code></td><td align="left" valign="center"><p>
+A string value representing a boolean. If it is set to true,
+chunked encoding is supported by the server.
+</p>
+<p>
+A true value can be represented by the string "1" or any string starting
+with the letters "T" or "t". A false value will be assumed for "0"
+or any string starting with "F" or "f". The default value is false.
+</p>
+<p><font color="#ff0000">This option is considered experimental and its support
+must be compile time enabled. Use <b class="code">isapi_redirect.dll</b>
+with chunked support enabled.
+</font></p>
+<p>This directive has been added in version 1.2.27</p>
+</td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Using a properties file for configuration"><strong>Using a properties file for configuration</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+The ISAPI redirector can read it's configuration from a properties file instead of the registry.
+This has the advantage that you can use multiple ISAPI redirectors with independent configurations on the same server.
+The redirector will check for the properties file during initialisation, and use it in preference to the registry if present.
+</p>
+<p>
+Create a properties file in the same directory as the ISAPI redirector called <b>isapi_redirect.properties</b> i.e. with the same name as the ISAPI redirector DLL but with a <em>.properties</em> extension. A sample isapi_redirect.properties can be found under the conf directory.
+</p>
+<p>
+The property names and values in the properties file are the same as for the registry settings described above. For example:
+</p>
+<p>
+<div class="example"><pre>
+# Configuration file for the Jakarta ISAPI Redirector
+
+# The path to the ISAPI Redirector Extension, relative to the website
+# This must be in a virtual directory with execute privileges
+extension_uri=/jakarta/isapi_redirect.dll
+
+# Full path to the log file for the ISAPI Redirector
+log_file=c:\tomcat\logs\isapi_redirect.log
+
+# Log level (debug, info, warn, error or trace)
+log_level=info
+
+# Full path to the workers.properties file
+worker_file=c:\tomcat\conf\workers.properties
+
+# Full path to the uriworkermap.properties file
+worker_mount_file=c:\tomcat\conf\uriworkermap.properties
+</pre></div>
+</p>
+<p>
+ Notes:
+ <ul>
+ <li>
+ Back-slashes - '\' - are not escape characters.
+ </li>
+ <li>
+ Comment lines begin with '#'.
+ </li>
+ </ul>
+</p>
+<p>Starting with version 1.2.27 two environment variables are
+dynamically added to the environment that can be used inside
+<b class="code">.properties</b> files.
+ <ul>
+ <li>JKISAPI_PATH - Full path to the ISAPI Redirector.
+ </li>
+ <li>JKISAPI_NAME - Name of the ISAPI Redirector dll without extension
+ </li>
+ </ul>
+</p>
+<p><div class="example"><pre>
+# Use the logs in the installation path of ISAPI Redirector
+log_file=$(ISAPI_PATH)\$(ISAPI_NAME).log
+</pre></div></p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Log file rotation"><strong>Log file rotation</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+The ISAPI redirector with version 1.2.31 can perform log rotation, with configuration and behaviour similar to the
+<a href="http://httpd.apache.org/docs/2.0/programs/rotatelogs.html">rotatelogs</a> program provided with Apache HTTP Server.
+</p>
+<p>
+To configure log rotation, configure a <b>log_file</b>, and one of the <b>log_rotationtime</b> or <b>log_filesize</b> options.
+If both are specified, the <b>log_rotationtime</b> will take precedence, and <b>log_filesize</b> will be ignored.
+<br>For example, to configure daily rotation of the log file:
+</p>
+<div class="example"><pre>
+# Configuration file for the Jakarta ISAPI Redirector
+...
+
+# Full path to the log file for the ISAPI Redirector
+log_file=c:\tomcat\logs\isapi_redirect.%Y-%m-%d.log
+
+# Log level (debug, info, warn, error or trace)
+log_level=info
+
+# Rotate the log file every day
+log_rotationtime=86400
+
+...
+</pre></div>
+<p>
+Or to configure rotation of the log file when it reaches 5MB in size:
+</p>
+<div class="example"><pre>
+# Configuration file for the Jakarta ISAPI Redirector
+...
+
+# Full path to the log file for the ISAPI Redirector
+log_file=c:\tomcat\logs\isapi_redirect.%Y-%m-%d-%H.log
+
+# Log level (debug, info, warn, error or trace)
+log_level=info
+
+# Rotate the log file at 5 MB
+log_filesize=5M
+
+...
+</pre></div>
+<p>
+The log will be rotated whenever the configured limit is reached, but only if the log file name would change. If you configure
+ a log file name with <b class="code">strftime(3)</b> format codes in it, then ensure it specifies the same granularity
+ as the rotation time configured, e.g. <b>%Y-%m-%d</b> if rotating daily (<b>log_rotationtime=86400</b>).
+<br>See the <a href="http://httpd.apache.org/docs/2.0/programs/rotatelogs.html">rotatelogs</a> documentation for more examples.
+</p>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Using a simple rewrite rules"><strong>Using a simple rewrite rules</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+The ISAPI redirector with version 1.2.16 can do a simple URL rewriting. Although not
+as powerful as Apache Httpd's mod_rewrite, it allows a simple exchange of request URIs
+</p>
+<p>
+The rule is in the form original-url-prefix=forward-url-prefix. For example:
+</p>
+<div class="example"><pre>
+# Simple rewrite rules, making /jsp-examples
+# and /servlets-examples available under shorter URLs
+/jsp/=/jsp-examples/
+/servlets/=/servlets-examples/
+</pre></div>
+<p>
+You can also use regular expressions, if you prefix the rule with a tilde <b class="code">~</b>:
+</p>
+<div class="example"><pre>
+# Complex rewrite rule, adding "-examples"
+# to the first path component of all requests
+~/([^/]*)=/$1-examples
+</pre></div>
+<p>
+Note that uriworkermap.properties must use the URLs before rewriting.
+</p>
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright &copy; 1999-2011, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html> \ No newline at end of file
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/docs/reference/printer/apache.html b/rubbos/app/tomcat-connectors-1.2.32-src/docs/reference/printer/apache.html
new file mode 100644
index 00000000..6524e441
--- /dev/null
+++ b/rubbos/app/tomcat-connectors-1.2.32-src/docs/reference/printer/apache.html
@@ -0,0 +1,1010 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>The Apache Tomcat Connector - Reference Guide - Configuring Apache</title><meta name="author" value="Mladen Turk"><meta name="email" value="mturk@apache.org"><link href="../../style.css" type="text/css" rel="stylesheet"></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="4"><!--PAGE HEADER--><tr><td colspan="2"><!--TOMCAT LOGO--><a href="http://tomcat.apache.org/"><img src="../../images/tomcat.gif" align="left" alt="Apache Tomcat" border="0"></a><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="http://www.apache.org/images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><tr><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left"><table border="0" width="100%" cellspacing="4"><tr><td align="left" valign="top"><h1>The Apache Tomcat Connector - Reference Guide</h1><h2>Configuring Apache</h2></td><td align="right" valign="top" nowrap="true"><img src="../../images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Configuration Directives"><strong>Configuration Directives</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+Most of the directives are allowed once in the global part of the Apache httpd
+configuration and once in every &lt;VirtualHost&gt; elements. Exceptions from this rule are
+explicitly listed in the table below.
+</p>
+<p>
+Most values are inherited from the main server to the virtual hosts.
+Since version 1.2.20 they can be overwritten in the virtual hosts.
+Exceptions from this rule are again explicitly listed in the table below.
+See especially JkMountCopy.
+</p>
+<p><font color="#ff0000">
+Warning: If Apache httpd and Tomcat are configured to serve content from
+the same filing system location then care must be taken to ensure that httpd is
+not able to serve inappropriate content such as the contents of the WEB-INF
+directory or JSP source code.
+</font></p>
+<p>
+This could occur if the httpd DocumentRoot
+overlaps with a Tomcat Host's appBase or the docBase of any Context. It could
+also occur when using the httpd Alias directive with a Tomcat Host's appBase or
+the docBase of any Context.
+</p>
+<p>
+Here are the all directives supported by Apache:
+</p>
+<table border="1" cellpadding="5"><tr><th width="20%" bgcolor="#023264"><font color="#ffffff">Directive</font></th><th width="80%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code>JkWorkersFile</code></td><td align="left" valign="center"><p>
+The name of a worker file for the Tomcat servlet containers.
+<br>
+This directive is only allowed once. It must be put into
+the global part of the configuration.
+<br>
+If you don't use the JkWorkerProperty directives, then you must
+define your workers with a valid JkWorkersFile. There is no default
+value.
+</p></td></tr><tr><td align="left" valign="center"><code>JkWorkerProperty</code></td><td align="left" valign="center"><p>
+Enables setting worker properties inside Apache configuration file.
+The syntax is the same as in the JkWorkersFile (usually workers.properties).
+Simply prefix each line with "JkWorkerProperty" to put it directly into
+the Apache httpd config files.
+<br>
+This directive is allowed multiple times.
+It must be put into the global part of the configuration.
+<br>
+If you don't use the JkWorkerProperty directives, then you must
+define your workers with a valid JkWorkersFile. There is no default
+value.
+<br>
+This directive is available in jk1.2.7 version and later.
+</p></td></tr><tr><td align="left" valign="center"><code>JkShmFile</code></td><td align="left" valign="center"><p>
+Shared memory file name. Used only on unix platforms.
+The shm file is used by balancer and status workers.
+<br>
+This directive is only allowed once. It must be put into
+the global part of the configuration.
+<br>
+The default value is logs/jk-runtime-status.
+It is highly recommended that the shm file be placed on a local
+drive and not an NFS share.
+</p>
+<p>
+The shared memory contains configuration and runtime information for load balancer
+workers and their members. It is need in order that all apache children
+<ul>
+<li>share the same status information for load balancing members (OK, ERROR, ...),</li>
+<li>share the information about load taken by the individual workers,</li>
+<li>share the information for the parts of the configuration, which are changeable
+during runtime by status workers.</li>
+</ul>
+</p>
+</td></tr><tr><td align="left" valign="center"><code>JkShmSize</code></td><td align="left" valign="center"><p>
+Size of the shared memory file name.
+<br>
+This directive is only allowed once. It must be put into
+the global part of the configuration.
+<br>
+The default value depends on the platform. It is usually less than 64KB.
+</p></td></tr><tr><td align="left" valign="center"><code>JkMountFile</code></td><td align="left" valign="center"><p>
+File containing multiple mappings from a context to a Tomcat worker.
+It is usually called uriworkermap.properties.
+<br>
+For inheritance rules, see: JkMountCopy.
+<br>
+There is no default value.
+</p></td></tr><tr><td align="left" valign="center"><code>JkMountFileReload</code></td><td align="left" valign="center"><p>
+This directive configures the reload check interval in seconds.
+The JkMountFile is checked periodically for changes.
+A changed file gets reloaded automatically. If you set
+this directive to "0", reload checking is turned off.
+<br>
+The default value is 60 seconds.
+<br>
+This directive has been added in version 1.2.20 of mod_jk.
+</p></td></tr><tr><td align="left" valign="center"><code>JkMount</code></td><td align="left" valign="center"><p>
+A mount point from a context to a Tomcat worker.
+<br>
+This directive is allowed multiple times.
+It is allowed in the global configuration and in VirtualHost.
+You can also use it inside Location with a different syntax.
+Inside Location, one omits the first argument (path),
+which gets inherited from the Location.
+<br>
+By default JkMount entries are not inherited from the global
+server to other VirtualHosts or between VirtualHosts.
+For the complete inheritance rules, see: JkMountCopy.
+</p></td></tr><tr><td align="left" valign="center"><code>JkUnMount</code></td><td align="left" valign="center"><p>
+An exclusion mount point from a context to a Tomcat worker.
+All exclusion mounts are checked after mapping a request
+to a tomcat worker. If the request maps also to an exclusion,
+it will not be forwarded to tomcat, and instead be served locally.
+<br>
+This directive is allowed multiple times.
+It is allowed in the global configuration and in VirtualHost.
+You can also use it inside Location with a different syntax.
+Inside Location, one omits the first argument (path),
+which gets inherited from the Location.
+For inheritance rules, see: JkMountCopy.
+<br>
+This directive is available in jk1.2.7 version and later.
+</p></td></tr><tr><td align="left" valign="center"><code>JkAutoAlias</code></td><td align="left" valign="center"><p>
+Automatically Alias webapp context directories into the Apache
+document space.
+<br>
+Care should be taken to ensure that only static content is served via httpd as a
+result of using this directive. Any static content served by httpd will bypass any
+security constraints defined in the application's web.xml.
+<br>
+For inheritance rules, see: JkMountCopy.
+<br>
+There is no default value.
+</p></td></tr><tr><td align="left" valign="center"><code>JkMountCopy</code></td><td align="left" valign="center"><p>
+If this directive is set to "On" in some virtual server,
+the mounts from the global server will be copied to this
+virtual server, more precisely all mounts defined by JkMount
+or JkUnMount. The Mounts defined by JkMountFile and JkAutoAlias
+will only be inherited, if the VirtualHost does not define
+it's own JkMountFile or JkAutoAlias.
+<br>
+If you want all vhost to inherit mounts from the main server,
+you can set JkMountCopy to 'All' in the main server.
+<br>
+This directive is only allowed inside VirtualHost (with value "On")
+and in the global server (with value "All").
+<br>
+The default is Off, so no mounts will be inherited from the global
+server to any VirtualHost.
+<br>
+Starting with version 1.2.26 you can also set it to "All" in the
+global virtual server. This will switch the default to On.
+</p></td></tr><tr><td align="left" valign="center"><code>JkWorkerIndicator</code></td><td align="left" valign="center"><p>
+Name of the Apache environment variable that can be used to set worker names
+in combination with SetHandler jakarta-servlet.
+<br>
+This directive is only allowed once per virtual server.
+It is allowed in the global configuration and in VirtualHost.
+<br>
+The default value is JK_WORKER_NAME.
+</p></td></tr><tr><td align="left" valign="center"><code>JkWatchdogInterval</code></td><td align="left" valign="center"><p>
+This directive configures the watchdog thread interval in seconds.
+The workers are maintained periodically by a background thread
+running periodically every watchdog_interval seconds. Worker maintenance
+checks for idle connections, corrects load status and is able
+to detect backend health status.
+<br>
+The maintenance only happens, if since the last maintenance at
+least <a href="workers.html"><b class="code">worker.maintain</b></a>
+seconds have passed. So setting the JkWatchdogInterval
+much smaller than <b class="code">worker.maintain</b> is not useful.
+<br>
+The default value is 0 seconds, meaning the watchdog thread
+will not be created, and the maintenance is done in combination
+with normal requests instead.
+<br>
+This directive is only allowed once. It must be put into
+the global part of the configuration.
+<br>
+This directive has been added in version 1.2.27 of mod_jk.
+It is available only for httpd 2.x and above using APR libraries
+including thread support.
+</p></td></tr><tr><td align="left" valign="center"><code>JkLogFile</code></td><td align="left" valign="center"><p>
+Full or server relative path to the Tomcat Connector module log file.
+It will also work with pipe, by using a value of the form "| ...".
+<br>
+The default value is logs/mod_jk.log.
+<br>
+Pipes are supported for Apache 1.3 only since version 1.2.16.
+The default value exists only since version 1.2.20.
+</p></td></tr><tr><td align="left" valign="center"><code>JkLogLevel</code></td><td align="left" valign="center"><p>
+The Tomcat Connector module log level, can be debug, info, warn
+error or trace.
+<br>
+The default value is info.
+</p></td></tr><tr><td align="left" valign="center"><code>JkLogStampFormat</code></td><td align="left" valign="center"><p>
+The Tomcat Connector module <b>date</b> log format, using an
+extended strftime syntax.
+This format will be used for the time stamps in the JkLogFile.
+The maximum length of the format is 63 characters.
+<br>
+Starting with version 1.2.24 of mod_jk you can also use %Q
+for adding milliseconds to the log and %q for microseconds.
+These conversion specifiers are an extension to strftime.
+They will only work on platforms with a gettimeofday() function.
+You can use %Q and %q only once in the pattern and also not both
+together in the same pattern.
+<br>
+The default value is "[%a %b %d %H:%M:%S %Y] " and beginning
+with version 1.2.24 on platforms with a gettimeofday()
+function it is "[%a %b %d %H:%M:%S.%Q %Y] ".
+</p></td></tr><tr><td align="left" valign="center"><code>JkRequestLogFormat</code></td><td align="left" valign="center"><p>
+Request log format string. See detailed description below.
+<br>
+There is no default value. Without defining a value, the request logging
+is turned off.
+</p></td></tr><tr><td align="left" valign="center"><code>JkExtractSSL</code></td><td align="left" valign="center"><p>
+Turns on SSL processing and information gathering by mod_jk
+<br>
+The default value is On.
+<br>
+In order to make SSL data available for mod_jk in Apache, you need to
+set <b class="code">SSLOptions +StdEnvVars</b>. For the certificate information you also need
+to add <b class="code">SSLOptions +ExportCertData</b>.
+</p>
+<p>
+ Specifically, mod_jk will export the following environment variables from
+ Apache httpd to Tomcat under these request attributes as per the
+ Servlet Specification 3.0, section 3.8:
+</p>
+<table>
+ <tr><th>Env Var</th><th>Request Attribute Name</th><th>Type</th><th>Example</th></tr>
+ <tr>
+ <td>SSL_CIPHER<br>(or <b class="code">JkKEYSIZEIndicator</b>)</td>
+ <td>javax.servlet.request.cipher_suite</td>
+ <td>java.lang.String</td>
+ <td>DHE-RSA-AES256-SHA</td>
+ </tr>
+ <tr>
+ <td>SSL_CIPHER_USEKEYSIZE<br>(or <b class="code">JkKEYSIZEIndicator</b>)</td>
+ <td>javax.servlet.request.key_size</td>
+ <td>java.lang.Integer</td>
+ <td>256</td>
+ </tr>
+ <tr>
+ <td>SSL_SESSION_ID<br>(or <b class="code">JkSESSIONIndicator</b>)</td>
+ <td>javax.servlet.request.ssl_session</td>
+ <td>java.lang.String</td>
+ <td>905...32E (a hex string)</td>
+ </tr>
+ <tr>
+ <td>SSL_CLIENT_CERT_CHAIN_<i>n</i><br>(or <b class="code">JkCERTCHAINPrefix</b><i>n</i>)</td>
+ <td>javax.servlet.request.X509Certificate</td>
+ <td>java.security.X509Certificate[]</td>
+ <td>(A chain of certs in ascending order of trust, the first one being
+ ths client's certificate, the second being the signer of that
+ certificate, and so on)</td>
+ </tr>
+</table>
+<p>
+ For all other SSL-related variables, use <b class="code">JkEnvVar</b> for each
+ variable you want. Please note that, like <b class="code">JkEnvVar</b>, these
+ variables are available from the request <i><b>attributes</b></i>, not as
+ environment variables or as request headers.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>JkHTTPSIndicator</code></td><td align="left" valign="center"><p>
+Name of the Apache environment variable that contains SSL indication.
+<br>
+The default value is "HTTPS".
+</p></td></tr><tr><td align="left" valign="center"><code>JkCERTSIndicator</code></td><td align="left" valign="center"><p>
+Name of the Apache environment variable that contains SSL client certificates.
+<br>
+The default value is "SSL_CLIENT_CERT".
+</p></td></tr><tr><td align="left" valign="center"><code>JkCIPHERIndicator</code></td><td align="left" valign="center"><p>
+Name of the Apache environment variable that contains SSL client cipher.
+<br>
+The default value is "SSL_CIPHER".
+</p></td></tr><tr><td align="left" valign="center"><code>JkCERTCHAINPrefix</code></td><td align="left" valign="center"><p>
+Name of the Apache environment (prefix) that contains SSL client chain certificates.
+<br>
+The default value is "SSL_CLIENT_CERT_CHAIN_".
+</p></td></tr><tr><td align="left" valign="center"><code>JkSESSIONIndicator</code></td><td align="left" valign="center"><p>
+Name of the Apache environment variable that contains SSL session.
+<br>
+The default value is "SSL_SESSION_ID".
+</p></td></tr><tr><td align="left" valign="center"><code>JkKEYSIZEIndicator</code></td><td align="left" valign="center"><p>
+Name of the Apache environment variable that contains SSL key size in use.
+<br>
+The default value is "SSL_CIPHER_USEKEYSIZE".
+</p></td></tr><tr><td align="left" valign="center"><code>JkLocalNameIndicator</code></td><td align="left" valign="center"><p>
+Name of the Apache environment variable which can be used to overwrite
+the forwarded local name.
+Use this only if you need to adjust the data (see the
+<a href="../../generic_howto/proxy.html">proxy</a> documentation).
+<br>
+The default value is "JK_LOCAL_NAME".
+<br>
+This directive has been added in version 1.2.28 of mod_jk.
+</p></td></tr><tr><td align="left" valign="center"><code>JkLocalPortIndicator</code></td><td align="left" valign="center"><p>
+Name of the Apache environment variable which can be used to overwrite
+the forwarded local port.
+Use this only if you need to adjust the data (see the
+<a href="../../generic_howto/proxy.html">proxy</a> documentation).
+<br>
+The default value is "JK_LOCAL_PORT".
+<br>
+This directive has been added in version 1.2.28 of mod_jk.
+</p></td></tr><tr><td align="left" valign="center"><code>JkRemoteHostIndicator</code></td><td align="left" valign="center"><p>
+Name of the Apache environment variable which can be used to overwrite
+the forwarded remote (client) host name.
+Use this only if you need to adjust the data (see the
+<a href="../../generic_howto/proxy.html">proxy</a> documentation).
+<br>
+The default value is "JK_REMOTE_HOST".
+<br>
+This directive has been added in version 1.2.28 of mod_jk.
+</p></td></tr><tr><td align="left" valign="center"><code>JkRemoteAddrIndicator</code></td><td align="left" valign="center"><p>
+Name of the Apache environment variable which can be used to overwrite
+the forwarded remote (client) IP address.
+Use this only if you need to adjust the data (see the
+<a href="../../generic_howto/proxy.html">proxy</a> documentation).
+<br>
+The default value is "JK_REMOTE_ADDR".
+<br>
+This directive has been added in version 1.2.28 of mod_jk.
+</p></td></tr><tr><td align="left" valign="center"><code>JkRemotePortIndicator</code></td><td align="left" valign="center"><p>
+Name of the Apache environment variable which can be used to overwrite
+the forwarded remote (client) IP address.
+Use this only if you need to adjust the data (see the
+<a href="../../generic_howto/proxy.html">proxy</a> documentation).
+<br>
+The default value is "JK_REMOTE_PORT".
+<br>
+This directive has been added in version 1.2.32 of mod_jk.
+</p></td></tr><tr><td align="left" valign="center"><code>JkRemoteUserIndicator</code></td><td align="left" valign="center"><p>
+Name of the Apache environment variable which can be used to overwrite
+the forwarded user name.
+Use this only if you need to adjust the data (see the
+<a href="../../generic_howto/proxy.html">proxy</a> documentation).
+<br>
+The default value is "JK_REMOTE_USER".
+<br>
+This directive has been added in version 1.2.28 of mod_jk.
+</p></td></tr><tr><td align="left" valign="center"><code>JkAuthTypeIndicator</code></td><td align="left" valign="center"><p>
+Name of the Apache environment variable which can be used to overwrite
+the forwarded authentication type.
+Use this only if you need to adjust the data (see the
+<a href="../../generic_howto/proxy.html">proxy</a> documentation).
+<br>
+The default value is "JK_AUTH_TYPE".
+<br>
+This directive has been added in version 1.2.28 of mod_jk.
+</p></td></tr><tr><td align="left" valign="center"><code>JkOptions</code></td><td align="left" valign="center"><p>
+Set one of more options to configure the mod_jk module. See below for
+details about this directive.
+<br>
+This directive can be used multiple times per virtual server.
+<br>
+The default value is "ForwardURIProxy" since version 1.2.24.
+It was "ForwardURICompatUnparsed" in version 1.2.23 and
+"ForwardURICompat" until version 1.2.22.
+</p></td></tr><tr><td align="left" valign="center"><code>JkEnvVar</code></td><td align="left" valign="center"><p>
+Adds a name and an optional default value of environment variable
+that should be sent to servlet-engine as a request attribute.
+If the default value is not given explicitly, the variable
+will only be send, if it is set during runtime.
+<br>
+The default is empty, so no additional variables will be sent.
+<br>
+This directive can be used multiple times per virtual server.
+The settings will be merged between the global server and any
+virtual server.
+<br>
+You can retrieve the variables on Tomcat as request attributes
+via request.getAttribute(attributeName). Note that the variables
+send via JkEnvVar will not be listed in request.getAttributeNames().
+<br>
+Empty default values are supported since version 1.2.20.
+Not sending variables with empty defaults and empty runtime value
+has been introduced in version 1.2.21.
+</p></td></tr><tr><td align="left" valign="center"><code>JkStripSession</code></td><td align="left" valign="center"><p>
+If this directive is set to On in some virtual server,
+the session IDs <b class="code">;jsessionid=...</b> will be
+removed for non matched URLs.
+<br>
+This directive is only allowed inside VirtualHost.
+<br>
+The default is Off.
+<br>
+This directive has been introduced in version 1.2.21.
+<br>With version 1.2.27 and later this directive can have optional
+session ID identifier. If not specified it defaults to
+<b class="code">;jsessionid</b>.
+</p>
+</td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Configuration Directives Types"><strong>Configuration Directives Types</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+We'll discuss here the mod_jk directive types.
+</p>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Define workers"><strong>Define workers</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+<b>JkWorkersFile</b> specify the location where mod_jk will find the workers definitions.
+Take a look at <a href="workers.html">Workers documentation</a> for detailed description.
+
+<div class="example"><pre>
+ JkWorkersFile /etc/httpd/conf/workers.properties
+</pre></div>
+
+<br>
+<br>
+</p>
+
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Logging"><strong>Logging</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+<b>JkLogFile</b> specify the location where mod_jk is going to place its log file.
+</p>
+
+<div class="example"><pre>
+ JkLogFile /var/log/httpd/mod_jk.log
+</pre></div>
+
+<p>
+Since JK 1.2.3 for Apache 2.x and JK 1.2.16 for Apache 1.3 this can also
+be used for piped logging:
+</p>
+
+<div class="example"><pre>
+ JkLogFile "|/usr/bin/rotatelogs /var/log/httpd/mod_jk.log 86400"
+</pre></div>
+
+<p>
+<b>JkLogLevel</b>
+set the log level between :
+</p>
+
+<ul>
+<li>
+<b>info</b> log will contain standard mod_jk activity (default).
+</li>
+<li>
+<b>warn</b> log will contain non fatal error reports.
+</li>
+<li>
+<b>error</b> log will contain also error reports.
+</li>
+<li>
+<b>debug</b> log will contain all information on mod_jk activity
+</li>
+<li>
+<b>trace</b> log will contain all tracing information on mod_jk activity
+</li>
+</ul>
+
+<div class="example"><pre>
+ JkLogLevel info
+</pre></div>
+
+<p>
+<b class="code">info</b> should be your default selection for normal operations.
+<br>
+<br>
+</p>
+
+<p>
+<b>JkLogStampFormat</b> will configure the date/time format found on mod_jk log file.
+Using the strftime() format string it's set by<br>
+default to <b>"[%a %b %d %H:%M:%S %Y]"</b>
+</p>
+
+<div class="example"><pre>
+ JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
+</pre></div>
+
+<p>
+<br>
+<br>
+</p>
+
+<p>
+<b>JkRequestLogFormat</b> will configure the format of mod_jk individual request logging.
+Request logging is configured and enabled on a per virtual host basis.
+To enable request logging for a virtual host just add a JkRequestLogFormat config.
+The syntax of the format string is similar to the Apache LogFormat command,
+here is a list of the available request log format options:
+</p>
+
+<p>
+<table border="1" cellpadding="5"><tr><th width="20%" bgcolor="#023264"><font color="#ffffff">Options</font></th><th width="80%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code>%b</code></td><td align="left" valign="center">Bytes sent, excluding HTTP headers (CLF format)</td></tr><tr><td align="left" valign="center"><code>%B</code></td><td align="left" valign="center">Bytes sent, excluding HTTP headers</td></tr><tr><td align="left" valign="center"><code>%H</code></td><td align="left" valign="center">The request protocol</td></tr><tr><td align="left" valign="center"><code>%m</code></td><td align="left" valign="center">The request method</td></tr><tr><td align="left" valign="center"><code>%p</code></td><td align="left" valign="center">The canonical Port of the server serving the request</td></tr><tr><td align="left" valign="center"><code>%q</code></td><td align="left" valign="center">The query string (prepended with a ? if a query string exists, otherwise an empty string)</td></tr><tr><td align="left" valign="center"><code>%r</code></td><td align="left" valign="center">First line of request</td></tr><tr><td align="left" valign="center"><code>%s</code></td><td align="left" valign="center">Request HTTP status code</td></tr><tr><td align="left" valign="center"><code>%T</code></td><td align="left" valign="center">Request duration, elapsed time to handle request in seconds '.' micro seconds</td></tr><tr><td align="left" valign="center"><code>%U</code></td><td align="left" valign="center">The URL path requested, not including any query string.</td></tr><tr><td align="left" valign="center"><code>%v</code></td><td align="left" valign="center">The canonical ServerName of the server serving the request</td></tr><tr><td align="left" valign="center"><code>%V</code></td><td align="left" valign="center">The server name according to the UseCanonicalName setting</td></tr><tr><td align="left" valign="center"><code>%w</code></td><td align="left" valign="center">Tomcat worker name</td></tr><tr><td align="left" valign="center"><code>%R</code></td><td align="left" valign="center">Real worker name</td></tr></table>
+
+<div class="example"><pre>
+ JkRequestLogFormat "%w %V %T"
+</pre></div>
+
+<br>
+<br>
+</p>
+
+<p>
+You can also log mod_jk information using the Apache standard module <b>mod_log_config</b>.
+The module sets several notes in the Apache httpd notes table.
+Most of them are are only useful in combination with a load balancer worker.
+</p>
+
+<p>
+<table border="1" cellpadding="5"><tr><th width="20%" bgcolor="#023264"><font color="#ffffff">Note</font></th><th width="80%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code>JK_WORKER_NAME</code></td><td align="left" valign="center">Name of the worker selected by the URI mapping</td></tr><tr><td align="left" valign="center"><code>JK_WORKER_TYPE</code></td><td align="left" valign="center">Type of the worker selected by the URI mapping</td></tr><tr><td align="left" valign="center"><code>JK_WORKER_ROUTE</code></td><td align="left" valign="center">Actual worker name selected by the URI mapping (usually a member of the load balancer).<br>
+ Before version 1.2.26 only available if JkRequestLogFormat is set.</td></tr><tr><td align="left" valign="center"><code>JK_REQUEST_DURATION</code></td><td align="left" valign="center">Request duration in seconds and microseconds.<br>
+ Before version 1.2.26 only available if JkRequestLogFormat is set.</td></tr><tr><td align="left" valign="center"><code>JK_LB_FIRST_NAME</code></td><td align="left" valign="center">Load-Balancer: Name of the first worker tried</td></tr><tr><td align="left" valign="center"><code>JK_LB_FIRST_TYPE</code></td><td align="left" valign="center">Load-Balancer: Type of the first worker tried</td></tr><tr><td align="left" valign="center"><code>JK_LB_FIRST_ACCESSED</code></td><td align="left" valign="center">Load-Balancer: Access count for the first worker tried</td></tr><tr><td align="left" valign="center"><code>JK_LB_FIRST_READ</code></td><td align="left" valign="center">Load-Balancer: Bytes read for the first worker tried</td></tr><tr><td align="left" valign="center"><code>JK_LB_FIRST_TRANSFERRED</code></td><td align="left" valign="center">Load-Balancer: Bytes transferred for the first worker tried</td></tr><tr><td align="left" valign="center"><code>JK_LB_FIRST_ERRORS</code></td><td align="left" valign="center">Load-Balancer: Error count for the first worker tried</td></tr><tr><td align="left" valign="center"><code>JK_LB_FIRST_BUSY</code></td><td align="left" valign="center">Load-Balancer: Busy count for the first worker tried</td></tr><tr><td align="left" valign="center"><code>JK_LB_FIRST_ACTIVATION</code></td><td align="left" valign="center">Load-Balancer: Activation state for the first worker tried</td></tr><tr><td align="left" valign="center"><code>JK_LB_FIRST_STATE</code></td><td align="left" valign="center">Load-Balancer: Error state for the first worker tried</td></tr><tr><td align="left" valign="center"><code>JK_LB_LAST_NAME</code></td><td align="left" valign="center">Load-Balancer: Name of the last worker tried</td></tr><tr><td align="left" valign="center"><code>JK_LB_LAST_TYPE</code></td><td align="left" valign="center">Load-Balancer: Type of the last worker tried</td></tr><tr><td align="left" valign="center"><code>JK_LB_LAST_ACCESSED</code></td><td align="left" valign="center">Load-Balancer: Access count for the last worker tried</td></tr><tr><td align="left" valign="center"><code>JK_LB_LAST_READ</code></td><td align="left" valign="center">Load-Balancer: Bytes read for the last worker tried</td></tr><tr><td align="left" valign="center"><code>JK_LB_LAST_TRANSFERRED</code></td><td align="left" valign="center">Load-Balancer: Bytes transferred for the last worker tried</td></tr><tr><td align="left" valign="center"><code>JK_LB_LAST_ERRORS</code></td><td align="left" valign="center">Load-Balancer: Error count for the last worker tried</td></tr><tr><td align="left" valign="center"><code>JK_LB_LAST_BUSY</code></td><td align="left" valign="center">Load-Balancer: Busy count for the last worker tried</td></tr><tr><td align="left" valign="center"><code>JK_LB_LAST_ACTIVATION</code></td><td align="left" valign="center">Load-Balancer: Activation state for the last worker tried</td></tr><tr><td align="left" valign="center"><code>JK_LB_LAST_STATE</code></td><td align="left" valign="center">Load-Balancer: Error state for the last worker tried</td></tr></table>
+
+<div class="example"><pre>
+ LogFormat "%h %l %u %t \"%r\" %&gt;s %b %{JK_WORKER_NAME}n %{JK_LB_FIRST_NAME}n \
+ %{JK_LB_FIRST_BUSY}n %{JK_LB_LAST_NAME}n %{JK_LB_LAST_BUSY}n" mod_jk_log
+ CustomLog logs/access_log mod_jk_log
+</pre></div>
+
+<br>
+<br>
+</p>
+
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Forwarding"><strong>Forwarding</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+The directive JkOptions allow you to set many forwarding options which will enable (+)
+or disable (-) following option. Without any leading signs, options will be enabled.
+<br>
+<br>
+</p>
+
+<p>
+The four following options <b>+ForwardURIxxx</b> are mutually exclusive.
+Exactly one of them is required, a negative sign prefix is not allowed with them.
+The default value is "ForwardURIProxy" since version 1.2.24.
+It was "ForwardURICompatUnparsed" in version 1.2.23 and
+"ForwardURICompat" until version 1.2.22.
+You can turn the default off by switching on one of the other two options.
+You should leave this at it's default value, unless you have a very good
+reason to change it.
+<br>
+<br>
+</p>
+
+<p>
+All options are inherited from the global server to virtual hosts.
+Options that support enabling (plus options) and disabling (minus options),
+are inherited in the following way:
+<br>
+<br>
+options(vhost) = plus_options(global) - minus_options(global) + plus_options(vhost) - minus_options(vhost)
+<br>
+<br>
+</p>
+
+<p>
+Using JkOptions <b>ForwardURIProxy</b>, the forwarded URI
+will be partially reencoded after processing inside Apache httpd and
+before forwarding to Tomcat. This will be compatible with local
+URL manipulation by mod_rewrite and with URL encoded session ids.
+
+<div class="example"><pre>
+ JkOptions +ForwardURIProxy
+</pre></div>
+
+<br>
+<br>
+</p>
+
+<p>
+Using JkOptions <b>ForwardURICompatUnparsed</b>, the forwarded URI
+will be unparsed. It's spec compliant and secure.
+It will always forward the original request URI, so rewriting
+URIs with mod_rewrite and then forwarding the rewritten URI
+will not work.
+
+<div class="example"><pre>
+ JkOptions +ForwardURICompatUnparsed
+</pre></div>
+
+<br>
+<br>
+</p>
+
+<p>
+Using JkOptions <b>ForwardURICompat</b>, the forwarded URI will
+be decoded by Apache httpd. Encoded characters will be decoded and
+explicit path components like ".." will already be resolved.
+This is less spec compliant and is <b>not safe</b> if you are using
+prefix JkMount. This option will allow to rewrite URIs with
+mod_rewrite before forwarding.
+
+<div class="example"><pre>
+ JkOptions +ForwardURICompat
+</pre></div>
+
+<br>
+<br>
+</p>
+
+<p>
+Using JkOptions <b>ForwardURIEscaped</b>, the forwarded URI will
+be the encoded form of the URI used by ForwardURICompat.
+Explicit path components like ".." will already be resolved.
+This will not work in combination with URL encoded session IDs,
+but it will allow to rewrite URIs with mod_rewrite before forwarding.
+
+<div class="example"><pre>
+ JkOptions +ForwardURIEscaped
+</pre></div>
+
+<br>
+<br>
+</p>
+
+<p>
+JkOptions <b>RejectUnsafeURI</b> will block all
+URLs, which contain percent signs '%' or backslashes '\'
+after decoding.
+<br>
+<br>
+</p>
+<p>
+Most web apps do not use such URLs. Using the option RejectUnsafeURI, you
+can block several well known URL encoding attacks. By default, this option
+is not set.
+</p>
+<p>
+You can also realise such a check with mod_rewrite, which is more powerful
+but also slightly more complicated.
+
+<div class="example"><pre>
+ JkOptions +RejectUnsafeURI
+</pre></div>
+
+<br>
+<br>
+</p>
+
+<p>
+JkOptions <b>ForwardDirectories</b> is used in conjunction with <b>DirectoryIndex</b>
+directive of Apache web server. As such mod_dir should be available to Apache,
+statically or dynamically (DSO)
+<br>
+<br>
+</p>
+
+<p>
+When DirectoryIndex is configured, Apache will create sub-requests for
+each of the local-url's specified in the directive, to determine if there is a
+local file that matches (this is done by stat-ing the file).
+</p>
+
+<p>
+If ForwardDirectories is set to false (default) and Apache doesn't find any
+files that match, Apache will serve the content of the directory (if directive
+Options specifies Indexes for that directory) or a <b class="code">403 Forbidden</b> response (if
+directive Options doesn't specify Indexes for that directory).
+</p>
+
+<p>
+If ForwardDirectories is set to true and Apache doesn't find any files that
+match, the request will be forwarded to Tomcat for resolution. This is used in
+cases when Apache cannot see the index files on the file system for various
+reasons: Tomcat is running on a different machine, the JSP file has been
+precompiled etc.
+</p>
+
+<p>Note that locally visible files will take precedence over the
+ones visible only to Tomcat (i.e. if Apache can see the file, that's the one
+that's going to get served). This is important if there is more then one type of
+file that Tomcat normally serves - for instance Velocity pages and JSP pages.
+
+<div class="example"><pre>
+ JkOptions +ForwardDirectories
+</pre></div>
+<br>
+<br>
+</p>
+
+<p>
+JkOptions <b>ForwardLocalAddress</b>, you ask mod_jk to send the local address,
+of the Apache web server instead remote client address. This can be used by
+Tomcat remote address valve for allowing connections only from registered Apache
+web servers.
+
+<div class="example"><pre>
+ JkOptions +ForwardLocalAddress
+</pre></div>
+
+<br>
+<br>
+</p>
+
+<p>
+JkOptions <b>FlushPackets</b>, you ask mod_jk to flush Apache's connection
+buffer after each AJP packet chunk received from Tomcat. This option can have
+a strong performance penalty for Apache and Tomcat as writes are performed
+more often than would normally be required (ie: at the end of each
+response).
+
+<div class="example"><pre>
+ JkOptions +FlushPackets
+</pre></div>
+
+<br>
+<br>
+</p>
+
+<p>
+JkOptions <b>FlushHeader</b>, you ask mod_jk to flush Apache's connection
+buffer after the response headers have been received from Tomcat.
+
+<div class="example"><pre>
+ JkOptions +FlushHeader
+</pre></div>
+
+<br>
+<br>
+</p>
+
+<p>
+JkOptions <b>DisableReuse</b>, you ask mod_jk to close connections immediately
+after their use. Normally mod_jk uses persistent connections and pools idle
+connections to reuse them, when new requests have to be sent to Tomcat.
+</p>
+
+<p>
+Using this option will have a strong performance penalty for Apache and Tomcat.
+Use this only as a last resort in case of unfixable network problems.
+If a firewall between Apache and Tomcat silently kills idle connections,
+try to use the worker attribute socket_keepalive in combination with an appropriate
+TCP keepalive value in your OS.
+
+<div class="example"><pre>
+ JkOptions +DisableReuse
+</pre></div>
+
+<br>
+<br>
+</p>
+
+<p>
+JkOptions <b>ForwardKeySize</b>, you ask mod_jk, when using ajp13, to forward also the SSL Key Size as
+required by Servlet API 2.3.
+This flag shouldn't be set when servlet engine is Tomcat 3.2.x (on by default).
+
+<div class="example"><pre>
+ JkOptions +ForwardKeySize
+</pre></div>
+
+<br>
+<br>
+</p>
+
+<p>
+JkOptions <b>ForwardSSLCertChain</b>, you ask mod_jk, when using ajp13,
+to forward SSL certificate chain (off by default).
+Mod_jk only passes the <b class="code">SSL_CLIENT_CERT</b> to the AJP connector. This is not a
+problem with self-signed certificates or certificates directly signed by the
+root CA certificate. However, there's a large number of certificates signed by
+an intermediate CA certificate, where this is a significant problem: A servlet
+will not have the possibility to validate the client certificate on its own. The
+bug would be fixed by passing on the <b class="code">SSL_CLIENT_CERT_CHAIN</b> to Tomcat via the AJP connector.
+<br>
+This directive exists only since version 1.2.22.
+<div class="example"><pre>
+ JkOptions +ForwardSSLCertChain
+</pre></div>
+
+<br>
+<br>
+</p>
+
+<p>
+The directive <b>JkEnvVar</b> allows you to forward environment variables
+from Apache server to Tomcat engine.
+You can add a default value as a second parameter to the directive.
+If the default value is not given explicitly, the variable
+will only be send, if it is set during runtime.
+<br>
+The variables can be retrieved on the Tomcat side as request attributes
+via request.getAttribute(attributeName).
+Note that the variables send via JkEnvVar will not be listed
+in request.getAttributeNames().
+<br>
+<br>
+The variables are inherited from the global server to virtual hosts.
+
+<div class="example"><pre>
+ JkEnvVar SSL_CLIENT_V_START undefined
+</pre></div>
+<br>
+<br>
+</p>
+
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Assigning URLs to Tomcat"><strong>Assigning URLs to Tomcat</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+If you have created a custom or local version of mod_jk.conf-local as noted above,
+you can change settings such as the workers or URL prefix.
+</p>
+<p>
+<b>JkMount</b> directive assign specific URLs to Tomcat.
+In general the structure of a JkMount directive is:
+</p>
+
+<div class="example"><pre>
+ JkMount [URL prefix] [Worker name]
+</pre></div>
+
+<div class="example"><pre>
+ # send all requests ending in .jsp to worker1
+ JkMount /*.jsp worker1
+ # send all requests ending /servlet to worker1
+ JkMount /*/servlet/ worker1
+ # send all requests jsp requests to files located in /otherworker will go worker2
+ JkMount /otherworker/*.jsp worker2
+</pre></div>
+
+<p>
+You can use the JkMount directive at the top level or inside &lt;VirtualHost&gt;
+sections of your httpd.conf file.
+</p>
+<p><b>JkUnMount</b> directive acts as an opposite to JkMount and blocks access
+to a particular URL. The purpose is to be able to filter out the particular content
+types from mounted context. The following example mounts /servlet/*
+context, but all .gif files that belongs to that context are not served.
+</p>
+<div class="example"><pre>
+ # send all requests ending with /servlet to worker1
+ JkMount /servlet/* worker1
+ # do not send requests ending with .gif to worker1
+ JkUnMount /servlet/*.gif worker1
+</pre></div>
+<p>
+JkUnMount takes precedence over JkMount directives, meaning that the JK
+will first try to mount and then checks, if there is an exclusion defined by a
+JkUnMount. A JkUnMount overrides a JkMount only, if the worker names in the
+JkMount and in the JkUnMount are the same.
+</p>
+<p>
+The following example will block all .gif files although there is a JkMount for them:
+</p>
+<div class="example"><pre>
+ # do not send requests ending with .gif to worker1
+ JkUnMount /*.gif worker1
+ # The .gif files will not be mounted cause JkUnMount takes
+ # precedence over JkMount directive
+ JkMount /servlet/*.gif worker1
+</pre></div>
+<p>
+Starting with version 1.2.26 of JK you can apply a JkUnMount to any worker,
+by using the star character '*' as the worker name in the JkUnMount.
+More complex patterns in JkUnMount worker names are not allowed.
+</p>
+<div class="example"><pre>
+ # Mapping the webapps myapp1 and myapp2:
+ /myapp1/*=worker1
+ /myapp2/*=worker2
+ # Exclude the all subdirectories static for all workers:
+ !/*/static/*=*
+ # Exclude some suffixes for all workers:
+ !*.html=*
+</pre></div>
+<p>
+<b>JkAutoAlias</b> directive automatically <b>Alias</b> webapp context directories into
+the Apache document space. It enables Apache to serve a static context while Tomcat
+serving dynamic context. This directive is used for convenience so that you don't
+have to put an apache Alias directive for each application directory inside Tomcat's
+webapp directory. For security reasons is is strongly recommended that JkMount
+is used to pass all requests to Tomcat by default and JkUnMount is used to
+explicitly exclude static content to be served by httpd. It should also be noted
+that content served by httpd will bypass any security constraints defined in the
+application's web.xml.
+</p>
+<div class="example"><pre>
+ # enter the full path to the tomcat webapps directory
+ JkAutoAlias /opt/tomtact/webapps
+</pre></div>
+<p>The following example shows how to serve a dynamic context by
+Tomcat and static using Apache. The webapps directory has to
+be accessible by apache.</p>
+
+<div class="example"><pre>
+ # enter the full path to the tomcat webapps directory
+ JkAutoAlias /opt/tomtact/webapps
+
+ # Mount 'servlets-examples' directory. It's physical location
+ # is assumed to be in the /opt/tomtact/webapps/servlets-examples
+ # ajp13w is a worker defined in the workers.properties
+ JkMount /servlets-examples/* ajp13w
+
+ # Unmount desired static content from servlets-examples webapp.
+ # This content will be served by the httpd directly.
+ JkUnMount /servlets-examples/*.gif ajp13w
+ JkUnMount /servlets-examples/*.jpg ajp13w
+</pre></div>
+<p>Note that you can have a single JkAutoAlias directive per virtual
+host inside your httpd.conf
+</p>
+<p>
+<b>JkWorkerProperty</b> is a new directive available from JK 1.2.7
+version. It is a convenient method for setting directives that are
+usually set inside <b>workers.propeties</b> file. The parameter for
+that directive is raw line from workers.properties file.
+</p>
+<div class="example"><pre>
+ # Just like workers.properties but exact line is prefixed
+ # with JkWorkerProperty
+
+ # Minimal jk configuration
+ JkWorkerProperty worker.list=ajp13w
+ JkWorkerProperty worker.ajp13w.type=ajp13
+ JkWorkerProperty worker.ajp13w.host=localhost
+ JkWorkerProperty worker.ajp13w.port=8009
+</pre></div>
+<p>
+<b>JkMountFile</b> is a new directive available from JK 1.2.9
+version. It is used for dynamic updates of mount points at runtime.
+When the mount file is changed, JK will reload it's content.
+</p>
+<div class="example"><pre>
+ # Load mount points
+
+ JkMountFile conf/uriworkermap.properties
+</pre></div>
+<p>If the mount point uri starts with an exclamation mark '!'
+it defines an exclusion in the same way JkUnMount does.
+If the mount point uri starts with minus sign '-'
+the mount point will only be disabled. A disabled mount can be reenabled
+by deleting the minus sign and waiting for the JkMountFile to reload.
+An exclusion can be disabled by prefixing it with a minus sign.
+</p>
+<div class="example"><pre>
+ # Sample uriworkermap.properties file
+
+ /servlets-examples/*=ajp13w
+ # Do not map .jpeg files
+ !/servlets-examples/*.jpeg=ajp13w
+ # Make jsp examples initially disabled
+ -/jsp-examples/*=ajp13w
+</pre></div>
+<p>At run time you can change the content of this file. For example
+removing minus signs will enable the previously disabled uri mappings.
+You can add any number of new entries at runtime that reflects the newly deployed
+applications. Apache will reload the file and update the mount
+points within 60 second interval.
+</p>
+<p>
+There is no way to delete entries by dynamic reloading, but you can disable or
+exclude mappings.
+<br>
+<br>
+</p>
+
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Using SetHandler and Environment Variables"><strong>Using SetHandler and Environment Variables</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+Alternatively to the mod_jk specific directives, you can also use
+SetHandler and environment variables to control, which requests
+are being forwarded via which worker. This gives you more flexibility,
+but the results might be more difficult to understand. If you mix both
+ways of defining the forwards, in general to mod_jk directives will win.
+</p>
+<p>
+<b>SetHandler jakarta-servlet</b> forces requests to be handled by mod_jk.
+If you neither specify any workers via JkMount and the related directives,
+not via the environment variable described below,
+the first worker in the list of all worker will be chosen. You can use SetHandler
+for example in Location blocks or with Apache 2.2 also in RewriteRule.
+</p>
+<p>
+In order to control the worker using <b>SetEnvIf</b> or <b>RewriteRule</b>
+for more complex rules, you can set the environment variable <b>JK_WORKER_NAME</b>
+to the name of your chosen target worker. This enables you to decide on
+the chosen worker in a more flexible way, including dependencies on cookie values.
+This feature has been added in version 1.2.19 of mod_jk.
+</p>
+<p>
+In order to use another variable than <b>JK_WORKER_NAME</b>, you can set the name
+of this variable via the <b>JkWorkerIndicator</b> directive.
+</p>
+<p>
+You can also define exclusions from mod_jk forwards by setting the environment
+variable <b>no-jk</b>.
+</p>
+<div class="example"><pre>
+ # Automatically map all encoded urls
+ &lt;Location *;jsessionid=&gt;
+ SetHandler jakarta-servlet
+ SetEnv JK_WORKER_NAME my_worker
+ &lt;/Location&gt;
+
+ # Map all subdirs to workers via naming rule
+ # and exclude static content.
+ &lt;Location /apps/&gt;
+ SetHandler jakarta-servlet
+ SetEnvIf REQUEST_URI ^/apps/([^/]*)/ JK_WORKER_NAME=$1
+ SetEnvIf REQUEST_URI ^/apps/([^/]*)/static no-jk
+ &lt;/Location&gt;
+</pre></div>
+<p>
+Finally, starting with version 1.2.27 you can use the environment variable
+<b>JK_REPLY_TIMEOUT</b> to dynamically set a reply timeout.
+</p>
+</blockquote></td></tr></table>
+ </blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright &copy; 1999-2011, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html> \ No newline at end of file
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/docs/reference/printer/iis.html b/rubbos/app/tomcat-connectors-1.2.32-src/docs/reference/printer/iis.html
new file mode 100644
index 00000000..8405bcf5
--- /dev/null
+++ b/rubbos/app/tomcat-connectors-1.2.32-src/docs/reference/printer/iis.html
@@ -0,0 +1,331 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>The Apache Tomcat Connector - Reference Guide - Configuring IIS</title><meta name="author" value="Mladen Turk"><meta name="email" value="mturk@apache.org"><link href="../../style.css" type="text/css" rel="stylesheet"></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="4"><!--PAGE HEADER--><tr><td colspan="2"><!--TOMCAT LOGO--><a href="http://tomcat.apache.org/"><img src="../../images/tomcat.gif" align="left" alt="Apache Tomcat" border="0"></a><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="http://www.apache.org/images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><tr><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left"><table border="0" width="100%" cellspacing="4"><tr><td align="left" valign="top"><h1>The Apache Tomcat Connector - Reference Guide</h1><h2>Configuring IIS</h2></td><td align="right" valign="top" nowrap="true"><img src="../../images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Requirements"><strong>Requirements</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+The Tomcat redirector requires three entities:
+
+<ul>
+<li>
+<b>isapi_redirect.dll</b> - The IIS server plugin, either obtain a pre-built DLL or build it yourself (see the build section).
+</li>
+<li>
+<b>workers.properties</b> - A file that describes the host(s) and port(s) used by the workers (Tomcat processes).
+A sample workers.properties can be found under the conf directory.
+</li>
+<li>
+<b>uriworkermap.properties</b> - A file that maps URL-Path patterns to workers.
+A sample uriworkermap.properties can be found under the conf directory as well.
+</li>
+</ul>
+</p>
+
+<p>
+The installation includes the following parts:
+
+<ul>
+<li>
+Configuring the ISAPI redirector with a default /examples context and checking that you can serve servlets with IIS.
+</li>
+<li>
+Adding more contexts to the configuration.
+</li>
+</ul>
+</p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Registry settings"><strong>Registry settings</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+ISAPI redirector reads configuration from the registry, create a new registry key named :
+</p>
+<p>
+<b>"HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Jakarta Isapi Redirector\1.0"</b>
+</p>
+<table border="1" cellpadding="5"><tr><th width="20%" bgcolor="#023264"><font color="#ffffff">Key Name</font></th><th width="80%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><strong><code>extension_uri</code></strong></td><td align="left" valign="center"><p>
+A string value pointing to the ISAPI extension <b>/jakarta/isapi_redirect.dll</b>
+</p></td></tr><tr><td align="left" valign="center"><code>log_file</code></td><td align="left" valign="center"><p>
+A value pointing to location where log file will be created.
+(for example <b>c:\tomcat\logs\isapi.log</b>)
+<br>If one of the log rotation settings (<b>log_rotationtime</b> or <b>log_filesize</b>) are specified then the actual log file name is based on this setting.
+If the log file name includes any '%' characters, then it is treated as a format string for <b class="code">strftime(3)</b>,
+e.g. <b>c:\tomcat\logs\isapi-%Y-%m-%d-%H_%M_%S.log</b>. Otherwise, the suffix <em>.nnnnnnnnnn</em> is automatically added and is the time in seconds.
+A full list of format string substitutions can be found in the <a href="http://httpd.apache.org/docs/2.0/programs/rotatelogs.html">Apache rotatelogs documentation</a>
+</p></td></tr><tr><td align="left" valign="center"><code>log_level</code></td><td align="left" valign="center"><p>
+A string value for log level
+(can be debug, info, warn, error or trace).</p>
+<p>This directive was added in version 1.2.31</p>
+</td></tr><tr><td align="left" valign="center"><code>log_rotationtime</code></td><td align="left" valign="center"><p>
+The time between log file rotations in seconds.
+Setting this to 0 (the default) disables log rotation based on time.</p>
+<p>This directive was added in version 1.2.31</p>
+</td></tr><tr><td align="left" valign="center"><code>log_filesize</code></td><td align="left" valign="center"><p>
+The maximum log file size in megabytes, after which the log file will be rotated. Setting this to 0 (the default) disables log rotation based on file size.
+<br>The value can have an optional <b>M</b> suffix, i.e. both <b>5</b> and <b>5M</b> will rotate the log file when it grows to 5MB.
+<br>If <b>log_rotationtime</b> is specified, then this setting is ignored.
+</p></td></tr><tr><td align="left" valign="center"><strong><code>worker_file</code></strong></td><td align="left" valign="center"><p>
+A string value which is the full path to workers.properties file
+(for example <b>c:\tomcat\conf\workers.properties</b>)
+</p></td></tr><tr><td align="left" valign="center"><strong><code>worker_mount_file</code></strong></td><td align="left" valign="center"><p>
+A string value which is the full path to uriworkermap.properties file
+(for example <b>c:\tomcat\conf\uriworkermap.properties</b>)
+</p></td></tr><tr><td align="left" valign="center"><code>rewrite_rule_file</code></td><td align="left" valign="center"><p>
+A string value which is the full path to rewrite.properties file
+(for example <b>c:\tomcat\conf\rewrite.properties</b>)
+</p></td></tr><tr><td align="left" valign="center"><code>shm_size</code></td><td align="left" valign="center"><p>
+A DWORD value size of the shared memory. Set this value to be
+the number of all defined workers * 400.
+(Set this value only if you have <b>more</b> then <b>64</b> workers)
+</p>
+<p>This directive has been added in version 1.2.20</p>
+<p>Starting with version 1.2.27 the size of the shared memory is determined
+automatically, even for large numbers of workers. This attribute is not
+needed any longer.</p>
+</td></tr><tr><td align="left" valign="center"><code>worker_mount_reload</code></td><td align="left" valign="center"><p>
+A DWORD value specifying the time in seconds upon which the
+<b>worker_mount_file</b> will be reloaded.
+</p>
+<p>This directive has been added in version 1.2.20</p>
+</td></tr><tr><td align="left" valign="center"><code>strip_session</code></td><td align="left" valign="center"><p>
+A string value representing a boolean. If it is set to true,
+URL session suffixes of the form ";jsessionid=..." get stripped of URLs,
+even if the are served locally by the web server.
+</p>
+<p>
+A true value can be represented by the string "1" or any string starting
+with the letters "T" or "t". A false value will be assumed for "0"
+or any string starting with "F" or "f". The default value is false.
+</p>
+<p>This directive has been added in version 1.2.21</p>
+</td></tr><tr><td align="left" valign="center"><code>auth_complete</code></td><td align="left" valign="center"><p>
+A DWORD value representing "0" or "1". This is needed because
+of minor incompatibilities with IIS 5.1.
+</p>
+<p>
+By default its value is 1, which means we use the SF_NOTIFY_AUTH_COMPLETE
+event. If you set this to 0, then we use SF_NOTIFY_PREPROC_HEADERS.
+This might be needed for IIS 5.1 when handling requests using the
+PUT HTTP method.
+</p>
+<p>This directive has been added in version 1.2.21</p>
+</td></tr><tr><td align="left" valign="center"><code>uri_select</code></td><td align="left" valign="center"><p>
+A string value which influences, how URIs are decoded and re-encoded
+between IIS and Tomcat. You should leave this at it's default value,
+unless you have a very good reason to change it.
+</p>
+<p>
+If the value is "parsed", the forwarded URI
+will be decoded and explicit path components like ".." will already
+be resolved. This is less spec compliant and is <b>not safe</b>
+if you are using prefix forwarding rules.
+</p>
+<p>
+If the value is "unparsed", the forwarded URI
+will be the original request URI. It's spec compliant and also
+the safest option. Rewriting the URI and then forwarding the rewritten
+URI will not work.
+</p>
+<p>
+If the value is "escaped", the forwarded URI
+will be the re-encoded form of the URI used by "parsed".
+Explicit path components like ".." will already be resolved.
+This will not work in combination with URL encoded session IDs.
+</p>
+<p>
+If the value is "proxy", the forwarded URI
+will be a partially re-encoded form of the URI used by "parsed".
+Explicit path components like ".." will already be resolved.
+and problematic are re-encoded.
+</p>
+<p>The default value since version 1.2.24 is "proxy". Before it was "parsed".</p>
+</td></tr><tr><td align="left" valign="center"><code>reject_unsafe</code></td><td align="left" valign="center"><p>
+A string value representing a boolean. If it is set to true,
+URLs containing percent signs '%' or backslashes '\'
+after decoding will be rejected.
+</p>
+<p>
+Most web apps do not use such URLs. By enabling "reject_unsafe" you
+can block several well known URL encoding attacks.
+</p>
+<p>
+A true value can be represented by the string "1" or any string starting
+with the letters "T" or "t". A false value will be assumed for "0"
+or any string starting with "F" or "f". The default value is false.
+</p>
+<p>This directive has been added in version 1.2.24</p>
+</td></tr><tr><td align="left" valign="center"><code>watchdog_interval</code></td><td align="left" valign="center"><p>
+A DWORD value representing the watchdog thread interval in seconds.
+The workers are maintained periodically by a background thread
+running periodically every watchdog_interval seconds. Worker maintenance
+checks for idle connections, corrects load status and is able
+to detect backend health status.
+</p>
+<p>
+The maintenance only happens, if since the last maintenance at
+least <a href="workers.html"><b class="code">worker.maintain</b></a>
+seconds have passed. So setting the watchdog_interval
+much smaller than <b class="code">worker.maintain</b> is not useful.
+</p>
+<p>
+The default value is 0 seconds, meaning the watchdog thread
+will not be created, and the maintenance is done in combination
+with normal requests instead.
+</p>
+<p>This directive has been added in version 1.2.27</p>
+</td></tr><tr><td align="left" valign="center"><code>error_page</code></td><td align="left" valign="center"><p>
+A string value representing the error page url redirection when
+backend returns non-200 response. This directive can be used
+to customise the error messages returned from backend server.
+</p>
+<p>The url must point to a valid server url and can contain
+format string number <b class="code">(%d)</b> that can be used to
+separate the pages by error number. The redirect url in that
+case is formatted by replacing <b class="code">%d</b> from
+<b class="code">error_page</b> to returned error number.
+</p>
+<p>This directive has been added in version 1.2.27</p>
+</td></tr><tr><td align="left" valign="center"><code>enable_chunked_encoding</code></td><td align="left" valign="center"><p>
+A string value representing a boolean. If it is set to true,
+chunked encoding is supported by the server.
+</p>
+<p>
+A true value can be represented by the string "1" or any string starting
+with the letters "T" or "t". A false value will be assumed for "0"
+or any string starting with "F" or "f". The default value is false.
+</p>
+<p><font color="#ff0000">This option is considered experimental and its support
+must be compile time enabled. Use <b class="code">isapi_redirect.dll</b>
+with chunked support enabled.
+</font></p>
+<p>This directive has been added in version 1.2.27</p>
+</td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Using a properties file for configuration"><strong>Using a properties file for configuration</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+The ISAPI redirector can read it's configuration from a properties file instead of the registry.
+This has the advantage that you can use multiple ISAPI redirectors with independent configurations on the same server.
+The redirector will check for the properties file during initialisation, and use it in preference to the registry if present.
+</p>
+<p>
+Create a properties file in the same directory as the ISAPI redirector called <b>isapi_redirect.properties</b> i.e. with the same name as the ISAPI redirector DLL but with a <em>.properties</em> extension. A sample isapi_redirect.properties can be found under the conf directory.
+</p>
+<p>
+The property names and values in the properties file are the same as for the registry settings described above. For example:
+</p>
+<p>
+<div class="example"><pre>
+# Configuration file for the Jakarta ISAPI Redirector
+
+# The path to the ISAPI Redirector Extension, relative to the website
+# This must be in a virtual directory with execute privileges
+extension_uri=/jakarta/isapi_redirect.dll
+
+# Full path to the log file for the ISAPI Redirector
+log_file=c:\tomcat\logs\isapi_redirect.log
+
+# Log level (debug, info, warn, error or trace)
+log_level=info
+
+# Full path to the workers.properties file
+worker_file=c:\tomcat\conf\workers.properties
+
+# Full path to the uriworkermap.properties file
+worker_mount_file=c:\tomcat\conf\uriworkermap.properties
+</pre></div>
+</p>
+<p>
+ Notes:
+ <ul>
+ <li>
+ Back-slashes - '\' - are not escape characters.
+ </li>
+ <li>
+ Comment lines begin with '#'.
+ </li>
+ </ul>
+</p>
+<p>Starting with version 1.2.27 two environment variables are
+dynamically added to the environment that can be used inside
+<b class="code">.properties</b> files.
+ <ul>
+ <li>JKISAPI_PATH - Full path to the ISAPI Redirector.
+ </li>
+ <li>JKISAPI_NAME - Name of the ISAPI Redirector dll without extension
+ </li>
+ </ul>
+</p>
+<p><div class="example"><pre>
+# Use the logs in the installation path of ISAPI Redirector
+log_file=$(ISAPI_PATH)\$(ISAPI_NAME).log
+</pre></div></p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Log file rotation"><strong>Log file rotation</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+The ISAPI redirector with version 1.2.31 can perform log rotation, with configuration and behaviour similar to the
+<a href="http://httpd.apache.org/docs/2.0/programs/rotatelogs.html">rotatelogs</a> program provided with Apache HTTP Server.
+</p>
+<p>
+To configure log rotation, configure a <b>log_file</b>, and one of the <b>log_rotationtime</b> or <b>log_filesize</b> options.
+If both are specified, the <b>log_rotationtime</b> will take precedence, and <b>log_filesize</b> will be ignored.
+<br>For example, to configure daily rotation of the log file:
+</p>
+<div class="example"><pre>
+# Configuration file for the Jakarta ISAPI Redirector
+...
+
+# Full path to the log file for the ISAPI Redirector
+log_file=c:\tomcat\logs\isapi_redirect.%Y-%m-%d.log
+
+# Log level (debug, info, warn, error or trace)
+log_level=info
+
+# Rotate the log file every day
+log_rotationtime=86400
+
+...
+</pre></div>
+<p>
+Or to configure rotation of the log file when it reaches 5MB in size:
+</p>
+<div class="example"><pre>
+# Configuration file for the Jakarta ISAPI Redirector
+...
+
+# Full path to the log file for the ISAPI Redirector
+log_file=c:\tomcat\logs\isapi_redirect.%Y-%m-%d-%H.log
+
+# Log level (debug, info, warn, error or trace)
+log_level=info
+
+# Rotate the log file at 5 MB
+log_filesize=5M
+
+...
+</pre></div>
+<p>
+The log will be rotated whenever the configured limit is reached, but only if the log file name would change. If you configure
+ a log file name with <b class="code">strftime(3)</b> format codes in it, then ensure it specifies the same granularity
+ as the rotation time configured, e.g. <b>%Y-%m-%d</b> if rotating daily (<b>log_rotationtime=86400</b>).
+<br>See the <a href="http://httpd.apache.org/docs/2.0/programs/rotatelogs.html">rotatelogs</a> documentation for more examples.
+</p>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Using a simple rewrite rules"><strong>Using a simple rewrite rules</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+The ISAPI redirector with version 1.2.16 can do a simple URL rewriting. Although not
+as powerful as Apache Httpd's mod_rewrite, it allows a simple exchange of request URIs
+</p>
+<p>
+The rule is in the form original-url-prefix=forward-url-prefix. For example:
+</p>
+<div class="example"><pre>
+# Simple rewrite rules, making /jsp-examples
+# and /servlets-examples available under shorter URLs
+/jsp/=/jsp-examples/
+/servlets/=/servlets-examples/
+</pre></div>
+<p>
+You can also use regular expressions, if you prefix the rule with a tilde <b class="code">~</b>:
+</p>
+<div class="example"><pre>
+# Complex rewrite rule, adding "-examples"
+# to the first path component of all requests
+~/([^/]*)=/$1-examples
+</pre></div>
+<p>
+Note that uriworkermap.properties must use the URLs before rewriting.
+</p>
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright &copy; 1999-2011, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html> \ No newline at end of file
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/docs/reference/printer/status.html b/rubbos/app/tomcat-connectors-1.2.32-src/docs/reference/printer/status.html
new file mode 100644
index 00000000..56412d61
--- /dev/null
+++ b/rubbos/app/tomcat-connectors-1.2.32-src/docs/reference/printer/status.html
@@ -0,0 +1,546 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>The Apache Tomcat Connector - Reference Guide - Status Worker Reference</title><meta name="author" value="Rainer Jung"><meta name="email" value="rjung@apache.org"><link href="../../style.css" type="text/css" rel="stylesheet"></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="4"><!--PAGE HEADER--><tr><td colspan="2"><!--TOMCAT LOGO--><a href="http://tomcat.apache.org/"><img src="../../images/tomcat.gif" align="left" alt="Apache Tomcat" border="0"></a><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="http://www.apache.org/images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><tr><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left"><table border="0" width="100%" cellspacing="4"><tr><td align="left" valign="top"><h1>The Apache Tomcat Connector - Reference Guide</h1><h2>Status Worker Reference</h2></td><td align="right" valign="top" nowrap="true"><img src="../../images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+Tomcat Connectors has a special type of worker, the so-called status worker.
+The status worker does not forward requests to Tomcat instances. Instead it allows
+to retrieve status and configuration information at runtime,
+and furthermore to change many configuration items dynamically. This can be done
+via a simple embedded web interface.
+</p>
+<p>
+The status worker is especially powerful, when used together with load balancing workers.
+</p>
+<p>
+This document does not explain the HTML user interface of the status worker.
+Until now it is very simple, so just go ahead and use it. This doc instead
+tries to explain the less obvious features of the status worker. We also will give a
+complete coverage of the various request parameters and their meaning, so that you can
+include the status worker in your automation scripts.
+</p>
+<p>
+The documentation of the status worker starts with <b>jk 1.2.20</b>
+</p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Usage Patterns"><strong>Usage Patterns</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Actions"><strong>Actions</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+The status worker knows about six actions.
+<ul>
+<li>
+<b>list</b>: lists the configurations and runtime information of all configured workers.
+The output will be grouped by global information first (version data), then load balancer
+information, after that AJP worker information and finally the legend. For load balancers,
+there will be a summary part, and after that details for each member worker. For all workers,
+we also include the URL mappings (forward definitions).
+</li>
+<li>
+<b>show</b>: the same as list, but only shows data for one chosen worker
+</li>
+<li>
+<b>edit</b>: produces a form to edit configuration data for a chosen worker. There is a
+special subtype of "edit", that makes it easy to change one attribute for all members of
+a load balancer, e.g. their activation state.
+</li>
+<li>
+<b>update</b>: commit changes made in an edit form. <b>Caution</b>: the changes will not be
+persisted to the configuration files. As soon as your restart your web server, all changes
+made through the status worker will be lost! On the other hand, the changes done by the status
+worker will be applied during runtime without a restart of the web server.
+</li>
+<li>
+<b>reset</b>: reset all runtime statistics for a worker.
+</li>
+<li>
+<b>recover</b>: Mark a member of a load balancer, that is in error state, for immediate recovery.
+</li>
+<li>
+<b>version</b>: only show version information of the web server and the JK software
+</li>
+<li>
+<b>dump</b>: list the original workers configuration. <b>Caution</b>: the dump will only contain
+the configuration that was used during startup. Any changes applied later by the dynamic management
+interface of the status worker itself will not be contained in this dump.
+The dump action has been added in version 1.2.27.
+</li>
+</ul>
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Output Format"><strong>Output Format</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+For most actions you can choose between 4 output formats.
+<ul>
+<li>
+<b>HTML</b>: Used interactively with a browser
+</li>
+<li>
+<b>XML</b>: Mostly useful for automation, when your scripting environment is XML friendly.
+This format has rich structure information, but does not work line based, so you would really
+like to use it together with XML tools.
+</li>
+<li>
+<b>Properties</b>: This format is a line based format, that conforms to the rules of Java
+property files. Most structure information is contained in the hierarchical key. For information,
+that is of configuration nature, the format should produce lines very similar to the ones you can
+use in workers.properties. It will not produce a complete configuration file!
+</li>
+<li>
+<b>Text</b>: A simple textual output format.
+</li>
+</ul>
+The "edit" action does only make sense for the HTML output type.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="User Interface Features"><strong>User Interface Features</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+In the HTML view, there is an <b>automatic refresh</b> feature, implemented via the meta refresh
+option of HTML. Once you start the automatic refresh, the UI will will respect it for all actions
+except edit, update and maintain. Even if you navigate through one of those, the automatic refresh
+will start again as soon as you come back to one of the other actions.
+</p>
+<p>
+Many parts of the HTML page can be minimised, if they are not interesting for you. There are a couple
+of "Hide" links, which will collapse parts of the information. The feature exists for the following
+blocks of information:
+<ul>
+<li>
+<b>Legend</b>: Do not show the legend for the information presented in "list" and "show" actions
+</li>
+<li>
+<b>URI mappings</b>: Do not show the URI mapping for the workers
+</li>
+<li>
+<b>Load Balancing Workers</b>: Do not show workers of type "lb"
+</li>
+<li>
+<b>AJP Workers</b>: Do not show workers of type ajp
+</li>
+<li>
+<b>Balancer Members</b>: Do not show detailed information concerning each member of load balancers
+</li>
+<li>
+<b>Load Balancer Configuration</b>: Do not show configuration data for load balancers
+</li>
+<li>
+<b>Load Balancer Summary</b>: Do not show status summary for load balancers
+</li>
+<li>
+<b>AJP Configuration</b>: Do not show configuration data for ajp workers load balancer members
+</li>
+</ul>
+The last three minimisation features have been added in version 1.2.27.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Special Considerations concerning URL Maps and Virtual Hosts"><strong>Special Considerations concerning URL Maps and Virtual Hosts</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+<b>Note: </b>The following restriction has been removed starting with version 1.2.26.
+</p>
+<p>
+The Apache module mod_jk makes use of the internal Apache httpd infrastructure concerning
+virtual hosts. The downside of this is, that the status worker can only show URL maps, for
+the virtual host it is defined in. It is not able to reach the configuration objects
+for other virtual hosts. Of course you can define a status worker in any virtual host you
+are using. All information presented apart from the URL maps will be the same, independent
+of the virtual host the status worker has been called in.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Logging"><strong>Logging</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+The status worker will log changes made to the configuration with log level "info" to the usual
+JK log file. Invalid requests will be logged with log level "warn". If you want to report some
+broken behaviour, log file content of level "debug" or even "trace" will be useful.
+</p>
+</blockquote></td></tr></table>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Configuration"><strong>Configuration</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Basic Configuration"><strong>Basic Configuration</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+The basic configuration of a status worker is very similar to that of a usual ajp worker.
+You need to specify a name for the worker, and the URLs you want to map to it. The first
+part of the configuration happens in the workers.properties file. We define a worker named
+mystatus of type status:
+<div class="example"><pre>
+worker.list=mystatus
+worker.mystatus.type=status
+</pre></div>
+Then we define a URL, which should be mapped to this worker, i.e. the URL we use
+to reach the functionality of the status worker. You can use any method mod_jk supports
+for the web server of your choice. Possibilities are maps inside uriworkermap.properties,
+an additional mount attribute in workers.properties, or in Apache JkMount. Here's an
+example for a uriworkermap.properties line:
+<div class="example"><pre>
+/private/admin/mystatus=mystatus
+</pre></div>
+The URI pattern is case sensitive.
+</p>
+<p>
+As you will learn in the following sections, the status worker is very powerful. You should
+use the usual authentication and authorisation methods of your web server to secure this URL.
+</p>
+<p>
+You can also define multiple instances of the status worker, by using different names and URL mappings.
+For instance you might want to configure them individually
+and then allow special groups of people to use them
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Output Customisation"><strong>Output Customisation</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+There are a couple of attributes for the workers.properties entries, which allow to customise
+various aspects of the output of the status worker.
+</p>
+<p>
+The attribute <b>css</b> can be set to the URL of a stylesheet:
+<div class="example"><pre>
+worker.mystatus.css=/private/admin/static/mystatus.css
+</pre></div>
+When writing HTML output, the status worker then includes the line
+<div class="example"><pre>
+&lt;link rel="stylesheet" type="text/css" href="/private/admin/static/mystatus.css" /&gt;
+</pre></div>
+There is no sample stylesheet included with the mod_jk release, and by default the attribute css
+is empty, so no stylesheet reference will be included in the pages. The HTML code
+of the status worker output pages does not include any class attributes. If you like to contribute a
+stylesheet or improvements to the HTML layout, please contact us on the tomcat developers list.
+</p>
+<p>
+The properties output format can be customised via the attribute <b>prefix</b>. The names of all
+properties the status worker does output, will begin with this prefix. The default is "worker".
+</p>
+<p>
+Several attributes influence the format when writing XML output.
+The attribute <b>ns</b> allows to set a namespace prefix, that will be used for every status worker+element.
+The default is "jk:". Setting it to "-" disables the namespace prefix.
+</p>
+<p>
+With the attribute xmlns you can map the prefix to a namespace URL. The default value
+is xmlns:jk="http://tomcat.apache.org". Setting it to "-" disables the output of the URL.
+</p>
+<p>
+Finally you can specify an XML document type via the attribute doctype. The specified string will
+be inserted at the beginning of the document, directly after the xml header. The default is empty.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Securing Access"><strong>Securing Access</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+We urge you to use the builtin access control features of your web server to control
+access to the status worker URLs you have chosen. Nevertheless two configuration
+attributes of status workers are helpful. The attribute "read_only" disables all features of
+the status worker, that can be used to change configurations or runtime status of the other workers.
+A read_only status worker will not allow access to the edit, update, reset or recover actions.
+The default value is "False", ie. read/write. To enable read_only you need to set it to "True".
+</p>
+<p>
+You could configure two status workers, one has read_only and will be made available to a larger
+admin group, the other one will be used fully featured, but only by fewer people:
+<div class="example"><pre>
+worker.list=jk-watch
+worker.jk-watch.type=status
+worker.jk-watch.read_only=True
+worker.jk-watch.mount=/user/status/jk
+worker.list=jk-manage
+worker.jk-manage.type=status
+worker.jk-manage.mount=/admin/status/jk
+</pre></div>
+Starting with version 1.2.21, a read/write status worker can also be switched temporarily
+into read-only mode by the user via a link in the HTML GUI. The user can always switch it
+back to read/write. Only a status worker configured as read-only via the "read_only" attribute
+is completely safe from applying any changes.
+</p>
+<p>
+The other attribute you can use is <b>user</b>. By default this list is empty, which means
+no limit on the users. You can set "user" to a comma separated list of user names. If your
+web server is configured such that it sends the user names with the request, the status worker
+will check, if the name attached with the request is contained in it's "user" list.
+</p>
+<p>
+The user list can be split over multiple occurrences of the "user" attribute.
+</p>
+<p>
+By default, the user names are matched case sensitively. Starting with version 1.2.21 you can set
+the attribute <b>user_case_insensitive</b> to "True". Then the comparison will be made case insensitive.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Service Availability Rating"><strong>Service Availability Rating</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+For load balancing workers the status worker shows some interesting overview information.
+It categorises the members of the load balancer into the classes "good", "bad" and degraded".
+This feature can be combined with external escalation procedures. Depending on your global
+system design and your operating practises your preferred categorisation might vary.
+</p>
+<p>
+The categorisation is based on the activation state of the workers (active, disabled or stopped),
+which is a pure configuration state, and the runtime state
+(OK or ERR with possible substates idle, busy, recovering, probing, and forced recovery)
+which only depends on the runtime situation.
+</p>
+<p>
+The runtime substates have the following meaning:
+<ul>
+<li>
+<b>OK (idle)</b>: This worker didn't receive any request since the last balancer
+maintenance. By default balancer maintenance runs every 60 seconds. The
+worker should be OK, but since we didn't have to use it for some time, we
+can't be sure. This state has been called N/A before version 1.2.24.
+</li>
+<li>
+<b>OK (busy)</b>: All connections for this worker are in use for requests.
+</li>
+<li>
+<b>ERROR (recovering)</b>: The worker was in error state for some time and is now
+marked for recovery. The next request suitable for this worker will use it.
+</li>
+<li>
+<b>ERROR (probing)</b>: After setting the worker to recovering, we received a request
+suitable for this worker. This request is now using the worker.
+</li>
+<li>
+<b>ERROR (forced recovery)</b>: The worker is in error, but we don't have an alternative
+worker, so we keep using it.
+</li>
+</ul>
+</p>
+<p>
+By default the status worker groups into "good" all members, that have activation "active" and
+runtime state not equal to "error" with empty substate.
+The "bad" group consists of the members, that have either activation
+"stopped", or are in runtime state "error" with empty substate.
+</p>
+<p>
+Workers that fit neither of the two groups, are considered to be "degraded".
+</p>
+<p>
+You can define other rules for the grouping into good, bad and degraded.
+The two attributes "good" and "bad" can be populated by a comma-separated list ob single characters or
+dot-separated pairs. Each character stands for the first character of one of the possible states "active",
+"disabled", "stopped", "ok", "idle", "busy", "recovering" and "error". The additional states "probing"
+and "forced recovery" are always rated equivalent to "recovering".
+Comma-separated entries will be combined
+with logical "or", if you combine a configuration and a runtime state with a dot. the are combined with logical
+"and". So the default value for "good" is "a.o,a.i,a.b,a.r", for "bad" it is "e,s".
+</p>
+<p>
+The status worker first tries to match against the "bad" definitions, if this doesn't succeed
+it tries to match against "good", and finally it chooses "degraded", if no "bad" or "good" match
+can be found.
+</p>
+</blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Request Parameters"><strong>Request Parameters</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+This section should help you building automation scripts based on the jk status
+management interface. This interface is stable in the sense, that we only expect
+to add further parameters in the future. Existing parameters from previous versions
+will keep their original semantics. We also expect the output formats XML, Properties
+and Text to be kept stable. So please use those, if you want to parse status worker
+output in your automation scripts.
+</p>
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Actions"><strong>Actions</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+The action is determined by the parameter <b>cmd</b>. It can have the values "list", "show",
+"edit", "update", "reset", "recover", "version" and "dump". If you omit the <b>cmd</b> parameter,
+the default "list" will be used.
+All actions except for "list", "refresh", "version" and "dump" need additional parameters.
+</p>
+<p>
+The action "dump" has been added in version 1.2.27.
+</p>
+</blockquote></td></tr></table>
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Output Format"><strong>Output Format</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+The format is determined by the parameter <b>mime</b>. It can have the values "html", "xml",
+"txt" and "prop". If you omit the <b>mime</b> parameter, the default "html"
+will be used. The action "edit" (the edit form) does only make sense for "mime=html".
+</p>
+</blockquote></td></tr></table>
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Worker Selection"><strong>Worker Selection</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+Actions that operate on a single worker need one or two additional parameters to select
+this worker. The parameter <b>w</b> contains the name of the worker from the worker list.
+If an action operates on a member (sub worker) of a load balancer, the parameter <b>w</b>
+contains the name of the load balancer worker, and the additional parameter <b>sw</b> contains the
+name of the sub worker.
+</p>
+</blockquote></td></tr></table>
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Automatic Refresh"><strong>Automatic Refresh</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+During automatic refresh, the parameter <b>re</b> contain the refresh interval in seconds.
+If you omit this parameter, automatic refresh will be off.
+</p>
+</blockquote></td></tr></table>
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Hide Options"><strong>Hide Options</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+The parameter <b>opt</b> contains a bit mask of activated options. The default is 0, so
+by default no options are activated. The following options exist:
+<ul>
+<li>
+<b>0x0001</b>: hide members of lb workers
+</li>
+<li>
+<b>0x0002</b>: hide URL maps
+</li>
+<li>
+<b>0x0004</b>: hide the legend
+</li>
+<li>
+<b>0x0008</b>: hide load balancer workers
+</li>
+<li>
+<b>0x0010</b>: hide ajp workers
+</li>
+<li>
+<b>0x0020</b>: only allow read_only actions for a read/write status worker.
+</li>
+<li>
+<b>0x0040</b>: hide load balancer configuration
+</li>
+<li>
+<b>0x0080</b>: hide load balancer status summary
+</li>
+<li>
+<b>0x0100</b>: hide configuration for ajp and load balancer member workers
+</li>
+</ul>
+Values 0x0040-0x0100 have been added in version 1.2.27.
+</p>
+</blockquote></td></tr></table>
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Data Parameters for the standard Update Action"><strong>Data Parameters for the standard Update Action</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+You can use the edit action with a final click to the update button, to change settings of workers.
+But you can also make direct calls to the update action. The following request parameters
+contain the configuration information, you want to change. First the list for load balancer workers:
+<ul>
+<li>
+<b>vlr</b>: retries (number)
+</li>
+<li>
+<b>vlt</b>: recover_time (seconds)
+</li>
+<li>
+<b>vlee</b>: error_escalation_time (seconds)
+</li>
+<li>
+<b>vlx</b>: max_reply_timeouts (number)
+</li>
+<li>
+<b>vls</b>: sticky_session (0/f/n/off=off, 1/t/y/on=on; case insensitive)
+</li>
+<li>
+<b>vlf</b>: sticky_session_force (0/f/n/off=off, 1/t/y/on=on; case insensitive)
+</li>
+<li>
+<b>vlm</b>: method (0/r="Requests", 1/t="Traffic", 2/b="Busyness", 3/s="Sessions"; case insensitive, only first character is used)
+</li>
+<li>
+<b>vll</b>: lock (0/o="Optimistic", 1/p="Pessimistic"; case insensitive, only first character is used)
+</li>
+</ul>
+And now the list of parameters you can use to change settings for load balancer members:
+<ul>
+<li>
+<b>vwa</b>: activation flag (0/a="active", 1/d="disabled", 2/s="stopped"; case insensitive, only first character is used)
+</li>
+<li>
+<b>vwf</b>: load balancing factor (integer weight)
+</li>
+<li>
+<b>vwn</b>: route for use with sticky sessions (string)
+</li>
+<li>
+<b>vwr</b>: redirect to define simple failover rules (string)
+</li>
+<li>
+<b>vwc</b>: domain to tell JK about your replication design (string)
+</li>
+<li>
+<b>vwd</b>: distance to express preferences (integer)
+</li>
+</ul>
+Finally the list of parameters you can use to change settings for ajp workers and ajp load balancer members:
+<ul>
+<li>
+<b>vahst</b>: host (string)
+</li>
+<li>
+<b>vaprt</b>: port (number)
+</li>
+<li>
+<b>vacpt</b>: connection_pool_timeout (number)
+</li>
+<li>
+<b>vact</b>: connect_timeout (number)
+</li>
+<li>
+<b>vapt</b>: prepost_timeout (number)
+</li>
+<li>
+<b>vart</b>: reply_timeout (number)
+</li>
+<li>
+<b>var</b>: retries (number)
+</li>
+<li>
+<b>varo</b>: recovery_options (number)
+</li>
+<li>
+<b>vamps</b>: max_packet_size (number)
+</li>
+</ul>
+Note that changing the host name or port will only take effect for new connections.
+Already established connections to the old address will still be used.
+Nevertheless this feature is interesting, because you can provision load balancer
+members with port "0", which will automatically be stopped during startup. Later
+when you know the final names and ports, you can set them and they will be
+automatically activated.
+</p>
+<p>
+The leading character "v" has been added to the parameters in version 1.2.27.
+Changing settings for ajp workers has also been introduced in version 1.2.27.
+</p>
+<p>
+For the details of all parameters, we refer to the <a href="workers.html">workers.properties Reference</a>.
+</p>
+</blockquote></td></tr></table>
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Aspect Editing for Load Balancer Members"><strong>Aspect Editing for Load Balancer Members</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+You can use the edit action to edit all settings for a load balancer or for a
+member of a load balancer respectively on one page. If you want to edit one
+configuration aspect for all members of a load balancer simultaneously, this
+will be triggered by the parameter <b>att</b>. The value of the parameter indicates,
+which aspect you want to edit. The list is the same as in the previous section,
+except for "vahst" and "vaprt":
+"vwa", "vwf", "vwn", "vwr", "vwc", "vwd", "vacpt", "vact", "vapt", "vart", "var",
+"varo" and "vamps". But here you
+need to put the name into the parameter <b>att</b>, instead of using it as a request
+parameter name.
+</p>
+<p>
+The values of the common aspect for all the load balancer members will be given
+in parameters named "val0", "val1", ....
+</p>
+</blockquote></td></tr></table>
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright &copy; 1999-2011, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html> \ No newline at end of file
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/docs/reference/printer/uriworkermap.html b/rubbos/app/tomcat-connectors-1.2.32-src/docs/reference/printer/uriworkermap.html
new file mode 100644
index 00000000..3bc39256
--- /dev/null
+++ b/rubbos/app/tomcat-connectors-1.2.32-src/docs/reference/printer/uriworkermap.html
@@ -0,0 +1,377 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>The Apache Tomcat Connector - Reference Guide - uriworkermap.properties configuration</title><meta name="author" value="Rainer Jung"><meta name="email" value="rjung@apache.org"><meta name="author" value="Mladen Turk"><meta name="email" value="mturk@apache.org"><link href="../../style.css" type="text/css" rel="stylesheet"></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="4"><!--PAGE HEADER--><tr><td colspan="2"><!--TOMCAT LOGO--><a href="http://tomcat.apache.org/"><img src="../../images/tomcat.gif" align="left" alt="Apache Tomcat" border="0"></a><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="http://www.apache.org/images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><tr><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left"><table border="0" width="100%" cellspacing="4"><tr><td align="left" valign="top"><h1>The Apache Tomcat Connector - Reference Guide</h1><h2>uriworkermap.properties configuration</h2></td><td align="right" valign="top" nowrap="true"><img src="../../images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+The forwarding of requests from the web server to tomcat gets configured by defining mapping rules.
+Such a rule maps requests to workers. The request part of the map is described by a URI pattern,
+the worker by it's worker name.
+</p>
+<p>
+The so-called <b>uriworkermap</b> file is a mechanism of defining rules,
+which works for all web servers. There exist also other web server specific configuration
+options for defining rules, which will be mostly discussed on the reference pages for
+configuring tomcat connectors for the individual web servers.
+</p>
+<p>
+The name of the file is usually uriworkermap.properties,
+although this is configurable in the web server.
+Please consult the web server specific documentation pages on
+how to enable the uriworkermap file.
+</p>
+<p>
+The main features supported by the uriworkermap file are
+<ul>
+<li>
+Support for comments in the rule file.
+</li>
+<li>
+Exact and wildchar matches, shortcuts to map a directory and all including content.
+</li>
+<li>
+Exclusion rules, disabling of rules and rule priorities.
+</li>
+<li>
+Rule extensions, modifying worker behaviour per rule.
+</li>
+<li>
+Virtual host integration: uri mapping rules can be expressed per virtual host.
+The details are web server specific though.
+</li>
+<li>
+Dynamic reloading: The file gets checked periodically for changes.
+New versions are automatically reloaded without web server restarts.
+</li>
+<li>
+Integration with the status worker.
+</li>
+</ul>
+The following sections describe these aspects in more detail.
+</p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Syntax"><strong>Syntax</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Line format"><strong>Line format</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+The file has a line based format. There are no continuation characters,
+so each rule needs to be defined on a single line. Each rule is a pair consisting
+of a URI pattern and a worker name, combined by an equals sign '=':
+<div class="example"><pre>
+ /myapp=myworker
+</pre></div>
+The URI pattern is case sensitive.
+</p>
+</blockquote></td></tr></table>
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Comments, white space"><strong>Comments, white space</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+All text after and including the character '#' gets ignored and can be used for comments.
+Leading and trailing white space gets trimmed around the URI pattern and also around the worker name.
+The following definitions are all equivalent:
+<div class="example"><pre>
+ # This is a white space example
+ /myapp=myworker
+ /myapp=myworker
+ /myapp = myworker
+</pre></div>
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="URI patterns"><strong>URI patterns</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+Inside the URI pattern three special characters can be used, '*', '?' and '|'.
+The character '*' is a wildchar that matches any number of arbitrary characters
+in the URI, '?' matches exactly one character.
+Each URI pattern has to start with the character '/', or with '*' or with '?',
+optionally prefixed by any combination of the modifiers '!' and '-' (see next section).
+<div class="example"><pre>
+ # Mapping the URI /myapp1 and everything under /myapp1/:
+ /myapp1=myworker-a
+ /myapp1/*=myworker-a
+ # Mapping all URI which end with a common suffix:
+ *.jsp=myworker
+ *.do=myworker
+</pre></div>
+Since the first case of mapping a certain location and everything inside
+it is very common, the character '|' gives a handy shortcut:
+<div class="example"><pre>
+ # Mapping the URI /myapp1 and everything under /myapp1/:
+ /myapp1|/*=myworker-a
+</pre></div>
+The pattern 'X|Y' is exactly equivalent to the two maps 'X' and 'XY'.
+</p>
+</blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Exclusion, Disabling and Priorities"><strong>Exclusion, Disabling and Priorities</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Exclusions and rule disabling"><strong>Exclusions and rule disabling</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+Exclusion rules allows to define exclusions from URI rules, which would forward
+requests to tomcat. If the exclusion rule matches, the request will not be forwarded.
+This is usually used to serve static content by the web server.
+A rule is an exclusion rule, if it is suffixed with '!':
+<div class="example"><pre>
+ # Mapping the URI /myapp and everything under /myapp/:
+ /myapp|/*=myworker
+ # Exclude the subdirectory static:
+ !/myapp/static|/*=myworker
+ # Exclude some suffixes:
+ !*.html=myworker
+</pre></div>
+An exclusion rule overrides a normal mapping rule only, if the worker names in the
+normal rule and in the exclusion rule are the same. Starting with version 1.2.26 of JK
+you can apply an exclusion rule to any worker, by using the star character '*' as
+the worker name in the exclusion rule.
+More complex patterns in exclusion worker names are not allowed.
+<div class="example"><pre>
+ # Mapping the webapps /myapp1 and /myapp2:
+ /myapp1|/*=myworker1
+ /myapp2|/*=myworker2
+ # Exclude the all subdirectories static for all workers:
+ !/*/static|/*=*
+ # Exclude some suffixes for all workers:
+ !*.html=*
+</pre></div>
+</p>
+<p>
+Rule disabling comes into play, if your web server merges rules from various sources,
+and you want to disable any rule defined previously. Since the uriworkermap file gets
+reloaded dynamically, you can use this to temporarily disable request forwarding:
+A rule gets disabled, if it is suffixed with '-':
+<div class="example"><pre>
+ # We are not in maintenance.
+ # The maintenance rule got defined somewhere else.
+ -/*=maintenance
+</pre></div>
+Exclusion rules can get disabled as well, then the rule starts with '-!'.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Mapping priorities"><strong>Mapping priorities</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+The most restrictive URI pattern is applied first. More precisely the URI patterns are
+sorted by the number of '/' characters in the pattern (highest number first), and
+rules with equal numbers are sorted by their string length (longest first).
+</p>
+<p>
+If both distinctions still do not suffice, then the defining source of the rule is considered.
+Rules defined in uriworkermap.properties come first, before rules defined by JkMount (Apache)
+and inside workers.properties using the mount attribute.
+</p>
+<p>
+All disabled rules are ignored. Exclusion rules are applied after all normal rules
+have been applied.
+</p>
+<p>
+There is no defined behaviour, for the following configuration conflict:
+using literally the same URI pattern in the same defining source but with
+different worker targets.
+</p>
+</blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Rule extensions"><strong>Rule extensions</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+Rule extensions were added in version 1.2.27 and are not available in earlier versions.
+</p>
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Syntax"><strong>Syntax</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+Rule extensions are additional attributes, that can be attached to any rule.
+They are added at the end of the rule, each extension separated by a semicolon:
+<div class="example"><pre>
+ # This is an extension example,
+ # setting a reply_timeout of 1 minute
+ # only for this mapping.
+ /myapp=myworker;reply_timeout=60000
+ #
+ # This is an example using multiple extensions
+ /myapp=myloadbalancer;reply_timeout=60000;stopped=member1
+</pre></div>
+Attributes set via rule extensions always overwrite conflicting
+configurations in the worker definition file.
+</p>
+</blockquote></td></tr></table>
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Extension reply_timeout"><strong>Extension reply_timeout</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+The extension <b class="code">reply_timeout</b> sets a reply timeout for a single mapping rule.
+<div class="example"><pre>
+ # Setting a reply_timeout of 1 minute
+ # only for this mapping.
+ /myapp=myworker;reply_timeout=60000
+</pre></div>
+It overrides any <b class="code">reply_timeout</b> defined for the worker. The extension allows
+to set a reasonable default reply timeout to the worker, and a more relaxed
+reply timeout to URLs, which are known to start time intensive tasks.
+For a general description of reply timeouts see the
+<a href="../../generic_howto/timeouts.html#Reply Timeout">timeouts</a> documentation.
+</p>
+</blockquote></td></tr></table>
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Extensions active/disabled/stopped"><strong>Extensions active/disabled/stopped</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+The extensions <b class="code">active</b>, <b class="code">disabled</b>, and <b class="code">stopped</b>
+can be used in a load balancer mapping rule to set selected members
+of the load balancer into a special activation state.
+<div class="example"><pre>
+ # Stop forwarding only for member1 of loadbalancer
+ /myapp=myloadbalancer;stopped=member1
+</pre></div>
+Multiple members must be separated by commas or white space:
+<div class="example"><pre>
+ # Stop forwarding for member01 and member02 of loadbalancer
+ # Disable forwarding for member21 and member22 of loadbalancer
+ /myapp=myloadbalancer;stopped=member01,member02;disabled=member21,member22
+</pre></div>
+For the precise meaning of the activation states see the description of
+<a href="../../reference/workers.html#Advanced Worker Directives">activation</a>.
+</p>
+</blockquote></td></tr></table>
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Extension fail_on_status"><strong>Extension fail_on_status</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+The extension <b class="code">fail_on_status</b> can be used in any rule:
+<div class="example"><pre>
+ # Send 503 instead of 404 and 500,
+ # and if we get a 503 also set the worker to error
+ /myapp=myworker;fail_on_status=-404,-500,503
+</pre></div>
+Multiple status codes must be separated by commas.
+For the precise meaning of the attribute see the description of
+<a href="../../reference/workers.html#Advanced Worker Directives">fail_on_status</a>.
+</p>
+</blockquote></td></tr></table>
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Extension use_server_errors"><strong>Extension use_server_errors</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+The extension <b class="code">use_server_errors</b> allows to let the web server
+send an error page, instead of the backend (e.g. Tomcat) error page.
+This is useful, if one wants to send customized error pages, but those are
+not part of all web applications. They can then be put onto the web server.
+</p>
+<p>
+The value of <b class="code">use_server_errors</b> is a positive number.
+Any request send to the backend, that returns with an http status
+code bigger or equal to <b class="code">use_server_errors</b>, will
+be answered to the client with the error page of the web server
+for this status code.
+<div class="example"><pre>
+ # Use web server error page for all errors
+ /myapp=myworker;use_server_errors=400
+ # Use web server error page only for technical errors
+ /myotherapp=myworker;use_server_errors=500
+</pre></div>
+</p>
+</blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Virtual host integration"><strong>Virtual host integration</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="IIS"><strong>IIS</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+When using IIS you can restrict individual rules to special virtual hosts
+by prefixing the URI pattern with the virtual host information.
+The rules is that the url must be prefixed with the host name.
+<div class="example"><pre>
+ # Use www.foo.org as virtual host
+ /www.foo.org/myapp/*=myworker
+ # Use www.bar.org as virtual host
+ /www.bar.org/myapp/*=myworker
+ # Normal mapping
+ /mysecondapp/*=myworker
+</pre></div>
+</p>
+<p>
+Note that /mysecondapp/* will be mapped to all virtual hosts present.
+In case one needs to prevent the mappings to some particular virtual host then
+the exclusion rule must be used
+<div class="example"><pre>
+ # Make sure the myapp is accessible by all virtual hosts
+ /myapp/*=myworker
+ # Disable mapping myapp for www.foo.org virtual host
+ !/www.foo.org/myapp/*=myworker
+</pre></div>
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Apache httpd"><strong>Apache httpd</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+For Apache you can define individual uriworkermap files per virtual host.
+The directive JkMountFile can be used in the main server and in each virtual host.
+If a virtual host does not use JkMountfile, but JkMountCopy is set to 'On',
+then it inherits the JkMountFile from the main server. If you want all vhost to inherit
+mounts from the main server, you can set JkMountCopy to 'All' in the main server.
+</p>
+</blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Dynamic reloading"><strong>Dynamic reloading</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+When a request is being processed, tomcat connectors check the file modification time
+of the uriworkermap file. To keep the performance penalty low, this happens only,
+if the last check happened at least n seconds ago.
+</p>
+<p>
+For Apache you can configure the interval "n" using the directive JkMountFileReload,
+for IIS you would use the attribute worker_mount_reload.
+The default value is 60 seconds. A value of "0" turns off the reloading.
+</p>
+<p>
+If the file changed, it gets reloaded completely. If there exist rules coming
+from other sources than the uriworkermap file (e.g. the workers.properties mount
+attribute or JkMount with Apache httpd), the new uriworkermap file gets dynamically
+merged with these ones exactly like when you do a web server restart.
+</p>
+<p>
+Until version 1.2.19 reloading behaved slightly differently: it continuously added
+the full contents of the uriworkermap file to the rule mapping. The merging rules
+were, that duplicated got eliminated and old rules could be disabled, by defining the
+rule as disabled in the new file. Rules never got deleted.
+</p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Status worker integration"><strong>Status worker integration</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+The configuration view of the status worker also shows the various mapping rules.
+After each worker's configuration, the rules are listed, that forward to this worker.
+The list contains four columns:
+<ul>
+<li>
+the name of the virtual server
+</li>
+<li>
+the URI pattern, prefixed with '-' for a disabled pattern and '!' for an exclusion pattern
+</li>
+<li>
+the type of the rule: Exact or Wildchar
+</li>
+<li>
+and the source of the rule definition: 'worker definition' for the workers.properties file (mount attribute),
+'JkMount' for Apache httpd JkMount and it's relatives and finally 'uriworkermap' for the uriworkermap file.
+</li>
+</ul>
+</p>
+<p>
+<b>Note: </b>The following restriction has been removed starting with version 1.2.26.
+<br>
+For Apache httpd, there is an important subtlety: the request going to the status worker
+gets executed in the context of some server (main or virtual). The status worker will only show the
+mapping rules, that are defined for this server (main or virtual).
+<br>
+Until version 1.2.25 the list contained three columns:
+<ul>
+<li>
+the type of the rule: Exact or Wildchar, eventually prefixed with Disabled or Unmount (for exclusion rules)
+</li>
+<li>
+the URI pattern
+</li>
+<li>
+and the source of the rule definition: 'worker definition' for the workers.properties file (mount attribute),
+'JkMount' for Apache httpd JkMount and it's relatives and finally 'uriworkermap' for the uriworkermap file.
+</li>
+</ul>
+</p>
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright &copy; 1999-2011, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html> \ No newline at end of file
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/docs/reference/printer/workers.html b/rubbos/app/tomcat-connectors-1.2.32-src/docs/reference/printer/workers.html
new file mode 100644
index 00000000..b2f423a9
--- /dev/null
+++ b/rubbos/app/tomcat-connectors-1.2.32-src/docs/reference/printer/workers.html
@@ -0,0 +1,1000 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>The Apache Tomcat Connector - Reference Guide - workers.properties configuration</title><meta name="author" value="Mladen Turk"><meta name="email" value="mturk@apache.org"><link href="../../style.css" type="text/css" rel="stylesheet"></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="4"><!--PAGE HEADER--><tr><td colspan="2"><!--TOMCAT LOGO--><a href="http://tomcat.apache.org/"><img src="../../images/tomcat.gif" align="left" alt="Apache Tomcat" border="0"></a><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="http://www.apache.org/images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><tr><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left"><table border="0" width="100%" cellspacing="4"><tr><td align="left" valign="top"><h1>The Apache Tomcat Connector - Reference Guide</h1><h2>workers.properties configuration</h2></td><td align="right" valign="top" nowrap="true"><img src="../../images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+A <b>Tomcat worker</b> is a Tomcat instance that is waiting to execute servlets or any other content
+on behalf of some web server. For example, we can have a web server such as
+Apache forwarding servlet requests to a Tomcat process (the worker) running behind it.
+</p>
+<p>
+The scenario described above is a very simple one;
+in fact one can configure multiple Tomcat workers to serve servlets on
+behalf of a certain web server.
+The reasons for such configuration can be:
+</p>
+<ul>
+<li>
+We want different contexts to be served by different Tomcat workers to provide a
+development environment where all the developers share the same web server but
+own a Tomcat worker of their own.
+</li>
+<li>
+We want different virtual hosts served by different Tomcat processes to provide a
+clear separation between sites belonging to different companies.
+</li>
+<li>
+We want to provide load balancing, meaning run multiple Tomcat workers each on a
+machine of its own and distribute the requests between them.
+</li>
+</ul>
+
+<p>
+There are probably more reasons for having multiple workers but I guess that this list is enough...
+</p>
+<p>
+Tomcat workers are defined in a properties file dubbed <b>workers.properties</b> and this tutorial
+explains how to work with it.
+</p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Configuration File Basics"><strong>Configuration File Basics</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>Defining workers to the Tomcat web server plugin can be done using a properties file
+(a sample file named workers.properties is available in the conf/ directory).
+</p>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Format, Comments, Whitespace"><strong>Format, Comments, Whitespace</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+The lines in the file define properties. The general format is
+</p>
+<p><strong>&lt;name&gt;=&lt;value&gt;</strong></p>
+<p>
+</p>
+Dots are used as part of the name to represent a configuration hierarchy.
+<p>
+Invalid directives will be logged during web server startup and prevent the web server
+from working properly. Some directives have been deprecated. Although they will
+still work, you should replace them by their
+<a href="#Deprecated Worker Directives">successors</a>.
+</p>
+<p>
+Some directives are allowed multiple times. This will be explicitly
+noted in the tables below.
+</p>
+<p>
+Whitespace at the beginning and the end of a property name or value gets ignored.
+Comments can be placed in any line and start with a hash sign '#'.
+Any line contents behind the hash sign get ignored.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Global Properties"><strong>Global Properties</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+These directives have global scope.
+</p>
+<table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Directive</font></th><th width="10%" bgcolor="#023264"><font color="#ffffff">Default</font></th><th width="75%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><strong><code>worker.list</code></strong></td><td align="center" valign="center"><code>ajp13</code></td><td align="left" valign="center">
+A comma separated list of workers names that the JK will use. When starting up,
+the web server plugin will instantiate the workers whose name appears in the
+worker.list property, these are also the workers to whom you can map requests.
+<p>
+This directive can be used multiple times.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>worker.maintain</code></td><td align="center" valign="center"><code>60</code></td><td align="left" valign="center">
+Worker connection pool maintain interval in seconds. If set to the positive
+value JK will scan all connections for all workers specified in worker.list
+directive and check if connections needs to be recycled.
+<p>
+Furthermore any load balancer does a global maintenance every worker.maintain
+seconds. During global maintenance load counters are decayed and workers
+in error are checked for recover_time.
+</p>
+<p>
+This feature has been added in <b>jk 1.2.13</b>.
+</p>
+</td></tr></table>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Worker Properties"><strong>Worker Properties</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+Each worker configuration directive consists of three words separated by a dot:
+</p>
+<p><strong>worker.&lt;worker name&gt;.&lt;directive&gt;=&lt;value&gt;</strong></p>
+<p>
+The first word is always <b>worker</b>.
+The second word is the worker name you can choose. In the case of load-balancing,
+the worker name has an additional meaning. Please consult the
+<a href="../../generic_howto/loadbalancers.html">Load Balancer HowTo</a>.
+</p>
+<p><font color="#ff0000">
+The name of the worker can contain only the alphanumeric characters
+<b>[a-z][A-Z][0-9][_\-]</b> and is case sensitive.
+</font></p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Variables, Environment Variables"><strong>Variables, Environment Variables</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+You can define and use variables in the workers.properties file.
+To define a variable you use the syntax:
+</p>
+<p><strong>&lt;variable_name&gt;=&lt;value&gt;</strong></p>
+<p>
+Dots are allowed in the variable name, but you have to be careful
+not to use variable names, that clash with standard directives.
+Therefore variable names should never start with "worker.".
+</p>
+<p>
+To use a variable, you can insert "$(variable_name)" at any place
+on the value side of a property line. If a variable has not been
+defined before its use, we will search the process environment for
+a variable with the same name and use their value.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Property Inheritance"><strong>Property Inheritance</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>Often one wants to use the same property values for various workers.
+To reduce duplication of configuration lines and to ease the maintenance of
+the file, you can inherit properties from one worker to another, or even
+from a template to real workers.
+</p>
+<p>
+The directive "reference" allows to copy configurations between workers
+in a hierarchical way. If worker castor sets <b>worker.castor.reference=worker.pollux</b>
+then it inherits all properties of <b>pollux</b>, except for the ones that
+are explicitly set for <b>castor</b>.
+</p>
+<p>
+Please note, that the value of the directive is not only the name of the referred worker,
+but the complete prefix including "worker.".
+</p>
+<p>
+To use a template worker simply define it like a real worker, but do not add it
+to the "worker.list" or as a member to any load balancer. Such a template worker
+does not have to contain mandatory directives. This approach is especially useful,
+if one has a lot of balanced workers in a load balancer
+and these workers share most of their properties. You can set all of these properties
+in a template worker, e.g. using the prefix "worker.template1", and then simply
+reference those common properties in all balanced workers.
+</p>
+<p>
+References can be used to inherit properties over multiple hops in a hierarchical way.
+</p>
+<p>
+This feature has been added in <b>jk 1.2.19</b>.
+</p>
+</blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="List of All Worker Directives"><strong>List of All Worker Directives</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Mandatory Directives"><strong>Mandatory Directives</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>Mandatory directives are the one that each worker <b>must</b> contain. Without them the worker will
+be unavailable or will misbehave. Those directives will be marked with a <strong>strong</strong> font in the following tables.
+</p>
+<table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Directive</font></th><th width="10%" bgcolor="#023264"><font color="#ffffff">Default</font></th><th width="75%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><strong><code>type</code></strong></td><td align="center" valign="center"><code>ajp13</code></td><td align="left" valign="center">
+Type of the worker (can be one of ajp13, ajp14, jni, lb or status). The type of the worker
+defines the directives that can be applied to the worker.
+<p>AJP13 worker is the preferred worker type that JK uses for communication
+between web server and Tomcat. This type of worker uses sockets as communication
+channel. For detailed description of the AJP13 protocol stack browse to
+<a href="../../ajp/ajpv13a.html">AJPv13 protocol specification</a>
+</p>
+<p><font color="#ff0000">JNI workers have been deprecated. They will likely not work. Do not use them.</font></p>
+</td></tr></table>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Connection Directives"><strong>Connection Directives</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>Connection directives defines the parameters needed to connect and maintain
+the connections pool of persistent connections between JK and remote Tomcat.
+</p>
+<table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Directive</font></th><th width="10%" bgcolor="#023264"><font color="#ffffff">Default</font></th><th width="75%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code>host</code></td><td align="center" valign="center"><code>localhost</code></td><td align="left" valign="center">
+Host name or IP address of the backend Tomcat instance. The remote Tomcat must
+support the ajp13 protocol stack. The host name can have a <b>port</b> number
+embedded separated by the colon (':') character.
+</td></tr><tr><td align="left" valign="center"><code>port</code></td><td align="center" valign="center"><code>8009</code></td><td align="left" valign="center">
+Port number of the remote Tomcat instance listening for defined protocol requests.
+The default value depends on the worker type. For AJP13 workers the default port is
+<b>8009</b>, while for AJP14 type of worker that value is <b>8011</b>.
+</td></tr><tr><td align="left" valign="center"><code>socket_timeout</code></td><td align="center" valign="center"><code>0</code></td><td align="left" valign="center">
+Socket timeout in seconds used for the communication channel between JK and remote host.
+If the remote host does not respond inside the timeout specified, JK will generate an error,
+and retry again. If set to zero (default) JK will wait for an infinite amount of time
+on all socket operations.
+</td></tr><tr><td align="left" valign="center"><code>socket_connect_timeout</code></td><td align="center" valign="center"><code>socket_timeout*1000</code></td><td align="left" valign="center">
+Socket connect timeout in milliseconds used for the communication channel between JK and remote host.
+If the remote host does not respond inside the timeout specified, JK will generate an error,
+and retry again.
+<p>
+Note that <b class="code">socket_timeout</b> is in seconds, and
+<b class="code">socket_connect_timeout</b> in milliseconds,
+so in absolute terms the default <b class="code">socket_connect_timeout</b> is
+equal to <b class="code">"socket_timeout</b>.
+</p>
+<p>
+This feature has been added in <b>jk 1.2.27</b>.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>socket_keepalive</code></td><td align="center" valign="center"><code>False</code></td><td align="left" valign="center">
+This directive should be used when you have a firewall between your webserver
+and the Tomcat engine, who tend to drop inactive connections. This flag will tell the Operating System
+to send <b class="code">KEEP_ALIVE</b> messages on inactive connections (interval depend on global OS settings,
+generally 120 minutes), and thus prevent the firewall to cut inactive connections.
+To enable keepalive set this property value to <b>True</b>.
+<p>
+The problem with Firewall cutting inactive connections is that sometimes, neither webserver or Tomcat
+have information about the cut and couldn't handle it.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>ping_mode</code></td><td align="center" valign="center"><code>-</code></td><td align="left" valign="center">
+This flag determines, under which conditions established
+connections are probed to ensure they are still working.
+The probe is done with an empty AJP13 packet (CPing) and
+expects to receive an appropriate answer (CPong) within
+some timeout.
+<p>
+The value of the flag can be any combination of the following
+flags (multiple values are combined without any separators):
+</p>
+<p><b>C</b> (connect): If set, the connection will
+be probed once after connecting to the backend. The timeout
+can be set by <b class="code">connect_timeout</b>. If it is not set,
+the value of <b class="code">ping_timeout</b> will be used instead.
+</p>
+<p><b>P</b> (prepost): If set, the connection will
+be probed before sending each request to the backend. The timeout
+can be set by <b class="code">prepost_timeout</b>. If it is not set,
+the value of <b class="code">ping_timeout</b> will be used instead.
+</p>
+<p><b>I</b> (interval): If set, the connection will
+be probed during the regular internal maintenance cycle,
+but only if it is idle longer than
+<b class="code">connection_ping_interval</b>. The timeout
+can be set by <b class="code">ping_timeout</b>.
+</p>
+<p><b>A</b> If set, all of the above probes will be used.
+</p>
+<p>
+This feature has been added in <b>jk 1.2.27</b>. Connect and
+prepost probing were already available via <b class="code">connect_timeout</b>
+and <b class="code">prepost_timeout</b> since version <b>jk 1.2.6</b>.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>ping_timeout</code></td><td align="center" valign="center"><code>10000</code></td><td align="left" valign="center">
+Timeout in milliseconds used when waiting for the CPong answer of a
+CPing connection probe. The activation of the probes is done via
+<b class="code">ping_mode</b>. The timeouts for <b class="code">ping_mode</b>
+connect and prepost can be overwritten individually via
+<b class="code">connect_timeout</b> and <b class="code">prepost_timeout</b>.
+<p>
+For compatibility reasons, CPing/CPong is also used, whenever
+<b class="code">connect_timeout</b> or <b class="code">prepost_timeout</b> are set,
+even if <b class="code">ping_mode</b> is empty.
+</p>
+<p>
+This feature has been added in <b>jk 1.2.27</b>.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>connection_ping_interval</code></td><td align="center" valign="center"><code>0 / (ping_timeout/1000)*10</code></td><td align="left" valign="center">
+When using interval connection probing, connections idle for longer than this
+interval in seconds are probed by CPing packets whether they still work.
+<p>Interval probing can be activated either by <b class="code">ping_mode</b>,
+or by setting <b class="code">connection_ping_interval</b> to some value bigger
+than zero. If you activate interval probing via <b class="code">ping_mode</b>,
+then the default value of <b class="code">connection_ping_interval</b> is
+<b class="code">(ping_timeout/1000) * 10</b>. Note that <b class="code">ping_timeout</b>
+is in milliseconds, and <b class="code">connection_ping_interval</b> in seconds,
+so in absolute terms the default <b class="code">connection_ping_interval</b> is
+10 times <b class="code">ping_timeout</b>.
+</p>
+<p>
+This feature has been added in <b>jk 1.2.27</b>.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>connection_pool_size</code></td><td align="center" valign="center"><code>see text</code></td><td align="left" valign="center">
+This defines the number of connections made to the AJP backend that
+are maintained as a connection pool.
+It will limit the number of those connection that each web server child
+process can made.
+<p>
+Connection pool size property is only used for multi threaded
+web servers such as Apache, IIS and Netscape/Sun. The connection_pool_size property
+needs to reflect the number of requests one web server process should
+be able to send to a backend in parallel. Usually this is the same as
+the number of threads per web server process. JK will discover
+this number for the Apache web server automatically and set the pool size to
+this value. For IIS the default value is 250 (before version 1.2.20: 10),
+for Netscape/Sun the default value is 1.
+</p>
+<p>We strongly recommend adjusting this value for IIS and the Netscape/Sun
+to the number of requests one web server process should
+be able to send to a backend in parallel. You should measure how many connections
+you need during peak activity without performance problems, and then add some
+percentage depending on your growth rate. Finally you should check,
+whether your web server processes are able to use at least as many threads,
+as you configured as the pool size.
+</p>
+<p><font color="#ff0000">Do not use connection_pool_size with values higher then 1 on <b>Apache 2.x prefork</b> or <b>Apache 1.3.x</b>!</font></p>
+</td></tr><tr><td align="left" valign="center"><code>connection_pool_minsize</code></td><td align="center" valign="center"><code>(pool+1)/2</code></td><td align="left" valign="center">
+Minimum size of the connection pool that will be maintained.
+<p>
+Its default value is (connection_pool_size+1)/2.
+</p>
+<p><font color="#ff0000">Do not use connection_pool_size with values higher then 1 on <b>Apache 2.x prefork</b> or <b>Apache 1.3.x</b>!</font></p>
+<p>
+This feature has been added in <b>jk 1.2.16</b>.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>connection_pool_timeout</code></td><td align="center" valign="center"><code>0</code></td><td align="left" valign="center">
+Cache timeout property should be used with <b>connection_pool_minsize</b> to specify how many seconds JK should keep
+an inactive socket in cache before closing it. This property should be used to reduce the number of threads
+on the Tomcat web server. The default value zero disables the closing (infinite timeout).
+<p>
+Each child could open an ajp13 connection if it has to forward a request to Tomcat, creating
+a new ajp13 thread on Tomcat side.
+</p>
+<p>
+The problem is that after an ajp13 connection is created, the child won't drop it
+until killed. And since the webserver will keep its childs/threads running
+to handle high-load, even it the child/thread handle only static contents, you could
+finish having many unused ajp13 threads on the Tomcat side.
+</p>
+<p>
+You should keep this time interval in sync with the <b>connectionTimeout</b> attribute
+of your AJP connector in Tomcat's server.xml. Note however, that the value
+for mod_jk is given in seconds, the one in server.xml has to use milliseconds.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>connection_acquire_timeout</code></td><td align="center" valign="center"><code>retries*retry_interval</code></td><td align="left" valign="center">
+Timeout the worker will wait for a free socket in cache before giving up.
+<p>
+Its default value is <b>retries * retry_interval</b>.
+</p>
+<p>
+This feature has been added in <b>jk 1.2.27</b>.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>lbfactor</code></td><td align="center" valign="center"><code>1</code></td><td align="left" valign="center">
+Only used for a member worker of a load balancer.
+<p>
+The integer number lbfactor (load-balancing factor) is
+<i>how much we expect this worker to work</i>, or
+<i>the worker's work quota</i>. Load balancing factor is compared with other workers
+that makes the load balancer. For example if one worker has lb_factor 5 times higher then
+other worker, then it will receive five times more requests.
+</p>
+</td></tr></table>
+
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Load Balancing Directives"><strong>Load Balancing Directives</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>Load balancer is a virtual worker that does not really communicate with Tomcat workers.
+Instead it is responsible for the management of several "real" workers.
+The worker is supposed to be a load balancer if it's worker type is <b>lb</b>.
+See worker's <b>type</b> directive.
+</p>
+<p>Loadbalancer directives define the parameters needed to create the workers that are
+connecting to a remote cluster of backend Tomcat servers. Each cluster node has to
+have a worker defined.
+</p>
+<p>
+Load balancer management includes:
+</p>
+
+<ul>
+<li>
+Instantiating the workers in the web server.
+</li>
+<li>
+Using the worker's load-balancing factor, perform weighed-round-robin load balancing where
+high lbfactor means stronger machine (that is going to handle more requests)
+</li>
+<li>
+Keeping requests belonging to the same session executing on the same Tomcat worker.
+</li>
+<li>
+Identifying failed Tomcat workers, suspending requests to them and instead fall-backing on
+other workers managed by the lb worker.
+</li>
+</ul>
+
+<p>
+The overall result is that workers managed by the same lb worker are load-balanced
+(based on their lbfactor and current user session) and also fall-backed so a single
+Tomcat process death will not "kill" the entire site.
+</p>
+<p><font color="#ff0000">
+If you want to use session stickiness, you must set different jvmRoute attributes
+in the Engine element in Tomcat's server.xml. Furthermore the names of the workers
+which are managed by the balancer have to be equal to the jvmRoute of the Tomcat
+instance they connect with.
+</font></p>
+<p>
+The restriction on the worker names can be lifted, if you use the route attribute for the workers.
+</p>
+<p>
+The following table specifies properties that the lb worker can accept:
+</p>
+
+<table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Directive</font></th><th width="10%" bgcolor="#023264"><font color="#ffffff">Default</font></th><th width="75%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><strong><code>balance_workers</code></strong></td><td align="center" valign="center"><code>-</code></td><td align="left" valign="center">
+A comma separated list of workers that the load balancer
+need to manage.
+<p>
+This directive can be used multiple times for the same load balancer.
+</p>
+<p>
+This directive replaces old <b>balanced_workers</b> directive and
+can be used only with mod_jk versions 1.2.7 and up.
+</p>
+<p><font color="#ff0000">As long as these workers should only be used via the load balancer worker,
+there is no need to also put them into the <b>worker.list</b> property.</font></p>
+</td></tr><tr><td align="left" valign="center"><code>sticky_session</code></td><td align="center" valign="center"><code>True</code></td><td align="left" valign="center">
+Specifies whether requests with SESSION ID's should be routed back to the same
+Tomcat worker. If sticky_session is set to <b>True</b> or <b>1</b> sessions are sticky, otherwise
+sticky_session is set to <b>False</b>. Set sticky_session to <b>False</b> when Tomcat
+is using a Session Manager which can persist session data across multiple
+instances of Tomcat.
+</td></tr><tr><td align="left" valign="center"><code>sticky_session_force</code></td><td align="center" valign="center"><code>False</code></td><td align="left" valign="center">
+Specifies whether requests with SESSION ID's for workers that are in error state
+should be rejected. If sticky_session_force is set to <b>True</b> or <b>1</b>
+and the worker that matches that SESSION ID is in error state, client will
+receive 500 (Server Error). If set to <b>False</b> or <b>0</b> failover on
+another worker will be issued with loosing client session. This directive is
+used only when you set <b>sticky_session=True</b>.
+<p>
+This feature has been added in <b>jk 1.2.9</b>.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>method</code></td><td align="center" valign="center"><code>Request</code></td><td align="left" valign="center">
+Specifies what method load balancer is using for electing the best worker.
+Please note, that session stickiness and perfect load balancing are
+conflicting targets, especially when the number
+of sessions is small, or the usage of sessions is extremely varying
+For huge numbers of sessions this usually is not a problem.
+<p>
+Some methods note, that they aggregate in a sliding time window. They add up
+accesses, and on each run of the global maintain method, the load counters
+get divided by 2. Usually this happens once a minute, depending on the
+setting of worker.maintain. The value of the load counters can be inspected
+using the status worker.
+</p>
+<p>
+If method is set to <b>R[equest]</b> the balancer will use number of requests
+to find the best worker. Accesses will be distributed according to the
+lbfactor in a sliding time window. This is the default value and should be
+working well for most applications.
+</p>
+<p>
+If method is set to <b>S[ession]</b> the balancer will use number of sessions
+to find the best worker. Accesses will be distributed according to the
+lbfactor in a sliding time window. Because the balancer does not keep any state,
+it actually does not know the number of sessions. Instead it counts each request
+without a session cookie or URL encoding as a new session. This method will neither
+know, when a session is being invalidated, nor will it correct its load numbers
+according to session timeouts or worker failover. This method should be used,
+if sessions are your limiting resource, e.g. when you only have limited memory
+and your sessions need a lot of memory.
+</p>
+<p>
+If set to <b>T[raffic]</b> the balancer will use
+the network traffic between JK and Tomcat to find the best worker.
+Accesses will be distributed according to the lbfactor in a sliding time window.
+This method should be used, if network to and from the backends is your
+limiting resource.
+</p>
+<p>
+If set to <b>B[usyness]</b> the balancer will
+pick the worker with the lowest current load, based on how many requests the
+worker is currently serving. This number is divided by the workers lbfactor,
+and the lowest value (least busy) worker is picked. This method is especially
+interesting, if your request take a long time to process, like for a download
+application.
+</p>
+<p>
+This feature has been added in <b>jk 1.2.9</b>.
+The Session method has been added in <b>jk 1.2.20</b>.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>lock</code></td><td align="center" valign="center"><code>Optimistic</code></td><td align="left" valign="center">
+Specifies what lock method the load balancer will use for synchronising
+shared memory runtime data.
+If lock is set to <b>O[ptimistic]</b> balancer will not use shared memory lock
+to find the best worker. If set to <b>P[essimistic]</b> balancer will use
+shared memory lock. The balancer will work more accurately in case of
+Pessimistic locking, but can slow down the average response time.
+<p>
+This feature has been added in <b>jk 1.2.13</b>.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>retries</code></td><td align="center" valign="center"><code>2</code></td><td align="left" valign="center">
+<p><font color="#ff0000">This directive also exists for normal workers.
+For those it has a <a href="#Advanced Worker Directives">different meaning</a>.</font></p>
+If the load balancer can not get a valid member worker or in case of failover,
+it will try again a number of times given by <b>retries</b>.
+Before each retry, it will make a pause define by <b>retry_interval</b> directive.
+<p>
+Until version <b>1.2.16</b> the default value was 3.
+</p>
+</td></tr></table>
+
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Status Worker Directives"><strong>Status Worker Directives</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+The status worker does not communicate with Tomcat.
+Instead it is responsible for the load balancer management.
+</p>
+<table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Directive</font></th><th width="10%" bgcolor="#023264"><font color="#ffffff">Default</font></th><th width="75%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code>css</code></td><td align="center" valign="center"><code>-</code></td><td align="left" valign="center">
+Specifies the url for cascading stylesheet to use.
+</td></tr><tr><td align="left" valign="center"><code>read_only</code></td><td align="center" valign="center"><code>False</code></td><td align="left" valign="center">
+A status worker with read_only=True will not allow any operations,
+that change the runtime state or configuration of the other workers.
+These are edit/update/reset/recover.
+<p>
+This feature has been added in <b>jk 1.2.20</b>.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>user</code></td><td align="center" valign="center"><code>-</code></td><td align="left" valign="center">
+It is a list of users
+which gets compared to the user name authenticated by the web server.
+If the name is not contained in this list, access is denied. Per
+default the list is empty and then access is allowed to anybody.
+<p>
+This directive can be used multiple times.
+</p>
+<p>
+This feature has been added in <b>jk 1.2.20</b>.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>user_case_insensitive</code></td><td align="center" valign="center"><code>False</code></td><td align="left" valign="center">
+By default, the user names are matched case sensitively. You can set
+user_case_insensitive=True to make the comparison case insensitive.
+This may be especially useful on the Windows platform.
+<p>
+This feature has been added in <b>jk 1.2.21</b>.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>good</code></td><td align="center" valign="center"><code>a.o,a.n,a.b,a.r</code></td><td align="left" valign="center">
+For every load balancer worker, the status worker shows a summary
+of the state of its members. There are three such states,
+"good", "bad" and "degraded".
+<p>
+These states are determined depending on the activation of the members
+(active, disabled, stopped) and their runtime state
+(ok, n/a, busy, recovering, probing, forced recovery, error).
+By default, members are assumed to be "good", if their activation
+is "active" and their runtime state is not "error".
+</p>
+<p>
+You can change this mapping, by assigning a list of values to the
+attribute "good". Each value gives a possible match for the members,
+and one match suffices. Each value is either a single character, or two
+characters combined with a dot ".". The single characters are the
+first characters in the words "active", "disabled", "stopped",
+"ok", "na", "busy", "recovering", "error". The additional states "probing"
+and "forced recovery" are always rated equivalent to "recovering".
+If a value consists only
+of a single character, then all members with this activation or runtime
+state will be assumed good. A combination of an activation and a runtime
+state concatenated with a dot "." does only apply to a member, that has
+exactly this activation and state.
+</p>
+<p>
+Members of a load balancer will first be matched against the state "bad",
+if they don't match, the state "good" will be tried, and if they
+still don't match, their state will be "degraded".
+</p>
+<p>
+This directive can be used multiple times.
+</p>
+<p>
+This feature has been added in <b>jk 1.2.20</b>.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>bad</code></td><td align="center" valign="center"><code>s,e</code></td><td align="left" valign="center">
+See: "good".
+<p>
+By default, members are assumed to be "bad", if their activation
+is "stopped" or their runtime state is "error".
+</p>
+<p>
+This directive can be used multiple times.
+</p>
+<p>
+This feature has been added in <b>jk 1.2.20</b>.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>prefix</code></td><td align="center" valign="center"><code>worker</code></td><td align="left" valign="center">
+The prefix, which will be used by the status worker
+when producing properties output (mime=prop).
+Each property key will be prefixed by this value.
+<p>
+This feature has been added in <b>jk 1.2.20</b>.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>ns</code></td><td align="center" valign="center"><code>jk:</code></td><td align="left" valign="center">
+This directive can be used to customise the XML output from the
+status worker. If set to <b>-</b> no namespace will be used.
+<p>
+This feature has been added in <b>jk 1.2.20</b>.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>xmlns</code></td><td align="center" valign="center"><code>-</code></td><td align="left" valign="center">
+This directive can be used to customise the XML output from the
+status worker. If set to <b>-</b> no xmlns will be used.
+<p>
+Default value is set to xmlns:jk="http://tomcat.apache.org"
+</p>
+<p>
+This feature has been added in <b>jk 1.2.20</b>.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>doctype</code></td><td align="center" valign="center"><code>-</code></td><td align="left" valign="center">
+This directive can be used to customise the XML output from the
+status worker. This value will be inserted to the output xml
+after the xml header.
+<p>
+This feature has been added in <b>jk 1.2.20</b>.
+</p>
+</td></tr></table>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Advanced Worker Directives"><strong>Advanced Worker Directives</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+This table lists more advanced configuration options. Most of them only apply to
+some types of workers. We use the abbreviations <b>AJP</b> for ajp13/ajp14 workers
+used directly via the workers.list, <b>LB</b> for load balancer workers,
+and <b>SUB</b> for the workers used indirectly in a load balancer worker
+as a sub worker or member.
+</p>
+<table border="1" cellpadding="5"><tr><th width="10%" bgcolor="#023264"><font color="#ffffff">Directive</font></th><th width="10%" bgcolor="#023264"><font color="#ffffff">Worker Type</font></th><th width="8%" bgcolor="#023264"><font color="#ffffff">Default</font></th><th width="72%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code>connect_timeout</code></td><td align="left" valign="center"><code>AJP,SUB</code></td><td align="center" valign="center"><code>0</code></td><td align="left" valign="center">
+Connect timeout property told webserver to send a PING request on ajp13 connection after
+connection is established. The parameter is the delay in milliseconds to wait for the PONG reply.
+The default value zero disables the timeout (infinite timeout).
+<p>
+This features has been added in <b>jk 1.2.6</b> to avoid problem with hung Tomcat's and require ajp13
+ping/pong support which has been implemented on Tomcat <b>3.3.2+, 4.1.28+ and 5.0.13+</b>.
+Disabled by default.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>prepost_timeout</code></td><td align="left" valign="center"><code>AJP,SUB</code></td><td align="center" valign="center"><code>0</code></td><td align="left" valign="center">
+Prepost timeout property told webserver to send a PING request on ajp13 connection before
+forwarding to it a request. The parameter is the delay in milliseconds to wait for the PONG reply.
+The default value zero disables the timeout (infinite timeout).
+<p>
+This features has been added in <b>jk 1.2.6</b> to avoid problem with hung Tomcat's and require ajp13
+ping/pong support which has been implemented on <b>Tomcat 3.3.2+, 4.1.28+ and 5.0.13+</b>.
+Disabled by default.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>reply_timeout</code></td><td align="left" valign="center"><code>AJP,SUB</code></td><td align="center" valign="center"><code>0</code></td><td align="left" valign="center">
+The parameter is the number of milliseconds to wait for success during a read event.
+So this is not a timeout for the complete answer time of a request, but only
+for the maximum time between two packets received from Tomcat. Usually the longest
+pause is between sending the request and getting the first packet of the response.
+<p>
+If the timeout passes without any data received from Tomcat, the webserver will
+no longer wait for the rest of the response and send an error to the client (browser).
+Usually this does not mean, that the request is also aborted on the Tomcat backend.
+If the worker is a member of a load balancer, the load balancer might place the
+worker into an error state and retry the request on another member.
+See also <b>max_reply_timeouts</b>, <b>retries</b> and <b>recovery_options</b>.
+</p>
+<p>
+By default (value zero) the webserver will wait forever which could be an issue for you.
+If you set a reply_timeout, adjust it carefully if you have long running servlets.
+</p>
+<p>
+The reply_timeout can be overwritten using the Apache httpd environment variable
+JK_REPLY_TIMEOUT.
+</p>
+<p>
+This features has been added in <b>jk 1.2.6</b> to avoid problem with hung Tomcat's and works on all
+servlet engines supporting ajp13. The variable JK_REPLY_TIMEOUT has been added in version <b>1.2.27</b>.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>retries</code></td><td align="left" valign="center"><code>AJP,SUB</code></td><td align="center" valign="center"><code>2</code></td><td align="left" valign="center">
+<p><font color="#ff0000">This directive also exists for load balancer workers.
+For those it has a <a href="#Load Balancing Directives">different meaning</a>.</font></p>
+The maximum number of times that the worker will send a request to Tomcat
+in case of a communication error. Each retry will be done over another
+connection. The first time already gets counted, so retries=2 means
+one retry after error. Before a retry, the worker waits for a configurable
+sleeping time.
+<p>
+See also the attribute <b>recovery_options</b> for a more fine-grained control
+of retries and <b>retry_interval</b> for the sleep time configuration.
+</p>
+<p>
+Until version <b>1.2.16</b> the default value was 3.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>retry_interval</code></td><td align="left" valign="center"><code>AJP,SUB</code></td><td align="center" valign="center"><code>100</code></td><td align="left" valign="center">
+The amount of time in milliseconds the worker sleeps before doing any retry.
+<p>
+This features has been added in <b>jk 1.2.27</b>.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>recovery_options</code></td><td align="left" valign="center"><code>AJP,SUB</code></td><td align="center" valign="center"><code>0</code></td><td align="left" valign="center">
+Recovery options influence, how we should handle retries,
+in case we detect a problem with Tomcat.
+How often we will retry is controlled by the attribute <b>retries</b>.
+<p>
+This attribute is a bit mask. The following bits are allowed:<br>
+1: don't recover if Tomcat failed after getting the request<br>
+2: don't recover if Tomcat failed after sending the headers to client<br>
+4: close the connection to Tomcat, if we detect an error when writing back
+the answer to the client (browser)<br>
+8: always recover requests for HTTP method HEAD (even if Bits 1 or 2 are set)<br>
+16: always recover requests for HTTP method GET (even if Bits 1 or 2 are set)<br>
+</p>
+<p>
+This features has been added in <b>jk 1.2.6</b>.
+Option 4 has been added in version <b>1.2.16</b>,
+options 8 and 16 in version <b>1.2.24</b>.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>fail_on_status</code></td><td align="left" valign="center"><code>AJP,SUB</code></td><td align="center" valign="center"><code>0</code></td><td align="left" valign="center">
+Set this value to the HTTP status code that will cause a worker to fail
+if returned from Servlet container. Use this directive to deal with
+cases when the servlet container can temporary return non-200 responses
+for a short amount of time, e.g during redeployment.
+<p>
+The error page, headers and status codes of the original response will not be send back
+to the client. Instead the request will result in a 503 response.
+If the worker is a member of a load balancer, the member will
+be put into an error state. Request failover and worker recovery will be handled
+with the usual load balancer procedures.
+</p>
+<p>
+This feature has been added in <b>jk 1.2.20</b>.
+</p>
+<p>
+Starting with <b>jk 1.2.22</b> it is possible to define multiple
+status codes separated by space or comma characters.
+For example: <b class="code">worker.xxx.fail_on_status=500,503</b>
+</p>
+<p>
+Starting with <b>jk 1.2.25</b> you can also tell the load
+balancer to not put a member into an error state, if a
+response returned with one of the status codes in
+fail_on_status. This feature gets enabled, by putting a minus sign in
+front of those status codes.
+For example: <b class="code">worker.xxx.fail_on_status=-404,-500,503</b>
+</p>
+</td></tr><tr><td align="left" valign="center"><code>max_packet_size</code></td><td align="left" valign="center"><code>AJP,SUB</code></td><td align="center" valign="center"><code>8192</code></td><td align="left" valign="center">
+This attribute sets the maximal AJP packet size in Bytes.
+The maximum value is 65536. If you change it from the default,
+you <b>must</b> also change the packetSize attribute of your AJP
+connector on the Tomcat side! The attribute packetSize is only available
+in Tomcat 5.5.20+ and 6.0.2+.
+<p>
+Normally it is not necessary to change the maximum packet size. Problems
+with the default value have been reported when sending certificates or
+certificate chains.
+</p>
+<p>
+This feature has been added in <b>jk 1.2.19</b>.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>mount</code></td><td align="left" valign="center"><code>AJP,LB</code></td><td align="center" valign="center"><code>-</code></td><td align="left" valign="center">
+Space delimited list of uri maps the worker should handle. It is only used,
+if the worker is included in worker.list.
+<p>
+This directive can be used multiple times for the same worker.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>secret</code></td><td align="left" valign="center"><code>AJP,LB,SUB</code></td><td align="center" valign="center"><code>-</code></td><td align="left" valign="center">
+You can set a secret keyword on the Tomcat AJP Connector. Then only requests
+from workers with the same secret keyword will be accepted.
+<p>
+Use <b>request.secret="secret key word"</b> in your Tomcat AJP Connector configuration.
+</p>
+<p>
+If you set a secret on a load balancer, all its members will inherit this secret.
+</p>
+<p>
+This feature has been added in <b>jk 1.2.12</b>.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>max_reply_timeouts</code></td><td align="left" valign="center"><code>LB</code></td><td align="center" valign="center"><code>0</code></td><td align="left" valign="center">
+If you use a <b>reply_timeout</b> for the members of a load balancer worker,
+and you want to tolerate a few requests taking longer than reply_timeout,
+you can set this attribute to some positive value.
+<p>
+Long running requests will still time out after reply_timeout milliseconds waiting for
+data, but the corresponding member worker will only be put into an error state,
+if more than <b>max_reply_timeouts</b> requests have timed out.
+More precisely, the counter for those bad requests will be divided by two,
+whenever the load balancer does its internal maintenance (by default every 60
+seconds).
+</p>
+<p>
+This features has been added in <b>jk 1.2.24</b> to make <b>reply_timeout</b> less
+sensitive for sporadic long running requests.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>recover_time</code></td><td align="left" valign="center"><code>LB</code></td><td align="center" valign="center"><code>60</code></td><td align="left" valign="center">
+The recover time is the time in seconds the load balancer will not try
+to use a worker, after it went into error state. Only after this time has passed,
+a worker in error state will be marked as in recovering, so that it will be
+tried for new requests.
+<p>
+This interval is not checked every time a request is being processed.
+Instead it is being checked during global maintenance. The time between two
+runs of global maintenance is controlled by worker.maintain.
+</p>
+<p>
+Do not set recover_time to a very short time unless you understand the implications.
+Every recovery attempt for a worker in error is done by a real request!
+</p>
+</td></tr><tr><td align="left" valign="center"><code>error_escalation_time</code></td><td align="left" valign="center"><code>LB</code></td><td align="center" valign="center"><code>recover_time / 2</code></td><td align="left" valign="center">
+Setting a member of a load balancer into an error state is quite serious. E.g.
+it means that if you need stickyness, all access to the sessions of the
+respective node is blocked.
+<p>
+Some types of error detection do not provide a precise information, whether
+a node is completely broken or not. In those cases an LB will not immediately
+put the node into the error state. Only when there have been no successful
+responses for <b>error_escalation_time</b> seconds after such an error,
+will the node be put into error state.
+</p>
+<p>
+This features has been added in <b>jk 1.2.28</b>.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>activation</code></td><td align="left" valign="center"><code>SUB</code></td><td align="center" valign="center"><code>Active</code></td><td align="left" valign="center">
+Using this directive, a balanced worker of a load balancer
+can be configured as disabled or stopped. A disabled worker only gets
+requests, which belong to sessions for that worker. A stopped
+worker does not get any requests. Users of a stopped worker will
+loose their sessions, unless session replication via clustering is used.
+<p>
+Use <b>d</b> or <b>D</b> to disable and <b>s</b> or <b>S</b> to stop.
+If this directive is not present the deprecated directives
+"disabled" or "stopped" are used.
+</p>
+<p>
+This flag can be changed at runtime using status worker.
+</p>
+<p>
+This feature has been added in <b>jk 1.2.19</b>.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>route</code></td><td align="left" valign="center"><code>SUB</code></td><td align="center" valign="center"><code>worker name</code></td><td align="left" valign="center">
+Normally the name of a balanced worker in a load balancer is equal to the jvmRoute
+of the corresponding Tomcat instance. If you want to include a worker corresponding
+to a Tomcat instance into several load balancers with different balancing configuration
+(e.g. disabled, stopped) you can use this attribute.
+<p>
+Define a separate worker per lb and per Tomcat instance with an arbitrary worker name and
+set the route attribute of the worker equal to the jvmRoute of the target Tomcat instance.
+</p>
+<p>
+If this attribute is left empty, the name of the worker will be used.
+</p>
+<p>
+This attribute can be changed at runtime using status worker.
+</p>
+<p>
+If the route name contains a period, the part before the first period will be
+used as domain name, unless domain is set explicitly.
+</p>
+<p>
+This feature has been added in <b>jk 1.2.16</b>.<br>
+The automatic domain rule has been added in <b>jk 1.2.20</b>.<br>
+The attribute has been renamed from jvm_route to route in <b>jk 1.2.20</b>.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>distance</code></td><td align="left" valign="center"><code>SUB</code></td><td align="center" valign="center"><code>0</code></td><td align="left" valign="center">
+An integer number to express preferences between
+the balanced workers of an lb worker.
+A load balancer will never choose some balanced worker
+in case there is another usable worker with lower distance.
+<p>
+Only in case all workers below a given distance are in error, disabled or stopped,
+workers of a larger distance are eligible for balancing.
+</p>
+<p>
+This feature has been added in <b>jk 1.2.16</b>.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>domain</code></td><td align="left" valign="center"><code>SUB</code></td><td align="center" valign="center"><code>-</code></td><td align="left" valign="center">
+Domain directive can be used only when the worker is a member of the load balancer.
+Workers that share the same domain name are treated as single worker. If sticky_session
+is used, then the domain name is used as session route.
+<p>
+This directive is used for large system with more then 6 Tomcats, to be able
+to cluster the Tomcats in two groups and thus lowering the session replication
+transfer between them.
+</p>
+<p>
+This feature has been added in <b>jk 1.2.8</b>.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>redirect</code></td><td align="left" valign="center"><code>SUB</code></td><td align="center" valign="center"><code>-</code></td><td align="left" valign="center">
+Set to the name of the preferred failover worker. If worker matching
+SESSION ID is in error state then the redirect worker will be used instead.
+It will be used even if being disabled, thus offering hot standby.
+<p>
+If you explicitly set a route via the "route" attribute, you must set "redirect"
+to this route of the preferred failover worker and not to its name.
+</p>
+<p>
+This feature has been added in <b>jk 1.2.9</b>.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>session_cookie</code></td><td align="left" valign="center"><code>LB</code></td><td align="center" valign="center"><code>JSESSIONID</code></td><td align="left" valign="center">
+The name of the cookie that contains the routing identifier needed for session stickyness.
+The routing identifier is everything after a "." character in the value of the cookie.
+<p>
+This feature has been added in <b>jk 1.2.27</b>.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>session_path</code></td><td align="left" valign="center"><code>LB</code></td><td align="center" valign="center"><code>;jsessionid</code></td><td align="left" valign="center">
+The name of the path parameter that contains the routing identifier needed for
+session stickyness. The routing identifier is everything after a "." character in the value
+of the path parameter.
+<p>
+This feature has been added in <b>jk 1.2.27</b>.
+</p>
+</td></tr></table>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Deprecated Worker Directives"><strong>Deprecated Worker Directives</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>The following directives have been deprecated in the past. We include their documentation
+in case you need to use an older version of mod_jk. We urge you to update and not use
+them any more. Please migrate your existing configurations.
+</p>
+<table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Directive</font></th><th width="15%" bgcolor="#023264"><font color="#ffffff">Successor</font></th><th width="10%" bgcolor="#023264"><font color="#ffffff">Default</font></th><th width="60%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code>cachesize</code></td><td align="center" valign="center"><code>connection_pool_size</code></td><td align="center" valign="center"><code>see text</code></td><td align="left" valign="center">
+<p><font color="#ff0000">This directive has been deprecated since 1.2.16.</font></p>
+Cachesize defines the number of connections made to the AJP backend that
+are maintained as a connection pool.
+It will limit the number of those connection that each web server child
+process can make.
+<p>
+Cachesize property is used only for multi threaded
+web servers such as Apache 2.0 (worker), IIS and Netscape. The cachesize property
+should reflect the number of threads per child process. JK will discover
+the number of threads per child process on Apache 2 web server with worker-mpm and set
+its default value to match the ThreadsPerChild Apache directive. For IIS the default
+value is 10. For other web servers than Apache or IIS this value has to be set manually.
+</p>
+<p><font color="#ff0000">Do not use cachesize with values higher then 1 on <b>Apache 2.x prefork</b> or <b>Apache 1.3.x</b>!</font></p>
+</td></tr><tr><td align="left" valign="center"><code>cache_timeout</code></td><td align="center" valign="center"><code>connection_pool_timeout</code></td><td align="center" valign="center"><code>0</code></td><td align="left" valign="center">
+<p><font color="#ff0000">This directive has been deprecated since 1.2.16.</font></p>
+Cache timeout property should be used with <b>cachesize</b> to specify how to time JK should keep
+an open socket in cache before closing it. This property should be used to reduce the number of threads
+on the Tomcat web server.
+<p>
+Each child could open an ajp13 connection if it have to forward a request to Tomcat, creating
+a new ajp13 thread on Tomcat side.
+</p>
+<p>
+The problem is that after an ajp13 connection is created, the child won't drop it
+until killed. And since the webserver will keep its childs/threads running
+to handle high-load, even it the child/thread handle only static contents, you could
+finish having many unused ajp13 threads on the Tomcat side.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>recycle_timeout</code></td><td align="center" valign="center"><code>connection_pool_timeout</code></td><td align="center" valign="center"><code>0</code></td><td align="left" valign="center">
+<p><font color="#ff0000">This directive has been deprecated since 1.2.16.</font></p>
+The number of seconds that told webserver to cut an ajp13 connection after some time of
+inactivity. When choosing an endpoint for a request and the assigned socket is open, it will be
+closed if it was not used for the configured time.
+It's a good way to ensure that there won't too old threads living on Tomcat side,
+with the extra cost you need to reopen the socket next time a request be forwarded.
+This property is very similar to <b>cache_timeout</b> but works also in non-cache mode.
+If set to value zero (default) no recycle will took place.
+</td></tr><tr><td align="left" valign="center"><code>balanced_workers</code></td><td align="center" valign="center"><code>balance_workers</code></td><td align="center" valign="center"><code>-</code></td><td align="left" valign="center">
+<p><font color="#ff0000">This directive has been deprecated since 1.2.7.</font></p>
+A comma separated list of workers that the load balancer
+need to manage.
+</td></tr><tr><td align="left" valign="center"><code>disabled</code></td><td align="center" valign="center"><code>activation</code></td><td align="center" valign="center"><code>False</code></td><td align="left" valign="center">
+<p><font color="#ff0000">This directive has been deprecated since 1.2.19.</font></p>
+If set to <b>True</b> or <b>1</b> the worker will be disabled if member
+of load balancer. This flag can be changed at runtime using status worker.
+<p>
+This feature has been added in <b>jk 1.2.9</b>.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>stopped</code></td><td align="center" valign="center"><code>activation</code></td><td align="center" valign="center"><code>False</code></td><td align="left" valign="center">
+<p><font color="#ff0000">This directive has been deprecated since 1.2.19.</font></p>
+If set to <b>True</b> or <b>1</b> the worker will be stopped if member
+of load balancer. The flag is needed for stop complete traffic of a sticky session
+worker. It is only useful, when you have a cluster that replicated the sessions.
+This flag can be changed at runtime using status worker.
+<p>
+This feature has been added in <b>jk 1.2.11</b>.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>jvm_route</code></td><td align="center" valign="center"><code>route</code></td><td align="center" valign="center"><code>worker name</code></td><td align="left" valign="center">
+<p><font color="#ff0000">This directive has been deprecated since 1.2.20.</font></p>
+Normally the name of a balanced worker in a load balancer is equal to the jvmRoute
+of the corresponding Tomcat instance. If you want to include a worker corresponding
+to a Tomcat instance into several load balancers with different balancing configuration
+(e.g. disabled, stopped) you can use this attribute.
+<p>
+Define a separate worker per lb and per Tomcat instance with an arbitrary worker name and
+set the jvm_route attribute of the worker equal to the jvmRoute of the target Tomcat instance.
+</p>
+<p>
+If this attribute is left empty, the name of the worker will be used.
+</p>
+<p>
+This attribute can be changed at runtime using status worker.
+</p>
+<p>
+This feature has been added in <b>jk 1.2.16</b>.
+</p>
+</td></tr></table>
+</blockquote></td></tr></table>
+
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright &copy; 1999-2011, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html> \ No newline at end of file
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/docs/reference/status.html b/rubbos/app/tomcat-connectors-1.2.32-src/docs/reference/status.html
new file mode 100644
index 00000000..6754bc2a
--- /dev/null
+++ b/rubbos/app/tomcat-connectors-1.2.32-src/docs/reference/status.html
@@ -0,0 +1,547 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>The Apache Tomcat Connector - Reference Guide - Status Worker Reference</title><meta name="author" value="Rainer Jung"><meta name="email" value="rjung@apache.org"><link href="../style.css" type="text/css" rel="stylesheet"></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="4"><!--PAGE HEADER--><tr><td colspan="2"><!--TOMCAT LOGO--><a href="http://tomcat.apache.org/"><img src="../images/tomcat.gif" align="left" alt="Apache Tomcat" border="0"></a><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="http://www.apache.org/images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><tr><!--LEFT SIDE NAVIGATION--><td width="20%" valign="top" nowrap="true"><p><strong>Links</strong></p><ul><li><a href="../index.html">Docs Home</a></li></ul><p><strong>Reference Guide</strong></p><ul><li><a href="../reference/workers.html">workers.properties</a></li><li><a href="../reference/uriworkermap.html">uriworkermap.properties</a></li><li><a href="../reference/status.html">Status Worker</a></li><li><a href="../reference/apache.html">Apache HTTP Server</a></li><li><a href="../reference/iis.html">IIS</a></li></ul><p><strong>Generic HowTo</strong></p><ul><li><a href="../generic_howto/quick.html">For the impatient</a></li><li><a href="../generic_howto/workers.html">All about workers</a></li><li><a href="../generic_howto/timeouts.html">Timeouts</a></li><li><a href="../generic_howto/loadbalancers.html">Load Balancing</a></li><li><a href="../generic_howto/proxy.html">Reverse Proxy</a></li></ul><p><strong>Webserver HowTo</strong></p><ul><li><a href="../webserver_howto/apache.html">Apache HTTP Server</a></li><li><a href="../webserver_howto/iis.html">IIS</a></li><li><a href="../webserver_howto/nes.html">Netscape/SunOne/Sun</a></li></ul><p><strong>AJP Protocol Reference</strong></p><ul><li><a href="../ajp/ajpv13a.html">AJPv13</a></li><li><a href="../ajp/ajpv13ext.html">AJPv13 Extension Proposal</a></li></ul><p><strong>Miscellaneous Documentation</strong></p><ul><li><a href="../miscellaneous/faq.html">Frequently asked questions</a></li><li><a href="../miscellaneous/changelog.html">Changelog</a></li><li><a href="http://issues.apache.org/bugzilla/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Tomcat+Connectors&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=">Current Tomcat Connectors bugs</a></li><li><a href="../miscellaneous/doccontrib.html">Contribute documentation</a></li><li><a href="../miscellaneous/jkstatustasks.html">JK Status Ant Tasks</a></li><li><a href="../miscellaneous/reporttools.html">Reporting Tools</a></li><li><a href="http://tomcat.apache.org/connectors-doc-archive/jk2/index.html">Old JK/JK2 documentation</a></li></ul><p><strong>News</strong></p><ul><li><a href="../news/20110701.html">2011</a></li><li><a href="../news/20100101.html">2010</a></li><li><a href="../news/20090301.html">2009</a></li><li><a href="../news/20081001.html">2008</a></li><li><a href="../news/20070301.html">2007</a></li><li><a href="../news/20060101.html">2006</a></li><li><a href="../news/20050101.html">2005</a></li><li><a href="../news/20041100.html">2004</a></li></ul></td><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left"><table border="0" width="100%" cellspacing="4"><tr><td align="left" valign="top"><h1>The Apache Tomcat Connector - Reference Guide</h1><h2>Status Worker Reference</h2></td><td align="right" valign="top" nowrap="true"><small><a href="printer/status.html"><img src="../images/printer.gif" border="0" alt="Printer Friendly Version"><br>print-friendly<br>version
+ </a></small></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+Tomcat Connectors has a special type of worker, the so-called status worker.
+The status worker does not forward requests to Tomcat instances. Instead it allows
+to retrieve status and configuration information at runtime,
+and furthermore to change many configuration items dynamically. This can be done
+via a simple embedded web interface.
+</p>
+<p>
+The status worker is especially powerful, when used together with load balancing workers.
+</p>
+<p>
+This document does not explain the HTML user interface of the status worker.
+Until now it is very simple, so just go ahead and use it. This doc instead
+tries to explain the less obvious features of the status worker. We also will give a
+complete coverage of the various request parameters and their meaning, so that you can
+include the status worker in your automation scripts.
+</p>
+<p>
+The documentation of the status worker starts with <b>jk 1.2.20</b>
+</p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Usage Patterns"><strong>Usage Patterns</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Actions"><strong>Actions</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+The status worker knows about six actions.
+<ul>
+<li>
+<b>list</b>: lists the configurations and runtime information of all configured workers.
+The output will be grouped by global information first (version data), then load balancer
+information, after that AJP worker information and finally the legend. For load balancers,
+there will be a summary part, and after that details for each member worker. For all workers,
+we also include the URL mappings (forward definitions).
+</li>
+<li>
+<b>show</b>: the same as list, but only shows data for one chosen worker
+</li>
+<li>
+<b>edit</b>: produces a form to edit configuration data for a chosen worker. There is a
+special subtype of "edit", that makes it easy to change one attribute for all members of
+a load balancer, e.g. their activation state.
+</li>
+<li>
+<b>update</b>: commit changes made in an edit form. <b>Caution</b>: the changes will not be
+persisted to the configuration files. As soon as your restart your web server, all changes
+made through the status worker will be lost! On the other hand, the changes done by the status
+worker will be applied during runtime without a restart of the web server.
+</li>
+<li>
+<b>reset</b>: reset all runtime statistics for a worker.
+</li>
+<li>
+<b>recover</b>: Mark a member of a load balancer, that is in error state, for immediate recovery.
+</li>
+<li>
+<b>version</b>: only show version information of the web server and the JK software
+</li>
+<li>
+<b>dump</b>: list the original workers configuration. <b>Caution</b>: the dump will only contain
+the configuration that was used during startup. Any changes applied later by the dynamic management
+interface of the status worker itself will not be contained in this dump.
+The dump action has been added in version 1.2.27.
+</li>
+</ul>
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Output Format"><strong>Output Format</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+For most actions you can choose between 4 output formats.
+<ul>
+<li>
+<b>HTML</b>: Used interactively with a browser
+</li>
+<li>
+<b>XML</b>: Mostly useful for automation, when your scripting environment is XML friendly.
+This format has rich structure information, but does not work line based, so you would really
+like to use it together with XML tools.
+</li>
+<li>
+<b>Properties</b>: This format is a line based format, that conforms to the rules of Java
+property files. Most structure information is contained in the hierarchical key. For information,
+that is of configuration nature, the format should produce lines very similar to the ones you can
+use in workers.properties. It will not produce a complete configuration file!
+</li>
+<li>
+<b>Text</b>: A simple textual output format.
+</li>
+</ul>
+The "edit" action does only make sense for the HTML output type.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="User Interface Features"><strong>User Interface Features</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+In the HTML view, there is an <b>automatic refresh</b> feature, implemented via the meta refresh
+option of HTML. Once you start the automatic refresh, the UI will will respect it for all actions
+except edit, update and maintain. Even if you navigate through one of those, the automatic refresh
+will start again as soon as you come back to one of the other actions.
+</p>
+<p>
+Many parts of the HTML page can be minimised, if they are not interesting for you. There are a couple
+of "Hide" links, which will collapse parts of the information. The feature exists for the following
+blocks of information:
+<ul>
+<li>
+<b>Legend</b>: Do not show the legend for the information presented in "list" and "show" actions
+</li>
+<li>
+<b>URI mappings</b>: Do not show the URI mapping for the workers
+</li>
+<li>
+<b>Load Balancing Workers</b>: Do not show workers of type "lb"
+</li>
+<li>
+<b>AJP Workers</b>: Do not show workers of type ajp
+</li>
+<li>
+<b>Balancer Members</b>: Do not show detailed information concerning each member of load balancers
+</li>
+<li>
+<b>Load Balancer Configuration</b>: Do not show configuration data for load balancers
+</li>
+<li>
+<b>Load Balancer Summary</b>: Do not show status summary for load balancers
+</li>
+<li>
+<b>AJP Configuration</b>: Do not show configuration data for ajp workers load balancer members
+</li>
+</ul>
+The last three minimisation features have been added in version 1.2.27.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Special Considerations concerning URL Maps and Virtual Hosts"><strong>Special Considerations concerning URL Maps and Virtual Hosts</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+<b>Note: </b>The following restriction has been removed starting with version 1.2.26.
+</p>
+<p>
+The Apache module mod_jk makes use of the internal Apache httpd infrastructure concerning
+virtual hosts. The downside of this is, that the status worker can only show URL maps, for
+the virtual host it is defined in. It is not able to reach the configuration objects
+for other virtual hosts. Of course you can define a status worker in any virtual host you
+are using. All information presented apart from the URL maps will be the same, independent
+of the virtual host the status worker has been called in.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Logging"><strong>Logging</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+The status worker will log changes made to the configuration with log level "info" to the usual
+JK log file. Invalid requests will be logged with log level "warn". If you want to report some
+broken behaviour, log file content of level "debug" or even "trace" will be useful.
+</p>
+</blockquote></td></tr></table>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Configuration"><strong>Configuration</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Basic Configuration"><strong>Basic Configuration</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+The basic configuration of a status worker is very similar to that of a usual ajp worker.
+You need to specify a name for the worker, and the URLs you want to map to it. The first
+part of the configuration happens in the workers.properties file. We define a worker named
+mystatus of type status:
+<div class="example"><pre>
+worker.list=mystatus
+worker.mystatus.type=status
+</pre></div>
+Then we define a URL, which should be mapped to this worker, i.e. the URL we use
+to reach the functionality of the status worker. You can use any method mod_jk supports
+for the web server of your choice. Possibilities are maps inside uriworkermap.properties,
+an additional mount attribute in workers.properties, or in Apache JkMount. Here's an
+example for a uriworkermap.properties line:
+<div class="example"><pre>
+/private/admin/mystatus=mystatus
+</pre></div>
+The URI pattern is case sensitive.
+</p>
+<p>
+As you will learn in the following sections, the status worker is very powerful. You should
+use the usual authentication and authorisation methods of your web server to secure this URL.
+</p>
+<p>
+You can also define multiple instances of the status worker, by using different names and URL mappings.
+For instance you might want to configure them individually
+and then allow special groups of people to use them
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Output Customisation"><strong>Output Customisation</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+There are a couple of attributes for the workers.properties entries, which allow to customise
+various aspects of the output of the status worker.
+</p>
+<p>
+The attribute <b>css</b> can be set to the URL of a stylesheet:
+<div class="example"><pre>
+worker.mystatus.css=/private/admin/static/mystatus.css
+</pre></div>
+When writing HTML output, the status worker then includes the line
+<div class="example"><pre>
+&lt;link rel="stylesheet" type="text/css" href="/private/admin/static/mystatus.css" /&gt;
+</pre></div>
+There is no sample stylesheet included with the mod_jk release, and by default the attribute css
+is empty, so no stylesheet reference will be included in the pages. The HTML code
+of the status worker output pages does not include any class attributes. If you like to contribute a
+stylesheet or improvements to the HTML layout, please contact us on the tomcat developers list.
+</p>
+<p>
+The properties output format can be customised via the attribute <b>prefix</b>. The names of all
+properties the status worker does output, will begin with this prefix. The default is "worker".
+</p>
+<p>
+Several attributes influence the format when writing XML output.
+The attribute <b>ns</b> allows to set a namespace prefix, that will be used for every status worker+element.
+The default is "jk:". Setting it to "-" disables the namespace prefix.
+</p>
+<p>
+With the attribute xmlns you can map the prefix to a namespace URL. The default value
+is xmlns:jk="http://tomcat.apache.org". Setting it to "-" disables the output of the URL.
+</p>
+<p>
+Finally you can specify an XML document type via the attribute doctype. The specified string will
+be inserted at the beginning of the document, directly after the xml header. The default is empty.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Securing Access"><strong>Securing Access</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+We urge you to use the builtin access control features of your web server to control
+access to the status worker URLs you have chosen. Nevertheless two configuration
+attributes of status workers are helpful. The attribute "read_only" disables all features of
+the status worker, that can be used to change configurations or runtime status of the other workers.
+A read_only status worker will not allow access to the edit, update, reset or recover actions.
+The default value is "False", ie. read/write. To enable read_only you need to set it to "True".
+</p>
+<p>
+You could configure two status workers, one has read_only and will be made available to a larger
+admin group, the other one will be used fully featured, but only by fewer people:
+<div class="example"><pre>
+worker.list=jk-watch
+worker.jk-watch.type=status
+worker.jk-watch.read_only=True
+worker.jk-watch.mount=/user/status/jk
+worker.list=jk-manage
+worker.jk-manage.type=status
+worker.jk-manage.mount=/admin/status/jk
+</pre></div>
+Starting with version 1.2.21, a read/write status worker can also be switched temporarily
+into read-only mode by the user via a link in the HTML GUI. The user can always switch it
+back to read/write. Only a status worker configured as read-only via the "read_only" attribute
+is completely safe from applying any changes.
+</p>
+<p>
+The other attribute you can use is <b>user</b>. By default this list is empty, which means
+no limit on the users. You can set "user" to a comma separated list of user names. If your
+web server is configured such that it sends the user names with the request, the status worker
+will check, if the name attached with the request is contained in it's "user" list.
+</p>
+<p>
+The user list can be split over multiple occurrences of the "user" attribute.
+</p>
+<p>
+By default, the user names are matched case sensitively. Starting with version 1.2.21 you can set
+the attribute <b>user_case_insensitive</b> to "True". Then the comparison will be made case insensitive.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Service Availability Rating"><strong>Service Availability Rating</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+For load balancing workers the status worker shows some interesting overview information.
+It categorises the members of the load balancer into the classes "good", "bad" and degraded".
+This feature can be combined with external escalation procedures. Depending on your global
+system design and your operating practises your preferred categorisation might vary.
+</p>
+<p>
+The categorisation is based on the activation state of the workers (active, disabled or stopped),
+which is a pure configuration state, and the runtime state
+(OK or ERR with possible substates idle, busy, recovering, probing, and forced recovery)
+which only depends on the runtime situation.
+</p>
+<p>
+The runtime substates have the following meaning:
+<ul>
+<li>
+<b>OK (idle)</b>: This worker didn't receive any request since the last balancer
+maintenance. By default balancer maintenance runs every 60 seconds. The
+worker should be OK, but since we didn't have to use it for some time, we
+can't be sure. This state has been called N/A before version 1.2.24.
+</li>
+<li>
+<b>OK (busy)</b>: All connections for this worker are in use for requests.
+</li>
+<li>
+<b>ERROR (recovering)</b>: The worker was in error state for some time and is now
+marked for recovery. The next request suitable for this worker will use it.
+</li>
+<li>
+<b>ERROR (probing)</b>: After setting the worker to recovering, we received a request
+suitable for this worker. This request is now using the worker.
+</li>
+<li>
+<b>ERROR (forced recovery)</b>: The worker is in error, but we don't have an alternative
+worker, so we keep using it.
+</li>
+</ul>
+</p>
+<p>
+By default the status worker groups into "good" all members, that have activation "active" and
+runtime state not equal to "error" with empty substate.
+The "bad" group consists of the members, that have either activation
+"stopped", or are in runtime state "error" with empty substate.
+</p>
+<p>
+Workers that fit neither of the two groups, are considered to be "degraded".
+</p>
+<p>
+You can define other rules for the grouping into good, bad and degraded.
+The two attributes "good" and "bad" can be populated by a comma-separated list ob single characters or
+dot-separated pairs. Each character stands for the first character of one of the possible states "active",
+"disabled", "stopped", "ok", "idle", "busy", "recovering" and "error". The additional states "probing"
+and "forced recovery" are always rated equivalent to "recovering".
+Comma-separated entries will be combined
+with logical "or", if you combine a configuration and a runtime state with a dot. the are combined with logical
+"and". So the default value for "good" is "a.o,a.i,a.b,a.r", for "bad" it is "e,s".
+</p>
+<p>
+The status worker first tries to match against the "bad" definitions, if this doesn't succeed
+it tries to match against "good", and finally it chooses "degraded", if no "bad" or "good" match
+can be found.
+</p>
+</blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Request Parameters"><strong>Request Parameters</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+This section should help you building automation scripts based on the jk status
+management interface. This interface is stable in the sense, that we only expect
+to add further parameters in the future. Existing parameters from previous versions
+will keep their original semantics. We also expect the output formats XML, Properties
+and Text to be kept stable. So please use those, if you want to parse status worker
+output in your automation scripts.
+</p>
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Actions"><strong>Actions</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+The action is determined by the parameter <b>cmd</b>. It can have the values "list", "show",
+"edit", "update", "reset", "recover", "version" and "dump". If you omit the <b>cmd</b> parameter,
+the default "list" will be used.
+All actions except for "list", "refresh", "version" and "dump" need additional parameters.
+</p>
+<p>
+The action "dump" has been added in version 1.2.27.
+</p>
+</blockquote></td></tr></table>
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Output Format"><strong>Output Format</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+The format is determined by the parameter <b>mime</b>. It can have the values "html", "xml",
+"txt" and "prop". If you omit the <b>mime</b> parameter, the default "html"
+will be used. The action "edit" (the edit form) does only make sense for "mime=html".
+</p>
+</blockquote></td></tr></table>
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Worker Selection"><strong>Worker Selection</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+Actions that operate on a single worker need one or two additional parameters to select
+this worker. The parameter <b>w</b> contains the name of the worker from the worker list.
+If an action operates on a member (sub worker) of a load balancer, the parameter <b>w</b>
+contains the name of the load balancer worker, and the additional parameter <b>sw</b> contains the
+name of the sub worker.
+</p>
+</blockquote></td></tr></table>
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Automatic Refresh"><strong>Automatic Refresh</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+During automatic refresh, the parameter <b>re</b> contain the refresh interval in seconds.
+If you omit this parameter, automatic refresh will be off.
+</p>
+</blockquote></td></tr></table>
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Hide Options"><strong>Hide Options</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+The parameter <b>opt</b> contains a bit mask of activated options. The default is 0, so
+by default no options are activated. The following options exist:
+<ul>
+<li>
+<b>0x0001</b>: hide members of lb workers
+</li>
+<li>
+<b>0x0002</b>: hide URL maps
+</li>
+<li>
+<b>0x0004</b>: hide the legend
+</li>
+<li>
+<b>0x0008</b>: hide load balancer workers
+</li>
+<li>
+<b>0x0010</b>: hide ajp workers
+</li>
+<li>
+<b>0x0020</b>: only allow read_only actions for a read/write status worker.
+</li>
+<li>
+<b>0x0040</b>: hide load balancer configuration
+</li>
+<li>
+<b>0x0080</b>: hide load balancer status summary
+</li>
+<li>
+<b>0x0100</b>: hide configuration for ajp and load balancer member workers
+</li>
+</ul>
+Values 0x0040-0x0100 have been added in version 1.2.27.
+</p>
+</blockquote></td></tr></table>
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Data Parameters for the standard Update Action"><strong>Data Parameters for the standard Update Action</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+You can use the edit action with a final click to the update button, to change settings of workers.
+But you can also make direct calls to the update action. The following request parameters
+contain the configuration information, you want to change. First the list for load balancer workers:
+<ul>
+<li>
+<b>vlr</b>: retries (number)
+</li>
+<li>
+<b>vlt</b>: recover_time (seconds)
+</li>
+<li>
+<b>vlee</b>: error_escalation_time (seconds)
+</li>
+<li>
+<b>vlx</b>: max_reply_timeouts (number)
+</li>
+<li>
+<b>vls</b>: sticky_session (0/f/n/off=off, 1/t/y/on=on; case insensitive)
+</li>
+<li>
+<b>vlf</b>: sticky_session_force (0/f/n/off=off, 1/t/y/on=on; case insensitive)
+</li>
+<li>
+<b>vlm</b>: method (0/r="Requests", 1/t="Traffic", 2/b="Busyness", 3/s="Sessions"; case insensitive, only first character is used)
+</li>
+<li>
+<b>vll</b>: lock (0/o="Optimistic", 1/p="Pessimistic"; case insensitive, only first character is used)
+</li>
+</ul>
+And now the list of parameters you can use to change settings for load balancer members:
+<ul>
+<li>
+<b>vwa</b>: activation flag (0/a="active", 1/d="disabled", 2/s="stopped"; case insensitive, only first character is used)
+</li>
+<li>
+<b>vwf</b>: load balancing factor (integer weight)
+</li>
+<li>
+<b>vwn</b>: route for use with sticky sessions (string)
+</li>
+<li>
+<b>vwr</b>: redirect to define simple failover rules (string)
+</li>
+<li>
+<b>vwc</b>: domain to tell JK about your replication design (string)
+</li>
+<li>
+<b>vwd</b>: distance to express preferences (integer)
+</li>
+</ul>
+Finally the list of parameters you can use to change settings for ajp workers and ajp load balancer members:
+<ul>
+<li>
+<b>vahst</b>: host (string)
+</li>
+<li>
+<b>vaprt</b>: port (number)
+</li>
+<li>
+<b>vacpt</b>: connection_pool_timeout (number)
+</li>
+<li>
+<b>vact</b>: connect_timeout (number)
+</li>
+<li>
+<b>vapt</b>: prepost_timeout (number)
+</li>
+<li>
+<b>vart</b>: reply_timeout (number)
+</li>
+<li>
+<b>var</b>: retries (number)
+</li>
+<li>
+<b>varo</b>: recovery_options (number)
+</li>
+<li>
+<b>vamps</b>: max_packet_size (number)
+</li>
+</ul>
+Note that changing the host name or port will only take effect for new connections.
+Already established connections to the old address will still be used.
+Nevertheless this feature is interesting, because you can provision load balancer
+members with port "0", which will automatically be stopped during startup. Later
+when you know the final names and ports, you can set them and they will be
+automatically activated.
+</p>
+<p>
+The leading character "v" has been added to the parameters in version 1.2.27.
+Changing settings for ajp workers has also been introduced in version 1.2.27.
+</p>
+<p>
+For the details of all parameters, we refer to the <a href="workers.html">workers.properties Reference</a>.
+</p>
+</blockquote></td></tr></table>
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Aspect Editing for Load Balancer Members"><strong>Aspect Editing for Load Balancer Members</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+You can use the edit action to edit all settings for a load balancer or for a
+member of a load balancer respectively on one page. If you want to edit one
+configuration aspect for all members of a load balancer simultaneously, this
+will be triggered by the parameter <b>att</b>. The value of the parameter indicates,
+which aspect you want to edit. The list is the same as in the previous section,
+except for "vahst" and "vaprt":
+"vwa", "vwf", "vwn", "vwr", "vwc", "vwd", "vacpt", "vact", "vapt", "vart", "var",
+"varo" and "vamps". But here you
+need to put the name into the parameter <b>att</b>, instead of using it as a request
+parameter name.
+</p>
+<p>
+The values of the common aspect for all the load balancer members will be given
+in parameters named "val0", "val1", ....
+</p>
+</blockquote></td></tr></table>
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright &copy; 1999-2011, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html> \ No newline at end of file
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/docs/reference/uriworkermap.html b/rubbos/app/tomcat-connectors-1.2.32-src/docs/reference/uriworkermap.html
new file mode 100644
index 00000000..f70ee475
--- /dev/null
+++ b/rubbos/app/tomcat-connectors-1.2.32-src/docs/reference/uriworkermap.html
@@ -0,0 +1,378 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>The Apache Tomcat Connector - Reference Guide - uriworkermap.properties configuration</title><meta name="author" value="Rainer Jung"><meta name="email" value="rjung@apache.org"><meta name="author" value="Mladen Turk"><meta name="email" value="mturk@apache.org"><link href="../style.css" type="text/css" rel="stylesheet"></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="4"><!--PAGE HEADER--><tr><td colspan="2"><!--TOMCAT LOGO--><a href="http://tomcat.apache.org/"><img src="../images/tomcat.gif" align="left" alt="Apache Tomcat" border="0"></a><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="http://www.apache.org/images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><tr><!--LEFT SIDE NAVIGATION--><td width="20%" valign="top" nowrap="true"><p><strong>Links</strong></p><ul><li><a href="../index.html">Docs Home</a></li></ul><p><strong>Reference Guide</strong></p><ul><li><a href="../reference/workers.html">workers.properties</a></li><li><a href="../reference/uriworkermap.html">uriworkermap.properties</a></li><li><a href="../reference/status.html">Status Worker</a></li><li><a href="../reference/apache.html">Apache HTTP Server</a></li><li><a href="../reference/iis.html">IIS</a></li></ul><p><strong>Generic HowTo</strong></p><ul><li><a href="../generic_howto/quick.html">For the impatient</a></li><li><a href="../generic_howto/workers.html">All about workers</a></li><li><a href="../generic_howto/timeouts.html">Timeouts</a></li><li><a href="../generic_howto/loadbalancers.html">Load Balancing</a></li><li><a href="../generic_howto/proxy.html">Reverse Proxy</a></li></ul><p><strong>Webserver HowTo</strong></p><ul><li><a href="../webserver_howto/apache.html">Apache HTTP Server</a></li><li><a href="../webserver_howto/iis.html">IIS</a></li><li><a href="../webserver_howto/nes.html">Netscape/SunOne/Sun</a></li></ul><p><strong>AJP Protocol Reference</strong></p><ul><li><a href="../ajp/ajpv13a.html">AJPv13</a></li><li><a href="../ajp/ajpv13ext.html">AJPv13 Extension Proposal</a></li></ul><p><strong>Miscellaneous Documentation</strong></p><ul><li><a href="../miscellaneous/faq.html">Frequently asked questions</a></li><li><a href="../miscellaneous/changelog.html">Changelog</a></li><li><a href="http://issues.apache.org/bugzilla/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Tomcat+Connectors&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=">Current Tomcat Connectors bugs</a></li><li><a href="../miscellaneous/doccontrib.html">Contribute documentation</a></li><li><a href="../miscellaneous/jkstatustasks.html">JK Status Ant Tasks</a></li><li><a href="../miscellaneous/reporttools.html">Reporting Tools</a></li><li><a href="http://tomcat.apache.org/connectors-doc-archive/jk2/index.html">Old JK/JK2 documentation</a></li></ul><p><strong>News</strong></p><ul><li><a href="../news/20110701.html">2011</a></li><li><a href="../news/20100101.html">2010</a></li><li><a href="../news/20090301.html">2009</a></li><li><a href="../news/20081001.html">2008</a></li><li><a href="../news/20070301.html">2007</a></li><li><a href="../news/20060101.html">2006</a></li><li><a href="../news/20050101.html">2005</a></li><li><a href="../news/20041100.html">2004</a></li></ul></td><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left"><table border="0" width="100%" cellspacing="4"><tr><td align="left" valign="top"><h1>The Apache Tomcat Connector - Reference Guide</h1><h2>uriworkermap.properties configuration</h2></td><td align="right" valign="top" nowrap="true"><small><a href="printer/uriworkermap.html"><img src="../images/printer.gif" border="0" alt="Printer Friendly Version"><br>print-friendly<br>version
+ </a></small></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+The forwarding of requests from the web server to tomcat gets configured by defining mapping rules.
+Such a rule maps requests to workers. The request part of the map is described by a URI pattern,
+the worker by it's worker name.
+</p>
+<p>
+The so-called <b>uriworkermap</b> file is a mechanism of defining rules,
+which works for all web servers. There exist also other web server specific configuration
+options for defining rules, which will be mostly discussed on the reference pages for
+configuring tomcat connectors for the individual web servers.
+</p>
+<p>
+The name of the file is usually uriworkermap.properties,
+although this is configurable in the web server.
+Please consult the web server specific documentation pages on
+how to enable the uriworkermap file.
+</p>
+<p>
+The main features supported by the uriworkermap file are
+<ul>
+<li>
+Support for comments in the rule file.
+</li>
+<li>
+Exact and wildchar matches, shortcuts to map a directory and all including content.
+</li>
+<li>
+Exclusion rules, disabling of rules and rule priorities.
+</li>
+<li>
+Rule extensions, modifying worker behaviour per rule.
+</li>
+<li>
+Virtual host integration: uri mapping rules can be expressed per virtual host.
+The details are web server specific though.
+</li>
+<li>
+Dynamic reloading: The file gets checked periodically for changes.
+New versions are automatically reloaded without web server restarts.
+</li>
+<li>
+Integration with the status worker.
+</li>
+</ul>
+The following sections describe these aspects in more detail.
+</p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Syntax"><strong>Syntax</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Line format"><strong>Line format</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+The file has a line based format. There are no continuation characters,
+so each rule needs to be defined on a single line. Each rule is a pair consisting
+of a URI pattern and a worker name, combined by an equals sign '=':
+<div class="example"><pre>
+ /myapp=myworker
+</pre></div>
+The URI pattern is case sensitive.
+</p>
+</blockquote></td></tr></table>
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Comments, white space"><strong>Comments, white space</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+All text after and including the character '#' gets ignored and can be used for comments.
+Leading and trailing white space gets trimmed around the URI pattern and also around the worker name.
+The following definitions are all equivalent:
+<div class="example"><pre>
+ # This is a white space example
+ /myapp=myworker
+ /myapp=myworker
+ /myapp = myworker
+</pre></div>
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="URI patterns"><strong>URI patterns</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+Inside the URI pattern three special characters can be used, '*', '?' and '|'.
+The character '*' is a wildchar that matches any number of arbitrary characters
+in the URI, '?' matches exactly one character.
+Each URI pattern has to start with the character '/', or with '*' or with '?',
+optionally prefixed by any combination of the modifiers '!' and '-' (see next section).
+<div class="example"><pre>
+ # Mapping the URI /myapp1 and everything under /myapp1/:
+ /myapp1=myworker-a
+ /myapp1/*=myworker-a
+ # Mapping all URI which end with a common suffix:
+ *.jsp=myworker
+ *.do=myworker
+</pre></div>
+Since the first case of mapping a certain location and everything inside
+it is very common, the character '|' gives a handy shortcut:
+<div class="example"><pre>
+ # Mapping the URI /myapp1 and everything under /myapp1/:
+ /myapp1|/*=myworker-a
+</pre></div>
+The pattern 'X|Y' is exactly equivalent to the two maps 'X' and 'XY'.
+</p>
+</blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Exclusion, Disabling and Priorities"><strong>Exclusion, Disabling and Priorities</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Exclusions and rule disabling"><strong>Exclusions and rule disabling</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+Exclusion rules allows to define exclusions from URI rules, which would forward
+requests to tomcat. If the exclusion rule matches, the request will not be forwarded.
+This is usually used to serve static content by the web server.
+A rule is an exclusion rule, if it is suffixed with '!':
+<div class="example"><pre>
+ # Mapping the URI /myapp and everything under /myapp/:
+ /myapp|/*=myworker
+ # Exclude the subdirectory static:
+ !/myapp/static|/*=myworker
+ # Exclude some suffixes:
+ !*.html=myworker
+</pre></div>
+An exclusion rule overrides a normal mapping rule only, if the worker names in the
+normal rule and in the exclusion rule are the same. Starting with version 1.2.26 of JK
+you can apply an exclusion rule to any worker, by using the star character '*' as
+the worker name in the exclusion rule.
+More complex patterns in exclusion worker names are not allowed.
+<div class="example"><pre>
+ # Mapping the webapps /myapp1 and /myapp2:
+ /myapp1|/*=myworker1
+ /myapp2|/*=myworker2
+ # Exclude the all subdirectories static for all workers:
+ !/*/static|/*=*
+ # Exclude some suffixes for all workers:
+ !*.html=*
+</pre></div>
+</p>
+<p>
+Rule disabling comes into play, if your web server merges rules from various sources,
+and you want to disable any rule defined previously. Since the uriworkermap file gets
+reloaded dynamically, you can use this to temporarily disable request forwarding:
+A rule gets disabled, if it is suffixed with '-':
+<div class="example"><pre>
+ # We are not in maintenance.
+ # The maintenance rule got defined somewhere else.
+ -/*=maintenance
+</pre></div>
+Exclusion rules can get disabled as well, then the rule starts with '-!'.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Mapping priorities"><strong>Mapping priorities</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+The most restrictive URI pattern is applied first. More precisely the URI patterns are
+sorted by the number of '/' characters in the pattern (highest number first), and
+rules with equal numbers are sorted by their string length (longest first).
+</p>
+<p>
+If both distinctions still do not suffice, then the defining source of the rule is considered.
+Rules defined in uriworkermap.properties come first, before rules defined by JkMount (Apache)
+and inside workers.properties using the mount attribute.
+</p>
+<p>
+All disabled rules are ignored. Exclusion rules are applied after all normal rules
+have been applied.
+</p>
+<p>
+There is no defined behaviour, for the following configuration conflict:
+using literally the same URI pattern in the same defining source but with
+different worker targets.
+</p>
+</blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Rule extensions"><strong>Rule extensions</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+Rule extensions were added in version 1.2.27 and are not available in earlier versions.
+</p>
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Syntax"><strong>Syntax</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+Rule extensions are additional attributes, that can be attached to any rule.
+They are added at the end of the rule, each extension separated by a semicolon:
+<div class="example"><pre>
+ # This is an extension example,
+ # setting a reply_timeout of 1 minute
+ # only for this mapping.
+ /myapp=myworker;reply_timeout=60000
+ #
+ # This is an example using multiple extensions
+ /myapp=myloadbalancer;reply_timeout=60000;stopped=member1
+</pre></div>
+Attributes set via rule extensions always overwrite conflicting
+configurations in the worker definition file.
+</p>
+</blockquote></td></tr></table>
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Extension reply_timeout"><strong>Extension reply_timeout</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+The extension <b class="code">reply_timeout</b> sets a reply timeout for a single mapping rule.
+<div class="example"><pre>
+ # Setting a reply_timeout of 1 minute
+ # only for this mapping.
+ /myapp=myworker;reply_timeout=60000
+</pre></div>
+It overrides any <b class="code">reply_timeout</b> defined for the worker. The extension allows
+to set a reasonable default reply timeout to the worker, and a more relaxed
+reply timeout to URLs, which are known to start time intensive tasks.
+For a general description of reply timeouts see the
+<a href="../generic_howto/timeouts.html#Reply Timeout">timeouts</a> documentation.
+</p>
+</blockquote></td></tr></table>
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Extensions active/disabled/stopped"><strong>Extensions active/disabled/stopped</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+The extensions <b class="code">active</b>, <b class="code">disabled</b>, and <b class="code">stopped</b>
+can be used in a load balancer mapping rule to set selected members
+of the load balancer into a special activation state.
+<div class="example"><pre>
+ # Stop forwarding only for member1 of loadbalancer
+ /myapp=myloadbalancer;stopped=member1
+</pre></div>
+Multiple members must be separated by commas or white space:
+<div class="example"><pre>
+ # Stop forwarding for member01 and member02 of loadbalancer
+ # Disable forwarding for member21 and member22 of loadbalancer
+ /myapp=myloadbalancer;stopped=member01,member02;disabled=member21,member22
+</pre></div>
+For the precise meaning of the activation states see the description of
+<a href="../reference/workers.html#Advanced Worker Directives">activation</a>.
+</p>
+</blockquote></td></tr></table>
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Extension fail_on_status"><strong>Extension fail_on_status</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+The extension <b class="code">fail_on_status</b> can be used in any rule:
+<div class="example"><pre>
+ # Send 503 instead of 404 and 500,
+ # and if we get a 503 also set the worker to error
+ /myapp=myworker;fail_on_status=-404,-500,503
+</pre></div>
+Multiple status codes must be separated by commas.
+For the precise meaning of the attribute see the description of
+<a href="../reference/workers.html#Advanced Worker Directives">fail_on_status</a>.
+</p>
+</blockquote></td></tr></table>
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Extension use_server_errors"><strong>Extension use_server_errors</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+The extension <b class="code">use_server_errors</b> allows to let the web server
+send an error page, instead of the backend (e.g. Tomcat) error page.
+This is useful, if one wants to send customized error pages, but those are
+not part of all web applications. They can then be put onto the web server.
+</p>
+<p>
+The value of <b class="code">use_server_errors</b> is a positive number.
+Any request send to the backend, that returns with an http status
+code bigger or equal to <b class="code">use_server_errors</b>, will
+be answered to the client with the error page of the web server
+for this status code.
+<div class="example"><pre>
+ # Use web server error page for all errors
+ /myapp=myworker;use_server_errors=400
+ # Use web server error page only for technical errors
+ /myotherapp=myworker;use_server_errors=500
+</pre></div>
+</p>
+</blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Virtual host integration"><strong>Virtual host integration</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="IIS"><strong>IIS</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+When using IIS you can restrict individual rules to special virtual hosts
+by prefixing the URI pattern with the virtual host information.
+The rules is that the url must be prefixed with the host name.
+<div class="example"><pre>
+ # Use www.foo.org as virtual host
+ /www.foo.org/myapp/*=myworker
+ # Use www.bar.org as virtual host
+ /www.bar.org/myapp/*=myworker
+ # Normal mapping
+ /mysecondapp/*=myworker
+</pre></div>
+</p>
+<p>
+Note that /mysecondapp/* will be mapped to all virtual hosts present.
+In case one needs to prevent the mappings to some particular virtual host then
+the exclusion rule must be used
+<div class="example"><pre>
+ # Make sure the myapp is accessible by all virtual hosts
+ /myapp/*=myworker
+ # Disable mapping myapp for www.foo.org virtual host
+ !/www.foo.org/myapp/*=myworker
+</pre></div>
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Apache httpd"><strong>Apache httpd</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+For Apache you can define individual uriworkermap files per virtual host.
+The directive JkMountFile can be used in the main server and in each virtual host.
+If a virtual host does not use JkMountfile, but JkMountCopy is set to 'On',
+then it inherits the JkMountFile from the main server. If you want all vhost to inherit
+mounts from the main server, you can set JkMountCopy to 'All' in the main server.
+</p>
+</blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Dynamic reloading"><strong>Dynamic reloading</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+When a request is being processed, tomcat connectors check the file modification time
+of the uriworkermap file. To keep the performance penalty low, this happens only,
+if the last check happened at least n seconds ago.
+</p>
+<p>
+For Apache you can configure the interval "n" using the directive JkMountFileReload,
+for IIS you would use the attribute worker_mount_reload.
+The default value is 60 seconds. A value of "0" turns off the reloading.
+</p>
+<p>
+If the file changed, it gets reloaded completely. If there exist rules coming
+from other sources than the uriworkermap file (e.g. the workers.properties mount
+attribute or JkMount with Apache httpd), the new uriworkermap file gets dynamically
+merged with these ones exactly like when you do a web server restart.
+</p>
+<p>
+Until version 1.2.19 reloading behaved slightly differently: it continuously added
+the full contents of the uriworkermap file to the rule mapping. The merging rules
+were, that duplicated got eliminated and old rules could be disabled, by defining the
+rule as disabled in the new file. Rules never got deleted.
+</p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Status worker integration"><strong>Status worker integration</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+The configuration view of the status worker also shows the various mapping rules.
+After each worker's configuration, the rules are listed, that forward to this worker.
+The list contains four columns:
+<ul>
+<li>
+the name of the virtual server
+</li>
+<li>
+the URI pattern, prefixed with '-' for a disabled pattern and '!' for an exclusion pattern
+</li>
+<li>
+the type of the rule: Exact or Wildchar
+</li>
+<li>
+and the source of the rule definition: 'worker definition' for the workers.properties file (mount attribute),
+'JkMount' for Apache httpd JkMount and it's relatives and finally 'uriworkermap' for the uriworkermap file.
+</li>
+</ul>
+</p>
+<p>
+<b>Note: </b>The following restriction has been removed starting with version 1.2.26.
+<br>
+For Apache httpd, there is an important subtlety: the request going to the status worker
+gets executed in the context of some server (main or virtual). The status worker will only show the
+mapping rules, that are defined for this server (main or virtual).
+<br>
+Until version 1.2.25 the list contained three columns:
+<ul>
+<li>
+the type of the rule: Exact or Wildchar, eventually prefixed with Disabled or Unmount (for exclusion rules)
+</li>
+<li>
+the URI pattern
+</li>
+<li>
+and the source of the rule definition: 'worker definition' for the workers.properties file (mount attribute),
+'JkMount' for Apache httpd JkMount and it's relatives and finally 'uriworkermap' for the uriworkermap file.
+</li>
+</ul>
+</p>
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright &copy; 1999-2011, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html> \ No newline at end of file
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/docs/reference/workers.html b/rubbos/app/tomcat-connectors-1.2.32-src/docs/reference/workers.html
new file mode 100644
index 00000000..68b996a7
--- /dev/null
+++ b/rubbos/app/tomcat-connectors-1.2.32-src/docs/reference/workers.html
@@ -0,0 +1,1001 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>The Apache Tomcat Connector - Reference Guide - workers.properties configuration</title><meta name="author" value="Mladen Turk"><meta name="email" value="mturk@apache.org"><link href="../style.css" type="text/css" rel="stylesheet"></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="4"><!--PAGE HEADER--><tr><td colspan="2"><!--TOMCAT LOGO--><a href="http://tomcat.apache.org/"><img src="../images/tomcat.gif" align="left" alt="Apache Tomcat" border="0"></a><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="http://www.apache.org/images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><tr><!--LEFT SIDE NAVIGATION--><td width="20%" valign="top" nowrap="true"><p><strong>Links</strong></p><ul><li><a href="../index.html">Docs Home</a></li></ul><p><strong>Reference Guide</strong></p><ul><li><a href="../reference/workers.html">workers.properties</a></li><li><a href="../reference/uriworkermap.html">uriworkermap.properties</a></li><li><a href="../reference/status.html">Status Worker</a></li><li><a href="../reference/apache.html">Apache HTTP Server</a></li><li><a href="../reference/iis.html">IIS</a></li></ul><p><strong>Generic HowTo</strong></p><ul><li><a href="../generic_howto/quick.html">For the impatient</a></li><li><a href="../generic_howto/workers.html">All about workers</a></li><li><a href="../generic_howto/timeouts.html">Timeouts</a></li><li><a href="../generic_howto/loadbalancers.html">Load Balancing</a></li><li><a href="../generic_howto/proxy.html">Reverse Proxy</a></li></ul><p><strong>Webserver HowTo</strong></p><ul><li><a href="../webserver_howto/apache.html">Apache HTTP Server</a></li><li><a href="../webserver_howto/iis.html">IIS</a></li><li><a href="../webserver_howto/nes.html">Netscape/SunOne/Sun</a></li></ul><p><strong>AJP Protocol Reference</strong></p><ul><li><a href="../ajp/ajpv13a.html">AJPv13</a></li><li><a href="../ajp/ajpv13ext.html">AJPv13 Extension Proposal</a></li></ul><p><strong>Miscellaneous Documentation</strong></p><ul><li><a href="../miscellaneous/faq.html">Frequently asked questions</a></li><li><a href="../miscellaneous/changelog.html">Changelog</a></li><li><a href="http://issues.apache.org/bugzilla/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Tomcat+Connectors&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=">Current Tomcat Connectors bugs</a></li><li><a href="../miscellaneous/doccontrib.html">Contribute documentation</a></li><li><a href="../miscellaneous/jkstatustasks.html">JK Status Ant Tasks</a></li><li><a href="../miscellaneous/reporttools.html">Reporting Tools</a></li><li><a href="http://tomcat.apache.org/connectors-doc-archive/jk2/index.html">Old JK/JK2 documentation</a></li></ul><p><strong>News</strong></p><ul><li><a href="../news/20110701.html">2011</a></li><li><a href="../news/20100101.html">2010</a></li><li><a href="../news/20090301.html">2009</a></li><li><a href="../news/20081001.html">2008</a></li><li><a href="../news/20070301.html">2007</a></li><li><a href="../news/20060101.html">2006</a></li><li><a href="../news/20050101.html">2005</a></li><li><a href="../news/20041100.html">2004</a></li></ul></td><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left"><table border="0" width="100%" cellspacing="4"><tr><td align="left" valign="top"><h1>The Apache Tomcat Connector - Reference Guide</h1><h2>workers.properties configuration</h2></td><td align="right" valign="top" nowrap="true"><small><a href="printer/workers.html"><img src="../images/printer.gif" border="0" alt="Printer Friendly Version"><br>print-friendly<br>version
+ </a></small></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+A <b>Tomcat worker</b> is a Tomcat instance that is waiting to execute servlets or any other content
+on behalf of some web server. For example, we can have a web server such as
+Apache forwarding servlet requests to a Tomcat process (the worker) running behind it.
+</p>
+<p>
+The scenario described above is a very simple one;
+in fact one can configure multiple Tomcat workers to serve servlets on
+behalf of a certain web server.
+The reasons for such configuration can be:
+</p>
+<ul>
+<li>
+We want different contexts to be served by different Tomcat workers to provide a
+development environment where all the developers share the same web server but
+own a Tomcat worker of their own.
+</li>
+<li>
+We want different virtual hosts served by different Tomcat processes to provide a
+clear separation between sites belonging to different companies.
+</li>
+<li>
+We want to provide load balancing, meaning run multiple Tomcat workers each on a
+machine of its own and distribute the requests between them.
+</li>
+</ul>
+
+<p>
+There are probably more reasons for having multiple workers but I guess that this list is enough...
+</p>
+<p>
+Tomcat workers are defined in a properties file dubbed <b>workers.properties</b> and this tutorial
+explains how to work with it.
+</p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Configuration File Basics"><strong>Configuration File Basics</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>Defining workers to the Tomcat web server plugin can be done using a properties file
+(a sample file named workers.properties is available in the conf/ directory).
+</p>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Format, Comments, Whitespace"><strong>Format, Comments, Whitespace</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+The lines in the file define properties. The general format is
+</p>
+<p><strong>&lt;name&gt;=&lt;value&gt;</strong></p>
+<p>
+</p>
+Dots are used as part of the name to represent a configuration hierarchy.
+<p>
+Invalid directives will be logged during web server startup and prevent the web server
+from working properly. Some directives have been deprecated. Although they will
+still work, you should replace them by their
+<a href="#Deprecated Worker Directives">successors</a>.
+</p>
+<p>
+Some directives are allowed multiple times. This will be explicitly
+noted in the tables below.
+</p>
+<p>
+Whitespace at the beginning and the end of a property name or value gets ignored.
+Comments can be placed in any line and start with a hash sign '#'.
+Any line contents behind the hash sign get ignored.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Global Properties"><strong>Global Properties</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+These directives have global scope.
+</p>
+<table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Directive</font></th><th width="10%" bgcolor="#023264"><font color="#ffffff">Default</font></th><th width="75%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><strong><code>worker.list</code></strong></td><td align="center" valign="center"><code>ajp13</code></td><td align="left" valign="center">
+A comma separated list of workers names that the JK will use. When starting up,
+the web server plugin will instantiate the workers whose name appears in the
+worker.list property, these are also the workers to whom you can map requests.
+<p>
+This directive can be used multiple times.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>worker.maintain</code></td><td align="center" valign="center"><code>60</code></td><td align="left" valign="center">
+Worker connection pool maintain interval in seconds. If set to the positive
+value JK will scan all connections for all workers specified in worker.list
+directive and check if connections needs to be recycled.
+<p>
+Furthermore any load balancer does a global maintenance every worker.maintain
+seconds. During global maintenance load counters are decayed and workers
+in error are checked for recover_time.
+</p>
+<p>
+This feature has been added in <b>jk 1.2.13</b>.
+</p>
+</td></tr></table>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Worker Properties"><strong>Worker Properties</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+Each worker configuration directive consists of three words separated by a dot:
+</p>
+<p><strong>worker.&lt;worker name&gt;.&lt;directive&gt;=&lt;value&gt;</strong></p>
+<p>
+The first word is always <b>worker</b>.
+The second word is the worker name you can choose. In the case of load-balancing,
+the worker name has an additional meaning. Please consult the
+<a href="../generic_howto/loadbalancers.html">Load Balancer HowTo</a>.
+</p>
+<p><font color="#ff0000">
+The name of the worker can contain only the alphanumeric characters
+<b>[a-z][A-Z][0-9][_\-]</b> and is case sensitive.
+</font></p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Variables, Environment Variables"><strong>Variables, Environment Variables</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+You can define and use variables in the workers.properties file.
+To define a variable you use the syntax:
+</p>
+<p><strong>&lt;variable_name&gt;=&lt;value&gt;</strong></p>
+<p>
+Dots are allowed in the variable name, but you have to be careful
+not to use variable names, that clash with standard directives.
+Therefore variable names should never start with "worker.".
+</p>
+<p>
+To use a variable, you can insert "$(variable_name)" at any place
+on the value side of a property line. If a variable has not been
+defined before its use, we will search the process environment for
+a variable with the same name and use their value.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Property Inheritance"><strong>Property Inheritance</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>Often one wants to use the same property values for various workers.
+To reduce duplication of configuration lines and to ease the maintenance of
+the file, you can inherit properties from one worker to another, or even
+from a template to real workers.
+</p>
+<p>
+The directive "reference" allows to copy configurations between workers
+in a hierarchical way. If worker castor sets <b>worker.castor.reference=worker.pollux</b>
+then it inherits all properties of <b>pollux</b>, except for the ones that
+are explicitly set for <b>castor</b>.
+</p>
+<p>
+Please note, that the value of the directive is not only the name of the referred worker,
+but the complete prefix including "worker.".
+</p>
+<p>
+To use a template worker simply define it like a real worker, but do not add it
+to the "worker.list" or as a member to any load balancer. Such a template worker
+does not have to contain mandatory directives. This approach is especially useful,
+if one has a lot of balanced workers in a load balancer
+and these workers share most of their properties. You can set all of these properties
+in a template worker, e.g. using the prefix "worker.template1", and then simply
+reference those common properties in all balanced workers.
+</p>
+<p>
+References can be used to inherit properties over multiple hops in a hierarchical way.
+</p>
+<p>
+This feature has been added in <b>jk 1.2.19</b>.
+</p>
+</blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="List of All Worker Directives"><strong>List of All Worker Directives</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Mandatory Directives"><strong>Mandatory Directives</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>Mandatory directives are the one that each worker <b>must</b> contain. Without them the worker will
+be unavailable or will misbehave. Those directives will be marked with a <strong>strong</strong> font in the following tables.
+</p>
+<table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Directive</font></th><th width="10%" bgcolor="#023264"><font color="#ffffff">Default</font></th><th width="75%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><strong><code>type</code></strong></td><td align="center" valign="center"><code>ajp13</code></td><td align="left" valign="center">
+Type of the worker (can be one of ajp13, ajp14, jni, lb or status). The type of the worker
+defines the directives that can be applied to the worker.
+<p>AJP13 worker is the preferred worker type that JK uses for communication
+between web server and Tomcat. This type of worker uses sockets as communication
+channel. For detailed description of the AJP13 protocol stack browse to
+<a href="../ajp/ajpv13a.html">AJPv13 protocol specification</a>
+</p>
+<p><font color="#ff0000">JNI workers have been deprecated. They will likely not work. Do not use them.</font></p>
+</td></tr></table>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Connection Directives"><strong>Connection Directives</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>Connection directives defines the parameters needed to connect and maintain
+the connections pool of persistent connections between JK and remote Tomcat.
+</p>
+<table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Directive</font></th><th width="10%" bgcolor="#023264"><font color="#ffffff">Default</font></th><th width="75%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code>host</code></td><td align="center" valign="center"><code>localhost</code></td><td align="left" valign="center">
+Host name or IP address of the backend Tomcat instance. The remote Tomcat must
+support the ajp13 protocol stack. The host name can have a <b>port</b> number
+embedded separated by the colon (':') character.
+</td></tr><tr><td align="left" valign="center"><code>port</code></td><td align="center" valign="center"><code>8009</code></td><td align="left" valign="center">
+Port number of the remote Tomcat instance listening for defined protocol requests.
+The default value depends on the worker type. For AJP13 workers the default port is
+<b>8009</b>, while for AJP14 type of worker that value is <b>8011</b>.
+</td></tr><tr><td align="left" valign="center"><code>socket_timeout</code></td><td align="center" valign="center"><code>0</code></td><td align="left" valign="center">
+Socket timeout in seconds used for the communication channel between JK and remote host.
+If the remote host does not respond inside the timeout specified, JK will generate an error,
+and retry again. If set to zero (default) JK will wait for an infinite amount of time
+on all socket operations.
+</td></tr><tr><td align="left" valign="center"><code>socket_connect_timeout</code></td><td align="center" valign="center"><code>socket_timeout*1000</code></td><td align="left" valign="center">
+Socket connect timeout in milliseconds used for the communication channel between JK and remote host.
+If the remote host does not respond inside the timeout specified, JK will generate an error,
+and retry again.
+<p>
+Note that <b class="code">socket_timeout</b> is in seconds, and
+<b class="code">socket_connect_timeout</b> in milliseconds,
+so in absolute terms the default <b class="code">socket_connect_timeout</b> is
+equal to <b class="code">"socket_timeout</b>.
+</p>
+<p>
+This feature has been added in <b>jk 1.2.27</b>.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>socket_keepalive</code></td><td align="center" valign="center"><code>False</code></td><td align="left" valign="center">
+This directive should be used when you have a firewall between your webserver
+and the Tomcat engine, who tend to drop inactive connections. This flag will tell the Operating System
+to send <b class="code">KEEP_ALIVE</b> messages on inactive connections (interval depend on global OS settings,
+generally 120 minutes), and thus prevent the firewall to cut inactive connections.
+To enable keepalive set this property value to <b>True</b>.
+<p>
+The problem with Firewall cutting inactive connections is that sometimes, neither webserver or Tomcat
+have information about the cut and couldn't handle it.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>ping_mode</code></td><td align="center" valign="center"><code>-</code></td><td align="left" valign="center">
+This flag determines, under which conditions established
+connections are probed to ensure they are still working.
+The probe is done with an empty AJP13 packet (CPing) and
+expects to receive an appropriate answer (CPong) within
+some timeout.
+<p>
+The value of the flag can be any combination of the following
+flags (multiple values are combined without any separators):
+</p>
+<p><b>C</b> (connect): If set, the connection will
+be probed once after connecting to the backend. The timeout
+can be set by <b class="code">connect_timeout</b>. If it is not set,
+the value of <b class="code">ping_timeout</b> will be used instead.
+</p>
+<p><b>P</b> (prepost): If set, the connection will
+be probed before sending each request to the backend. The timeout
+can be set by <b class="code">prepost_timeout</b>. If it is not set,
+the value of <b class="code">ping_timeout</b> will be used instead.
+</p>
+<p><b>I</b> (interval): If set, the connection will
+be probed during the regular internal maintenance cycle,
+but only if it is idle longer than
+<b class="code">connection_ping_interval</b>. The timeout
+can be set by <b class="code">ping_timeout</b>.
+</p>
+<p><b>A</b> If set, all of the above probes will be used.
+</p>
+<p>
+This feature has been added in <b>jk 1.2.27</b>. Connect and
+prepost probing were already available via <b class="code">connect_timeout</b>
+and <b class="code">prepost_timeout</b> since version <b>jk 1.2.6</b>.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>ping_timeout</code></td><td align="center" valign="center"><code>10000</code></td><td align="left" valign="center">
+Timeout in milliseconds used when waiting for the CPong answer of a
+CPing connection probe. The activation of the probes is done via
+<b class="code">ping_mode</b>. The timeouts for <b class="code">ping_mode</b>
+connect and prepost can be overwritten individually via
+<b class="code">connect_timeout</b> and <b class="code">prepost_timeout</b>.
+<p>
+For compatibility reasons, CPing/CPong is also used, whenever
+<b class="code">connect_timeout</b> or <b class="code">prepost_timeout</b> are set,
+even if <b class="code">ping_mode</b> is empty.
+</p>
+<p>
+This feature has been added in <b>jk 1.2.27</b>.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>connection_ping_interval</code></td><td align="center" valign="center"><code>0 / (ping_timeout/1000)*10</code></td><td align="left" valign="center">
+When using interval connection probing, connections idle for longer than this
+interval in seconds are probed by CPing packets whether they still work.
+<p>Interval probing can be activated either by <b class="code">ping_mode</b>,
+or by setting <b class="code">connection_ping_interval</b> to some value bigger
+than zero. If you activate interval probing via <b class="code">ping_mode</b>,
+then the default value of <b class="code">connection_ping_interval</b> is
+<b class="code">(ping_timeout/1000) * 10</b>. Note that <b class="code">ping_timeout</b>
+is in milliseconds, and <b class="code">connection_ping_interval</b> in seconds,
+so in absolute terms the default <b class="code">connection_ping_interval</b> is
+10 times <b class="code">ping_timeout</b>.
+</p>
+<p>
+This feature has been added in <b>jk 1.2.27</b>.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>connection_pool_size</code></td><td align="center" valign="center"><code>see text</code></td><td align="left" valign="center">
+This defines the number of connections made to the AJP backend that
+are maintained as a connection pool.
+It will limit the number of those connection that each web server child
+process can made.
+<p>
+Connection pool size property is only used for multi threaded
+web servers such as Apache, IIS and Netscape/Sun. The connection_pool_size property
+needs to reflect the number of requests one web server process should
+be able to send to a backend in parallel. Usually this is the same as
+the number of threads per web server process. JK will discover
+this number for the Apache web server automatically and set the pool size to
+this value. For IIS the default value is 250 (before version 1.2.20: 10),
+for Netscape/Sun the default value is 1.
+</p>
+<p>We strongly recommend adjusting this value for IIS and the Netscape/Sun
+to the number of requests one web server process should
+be able to send to a backend in parallel. You should measure how many connections
+you need during peak activity without performance problems, and then add some
+percentage depending on your growth rate. Finally you should check,
+whether your web server processes are able to use at least as many threads,
+as you configured as the pool size.
+</p>
+<p><font color="#ff0000">Do not use connection_pool_size with values higher then 1 on <b>Apache 2.x prefork</b> or <b>Apache 1.3.x</b>!</font></p>
+</td></tr><tr><td align="left" valign="center"><code>connection_pool_minsize</code></td><td align="center" valign="center"><code>(pool+1)/2</code></td><td align="left" valign="center">
+Minimum size of the connection pool that will be maintained.
+<p>
+Its default value is (connection_pool_size+1)/2.
+</p>
+<p><font color="#ff0000">Do not use connection_pool_size with values higher then 1 on <b>Apache 2.x prefork</b> or <b>Apache 1.3.x</b>!</font></p>
+<p>
+This feature has been added in <b>jk 1.2.16</b>.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>connection_pool_timeout</code></td><td align="center" valign="center"><code>0</code></td><td align="left" valign="center">
+Cache timeout property should be used with <b>connection_pool_minsize</b> to specify how many seconds JK should keep
+an inactive socket in cache before closing it. This property should be used to reduce the number of threads
+on the Tomcat web server. The default value zero disables the closing (infinite timeout).
+<p>
+Each child could open an ajp13 connection if it has to forward a request to Tomcat, creating
+a new ajp13 thread on Tomcat side.
+</p>
+<p>
+The problem is that after an ajp13 connection is created, the child won't drop it
+until killed. And since the webserver will keep its childs/threads running
+to handle high-load, even it the child/thread handle only static contents, you could
+finish having many unused ajp13 threads on the Tomcat side.
+</p>
+<p>
+You should keep this time interval in sync with the <b>connectionTimeout</b> attribute
+of your AJP connector in Tomcat's server.xml. Note however, that the value
+for mod_jk is given in seconds, the one in server.xml has to use milliseconds.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>connection_acquire_timeout</code></td><td align="center" valign="center"><code>retries*retry_interval</code></td><td align="left" valign="center">
+Timeout the worker will wait for a free socket in cache before giving up.
+<p>
+Its default value is <b>retries * retry_interval</b>.
+</p>
+<p>
+This feature has been added in <b>jk 1.2.27</b>.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>lbfactor</code></td><td align="center" valign="center"><code>1</code></td><td align="left" valign="center">
+Only used for a member worker of a load balancer.
+<p>
+The integer number lbfactor (load-balancing factor) is
+<i>how much we expect this worker to work</i>, or
+<i>the worker's work quota</i>. Load balancing factor is compared with other workers
+that makes the load balancer. For example if one worker has lb_factor 5 times higher then
+other worker, then it will receive five times more requests.
+</p>
+</td></tr></table>
+
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Load Balancing Directives"><strong>Load Balancing Directives</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>Load balancer is a virtual worker that does not really communicate with Tomcat workers.
+Instead it is responsible for the management of several "real" workers.
+The worker is supposed to be a load balancer if it's worker type is <b>lb</b>.
+See worker's <b>type</b> directive.
+</p>
+<p>Loadbalancer directives define the parameters needed to create the workers that are
+connecting to a remote cluster of backend Tomcat servers. Each cluster node has to
+have a worker defined.
+</p>
+<p>
+Load balancer management includes:
+</p>
+
+<ul>
+<li>
+Instantiating the workers in the web server.
+</li>
+<li>
+Using the worker's load-balancing factor, perform weighed-round-robin load balancing where
+high lbfactor means stronger machine (that is going to handle more requests)
+</li>
+<li>
+Keeping requests belonging to the same session executing on the same Tomcat worker.
+</li>
+<li>
+Identifying failed Tomcat workers, suspending requests to them and instead fall-backing on
+other workers managed by the lb worker.
+</li>
+</ul>
+
+<p>
+The overall result is that workers managed by the same lb worker are load-balanced
+(based on their lbfactor and current user session) and also fall-backed so a single
+Tomcat process death will not "kill" the entire site.
+</p>
+<p><font color="#ff0000">
+If you want to use session stickiness, you must set different jvmRoute attributes
+in the Engine element in Tomcat's server.xml. Furthermore the names of the workers
+which are managed by the balancer have to be equal to the jvmRoute of the Tomcat
+instance they connect with.
+</font></p>
+<p>
+The restriction on the worker names can be lifted, if you use the route attribute for the workers.
+</p>
+<p>
+The following table specifies properties that the lb worker can accept:
+</p>
+
+<table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Directive</font></th><th width="10%" bgcolor="#023264"><font color="#ffffff">Default</font></th><th width="75%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><strong><code>balance_workers</code></strong></td><td align="center" valign="center"><code>-</code></td><td align="left" valign="center">
+A comma separated list of workers that the load balancer
+need to manage.
+<p>
+This directive can be used multiple times for the same load balancer.
+</p>
+<p>
+This directive replaces old <b>balanced_workers</b> directive and
+can be used only with mod_jk versions 1.2.7 and up.
+</p>
+<p><font color="#ff0000">As long as these workers should only be used via the load balancer worker,
+there is no need to also put them into the <b>worker.list</b> property.</font></p>
+</td></tr><tr><td align="left" valign="center"><code>sticky_session</code></td><td align="center" valign="center"><code>True</code></td><td align="left" valign="center">
+Specifies whether requests with SESSION ID's should be routed back to the same
+Tomcat worker. If sticky_session is set to <b>True</b> or <b>1</b> sessions are sticky, otherwise
+sticky_session is set to <b>False</b>. Set sticky_session to <b>False</b> when Tomcat
+is using a Session Manager which can persist session data across multiple
+instances of Tomcat.
+</td></tr><tr><td align="left" valign="center"><code>sticky_session_force</code></td><td align="center" valign="center"><code>False</code></td><td align="left" valign="center">
+Specifies whether requests with SESSION ID's for workers that are in error state
+should be rejected. If sticky_session_force is set to <b>True</b> or <b>1</b>
+and the worker that matches that SESSION ID is in error state, client will
+receive 500 (Server Error). If set to <b>False</b> or <b>0</b> failover on
+another worker will be issued with loosing client session. This directive is
+used only when you set <b>sticky_session=True</b>.
+<p>
+This feature has been added in <b>jk 1.2.9</b>.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>method</code></td><td align="center" valign="center"><code>Request</code></td><td align="left" valign="center">
+Specifies what method load balancer is using for electing the best worker.
+Please note, that session stickiness and perfect load balancing are
+conflicting targets, especially when the number
+of sessions is small, or the usage of sessions is extremely varying
+For huge numbers of sessions this usually is not a problem.
+<p>
+Some methods note, that they aggregate in a sliding time window. They add up
+accesses, and on each run of the global maintain method, the load counters
+get divided by 2. Usually this happens once a minute, depending on the
+setting of worker.maintain. The value of the load counters can be inspected
+using the status worker.
+</p>
+<p>
+If method is set to <b>R[equest]</b> the balancer will use number of requests
+to find the best worker. Accesses will be distributed according to the
+lbfactor in a sliding time window. This is the default value and should be
+working well for most applications.
+</p>
+<p>
+If method is set to <b>S[ession]</b> the balancer will use number of sessions
+to find the best worker. Accesses will be distributed according to the
+lbfactor in a sliding time window. Because the balancer does not keep any state,
+it actually does not know the number of sessions. Instead it counts each request
+without a session cookie or URL encoding as a new session. This method will neither
+know, when a session is being invalidated, nor will it correct its load numbers
+according to session timeouts or worker failover. This method should be used,
+if sessions are your limiting resource, e.g. when you only have limited memory
+and your sessions need a lot of memory.
+</p>
+<p>
+If set to <b>T[raffic]</b> the balancer will use
+the network traffic between JK and Tomcat to find the best worker.
+Accesses will be distributed according to the lbfactor in a sliding time window.
+This method should be used, if network to and from the backends is your
+limiting resource.
+</p>
+<p>
+If set to <b>B[usyness]</b> the balancer will
+pick the worker with the lowest current load, based on how many requests the
+worker is currently serving. This number is divided by the workers lbfactor,
+and the lowest value (least busy) worker is picked. This method is especially
+interesting, if your request take a long time to process, like for a download
+application.
+</p>
+<p>
+This feature has been added in <b>jk 1.2.9</b>.
+The Session method has been added in <b>jk 1.2.20</b>.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>lock</code></td><td align="center" valign="center"><code>Optimistic</code></td><td align="left" valign="center">
+Specifies what lock method the load balancer will use for synchronising
+shared memory runtime data.
+If lock is set to <b>O[ptimistic]</b> balancer will not use shared memory lock
+to find the best worker. If set to <b>P[essimistic]</b> balancer will use
+shared memory lock. The balancer will work more accurately in case of
+Pessimistic locking, but can slow down the average response time.
+<p>
+This feature has been added in <b>jk 1.2.13</b>.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>retries</code></td><td align="center" valign="center"><code>2</code></td><td align="left" valign="center">
+<p><font color="#ff0000">This directive also exists for normal workers.
+For those it has a <a href="#Advanced Worker Directives">different meaning</a>.</font></p>
+If the load balancer can not get a valid member worker or in case of failover,
+it will try again a number of times given by <b>retries</b>.
+Before each retry, it will make a pause define by <b>retry_interval</b> directive.
+<p>
+Until version <b>1.2.16</b> the default value was 3.
+</p>
+</td></tr></table>
+
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Status Worker Directives"><strong>Status Worker Directives</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+The status worker does not communicate with Tomcat.
+Instead it is responsible for the load balancer management.
+</p>
+<table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Directive</font></th><th width="10%" bgcolor="#023264"><font color="#ffffff">Default</font></th><th width="75%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code>css</code></td><td align="center" valign="center"><code>-</code></td><td align="left" valign="center">
+Specifies the url for cascading stylesheet to use.
+</td></tr><tr><td align="left" valign="center"><code>read_only</code></td><td align="center" valign="center"><code>False</code></td><td align="left" valign="center">
+A status worker with read_only=True will not allow any operations,
+that change the runtime state or configuration of the other workers.
+These are edit/update/reset/recover.
+<p>
+This feature has been added in <b>jk 1.2.20</b>.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>user</code></td><td align="center" valign="center"><code>-</code></td><td align="left" valign="center">
+It is a list of users
+which gets compared to the user name authenticated by the web server.
+If the name is not contained in this list, access is denied. Per
+default the list is empty and then access is allowed to anybody.
+<p>
+This directive can be used multiple times.
+</p>
+<p>
+This feature has been added in <b>jk 1.2.20</b>.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>user_case_insensitive</code></td><td align="center" valign="center"><code>False</code></td><td align="left" valign="center">
+By default, the user names are matched case sensitively. You can set
+user_case_insensitive=True to make the comparison case insensitive.
+This may be especially useful on the Windows platform.
+<p>
+This feature has been added in <b>jk 1.2.21</b>.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>good</code></td><td align="center" valign="center"><code>a.o,a.n,a.b,a.r</code></td><td align="left" valign="center">
+For every load balancer worker, the status worker shows a summary
+of the state of its members. There are three such states,
+"good", "bad" and "degraded".
+<p>
+These states are determined depending on the activation of the members
+(active, disabled, stopped) and their runtime state
+(ok, n/a, busy, recovering, probing, forced recovery, error).
+By default, members are assumed to be "good", if their activation
+is "active" and their runtime state is not "error".
+</p>
+<p>
+You can change this mapping, by assigning a list of values to the
+attribute "good". Each value gives a possible match for the members,
+and one match suffices. Each value is either a single character, or two
+characters combined with a dot ".". The single characters are the
+first characters in the words "active", "disabled", "stopped",
+"ok", "na", "busy", "recovering", "error". The additional states "probing"
+and "forced recovery" are always rated equivalent to "recovering".
+If a value consists only
+of a single character, then all members with this activation or runtime
+state will be assumed good. A combination of an activation and a runtime
+state concatenated with a dot "." does only apply to a member, that has
+exactly this activation and state.
+</p>
+<p>
+Members of a load balancer will first be matched against the state "bad",
+if they don't match, the state "good" will be tried, and if they
+still don't match, their state will be "degraded".
+</p>
+<p>
+This directive can be used multiple times.
+</p>
+<p>
+This feature has been added in <b>jk 1.2.20</b>.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>bad</code></td><td align="center" valign="center"><code>s,e</code></td><td align="left" valign="center">
+See: "good".
+<p>
+By default, members are assumed to be "bad", if their activation
+is "stopped" or their runtime state is "error".
+</p>
+<p>
+This directive can be used multiple times.
+</p>
+<p>
+This feature has been added in <b>jk 1.2.20</b>.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>prefix</code></td><td align="center" valign="center"><code>worker</code></td><td align="left" valign="center">
+The prefix, which will be used by the status worker
+when producing properties output (mime=prop).
+Each property key will be prefixed by this value.
+<p>
+This feature has been added in <b>jk 1.2.20</b>.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>ns</code></td><td align="center" valign="center"><code>jk:</code></td><td align="left" valign="center">
+This directive can be used to customise the XML output from the
+status worker. If set to <b>-</b> no namespace will be used.
+<p>
+This feature has been added in <b>jk 1.2.20</b>.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>xmlns</code></td><td align="center" valign="center"><code>-</code></td><td align="left" valign="center">
+This directive can be used to customise the XML output from the
+status worker. If set to <b>-</b> no xmlns will be used.
+<p>
+Default value is set to xmlns:jk="http://tomcat.apache.org"
+</p>
+<p>
+This feature has been added in <b>jk 1.2.20</b>.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>doctype</code></td><td align="center" valign="center"><code>-</code></td><td align="left" valign="center">
+This directive can be used to customise the XML output from the
+status worker. This value will be inserted to the output xml
+after the xml header.
+<p>
+This feature has been added in <b>jk 1.2.20</b>.
+</p>
+</td></tr></table>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Advanced Worker Directives"><strong>Advanced Worker Directives</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>
+This table lists more advanced configuration options. Most of them only apply to
+some types of workers. We use the abbreviations <b>AJP</b> for ajp13/ajp14 workers
+used directly via the workers.list, <b>LB</b> for load balancer workers,
+and <b>SUB</b> for the workers used indirectly in a load balancer worker
+as a sub worker or member.
+</p>
+<table border="1" cellpadding="5"><tr><th width="10%" bgcolor="#023264"><font color="#ffffff">Directive</font></th><th width="10%" bgcolor="#023264"><font color="#ffffff">Worker Type</font></th><th width="8%" bgcolor="#023264"><font color="#ffffff">Default</font></th><th width="72%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code>connect_timeout</code></td><td align="left" valign="center"><code>AJP,SUB</code></td><td align="center" valign="center"><code>0</code></td><td align="left" valign="center">
+Connect timeout property told webserver to send a PING request on ajp13 connection after
+connection is established. The parameter is the delay in milliseconds to wait for the PONG reply.
+The default value zero disables the timeout (infinite timeout).
+<p>
+This features has been added in <b>jk 1.2.6</b> to avoid problem with hung Tomcat's and require ajp13
+ping/pong support which has been implemented on Tomcat <b>3.3.2+, 4.1.28+ and 5.0.13+</b>.
+Disabled by default.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>prepost_timeout</code></td><td align="left" valign="center"><code>AJP,SUB</code></td><td align="center" valign="center"><code>0</code></td><td align="left" valign="center">
+Prepost timeout property told webserver to send a PING request on ajp13 connection before
+forwarding to it a request. The parameter is the delay in milliseconds to wait for the PONG reply.
+The default value zero disables the timeout (infinite timeout).
+<p>
+This features has been added in <b>jk 1.2.6</b> to avoid problem with hung Tomcat's and require ajp13
+ping/pong support which has been implemented on <b>Tomcat 3.3.2+, 4.1.28+ and 5.0.13+</b>.
+Disabled by default.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>reply_timeout</code></td><td align="left" valign="center"><code>AJP,SUB</code></td><td align="center" valign="center"><code>0</code></td><td align="left" valign="center">
+The parameter is the number of milliseconds to wait for success during a read event.
+So this is not a timeout for the complete answer time of a request, but only
+for the maximum time between two packets received from Tomcat. Usually the longest
+pause is between sending the request and getting the first packet of the response.
+<p>
+If the timeout passes without any data received from Tomcat, the webserver will
+no longer wait for the rest of the response and send an error to the client (browser).
+Usually this does not mean, that the request is also aborted on the Tomcat backend.
+If the worker is a member of a load balancer, the load balancer might place the
+worker into an error state and retry the request on another member.
+See also <b>max_reply_timeouts</b>, <b>retries</b> and <b>recovery_options</b>.
+</p>
+<p>
+By default (value zero) the webserver will wait forever which could be an issue for you.
+If you set a reply_timeout, adjust it carefully if you have long running servlets.
+</p>
+<p>
+The reply_timeout can be overwritten using the Apache httpd environment variable
+JK_REPLY_TIMEOUT.
+</p>
+<p>
+This features has been added in <b>jk 1.2.6</b> to avoid problem with hung Tomcat's and works on all
+servlet engines supporting ajp13. The variable JK_REPLY_TIMEOUT has been added in version <b>1.2.27</b>.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>retries</code></td><td align="left" valign="center"><code>AJP,SUB</code></td><td align="center" valign="center"><code>2</code></td><td align="left" valign="center">
+<p><font color="#ff0000">This directive also exists for load balancer workers.
+For those it has a <a href="#Load Balancing Directives">different meaning</a>.</font></p>
+The maximum number of times that the worker will send a request to Tomcat
+in case of a communication error. Each retry will be done over another
+connection. The first time already gets counted, so retries=2 means
+one retry after error. Before a retry, the worker waits for a configurable
+sleeping time.
+<p>
+See also the attribute <b>recovery_options</b> for a more fine-grained control
+of retries and <b>retry_interval</b> for the sleep time configuration.
+</p>
+<p>
+Until version <b>1.2.16</b> the default value was 3.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>retry_interval</code></td><td align="left" valign="center"><code>AJP,SUB</code></td><td align="center" valign="center"><code>100</code></td><td align="left" valign="center">
+The amount of time in milliseconds the worker sleeps before doing any retry.
+<p>
+This features has been added in <b>jk 1.2.27</b>.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>recovery_options</code></td><td align="left" valign="center"><code>AJP,SUB</code></td><td align="center" valign="center"><code>0</code></td><td align="left" valign="center">
+Recovery options influence, how we should handle retries,
+in case we detect a problem with Tomcat.
+How often we will retry is controlled by the attribute <b>retries</b>.
+<p>
+This attribute is a bit mask. The following bits are allowed:<br>
+1: don't recover if Tomcat failed after getting the request<br>
+2: don't recover if Tomcat failed after sending the headers to client<br>
+4: close the connection to Tomcat, if we detect an error when writing back
+the answer to the client (browser)<br>
+8: always recover requests for HTTP method HEAD (even if Bits 1 or 2 are set)<br>
+16: always recover requests for HTTP method GET (even if Bits 1 or 2 are set)<br>
+</p>
+<p>
+This features has been added in <b>jk 1.2.6</b>.
+Option 4 has been added in version <b>1.2.16</b>,
+options 8 and 16 in version <b>1.2.24</b>.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>fail_on_status</code></td><td align="left" valign="center"><code>AJP,SUB</code></td><td align="center" valign="center"><code>0</code></td><td align="left" valign="center">
+Set this value to the HTTP status code that will cause a worker to fail
+if returned from Servlet container. Use this directive to deal with
+cases when the servlet container can temporary return non-200 responses
+for a short amount of time, e.g during redeployment.
+<p>
+The error page, headers and status codes of the original response will not be send back
+to the client. Instead the request will result in a 503 response.
+If the worker is a member of a load balancer, the member will
+be put into an error state. Request failover and worker recovery will be handled
+with the usual load balancer procedures.
+</p>
+<p>
+This feature has been added in <b>jk 1.2.20</b>.
+</p>
+<p>
+Starting with <b>jk 1.2.22</b> it is possible to define multiple
+status codes separated by space or comma characters.
+For example: <b class="code">worker.xxx.fail_on_status=500,503</b>
+</p>
+<p>
+Starting with <b>jk 1.2.25</b> you can also tell the load
+balancer to not put a member into an error state, if a
+response returned with one of the status codes in
+fail_on_status. This feature gets enabled, by putting a minus sign in
+front of those status codes.
+For example: <b class="code">worker.xxx.fail_on_status=-404,-500,503</b>
+</p>
+</td></tr><tr><td align="left" valign="center"><code>max_packet_size</code></td><td align="left" valign="center"><code>AJP,SUB</code></td><td align="center" valign="center"><code>8192</code></td><td align="left" valign="center">
+This attribute sets the maximal AJP packet size in Bytes.
+The maximum value is 65536. If you change it from the default,
+you <b>must</b> also change the packetSize attribute of your AJP
+connector on the Tomcat side! The attribute packetSize is only available
+in Tomcat 5.5.20+ and 6.0.2+.
+<p>
+Normally it is not necessary to change the maximum packet size. Problems
+with the default value have been reported when sending certificates or
+certificate chains.
+</p>
+<p>
+This feature has been added in <b>jk 1.2.19</b>.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>mount</code></td><td align="left" valign="center"><code>AJP,LB</code></td><td align="center" valign="center"><code>-</code></td><td align="left" valign="center">
+Space delimited list of uri maps the worker should handle. It is only used,
+if the worker is included in worker.list.
+<p>
+This directive can be used multiple times for the same worker.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>secret</code></td><td align="left" valign="center"><code>AJP,LB,SUB</code></td><td align="center" valign="center"><code>-</code></td><td align="left" valign="center">
+You can set a secret keyword on the Tomcat AJP Connector. Then only requests
+from workers with the same secret keyword will be accepted.
+<p>
+Use <b>request.secret="secret key word"</b> in your Tomcat AJP Connector configuration.
+</p>
+<p>
+If you set a secret on a load balancer, all its members will inherit this secret.
+</p>
+<p>
+This feature has been added in <b>jk 1.2.12</b>.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>max_reply_timeouts</code></td><td align="left" valign="center"><code>LB</code></td><td align="center" valign="center"><code>0</code></td><td align="left" valign="center">
+If you use a <b>reply_timeout</b> for the members of a load balancer worker,
+and you want to tolerate a few requests taking longer than reply_timeout,
+you can set this attribute to some positive value.
+<p>
+Long running requests will still time out after reply_timeout milliseconds waiting for
+data, but the corresponding member worker will only be put into an error state,
+if more than <b>max_reply_timeouts</b> requests have timed out.
+More precisely, the counter for those bad requests will be divided by two,
+whenever the load balancer does its internal maintenance (by default every 60
+seconds).
+</p>
+<p>
+This features has been added in <b>jk 1.2.24</b> to make <b>reply_timeout</b> less
+sensitive for sporadic long running requests.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>recover_time</code></td><td align="left" valign="center"><code>LB</code></td><td align="center" valign="center"><code>60</code></td><td align="left" valign="center">
+The recover time is the time in seconds the load balancer will not try
+to use a worker, after it went into error state. Only after this time has passed,
+a worker in error state will be marked as in recovering, so that it will be
+tried for new requests.
+<p>
+This interval is not checked every time a request is being processed.
+Instead it is being checked during global maintenance. The time between two
+runs of global maintenance is controlled by worker.maintain.
+</p>
+<p>
+Do not set recover_time to a very short time unless you understand the implications.
+Every recovery attempt for a worker in error is done by a real request!
+</p>
+</td></tr><tr><td align="left" valign="center"><code>error_escalation_time</code></td><td align="left" valign="center"><code>LB</code></td><td align="center" valign="center"><code>recover_time / 2</code></td><td align="left" valign="center">
+Setting a member of a load balancer into an error state is quite serious. E.g.
+it means that if you need stickyness, all access to the sessions of the
+respective node is blocked.
+<p>
+Some types of error detection do not provide a precise information, whether
+a node is completely broken or not. In those cases an LB will not immediately
+put the node into the error state. Only when there have been no successful
+responses for <b>error_escalation_time</b> seconds after such an error,
+will the node be put into error state.
+</p>
+<p>
+This features has been added in <b>jk 1.2.28</b>.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>activation</code></td><td align="left" valign="center"><code>SUB</code></td><td align="center" valign="center"><code>Active</code></td><td align="left" valign="center">
+Using this directive, a balanced worker of a load balancer
+can be configured as disabled or stopped. A disabled worker only gets
+requests, which belong to sessions for that worker. A stopped
+worker does not get any requests. Users of a stopped worker will
+loose their sessions, unless session replication via clustering is used.
+<p>
+Use <b>d</b> or <b>D</b> to disable and <b>s</b> or <b>S</b> to stop.
+If this directive is not present the deprecated directives
+"disabled" or "stopped" are used.
+</p>
+<p>
+This flag can be changed at runtime using status worker.
+</p>
+<p>
+This feature has been added in <b>jk 1.2.19</b>.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>route</code></td><td align="left" valign="center"><code>SUB</code></td><td align="center" valign="center"><code>worker name</code></td><td align="left" valign="center">
+Normally the name of a balanced worker in a load balancer is equal to the jvmRoute
+of the corresponding Tomcat instance. If you want to include a worker corresponding
+to a Tomcat instance into several load balancers with different balancing configuration
+(e.g. disabled, stopped) you can use this attribute.
+<p>
+Define a separate worker per lb and per Tomcat instance with an arbitrary worker name and
+set the route attribute of the worker equal to the jvmRoute of the target Tomcat instance.
+</p>
+<p>
+If this attribute is left empty, the name of the worker will be used.
+</p>
+<p>
+This attribute can be changed at runtime using status worker.
+</p>
+<p>
+If the route name contains a period, the part before the first period will be
+used as domain name, unless domain is set explicitly.
+</p>
+<p>
+This feature has been added in <b>jk 1.2.16</b>.<br>
+The automatic domain rule has been added in <b>jk 1.2.20</b>.<br>
+The attribute has been renamed from jvm_route to route in <b>jk 1.2.20</b>.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>distance</code></td><td align="left" valign="center"><code>SUB</code></td><td align="center" valign="center"><code>0</code></td><td align="left" valign="center">
+An integer number to express preferences between
+the balanced workers of an lb worker.
+A load balancer will never choose some balanced worker
+in case there is another usable worker with lower distance.
+<p>
+Only in case all workers below a given distance are in error, disabled or stopped,
+workers of a larger distance are eligible for balancing.
+</p>
+<p>
+This feature has been added in <b>jk 1.2.16</b>.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>domain</code></td><td align="left" valign="center"><code>SUB</code></td><td align="center" valign="center"><code>-</code></td><td align="left" valign="center">
+Domain directive can be used only when the worker is a member of the load balancer.
+Workers that share the same domain name are treated as single worker. If sticky_session
+is used, then the domain name is used as session route.
+<p>
+This directive is used for large system with more then 6 Tomcats, to be able
+to cluster the Tomcats in two groups and thus lowering the session replication
+transfer between them.
+</p>
+<p>
+This feature has been added in <b>jk 1.2.8</b>.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>redirect</code></td><td align="left" valign="center"><code>SUB</code></td><td align="center" valign="center"><code>-</code></td><td align="left" valign="center">
+Set to the name of the preferred failover worker. If worker matching
+SESSION ID is in error state then the redirect worker will be used instead.
+It will be used even if being disabled, thus offering hot standby.
+<p>
+If you explicitly set a route via the "route" attribute, you must set "redirect"
+to this route of the preferred failover worker and not to its name.
+</p>
+<p>
+This feature has been added in <b>jk 1.2.9</b>.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>session_cookie</code></td><td align="left" valign="center"><code>LB</code></td><td align="center" valign="center"><code>JSESSIONID</code></td><td align="left" valign="center">
+The name of the cookie that contains the routing identifier needed for session stickyness.
+The routing identifier is everything after a "." character in the value of the cookie.
+<p>
+This feature has been added in <b>jk 1.2.27</b>.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>session_path</code></td><td align="left" valign="center"><code>LB</code></td><td align="center" valign="center"><code>;jsessionid</code></td><td align="left" valign="center">
+The name of the path parameter that contains the routing identifier needed for
+session stickyness. The routing identifier is everything after a "." character in the value
+of the path parameter.
+<p>
+This feature has been added in <b>jk 1.2.27</b>.
+</p>
+</td></tr></table>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Deprecated Worker Directives"><strong>Deprecated Worker Directives</strong></a></font></td></tr><tr><td><blockquote>
+<br>
+<p>The following directives have been deprecated in the past. We include their documentation
+in case you need to use an older version of mod_jk. We urge you to update and not use
+them any more. Please migrate your existing configurations.
+</p>
+<table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Directive</font></th><th width="15%" bgcolor="#023264"><font color="#ffffff">Successor</font></th><th width="10%" bgcolor="#023264"><font color="#ffffff">Default</font></th><th width="60%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code>cachesize</code></td><td align="center" valign="center"><code>connection_pool_size</code></td><td align="center" valign="center"><code>see text</code></td><td align="left" valign="center">
+<p><font color="#ff0000">This directive has been deprecated since 1.2.16.</font></p>
+Cachesize defines the number of connections made to the AJP backend that
+are maintained as a connection pool.
+It will limit the number of those connection that each web server child
+process can make.
+<p>
+Cachesize property is used only for multi threaded
+web servers such as Apache 2.0 (worker), IIS and Netscape. The cachesize property
+should reflect the number of threads per child process. JK will discover
+the number of threads per child process on Apache 2 web server with worker-mpm and set
+its default value to match the ThreadsPerChild Apache directive. For IIS the default
+value is 10. For other web servers than Apache or IIS this value has to be set manually.
+</p>
+<p><font color="#ff0000">Do not use cachesize with values higher then 1 on <b>Apache 2.x prefork</b> or <b>Apache 1.3.x</b>!</font></p>
+</td></tr><tr><td align="left" valign="center"><code>cache_timeout</code></td><td align="center" valign="center"><code>connection_pool_timeout</code></td><td align="center" valign="center"><code>0</code></td><td align="left" valign="center">
+<p><font color="#ff0000">This directive has been deprecated since 1.2.16.</font></p>
+Cache timeout property should be used with <b>cachesize</b> to specify how to time JK should keep
+an open socket in cache before closing it. This property should be used to reduce the number of threads
+on the Tomcat web server.
+<p>
+Each child could open an ajp13 connection if it have to forward a request to Tomcat, creating
+a new ajp13 thread on Tomcat side.
+</p>
+<p>
+The problem is that after an ajp13 connection is created, the child won't drop it
+until killed. And since the webserver will keep its childs/threads running
+to handle high-load, even it the child/thread handle only static contents, you could
+finish having many unused ajp13 threads on the Tomcat side.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>recycle_timeout</code></td><td align="center" valign="center"><code>connection_pool_timeout</code></td><td align="center" valign="center"><code>0</code></td><td align="left" valign="center">
+<p><font color="#ff0000">This directive has been deprecated since 1.2.16.</font></p>
+The number of seconds that told webserver to cut an ajp13 connection after some time of
+inactivity. When choosing an endpoint for a request and the assigned socket is open, it will be
+closed if it was not used for the configured time.
+It's a good way to ensure that there won't too old threads living on Tomcat side,
+with the extra cost you need to reopen the socket next time a request be forwarded.
+This property is very similar to <b>cache_timeout</b> but works also in non-cache mode.
+If set to value zero (default) no recycle will took place.
+</td></tr><tr><td align="left" valign="center"><code>balanced_workers</code></td><td align="center" valign="center"><code>balance_workers</code></td><td align="center" valign="center"><code>-</code></td><td align="left" valign="center">
+<p><font color="#ff0000">This directive has been deprecated since 1.2.7.</font></p>
+A comma separated list of workers that the load balancer
+need to manage.
+</td></tr><tr><td align="left" valign="center"><code>disabled</code></td><td align="center" valign="center"><code>activation</code></td><td align="center" valign="center"><code>False</code></td><td align="left" valign="center">
+<p><font color="#ff0000">This directive has been deprecated since 1.2.19.</font></p>
+If set to <b>True</b> or <b>1</b> the worker will be disabled if member
+of load balancer. This flag can be changed at runtime using status worker.
+<p>
+This feature has been added in <b>jk 1.2.9</b>.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>stopped</code></td><td align="center" valign="center"><code>activation</code></td><td align="center" valign="center"><code>False</code></td><td align="left" valign="center">
+<p><font color="#ff0000">This directive has been deprecated since 1.2.19.</font></p>
+If set to <b>True</b> or <b>1</b> the worker will be stopped if member
+of load balancer. The flag is needed for stop complete traffic of a sticky session
+worker. It is only useful, when you have a cluster that replicated the sessions.
+This flag can be changed at runtime using status worker.
+<p>
+This feature has been added in <b>jk 1.2.11</b>.
+</p>
+</td></tr><tr><td align="left" valign="center"><code>jvm_route</code></td><td align="center" valign="center"><code>route</code></td><td align="center" valign="center"><code>worker name</code></td><td align="left" valign="center">
+<p><font color="#ff0000">This directive has been deprecated since 1.2.20.</font></p>
+Normally the name of a balanced worker in a load balancer is equal to the jvmRoute
+of the corresponding Tomcat instance. If you want to include a worker corresponding
+to a Tomcat instance into several load balancers with different balancing configuration
+(e.g. disabled, stopped) you can use this attribute.
+<p>
+Define a separate worker per lb and per Tomcat instance with an arbitrary worker name and
+set the jvm_route attribute of the worker equal to the jvmRoute of the target Tomcat instance.
+</p>
+<p>
+If this attribute is left empty, the name of the worker will be used.
+</p>
+<p>
+This attribute can be changed at runtime using status worker.
+</p>
+<p>
+This feature has been added in <b>jk 1.2.16</b>.
+</p>
+</td></tr></table>
+</blockquote></td></tr></table>
+
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright &copy; 1999-2011, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html> \ No newline at end of file
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/docs/style.css b/rubbos/app/tomcat-connectors-1.2.32-src/docs/style.css
new file mode 100644
index 00000000..ecd0eb81
--- /dev/null
+++ b/rubbos/app/tomcat-connectors-1.2.32-src/docs/style.css
@@ -0,0 +1,73 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+div.screen {
+ margin: 10px 0px 10px 20px;
+ font-size: smaller;
+ color: #ffffff;
+}
+div.example {
+ background-color: #e5ecf3;
+ color: #000;
+ padding: 0.5em;
+ margin: 1em 2em 1em 1em;
+}
+pre {
+ font-family: "Courier New", Courier, monospace;
+ font-weight: normal;
+ font-style: normal;
+ font-size: smaller;
+}
+em.screen {
+ font-weight: normal;
+ font-style: normal;
+ color: #c0c0c0;
+}
+p.screen {
+ background-color: #000000;
+ border-style: none;
+ color: #c0c0c0;
+ margin-left: 10px;
+ margin-right: 0px;
+ text-align: left;
+}
+b.screen {
+ font-weight: normal;
+ font-style: normal;
+ color: #c0c0c0;
+}
+code.screen {
+ background-color: #000000;
+ border-style: none;
+ color: #c0c0c0;
+ margin-left: 10px;
+ margin-right: 0px;
+ text-align: left;
+}
+b.code {
+ font-weight: normal;
+ font-style: normal;
+ color: #023264;
+}
+p.todo {
+ background-color: #ffffff;
+ border-style: none;
+ color: #000000;
+ margin-left: 20px;
+ margin-right: 10px;
+ text-align: justify;
+ font-size: smaller;
+}
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/docs/webserver_howto/apache.html b/rubbos/app/tomcat-connectors-1.2.32-src/docs/webserver_howto/apache.html
new file mode 100644
index 00000000..a60cc43c
--- /dev/null
+++ b/rubbos/app/tomcat-connectors-1.2.32-src/docs/webserver_howto/apache.html
@@ -0,0 +1,1124 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>The Apache Tomcat Connector - Webserver HowTo - Apache HTTP Server HowTo</title><meta name="author" value="Henri Gomez"><meta name="email" value="hgomez@apache.org"><meta name="author" value="Gal Shachor"><meta name="email" value="shachor@il.ibm.com"><link href="../style.css" type="text/css" rel="stylesheet"></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="4"><!--PAGE HEADER--><tr><td colspan="2"><!--TOMCAT LOGO--><a href="http://tomcat.apache.org/"><img src="../images/tomcat.gif" align="left" alt="Apache Tomcat" border="0"></a><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="http://www.apache.org/images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><tr><!--LEFT SIDE NAVIGATION--><td width="20%" valign="top" nowrap="true"><p><strong>Links</strong></p><ul><li><a href="../index.html">Docs Home</a></li></ul><p><strong>Reference Guide</strong></p><ul><li><a href="../reference/workers.html">workers.properties</a></li><li><a href="../reference/uriworkermap.html">uriworkermap.properties</a></li><li><a href="../reference/status.html">Status Worker</a></li><li><a href="../reference/apache.html">Apache HTTP Server</a></li><li><a href="../reference/iis.html">IIS</a></li></ul><p><strong>Generic HowTo</strong></p><ul><li><a href="../generic_howto/quick.html">For the impatient</a></li><li><a href="../generic_howto/workers.html">All about workers</a></li><li><a href="../generic_howto/timeouts.html">Timeouts</a></li><li><a href="../generic_howto/loadbalancers.html">Load Balancing</a></li><li><a href="../generic_howto/proxy.html">Reverse Proxy</a></li></ul><p><strong>Webserver HowTo</strong></p><ul><li><a href="../webserver_howto/apache.html">Apache HTTP Server</a></li><li><a href="../webserver_howto/iis.html">IIS</a></li><li><a href="../webserver_howto/nes.html">Netscape/SunOne/Sun</a></li></ul><p><strong>AJP Protocol Reference</strong></p><ul><li><a href="../ajp/ajpv13a.html">AJPv13</a></li><li><a href="../ajp/ajpv13ext.html">AJPv13 Extension Proposal</a></li></ul><p><strong>Miscellaneous Documentation</strong></p><ul><li><a href="../miscellaneous/faq.html">Frequently asked questions</a></li><li><a href="../miscellaneous/changelog.html">Changelog</a></li><li><a href="http://issues.apache.org/bugzilla/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Tomcat+Connectors&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=">Current Tomcat Connectors bugs</a></li><li><a href="../miscellaneous/doccontrib.html">Contribute documentation</a></li><li><a href="../miscellaneous/jkstatustasks.html">JK Status Ant Tasks</a></li><li><a href="../miscellaneous/reporttools.html">Reporting Tools</a></li><li><a href="http://tomcat.apache.org/connectors-doc-archive/jk2/index.html">Old JK/JK2 documentation</a></li></ul><p><strong>News</strong></p><ul><li><a href="../news/20110701.html">2011</a></li><li><a href="../news/20100101.html">2010</a></li><li><a href="../news/20090301.html">2009</a></li><li><a href="../news/20081001.html">2008</a></li><li><a href="../news/20070301.html">2007</a></li><li><a href="../news/20060101.html">2006</a></li><li><a href="../news/20050101.html">2005</a></li><li><a href="../news/20041100.html">2004</a></li></ul></td><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left"><table border="0" width="100%" cellspacing="4"><tr><td align="left" valign="top"><h1>The Apache Tomcat Connector - Webserver HowTo</h1><h2>Apache HTTP Server HowTo</h2></td><td align="right" valign="top" nowrap="true"><small><a href="printer/apache.html"><img src="../images/printer.gif" border="0" alt="Printer Friendly Version"><br>print-friendly<br>version
+ </a></small></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+This document explains how to connect Tomcat to the popular open source web server, Apache httpd.
+There is actually three versions of Apache HTTP Server, 1.3, 2.0 and 2.2 and all can be used with mod_jk,
+the Tomcat redirector module.
+</p>
+
+<p>
+It is recommended that you also read the
+<a href="../generic_howto/workers.html">Workers HowTo</a> document
+to learn how to setup the working entities between your web server and Tomcat Engines.
+For more detailed configuration information consult the Reference Guide for
+<a href="../reference/worker.html">workers.properties</a>,
+<a href="../reference/uriworkermap.html">uriworkermap</a>
+and <a href="../reference/apache.html">Apache</a>.
+</p>
+
+<p><b>Waring: If Apache HTTP Server and Tomcat are configured to serve content from
+the same filing system location then care must be taken to ensure that httpd is
+not able to serve inappropriate content such as the contents of the WEB-INF
+directory or JSP source code.</b> This could occur if the httpd DocumentRoot
+overlaps with a Tomcat Host's appBase or the docBase of any Context. It could
+also occur when using the httpd Alias directive with a Tomcat Host's appBase or
+the docBase of any Context.
+</p>
+
+<p>
+This document was originally part of <b>Tomcat: A Minimalistic User's Guide</b> written by Gal Shachor,
+but has been split off for organisational reasons.
+</p>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Document Conventions and Assumptions"><strong>Document Conventions and Assumptions</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+${tomcat_home} is the root directory of tomcat.
+Your Tomcat installation should have the following subdirectories:
+
+<ul>
+<li>
+${tomcat_home}\conf - Where you can place various configuration files
+</li>
+<li>
+${tomcat_home}\webapps - Containing example applications
+</li>
+<li>
+${tomcat_home}\bin - Where you place web server plugins
+</li>
+</ul>
+</p>
+<p>
+In all the examples in this document ${tomcat_home} will be <b>/var/tomcat3</b>.
+A <a href="../generic_howto/workers.html">worker</a> is defined to be a tomcat process that accepts work from the Apache server.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Supported Configuration"><strong>Supported Configuration</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+The mod_jk module was developed and tested on:
+<ul>
+<li>
+Linux, FreeBSD, AIX, HP-UX, MacOS X, Solaris and should works on major Unixes platforms
+supporting Apache 1.3 and/or 2.0/2.2
+</li>
+<li>
+WinNT4.0-i386 SP4/SP5/SP6a (should be able to work with other service packs), Win2K and WinXP and Win98
+</li>
+<li>
+Cygwin (until you have an apache server and autoconf/automake support tools)
+</li>
+<li>
+Netware
+</li>
+<li>
+i5/OS V5R4 (System I) with Apache HTTP Server 2.0.58. Be sure to have the latest Apache PTF installed.
+</li>
+<li>
+Tomcat 3.2.x, Tomcat 3.3.x, Tomcat 4.0.x, Tomcat 4.1.x, Tomcat 5.0.x, Tomcat 5.5.x and Tomcat 6.
+</li>
+</ul>
+</p>
+
+<p>
+The redirector uses <b>ajp12</b> and <b>ajp13</b> to send requests to the Tomcat containers. There is also an option to use Tomcat in process,
+more about the in-process mode can be found in the in process howto.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Who support ajp protocols ?"><strong>Who support ajp protocols ?</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+The ajp12 protocol is only available in Tomcat 3.2.x and 3.3.x.
+</p>
+
+<p>
+The <b>ajp12</b> has been <b>deprecated</b> with Tomcat 3.3.x and you should use instead
+<b>ajp13</b> which is the only ajp protocol known by Tomcat 4.x, 5 and 5.5 and Tomcat 6.
+</p>
+
+<p>
+Of course Tomcat 3.2.x and 3.3.x also support ajp13 protocol.
+</p>
+
+<p>
+Others servlet engines such as <b>jetty</b> have support for ajp13 protocol
+</p>
+
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="How does it work ?"><strong>How does it work ?</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+In a nutshell a web server is waiting for client HTTP requests.
+When these requests arrive the server does whatever is needed to serve the
+requests by providing the necessary content.
+</p>
+
+<p>
+Adding a servlet container may somewhat change this behaviour.
+Now the web server needs also to perform the following:
+</p>
+
+<ul>
+<li>
+Load the servlet container adaptor library and initialise it (prior to serving requests).
+</li>
+<li>
+When a request arrives, it needs to check and see if a certain request belongs to a servlet,
+if so it needs to let the adaptor take the request and handle it.
+</li>
+</ul>
+
+<p>
+The adaptor on the other hand needs to know what requests it is going to serve,
+usually based on some pattern in the request URL, and to where to direct these requests.
+</p>
+
+<p>
+Things are even more complex when the user wants to set a configuration that uses virtual hosts,
+or when they want multiple developers to work on the same web server
+but on different servlet container JVMs.
+We will cover these two cases in the advanced sections.
+</p>
+
+</blockquote></td></tr></table>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Obtaining mod_jk"><strong>Obtaining mod_jk</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+mod_jk can be obtained in two formats - binary and source.
+Depending on the platform you are running your web server on, a binary version of mod_jk may be available.
+</p>
+
+<p>
+It is recommended to use the binary version if one is available.
+If the binary is not available, follow the instructions for building mod_jk from source.
+The mod_jk source can be downloaded from a mirror
+<a href="http://tomcat.apache.org/download-connectors.cgi">
+here</a>
+</p>
+
+<p>
+The binaries for mod_jk are now available for several platforms.
+The binaries are located in subdirectories by platform.
+</p>
+
+<p>
+For some platforms, such as Windows, this is the typical way of obtaining mod_jk
+since most Windows systems do not have C compilers.
+</p>
+
+<p>
+For others, the binary distribution of mod_jk offers simpler installation.
+</p>
+
+<p>
+For example JK 1.2.x can be downloaded from a mirror
+<a href="http://tomcat.apache.org/download-connectors.cgi">
+here</a> (look for JK 1.2 Binary Releases). The "JK 1.2 Binary Releases" link contains binary version for a variety of
+operating systems for both Apache 1.3 and Apache 2.
+</p>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Installation"><strong>Installation</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+mod_jk requires two entities:
+
+<ul>
+<li>
+<b>mod_jk.xxx</b> - The Apache HTTP Server module, depending on your operating system, it will be mod_jk.so, mod_jk.nlm or
+or MOD_JK.SRVPGM (see the build section).
+</li>
+<li>
+<b>workers.properties</b> - A file that describes the host(s) and port(s) used by the workers (Tomcat processes).
+A sample workers.properties can be found under the conf directory in the source download.
+</li>
+</ul>
+</p>
+
+<p>
+Also as with other Apache HTTP Server modules, mod_jk should be first installed on the modules directory of your
+Apache webserver, ie : /usr/lib/apache and you should update your <b>httpd.conf</b> file.
+</p>
+
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Disabling old mod_jserv"><strong>Disabling old mod_jserv</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+If you've previously configured Apache to use <b>mod_jserv</b>, remove any <b>ApJServMount</b> directives
+from your httpd.conf.
+</p>
+
+<p>If you're including <b>tomcat-apache.conf</b> or <b>tomcat.conf</b>, you'll want to remove them as well -
+they are specific to <b>mod_jserv</b>.
+</p>
+
+<p>
+The mod_jserv configuration directives are not compatible with mod_jk !
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Using Tomcat auto-configure"><strong>Using Tomcat auto-configure</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+The auto-configure works only for a single Tomcat running on the same machine where Apache HTTP Server is running.
+The simplest way to configure Apache HTTP Server to use mod_jk is to turn on the Apache HTTP Server auto-configure setting
+in Tomcat and put the following include directive at the end of your Apache httpd.conf file
+(make sure you replace $TOMCAT_HOME with the correct path for your Tomcat installation:
+</p>
+
+<div class="example"><pre>
+ #To be added at the end of your httpd.conf
+ Include $TOMCAT_HOME/conf/jk/mod_jk.conf-auto
+</pre></div>
+
+<p>
+Note: this file may also be generated as $TOMCAT_HOME/conf/auto/mod_jk.conf
+</p>
+
+<p>
+This will tell Apache HTTP Server to use directives in the <b>mod_jk.conf-auto</b> file in
+the Apache configuration. This file is created by enabling the Apache
+auto-configuration by creating your workers.properties file at
+$TOMCAT_HOME/conf/jk/workers.properties and adding the listener to the Engine
+element in the server.xml file as per the following example.
+<b>Please note that this example is specific to Tomcat 5.x, unlike other sections of this document
+ which also apply to previous Tomcat branches.</b>
+</p>
+<div class="example"><pre>
+ ...
+ &lt;Engine ...&gt;
+ ...
+ &lt;Listener className="org.apache.jk.config.ApacheConfig" modJk="/path/to/mod_jk.so" /&gt;
+ ...
+ &lt;/Engine&gt;
+ ...
+</pre></div>
+
+<p>
+Then restart Tomcat and mod_jk.conf should be generated. For more information on
+this topic, please refer to the API documentation at the
+<a href="http://tomcat.apache.org/tomcat-5.5-doc/catalina/docs/api/org/apache/jk/config/ApacheConfig.html">
+Tomcat docs website</a>.
+</p>
+
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Custom mod_jk configuration"><strong>Custom mod_jk configuration</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+You should use custom configuration when :
+</p>
+<ul>
+<li>
+You couldn't use <b>mod_jk.conf-auto</b> since Tomcat engine isn't on the same machine that your Apache web server,
+ie when you have an Apache in front of a Tomcat Farm.
+</li>
+<li>
+Another case for custom configuration is when your Apache is in front of many different Tomcat engines,
+each one having it's own configuration, a general case in ISP hosting
+</li>
+<li>
+Also all Apache webmaster will retain custom configuration to be able to tune the settings
+to their real needs.
+</li>
+</ul>
+
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Simple configuration example"><strong>Simple configuration example</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+Here is a simple configuration:
+</p>
+
+<div class="example"><pre>
+ # Load mod_jk module
+ LoadModule jk_module libexec/mod_jk.so
+ # Declare the module for &lt;IfModule directive&gt; (remove this line on Apache 2.0.x)
+ AddModule mod_jk.c
+ # Where to find workers.properties
+ JkWorkersFile /etc/httpd/conf/workers.properties
+ # Where to put jk shared memory
+ JkShmFile /var/log/httpd/mod_jk.shm
+ # Where to put jk logs
+ JkLogFile /var/log/httpd/mod_jk.log
+ # Set the jk log level [debug/error/info]
+ JkLogLevel info
+ # Select the timestamp log format
+ JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
+ # Send servlet for context /examples to worker named worker1
+ JkMount /examples/servlet/* worker1
+ # Send JSPs for context /examples to worker named worker1
+ JkMount /examples/*.jsp worker1
+</pre></div>
+
+</blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="mod_jk Directives"><strong>mod_jk Directives</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+We'll discuss here the mod_jk directives and details behind them
+</p>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Define workers"><strong>Define workers</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+<b>JkWorkersFile</b> specify the location where mod_jk will find the workers definitions.
+
+<div class="example"><pre>
+ JkWorkersFile /etc/httpd/conf/workers.properties
+</pre></div>
+
+<br>
+<br>
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Logging"><strong>Logging</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+<b>JkLogFile</b> specify the location where mod_jk is going to place its log file.
+</p>
+
+<div class="example"><pre>
+ JkLogFile /var/log/httpd/mod_jk.log
+</pre></div>
+
+<p>
+Since JK 1.2.3 for Apache 2.0/2.2 and JK 1.2.16 for Apache 1.3 this can also
+be used for piped logging:
+</p>
+
+<div class="example"><pre>
+ JkLogFile "|/usr/bin/rotatelogs /var/log/httpd/mod_jk.log 86400"
+</pre></div>
+
+<p>
+<b>JkLogLevel</b>
+set the log level between :
+</p>
+
+<ul>
+<li>
+<b>info</b> log will contains standard mod_jk activity (default).
+</li>
+<li>
+<b>error</b> log will contains also error reports.
+</li>
+<li>
+<b>debug</b> log will contains all information on mod_jk activity
+</li>
+</ul>
+
+<div class="example"><pre>
+ JkLogLevel info
+</pre></div>
+
+<p>
+<b class="code">info</b> should be your default selection for normal operations.
+<br>
+<br>
+</p>
+
+<p>
+<b>JkLogStampFormat</b> will configure the date/time format found on mod_jk logfile.
+Using the strftime() format string it's set by default to <b>"[%a %b %d %H:%M:%S %Y]"</b>
+</p>
+
+<div class="example"><pre>
+ JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
+</pre></div>
+
+<p>
+<br>
+<br>
+</p>
+
+<p>
+<b>JkRequestLogFormat</b> will configure the format of mod_jk individual request logging.
+Request logging is configured and enabled on a per virtual host basis.
+To enable request logging for a virtual host just add a JkRequestLogFormat config.
+The syntax of the format string is similar to the Apache LogFormat command,
+here is a list of the available request log format options:
+</p>
+
+<p>
+<table>
+ <tr><th>Options</th><th>Description</th></tr>
+ <tr><td>%b</td><td>Bytes sent, excluding HTTP headers (CLF format)</td></tr>
+ <tr><td>%B</td><td>Bytes sent, excluding HTTP headers</td></tr>
+ <tr><td>%H</td><td>The request protocol</td></tr>
+ <tr><td>%m</td><td>The request method</td></tr>
+ <tr><td>%p</td><td>The canonical Port of the server serving the request</td></tr>
+ <tr><td>%q</td><td>The query string (prepended with a ? if a query string exists, otherwise an empty string)</td></tr>
+ <tr><td>%r</td><td>First line of request</td></tr>
+ <tr><td>%s</td><td>Request HTTP status code</td></tr>
+ <tr><td>%T</td><td>Request duration, elapsed time to handle request in seconds '.' micro seconds</td></tr>
+ <tr><td>%U</td><td>The URL path requested, not including any query string.</td></tr>
+ <tr><td>%v</td><td>The canonical ServerName of the server serving the request</td></tr>
+ <tr><td>%V</td><td>The server name according to the UseCanonicalName setting</td></tr>
+ <tr><td>%w</td><td>Tomcat worker name</td></tr>
+ <tr><td>%R</td><td>Session route name (available with 1.2.19 and up)</td></tr>
+</table>
+
+<div class="example"><pre>
+ JkRequestLogFormat "%w %V %T"
+</pre></div>
+
+<br>
+<br>
+</p>
+
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Forwarding"><strong>Forwarding</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+The directive JkOptions allow you to set many forwarding options which will enable (+)
+or disable (-) following option. Without any leading signs, options will be enabled.
+<br>
+<br>
+</p>
+
+<p>
+The four following options <b>+ForwardURIxxx</b> are mutually exclusive.
+Exactly one of them is required, a negative sign prefix is not allowed with them.
+The default value is "ForwardURIProxy" since version 1.2.24.
+It was "ForwardURICompatUnparsed" in version 1.2.23 and
+"ForwardURICompat" until version 1.2.22.
+You can turn the default off by switching on one of the other two options.
+You should leave this at it's default value, unless you have a very good
+reason to change it.
+<br>
+<br>
+</p>
+
+<p>
+All options are inherited from the global server to virtual hosts.
+Options that support enabling (plus options) and disabling (minus options),
+are inherited in the following way:
+<br>
+<br>
+options(vhost) = plus_options(global) - minus_options(global) + plus_options(vhost) - minus_options(vhost)
+<br>
+<br>
+</p>
+
+<p>
+Using JkOptions <b>ForwardURIProxy</b>, the forwarded URI
+will be partially reencoded after processing inside Apache httpd and
+before forwarding to Tomcat. This will be compatible with local
+URL manipulation by mod_rewrite and with URL encoded session ids.
+
+<div class="example"><pre>
+ JkOptions +ForwardURIProxy
+</pre></div>
+
+<br>
+<br>
+</p>
+
+<p>
+Using JkOptions <b>ForwardURICompatUnparsed</b>, the forwarded URI
+will be unparsed. It's spec compliant and secure.
+It will always forward the original request URI, so rewriting
+URIs with mod_rewrite and then forwarding the rewritten URI
+will not work.
+
+<div class="example"><pre>
+ JkOptions +ForwardURICompatUnparsed
+</pre></div>
+
+<br>
+<br>
+</p>
+<p>
+Using JkOptions <b>ForwardURICompat</b>, the forwarded URI will
+be decoded by Apache httpd. Encoded characters will be decoded and
+explicit path components like ".." will already be resolved.
+This is less spec compliant and is <b>not safe</b> if you are using
+prefix JkMount. This option will allow to rewrite URIs with
+mod_rewrite before forwarding.
+
+<div class="example"><pre>
+ JkOptions +ForwardURICompat
+</pre></div>
+
+<br>
+<br>
+</p>
+<p>
+Using JkOptions <b>ForwardURIEscaped</b>, the forwarded URI will
+be the encoded form of the URI used by ForwardURICompat.
+Explicit path components like ".." will already be resolved.
+This will not work in combination with URL encoded session IDs,
+but it will allow to rewrite URIs with mod_rewrite before forwarding.
+
+<div class="example"><pre>
+ JkOptions +ForwardURIEscaped
+</pre></div>
+
+<br>
+<br>
+</p>
+
+<p>
+JkOptions <b>RejectUnsafeURI</b> will block all
+URLs, which contain percent signs '%' or backslashes '\'
+after decoding.
+<br>
+<br>
+</p>
+<p>
+Most web apps do not use such URLs. Using the option RejectUnsafeURI, you
+can block several well known URL encoding attacks. By default, this option
+is not set.
+</p>
+<p>
+You can also realise such a check with mod_rewrite, which is more powerful
+but also slightly more complicated.
+
+<div class="example"><pre>
+ JkOptions +RejectUnsafeURI
+</pre></div>
+
+<br>
+<br>
+</p>
+
+<p>
+JkOptions <b>ForwardDirectories</b> is used in conjunction with <b>DirectoryIndex</b>
+directive of Apache web server. As such mod_dir should be available to Apache,
+statically or dynamically (DSO)
+<br>
+<br>
+</p>
+
+<p>
+When DirectoryIndex is configured, Apache will create sub-requests for
+each of the local-url's specified in the directive, to determine if there is a
+local file that matches (this is done by stat-ing the file).
+</p>
+
+<p>
+If ForwardDirectories is set to false (default) and Apache doesn't find any
+files that match, Apache will serve the content of the directory (if directive
+Options specifies Indexes for that directory) or a <b class="code">403 Forbidden</b> response (if
+directive Options doesn't specify Indexes for that directory).
+</p>
+
+<p>
+If ForwarDirectories is set to true and Apache doesn't find any files that
+match, the request will be forwarded to Tomcat for resolution. This is used in
+cases when Apache cannot see the index files on the file system for various
+reasons: Tomcat is running on a different machine, the JSP file has been
+precompiled etc.
+</p>
+
+<p>Note that locally visible files will take precedence over the
+ones visible only to Tomcat (i.e. if Apache can see the file, that's the one
+that's going to get served). This is important if there is more then one type of
+file that Tomcat normally serves - for instance Velocity pages and JSP pages.
+
+<div class="example"><pre>
+ JkOptions +ForwardDirectories
+</pre></div>
+<br>
+<br>
+</p>
+
+<p>
+JkOptions <b>ForwardLocalAddress</b>, you ask mod_jk to send the local address,
+of the Apache web server instead remote client address. This can be used by
+Tomcat remote address valve for allowing connections only from registered Apache
+web servers.
+
+<div class="example"><pre>
+ JkOptions +ForwardLocalAddress
+</pre></div>
+
+<br>
+<br>
+</p>
+
+<p>
+JkOptions <b>FlushPackets</b>, you ask mod_jk to flush Apache's connection
+buffer after each AJP packet chunk received from Tomcat. This option can have
+a strong performance penalty for Apache and Tomcat as writes are performed
+more often than would normally be required (ie: at the end of each
+response).
+
+<div class="example"><pre>
+ JkOptions +FlushPackets
+</pre></div>
+
+<br>
+<br>
+</p>
+
+<p>
+JkOptions <b>FlushHeader</b>, you ask mod_jk to flush Apache's connection
+buffer after the response headers have been received from Tomcat.
+
+<div class="example"><pre>
+ JkOptions +FlushHeader
+</pre></div>
+
+<br>
+<br>
+</p>
+
+<p>
+JkOptions <b>DisableReuse</b>, you ask mod_jk to close connections immediately
+after their use. Normally mod_jk uses persistent connections and pools idle
+connections to reuse them, when new requests have to be sent to Tomcat.
+</p>
+
+<p>
+Using this option will have a strong performance penalty for Apache and Tomcat.
+Use this only as a last resort in case of unfixable network problems.
+If a firewall between Apache and Tomcat silently kills idle connections,
+try to use the worker attribute socket_keepalive in combination with an appropriate
+TCP keepalive value in your OS.
+
+<div class="example"><pre>
+ JkOptions +DisableReuse
+</pre></div>
+
+<br>
+<br>
+</p>
+
+<p>
+JkOptions <b>ForwardKeySize</b>, you ask mod_jk, when using ajp13, to forward also the SSL Key Size as
+required by Servlet API 2.3.
+This flag shouldn't be set when servlet engine is Tomcat 3.2.x (off by default).
+
+<div class="example"><pre>
+ JkOptions +ForwardKeySize
+</pre></div>
+
+<br>
+<br>
+</p>
+
+<p>
+JkOptions <b>ForwardSSLCertChain</b>, you ask mod_jk, when using ajp13,
+to forward SSL certificate chain (off by default).
+Mod_jk only passes the <b class="code">SSL_CLIENT_CERT</b> to the AJP connector. This is not a
+problem with self-signed certificates or certificates directly signed by the
+root CA certificate. However, there's a large number of certificates signed by
+an intermediate CA certificate, where this is a significant problem: A servlet
+will not have the possibility to validate the client certificate on its own. The
+bug would be fixed by passing on the <b class="code">SSL_CLIENT_CERT_CHAIN</b> to Tomcat via the AJP connector.
+<br>
+This directive exists only since version 1.2.22.
+<div class="example"><pre>
+ JkOptions +ForwardSSLCertChain
+</pre></div>
+
+<br>
+<br>
+</p>
+
+<p>
+The directive <b>JkEnvVar</b> allows you to forward environment variables
+from Apache server to Tomcat engine.
+You can add a default value as a second parameter to the directive.
+If the default value is not given explicitly, the variable
+will only be send, if it is set during runtime.
+<br>
+The variables can be retrieved on the Tomcat side as request attributes
+via request.getAttribute(attributeName).
+Note that the variables send via JkEnvVar will not be listed
+in request.getAttributeNames().
+<br>
+<br>
+The variables are inherited from the global server to virtual hosts.
+
+<div class="example"><pre>
+ JkEnvVar SSL_CLIENT_V_START undefined
+</pre></div>
+<br>
+<br>
+</p>
+
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Assigning URLs to Tomcat"><strong>Assigning URLs to Tomcat</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+If you have created a custom or local version of mod_jk.conf-local as noted above,
+you can change settings such as the workers or URL prefix.
+</p>
+
+<p>
+<b>JkMount</b> directive assign specific URLs to Tomcat.
+In general the structure of a JkMount directive is:
+</p>
+
+<div class="example"><pre> JkMount [URL prefix] [Worker name]</pre></div>
+
+<div class="example"><pre>
+ # send all requests ending in .jsp to worker1
+ JkMount /*.jsp worker1
+ # send all requests ending /servlet to worker1
+ JkMount /*/servlet/ worker1
+ # send all requests jsp requests to files located in /otherworker will go worker2
+ JkMount /otherworker/*.jsp worker2
+</pre></div>
+
+<p>
+You can use the JkMount directive at the top level or inside &lt;VirtualHost&gt; sections of your httpd.conf file.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Configuring Apache to serve static web application files"><strong>Configuring Apache to serve static web application files</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+If the Tomcat Host appBase (webapps) directory is accessible by the Apache web server,
+Apache can be configured to serve web application context directory static files instead
+of passing the request to Tomcat.
+</p>
+
+<p>
+Caution: For security reasons is is strongly recommended that JkMount is used to
+pass all requests to Tomcat by default and JkUnMount is used to explicitly
+exclude static content to be served by httpd. It should also be noted that
+content served by httpd will bypass any security constraints defined in the
+application's web.xml.
+</p>
+
+<p>Use Apache's <b>Alias</b> directive to map a single web application context directory into Apache's
+document space for a VirtualHost:
+</p>
+
+<div class="example"><pre>
+ # Static files in the examples webapp are served by apache
+ Alias /examples /vat/tomcat3/webapps/examples
+ # All requests go to worker1 by default
+ JkMount /* worker1
+ # Serve html, jpg and gif using httpd
+ JkUnMount /*.html worker1
+ JkUnMount /*.jpg worker1
+ JkUnMount /*.gif worker1
+</pre></div>
+
+<p>
+Starting with mod_jk 1.2.6 for Apache 2.0/2.2 and 1.2.19 for Apache 1.3, it's possible to exclude some URL/URI from
+jk processing by setting the env var <b>no-jk</b>, for example with the SetEnvIf Directive.
+</p>
+
+<p>
+You could use <b>no-jk</b> env var to fix problem with mod_alias or mod_userdir
+directive when jk and alias/userdir URLs matches.
+</p>
+
+<div class="example"><pre>
+ # All URL goes to tomcat except the one containing /home
+ &lt;VirtualHost *:80&gt;
+ ServerName testxxx.mysys
+ DocumentRoot /www/testxxx/htdocs
+
+ # Use SetEnvIf to st no-jk when /home/ is encountered
+ SetEnvIf Request_URI "/home/*" no-jk
+
+ # Now /home will goes to /home/dataxxx/
+ Alias /home /home/dataxxx/
+
+ &lt;Directory "/home/dataxxx"&gt;
+ Options Indexes MultiViews
+ AllowOverride None
+ Order allow,deny
+ Allow from all
+ &lt;/Directory&gt;
+
+ JkMount /* myssys-xxx
+
+ &lt;/VirtualHost&gt;
+</pre></div>
+
+
+<p>
+Use the mod_jk <b>JkAutoAlias</b> directive to map all web application context directories
+into Apache's document space.
+</p>
+
+<p>
+Attempts to access the WEB-INF or META-INF directories within a web application context
+or a Web Archive *.war within the Tomcat Host appBase (webapps) directory will fail with an
+<b class="code">HTTP 403, Access Forbidden</b>
+</p>
+
+<div class="example"><pre>
+ # Static files in all Tomcat webapp context directories are served by apache
+ JkAutoAlias /var/tomcat3/webapps
+
+ # All requests go to worker1 by default
+ JkMount /* ajp13
+ # Serve html, jpg and gif using httpd
+ JkUnMount /*.html ajp13
+ JkUnMount /*.jpg ajp13
+ JkUnMount /*.gif ajp13
+</pre></div>
+
+<p>
+If you encoded all your URLs to contain the session id
+(<b class="code">;jsessionid=...</b>), and you later decide, you want to
+move part of the content to Apache httpd, you can tell
+mod_jk to strip off all session ids from URLs for
+those requests, that do not get forwarded via mod_jk.
+</p>
+
+<p>
+You enable this feature by setting JkStripSession to On.
+It can be enabled individually for virtual servers. The default
+value is Off.
+</p>
+
+</blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Building mod_jk on Unix"><strong>Building mod_jk on Unix</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+The mod_jk build use the widely used configure system.
+</p>
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Prepare your mod_jk configure from subversion"><strong>Prepare your mod_jk configure from subversion</strong></a></font></td></tr><tr><td><blockquote>
+In case you get source from subversion, ie without an existing configure script,
+you should have autoconf for configuration and installation.
+<p>
+To create tomcat-connectors's autoconf script, you will need libtool
+1.5.2, automake 1.10 and autoconf 2.59 or newer. The use of more recent
+versions is encouraged, e.g. for reliable detection of the features of
+recent version of operating systems.
+</p><p>
+Those tools will not be required if you are just using a package downloaded from apache.org,
+they are only required for developers.
+</p>
+<p>
+To create the configure script just type :
+
+<p class="screen"><div align="left"><table width="80%" border="1" cellspacing="0" cellpadding="2" bgcolor="#000000"><tr><td bgcolor="#000000" align="left"><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">./buildconf.sh</b></nobr></code><br></td></tr></table></div></p>
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Using configure to build mod_jk"><strong>Using configure to build mod_jk</strong></a></font></td></tr><tr><td><blockquote>
+<p>Here's how to use configure to prepare mod_jk for building, just type:
+<div class="example"><pre>
+./configure [autoconf arguments] [tomcat-connectors arguments]
+</pre></div>
+</p>
+
+<p>
+You could set <b>CFLAGS</b> and <b>LDFLAGS</b> to add some platform specifics:
+</p>
+
+<p class="screen"><div align="left"><table width="80%" border="1" cellspacing="0" cellpadding="2" bgcolor="#000000"><tr><td bgcolor="#000000" align="left"><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">LDFLAGS=-lc ./configure -with-apxs=/home2/local/apache/bin/apxs</b></nobr></code><br></td></tr></table></div></p>
+
+<p>
+If you want to build mod_jk for different version of Apache httpd, like 1.3, 2.0 and 2.2,
+you need to go through the full build process for each of them.
+Please note, that httpd 2.0 and 2.2 modules are <b>not</b> compatible. The mod_jk directory
+used is "apache-2.0" in both cases, but you need to compile separately.
+<ul>
+<li>
+use configure and indicate the correct Apache httpd apxs location (--with-apxs)
+</li>
+<li>
+use make
+</li>
+<li>
+copy the resulting mod_jk.so binary from the apache-1.3 or apache-2.0 subdirectory
+to the Apache httpd modules location.
+</li>
+<li>
+make clean (to remove all previously compiled object files)
+</li>
+<li>
+Start over with the apxs location for your next Apache httpd version.
+</li>
+</ul>
+
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="configure arguments"><strong>configure arguments</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+<table>
+ <tr valign="top"><th>Apache related parameters</th><th></th></tr>
+ <tr valign="top">
+ <td>--with-apxs[=FILE]</td>
+ <td>FILE is the location of the apxs tool. Default is finding apxs in PATH.
+It builds a shared Apache module. It detects automatically the Apache version.
+(2.0/2.2 and 1.3)</td>
+ </tr>
+ <tr valign="top"><td>--with-apache=DIR</td>
+ <td>DIR is the path where apache sources are located.
+The apache sources should have been configured before configuring mod_jk.
+DIR is something like: /home/apache/apache_1.3.19
+It builds a static Apache module.</td>
+ </tr>
+ <tr valign="top"><td>--enable-EAPI</td>
+ <td>This parameter is needed when using Apache-1.3 and mod_ssl, otherwise you will get the error message:
+"this module might crash under EAPI!" when loading mod_jk.so in httpd.
+Not needed when --with-apxs has been used</td>
+</tr>
+ <tr valign="top"><td>--enable-prefork</td>
+ <td>
+In case you build mod_jk for a multi-threaded Apache httpd 2.0/2.2 MPM (Multi-Processing Module),
+some areas of mod_jk code need to be synchronised to make it thread-safe.
+Because configure can not easily detect, whether your are using a multi-threaded MPM,
+mod_jk by default is always build thread-safe for Apache httpd 2.0/2.2.
+If you are sure, that your MPM is not multi-threaded, you can use "--enable-prefork"
+to force the removal of the synchronisation code (thus increasing performance a bit).
+For instance, the prefork MPM is not multi-threaded. For Apache httpd 1.3
+this flag will be set automatically.</td>
+</tr>
+ <tr valign="top"><td>--disable-trace</td>
+ <td>
+When using log level "trace", mod_jk traces a lot of function calls with
+"enter" and "exit" log messages. Even if the log level is not "trace",
+comparing the log levels to decide about logging has some performance
+impact.<br>
+If you use "--disable-trace", then the trace log code doesn't get compiled
+into the module binary and you might save some cycles during execution.<br>
+Even with "--disable-trace" logging debug messages with debug log level
+will still be possible.</td>
+</tr>
+ <tr valign="top"><td>--enable-api-compatibility</td>
+ <td>
+Only use httpd API functions available in all httpd production releases
+of the chosen major httpd release branch. This improves binary
+compatibility of module builds with httpd releases older than the release
+against mod_jk is build (only between minor httpd versions).</td>
+</tr>
+ <tr valign="top"><td>--enable-flock</td>
+ <td>
+In case the operating system supports flock system call use this flag to enable this
+faster locks that are implemented as system call instead emulated by GNU C library.<br>
+However those locks does not work on NFS mounted volumes, so you can use
+"--enable-flock" during compile time to force the flocks() calls.</td>
+</tr>
+
+</table>
+<br>
+<table>
+ <tr valign="top"><th>DEPRECATED: JNI related parameters</th><th></th></tr>
+ <tr valign="top"><td>--enable-jni</td>
+ <td>Build the JNI worker and so the build process will require
+some information about your Java Environment</td>
+ </tr>
+ <tr valign="top"><td>--with-java-home=DIR</td>
+ <td>DIR is the patch to the JDK root directory. Something like: /opt/java/jdk12</td>
+ </tr>
+ <tr valign="top"><td>--with-os-type=SUBDIR</td><td>SUBDIR is the os-type subdirectory,
+ configure should guess it correctly.</td>
+ </tr>
+ <tr valign="top"><td>--with-arch-type=SUBDIR</td><td>SUBDIR is the arch subdirectory,
+ configure should guess it correctly.</td>
+ </tr>
+ <tr valign="top"><td>--with-java-platform=VAL</td><td>VAL is the Java platform 1 is 1.1.x and 2 is for 1.2 and higher,
+ configure should guess it correctly.</td>
+ </tr>
+</table>
+</p>
+<p><font color="#ff0000">The JNI option has been deprecated. It will likely not work. Do not use it.</font></p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Examples of configure use"><strong>Examples of configure use</strong></a></font></td></tr><tr><td><blockquote>
+
+<p class="screen"><div align="left"><table width="80%" border="1" cellspacing="0" cellpadding="2" bgcolor="#000000"><tr><td bgcolor="#000000" align="left"><div class="screen">Apache 1.3 and 2.0/2.2 build</div><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">./configure --with-apxs=/usr/sbin/apxs</b></nobr></code><br><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">make</b></nobr></code><br><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">cp ./apache-1.3/mod_jk.so /usr/lib/apache</b></nobr></code><br><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">make clean</b></nobr></code><br><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">./configure --with-apxs=/usr/sbin/apxs2</b></nobr></code><br><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">make</b></nobr></code><br><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">cp ./apache-2.0/mod_jk.so /usr/lib/apache2</b></nobr></code><br></td></tr></table></div></p>
+
+<p class="screen"><div align="left"><table width="80%" border="1" cellspacing="0" cellpadding="2" bgcolor="#000000"><tr><td bgcolor="#000000" align="left"><div class="screen">Apache 2.0/2.2 build with JNI support</div><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">./configure --with-apxs2=/opt/apache2/bin/apxs \</b></nobr></code><br><code><nobr><em class="screen"> </em><b class="screen">--with-java-home=${JAVA_HOME} --with-java-platform=2 \</b></nobr></code><br><code><nobr><em class="screen"> </em><b class="screen">--enable-jni</b></nobr></code><br></td></tr></table></div></p>
+<p><font color="#ff0000">The JNI option has been deprecated. It will likely not work. Do not use it.</font></p>
+</blockquote></td></tr></table>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Building mod_jk for Apache on Windows NT/2K/XP"><strong>Building mod_jk for Apache on Windows NT/2K/XP</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+The module was developed using Visual C++ version 6.0, so having this environment is a prerequisite
+if you want to perform a custom build.
+</p>
+<p>
+The steps that you need to take are:
+</p>
+<ul>
+<li>
+Change directory to the apache 1.3 or apache 2.0 source directory depending on your version of Apache.
+</li>
+<li>
+If you want to build mod_jk for Apache 1.3, set an <b>APACHE1_HOME</b> environment variable which points
+to where your Apache 1.3 is installed.
+A mod_jk module for Apache 2.0 build will require <b>APACHE2_HOME</b> environment variable to be set.
+</li>
+<li>
+Copy mod_jk.so to Apache's modules directory.
+</li>
+</ul>
+<p>
+An example on how to build mod_jk for Apache 1.3:
+</p>
+<p class="screen"><div align="left"><table width="80%" border="1" cellspacing="0" cellpadding="2" bgcolor="#000000"><tr><td bgcolor="#000000" align="left"><div class="screen">Set location for Apache 1.3 sources</div><code><nobr><em class="screen">c:\&gt;</em><b class="screen">set APACHE1_HOME=c:\apache13</b></nobr></code><br><div class="screen">Change directory to the mod_jk module for Apache 1.3</div><code><nobr><em class="screen">c:\&gt;</em><b class="screen">cd c:\home\apache\jk\native\apache-1.3</b></nobr></code><br><div class="screen">Build the sources using MSDEV</div><code><nobr><em class="screen">c:\&gt;</em><b class="screen">MSDEV mod_jk.dsp /MAKE ALL</b></nobr></code><br><div class="screen">Copy the dll to your apache modules directory</div><code><nobr><em class="screen">c:\&gt;</em><b class="screen">cp release\mod_jk.so c:\apache13\modules\</b></nobr></code><br></td></tr></table></div></p>
+
+<p>
+An example on how to build mod_jk for Apache 2.0:
+</p>
+<p class="screen"><div align="left"><table width="80%" border="1" cellspacing="0" cellpadding="2" bgcolor="#000000"><tr><td bgcolor="#000000" align="left"><div class="screen">Set location for Apache 2.0 sources</div><code><nobr><em class="screen">c:\&gt;</em><b class="screen">set APACHE2_HOME=c:\apache20</b></nobr></code><br><div class="screen">Change directory to the mod_jk module for Apache 2.0</div><code><nobr><em class="screen">c:\&gt;</em><b class="screen">cd c:\home\apache\jk\native\apache-2.0</b></nobr></code><br><div class="screen">Build the sources using MSDEV</div><code><nobr><em class="screen">c:\&gt;</em><b class="screen">MSDEV mod_jk.dsp /MAKE ALL</b></nobr></code><br><div class="screen">Copy the dll to your apache modules directory</div><code><nobr><em class="screen">c:\&gt;</em><b class="screen">cp release\mod_jk.so c:\apache20\modules\</b></nobr></code><br></td></tr></table></div></p>
+
+<p>
+If msdev is not in your path, enter the full path to msdev.exe.
+Also, ApacheCore.lib is expected to exist in the <b>${APACHEX_HOME}\src\CoreD</b> and
+<b>${APACHEX_HOME}\src\CoreR</b> directories before linking will succeed.
+You will need to build enough of the Apache source to create these libraries.
+This will build both release and debug versions of the redirector plug-in (mod_jk).
+An alternative will be to open mod_jk.dsp in msdev and build it using the build menu.
+</p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Building mod_jk for Apache on System I - i5/OS (OS400)"><strong>Building mod_jk for Apache on System I - i5/OS (OS400)</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+Since OS400 V4R5, System I (AS/400) has used Apache 2.0 as their primary web server,
+replacing the old IBM webserver.
+It's now possible to build mod_jk on System I thanks to the help of the IBM
+Rochester Labs which has provided information and patches to adapt mod_jk to i5/OS.
+</p>
+<p>
+You should have at least Apache 2.0.58 (product 5722DG1), a C Compiler and IFS.
+Apache 2.0.58 is provided with the most recent set of PTFs for the iSeries Apache
+server, which can be found at <a href="http://www.ibm.com/servers/eserver/iseries/software/http/">
+http://www.ibm.com/servers/eserver/iseries/software/http/</a>
+</p>
+<p>
+The all latest Apache 2 for i5/OS V5R3 (or V5R4) is now 2.0.58 (as of 2007/04/17).
+Be sure to have the latest PTFs loaded if you want to make use of jk 1.2.15 and higher.
+NB: The latest mod_jk known to work on i5/OS V5R3 was 1.2.19.
+</p>
+<p>
+New in i5/OS V5R4, UTF is required, also for Apache modules, as such Apache modules do not require
+translations to/from EBCDIC but works should be done to port mod_jk 1.2.23 (and higher) to V5R4.
+
+From the V5R4 Infocenter :
+
+As of i5/OS(tm) V5R4, modules must be recompiled with a UTF locale. This creates an environment where locale-dependent C runtime functions assume
+that string data is encoded in UTF-8. Any hardcoded constants can be encoded in UTF-8 by adding a #pragma convert(1208) statement in the module.
+Additionally, input data from the client will no longer be converted to EBCDIC but will be passed as-is.
+Output data sent from the module is not converted either so it must be encoded in ASCII or UTF8 as required.
+APR and HTTP APIs as of V5R4, expect data in UTF-8. Note that several APIs have additional functions that allow a CCSID to be set to
+indicate the encoding of the parameters being passed. Conversion functions between UTF-8 and EBCDIC have been added.
+Be sure to review APIs used by your module to be aware of current changes.
+
+</p>
+<p>
+To configure mod_jk on System I use the CL source provided with the mod_jk source.
+</p>
+<ul>
+<li>
+Get the latest mod_jk source and untar it on a Windows or Unix boxes
+</li>
+<li>
+Create a directory in IFS, ie /home/apache
+</li>
+<li>
+Send the whole jk source directory to System I directory via FTP.
+</li>
+<li>
+Then go to the System I command line :
+</li>
+</ul>
+<p class="screen"><div align="left"><table width="80%" border="1" cellspacing="0" cellpadding="2" bgcolor="#000000"><tr><td bgcolor="#000000" align="left"><div class="screen">Create mod_jk library</div><code><nobr><em class="screen">===&gt;</em><b class="screen">CRTLIB MOD_JK TEXT(&#145;Apache mod'jk tomcat connector module')</b></nobr></code><br><div class="screen">Create service program source file</div><code><nobr><em class="screen">===&gt;</em><b class="screen">CRTSRCPF MOD_JK/QSRVSRC TEXT(&#145;Service program source file&#146;)</b></nobr></code><br><div class="screen">Create the CL build program source file</div><code><nobr><em class="screen">===&gt;</em><b class="screen">CRTSRCPF FILE(MOD_JK/QCLSRC) TEXT(&#145;Build program source file&#146;)</b></nobr></code><br><div class="screen">Edit the service program source file</div><code><nobr><em class="screen">===&gt;</em><b class="screen">STRSEU MOD_JK/QSRVSRC MOD_JK</b></nobr></code><br></td></tr></table></div></p>
+<p>
+In the edited file, specify that only jk_module should be exported :
+<p class="screen"><div align="left"><table width="80%" border="1" cellspacing="0" cellpadding="2" bgcolor="#000000"><tr><td bgcolor="#000000" align="left"><div class="screen"> Columns . . : 1 71 Edit MOD_JK/QSRVSRC </div><div class="screen"> SEU==&gt; MOD_JK </div><div class="screen"> *************** Beginning of data ************************************* </div><div class="screen">0001.00 STRPGMEXP PGMLVL(*CURRENT) </div><div class="screen">0002.00 EXPORT SYMBOL("jk_module") </div><div class="screen">0003.00 ENDPGMEXP </div><div class="screen"> ****************** End of data **************************************** </div></td></tr></table></div></p>
+</p>
+<p>
+You could start to build all the modules of mod_jk (cases for V5R4 or previous releases):
+</p>
+<p class="screen"><div align="left"><table width="80%" border="1" cellspacing="0" cellpadding="2" bgcolor="#000000"><tr><td bgcolor="#000000" align="left"><div class="screen">Copy the CL build program source for i5/OS before V5R4 from IFS</div><code><nobr><em class="screen">===&gt;</em><b class="screen">CPYFRMSTMF FROMSTMF('/home/apache/jk/native/apache-2.0/bldjk.qclsrc') +</b></nobr></code><br><div class="screen">TOMBR('/QSYS.LIB/MOD_JK.LIB/QCLSRC.FILE/BLDJK.MBR') MBROPT(*REPLACE)</div><div class="screen">Build the CL build program</div><code><nobr><em class="screen">===&gt;</em><b class="screen">CRTCLPGM PGM(MOD_JK/BLDJK) SRCFILE(MOD_JK/QCLSRC) TEXT('Apache mod_jk build program')</b></nobr></code><br><div class="screen">Launch the build</div><code><nobr><em class="screen">===&gt;</em><b class="screen">CALL MOD_JK/BLDJK</b></nobr></code><br><div class="screen">If the build if successfull, copy the new mod_jk module</div><code><nobr><em class="screen">===&gt;</em><b class="screen">CRTDUPOBJ OBJ(MOD_JK) FROMLIB(MOD_JK) OBJTYPE(*SRVPGM) TOLIB(QHTTPSVR) NEWOBJ(MOD_JK)</b></nobr></code><br></td></tr></table></div></p>
+<p class="screen"><div align="left"><table width="80%" border="1" cellspacing="0" cellpadding="2" bgcolor="#000000"><tr><td bgcolor="#000000" align="left"><div class="screen">Copy the CL build program source for i5/OS V5R4 from IFS</div><code><nobr><em class="screen">===&gt;</em><b class="screen">CPYFRMSTMF FROMSTMF('/home/apache/jk/native/apache-2.0/bldjk54.qclsrc') +</b></nobr></code><br><div class="screen">TOMBR('/QSYS.LIB/MOD_JK.LIB/QCLSRC.FILE/BLDJK54.MBR') MBROPT(*REPLACE)</div><div class="screen">Build the CL build program for i5/OS V5R4</div><code><nobr><em class="screen">===&gt;</em><b class="screen">CRTCLPGM PGM(MOD_JK/BLDJK54) SRCFILE(MOD_JK/QCLSRC) TEXT('Apache mod_jk build program') TGTRLS(*CURRENT)</b></nobr></code><br><div class="screen">Launch the build for i5/OS V5R4</div><code><nobr><em class="screen">===&gt;</em><b class="screen">CALL MOD_JK/BLDJK54</b></nobr></code><br><div class="screen">If the build if successfull, copy the new mod_jk module</div><code><nobr><em class="screen">===&gt;</em><b class="screen">CRTDUPOBJ OBJ(MOD_JK) FROMLIB(MOD_JK) OBJTYPE(*SRVPGM) TOLIB(QHTTPSVR) NEWOBJ(MOD_JK)</b></nobr></code><br></td></tr></table></div></p>
+<p>
+Next, you should restart your Apache 2.0 instance and enjoy this piece of OpenSource on System I.
+</p>
+<p class="screen"><div align="left"><table width="80%" border="1" cellspacing="0" cellpadding="2" bgcolor="#000000"><tr><td bgcolor="#000000" align="left"><div class="screen">ENDTCPSVR SERVER(*HTTP) HTTPSVR(MYSERVER)</div><div class="screen">STRTCPSVR SERVER(*HTTP) HTTPSVR(MYSERVER)</div></td></tr></table></div></p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Building mod_jk for Apache on MacOS/X"><strong>Building mod_jk for Apache on MacOS/X</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+Mac OS X (10.2.x) build notes :
+</p>
+<p>
+Assuming that you are root :
+</p>
+<p class="screen"><div align="left"><table width="80%" border="1" cellspacing="0" cellpadding="2" bgcolor="#000000"><tr><td bgcolor="#000000" align="left"><div class="screen">For Apache 1.3:</div><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">./configure --with-apxs=/usr/sbin/apxs</b></nobr></code><br><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">cd apache-1.3</b></nobr></code><br><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">make -f Makefile.apxs</b></nobr></code><br><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">cp mod_jk.so /etc/libexec/httpd</b></nobr></code><br><div class="screen">For Apache 2.0:</div><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">./configure --with-apxs=/usr/local/apache2/bin/apxs</b></nobr></code><br><div class="screen">(you should point to the directory where you installed Apache 2.0)</div><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">cd apache-2.0</b></nobr></code><br><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">make -f Makefile.apxs install</b></nobr></code><br></td></tr></table></div></p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Getting mod_jk linked statically with Apache"><strong>Getting mod_jk linked statically with Apache</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+mod_jk allows to install mod_jk in the Apache source tree to get a statically
+linked mod_jk. Having mod_jk in the httpd executable brings some performance
+improvements. The configure option --with-apache prepare mod_jk to install it
+in the Apache source tree.
+The option --with-apache works both for Apache-1.3 and Apache-2.0.
+The examples below show how to get mod_jk in the httpd process.
+</p>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Installation in Apache-2.0"><strong>Installation in Apache-2.0</strong></a></font></td></tr><tr><td><blockquote>
+<p class="screen"><div align="left"><table width="80%" border="1" cellspacing="0" cellpadding="2" bgcolor="#000000"><tr><td bgcolor="#000000" align="left"><div class="screen"> /home/apache20/httpd-2.0.43 is the directory where the httpd-2.0 sources
+are located. </div><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">./configure --with-apache=/home/apache20/httpd-2.0.43</b></nobr></code><br><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">make</b></nobr></code><br><div class="screen">Install the mod_jk library and other files in
+/home/apache20/httpd-2.0.43/modules: </div><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">make install</b></nobr></code><br><div class="screen"> It is not possible to configure Apache directly because the config.m4 of mod_jk must
+be added to the configure of httpd-2.0. </div><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">cd /home/apache20/httpd-2.0.43</b></nobr></code><br><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">sh buildconf</b></nobr></code><br><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">configure ... --with-mod_jk</b></nobr></code><br><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">make</b></nobr></code><br><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">make install</b></nobr></code><br></td></tr></table></div></p>
+<p>
+The enable-jk=share and enable-jk=static are not supported. --with-mod_jk only
+allow static linking of mod_jk.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Installation in Apache-1.3"><strong>Installation in Apache-1.3</strong></a></font></td></tr><tr><td><blockquote>
+<p class="screen"><div align="left"><table width="80%" border="1" cellspacing="0" cellpadding="2" bgcolor="#000000"><tr><td bgcolor="#000000" align="left"><div class="screen"> /home/apache/apache_1.3.27 is the directory where the apache-1.3 sources
+are located. </div><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">./configure --with-apache=/home/apache/apache_1.3.27</b></nobr></code><br><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">make</b></nobr></code><br><div class="screen">Install the libjk library, mod_jk.c, includes and other files in
+/home/apache/apache_1.3.27/src/modules/jk: </div><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">make install</b></nobr></code><br><div class="screen"> Configure in the Apache sources: </div><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">cd /home/apache/apache_1.3.27</b></nobr></code><br><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">configure ... --enable-module=dir --disable-shared=dir \</b></nobr></code><br><code><nobr><em class="screen"> </em><b class="screen"> --activate-module=src/modules/jk/libjk.a \</b></nobr></code><br><code><nobr><em class="screen"> </em><b class="screen"> --disable-shared=jk</b></nobr></code><br><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">make</b></nobr></code><br><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">make install</b></nobr></code><br></td></tr></table></div></p>
+<p>
+The --enable-shared=jk is also working and builds a dso file.
+</p>
+<p class="screen"><div align="left"><table width="80%" border="1" cellspacing="0" cellpadding="2" bgcolor="#000000"><tr><td bgcolor="#000000" align="left"><div class="screen"> Just change the configure in the Apache sources: </div><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">configure ... --enable-module=dir --enable-shared=dir \</b></nobr></code><br><code><nobr><em class="screen"> </em><b class="screen"> --activate-module=src/modules/jk/libjk.a \</b></nobr></code><br><code><nobr><em class="screen"> </em><b class="screen"> --enable-shared=jk</b></nobr></code><br></td></tr></table></div></p>
+</blockquote></td></tr></table>
+
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright &copy; 1999-2011, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html> \ No newline at end of file
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/docs/webserver_howto/iis.html b/rubbos/app/tomcat-connectors-1.2.32-src/docs/webserver_howto/iis.html
new file mode 100644
index 00000000..5dc4ea1b
--- /dev/null
+++ b/rubbos/app/tomcat-connectors-1.2.32-src/docs/webserver_howto/iis.html
@@ -0,0 +1,685 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>The Apache Tomcat Connector - Webserver HowTo - IIS HowTo</title><meta name="author" value="Henri Gomez"><meta name="email" value="hgomez@apache.org"><meta name="author" value="Gal Shachor"><meta name="email" value="shachor@il.ibm.com"><meta name="author" value="Yoav Shapira"><meta name="email" value="yoavs@apache.org"><link href="../style.css" type="text/css" rel="stylesheet"></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="4"><!--PAGE HEADER--><tr><td colspan="2"><!--TOMCAT LOGO--><a href="http://tomcat.apache.org/"><img src="../images/tomcat.gif" align="left" alt="Apache Tomcat" border="0"></a><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="http://www.apache.org/images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><tr><!--LEFT SIDE NAVIGATION--><td width="20%" valign="top" nowrap="true"><p><strong>Links</strong></p><ul><li><a href="../index.html">Docs Home</a></li></ul><p><strong>Reference Guide</strong></p><ul><li><a href="../reference/workers.html">workers.properties</a></li><li><a href="../reference/uriworkermap.html">uriworkermap.properties</a></li><li><a href="../reference/status.html">Status Worker</a></li><li><a href="../reference/apache.html">Apache HTTP Server</a></li><li><a href="../reference/iis.html">IIS</a></li></ul><p><strong>Generic HowTo</strong></p><ul><li><a href="../generic_howto/quick.html">For the impatient</a></li><li><a href="../generic_howto/workers.html">All about workers</a></li><li><a href="../generic_howto/timeouts.html">Timeouts</a></li><li><a href="../generic_howto/loadbalancers.html">Load Balancing</a></li><li><a href="../generic_howto/proxy.html">Reverse Proxy</a></li></ul><p><strong>Webserver HowTo</strong></p><ul><li><a href="../webserver_howto/apache.html">Apache HTTP Server</a></li><li><a href="../webserver_howto/iis.html">IIS</a></li><li><a href="../webserver_howto/nes.html">Netscape/SunOne/Sun</a></li></ul><p><strong>AJP Protocol Reference</strong></p><ul><li><a href="../ajp/ajpv13a.html">AJPv13</a></li><li><a href="../ajp/ajpv13ext.html">AJPv13 Extension Proposal</a></li></ul><p><strong>Miscellaneous Documentation</strong></p><ul><li><a href="../miscellaneous/faq.html">Frequently asked questions</a></li><li><a href="../miscellaneous/changelog.html">Changelog</a></li><li><a href="http://issues.apache.org/bugzilla/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Tomcat+Connectors&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=">Current Tomcat Connectors bugs</a></li><li><a href="../miscellaneous/doccontrib.html">Contribute documentation</a></li><li><a href="../miscellaneous/jkstatustasks.html">JK Status Ant Tasks</a></li><li><a href="../miscellaneous/reporttools.html">Reporting Tools</a></li><li><a href="http://tomcat.apache.org/connectors-doc-archive/jk2/index.html">Old JK/JK2 documentation</a></li></ul><p><strong>News</strong></p><ul><li><a href="../news/20110701.html">2011</a></li><li><a href="../news/20100101.html">2010</a></li><li><a href="../news/20090301.html">2009</a></li><li><a href="../news/20081001.html">2008</a></li><li><a href="../news/20070301.html">2007</a></li><li><a href="../news/20060101.html">2006</a></li><li><a href="../news/20050101.html">2005</a></li><li><a href="../news/20041100.html">2004</a></li></ul></td><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left"><table border="0" width="100%" cellspacing="4"><tr><td align="left" valign="top"><h1>The Apache Tomcat Connector - Webserver HowTo</h1><h2>IIS HowTo</h2></td><td align="right" valign="top" nowrap="true"><small><a href="printer/iis.html"><img src="../images/printer.gif" border="0" alt="Printer Friendly Version"><br>print-friendly<br>version
+ </a></small></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+This document explains how to set up IIS to cooperate with Tomcat.
+</p>
+
+<p>
+Normally IIS can not execute Servlets and Java Server Pages (JSPs),
+configuring IIS to use the JK ISAPI redirector plugin will let IIS send servlet and
+JSP requests to Tomcat (and this way, serve them to clients).
+</p>
+
+<p>
+It is recommended that you also read the
+<a href="../generic_howto/workers.html">Workers HowTo</a> document
+to learn how to setup the working entities between your web server and Tomcat Engines.
+For more detailed configuration information consult the Reference Guide for
+<a href="../reference/workers.html">workers.properties</a>,
+<a href="../reference/uriworkermap.html">uriworkermap</a>
+and <a href="../reference/iis.html">IIS</a>.
+</p>
+
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Document Conventions and Assumptions"><strong>Document Conventions and Assumptions</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+${tomcat_home} is the root directory of tomcat.
+Your Tomcat installation should have the following subdirectories:
+
+<ul>
+<li>
+${tomcat_home}\conf - Where you can place various configuration files
+</li>
+<li>
+${tomcat_home}\webapps - Containing example applications
+</li>
+<li>
+${tomcat_home}\bin - Where you place web server plugins
+</li>
+</ul>
+</p>
+<p>
+In all the examples in this document ${tomcat_home} will be <b>c:\tomcat</b>.
+A worker is defined to be a tomcat process that accepts work from the IIS server.
+</p>
+</blockquote></td></tr></table>
+
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Supported Configuration"><strong>Supported Configuration</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+The IIS-Tomcat redirector was developed and tested on:
+<ul>
+<li>
+WinNT4.0-i386 SP4/SP5/SP6a (should be able to work with other service packs), Win2K and WinXP and Win98
+</li>
+<li>
+IIS4.0 and PWS4.0 (numerous people have working IIS 5 and IIS 6 configurations)
+</li>
+<li>
+Tomcat 3.2 and later, Tomcat 4.x, Tomcat 5 and 5.5 and Tomcat 6
+</li>
+</ul>
+</p>
+
+<p>
+The redirector uses <b>ajp12</b> and <b>ajp13</b> to send requests to the Tomcat containers. There is also an option to use Tomcat in process,
+more about the in-process mode can be found in the in process howto.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="IIS 5 and 6 Notes"><strong>IIS 5 and 6 Notes</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+There are extra steps you need to take for configuring Tomcat with IIS 5 and 6. Please see the appropriate links from
+<a href="http://wiki.apache.org/tomcat/Tomcat/Links">Tomcat Useful Links</a>.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="IIS 7 notes"><strong>IIS 7 notes</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+There is a known bug in IIS that may result in incomplete log messages. See <a href="https://issues.apache.org/bugzilla/show_bug.cgi?id=45769">bug 45769</a>
+for further details.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Who support ajp protocols ?"><strong>Who support ajp protocols ?</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+The ajp12 protocol is only available in Tomcat 3.2.x and 3.3.x.
+</p>
+
+<p>
+The <b>ajp12</b> has been <b>deprecated</b> with Tomcat 3.3.x and you should use instead
+<b>ajp13</b> which is the only ajp protocol known by Tomcat 4.x, 5 and 5.5 and Tomcat 6.
+</p>
+
+<p>
+Of course Tomcat 3.2.x and 3.3.x also support ajp13 protocol.
+</p>
+
+<p>
+Others servlet engines such as <b>jetty</b> have support for ajp13 protocol
+</p>
+
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="How does it work ?"><strong>How does it work ?</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+<ol>
+<li>
+The IIS-Tomcat redirector is an IIS plugin (filter + extension), IIS load the redirector plugin and calls its
+filter function for each in-coming request.
+</li>
+<li>
+The filter then tests the request URL against a list of URI-paths held inside uriworkermap.properties,
+If the current request matches one of the entries in the list of URI-paths,
+the filter transfers the request to the extension.
+</li>
+<li>
+The extension collects the request parameters and forwards them to the appropriate worker using the defined
+protocol like <b>ajp13</b>.
+</li>
+<li>
+The extension collects the response from the worker and returns it to the browser.
+</li>
+</ol>
+</p>
+</blockquote></td></tr></table>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Installation"><strong>Installation</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+A pre-built version of the ISAPI redirector server plugin, isapi_redirect.dll, is available under
+the win32/i386 directory of tomcat-connectors distribution.
+For those using Netscape as your browser, try downloading a zip version of the file, if available.
+There can be problems using Netscape to download DLL files.
+
+You can also build a copy locally from the source present in tomcat-connectors distribution.
+
+The Tomcat redirector requires three entities:
+
+<ul>
+<li>
+<b>isapi_redirect.dll</b> - The IIS server plugin, either obtain a pre-built DLL or build it yourself (see the build section).
+</li>
+<li>
+<b><a href="../reference/workers.html">workers.properties</a></b> - A file that describes the host(s) and port(s) used by the workers (Tomcat processes).
+A sample workers.properties can be found under the conf directory.
+</li>
+<li>
+<b><a href="../reference/uriworkermap.html">uriworkermap.properties</a></b> - A file that maps URL-Path patterns to workers.
+A sample uriworkermap.properties can be found under the conf directory as well.
+</li>
+</ul>
+</p>
+
+<p>
+The installation includes the following parts:
+
+<ul>
+<li>
+Configuring the ISAPI redirector with a default /examples context and checking that you can serve servlets with IIS.
+</li>
+<li>
+Adding more contexts to the configuration.
+</li>
+</ul>
+</p>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Configuring the ISAPI Redirector"><strong>Configuring the ISAPI Redirector</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+In this document I will assume that isapi_redirect.dll is placed in
+<b>c:\tomcat\bin\win32\i386\isapi_redirect.dll</b> and
+that the properties files which you created are in <b>c:\tomcat\conf</b>.
+</p>
+<p>
+<ol>
+<li>
+In the registry, create a new registry key named
+<b>"HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Jakarta Isapi Redirector\1.0"</b>
+</li>
+<li>
+Add a string value with the name <b>extension_uri</b> and a value of <b>/jakarta/isapi_redirect.dll</b>
+</li>
+<li>
+Add a string value with the name <b>log_file</b> and a value pointing to where you want your
+log file to be (for example <b>c:\tomcat\logs\isapi.log</b>).
+</li>
+<li>
+Add a string value with the name <b>log_level</b> and a value for your log level
+(can be debug, info, error or emerg).
+</li>
+<li>
+Add a string value with the name <b>worker_file</b> and a value which is the full path
+to your workers.properties file (for example <b>c:\tomcat\conf\workers.properties</b>)
+</li>
+<li>
+Add a string value with the name <b>worker_mount_file</b> and a value which is the full path
+to your uriworkermap.properties file (for example <b>c:\tomcat\conf\uriworkermap.properties</b>)
+</li>
+<li>
+Using the IIS management console, add a new virtual directory to your IIS/PWS web site.
+The name of the virtual directory must be jakarta.
+Its physical path should be the directory where you placed isapi_redirect.dll
+(in our example it is c:\tomcat\bin\win32\i386).
+While creating this new virtual directory assign it with execute access.
+</li>
+<li>
+Using the IIS management console, add isapi_redirect.dll as a filter in your IIS/PWS web site.
+The name of the filter should reflect its task (I use the name tomcat),
+its executable must be our c:\tomcat\bin\win32\i386\isapi_redirect.dll.
+For PWS, you'll need to use regedit and add/edit the <b>"Filter DLLs"</b> key under
+<b>HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\W3SVC\Parameters</b>.
+This key contains a "," separated list of dlls (full paths) -
+you need to insert the full path to isapi_redirect.dll.
+</li>
+<li>
+If you're using IIS 6.0 you must also do the following:
+<br>
+Using the IIS management console, add the Jakarta Isapi Redirector to the Web
+Service Extensions.
+<ol>
+<li>Right-click on Web Service Extensions and choose Add a new Web Service
+Extension.</li>
+<li>Enter tomcat for the Extension Name.</li>
+<li>Add the isapi_redirect.dll to the required files.</li>
+<li>Check the Set extension status to Allowed.</li>
+<li>Click on OK.</li>
+</ol>
+</li>
+<li>
+Restart IIS (stop + start the IIS service), make sure that the tomcat filter is marked with a green up-pointing arrow.
+Under Win98 you may need to <b>cd WINDOWS\SYSTEM\inetsrv</b> and type PWS /stop
+( the DLL and log files are locked - even if you click the stop button,
+PWS will still keep the DLLs in memory. ). Type pws to start it again.
+</li>
+</ol>
+</p>
+<p>
+That's all, you should now start Tomcat and ask IIS to serve you the /examples context.
+Try <a href="http://localhost/examples/jsp/index.html">http://localhost/examples/jsp/index.html</a> for example and
+execute some of the JSP examples.
+</p>
+<p>
+If this does not work successfully, refer to the Troubleshooting section below for help on correcting the problem.
+</p>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Adding additional Contexts"><strong>Adding additional Contexts</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+The examples context is useful for verifying your installation,
+but you will also need to add your own contexts. Adding a new context requires two operations:
+</p>
+<p>
+<ol>
+<li>
+Adding the context to Tomcat (I am not going to talk about this).
+</li>
+<li>
+Adding the context to the ISAPI redirector.
+</li>
+</ol>
+</p>
+<p>
+Adding a context to the ISAPI redirector is simple, all you need to do is to edit
+your uriworkermap.properties and to add a line that looks like:
+</p>
+
+<div class="example"><pre>
+ /context/*=worker_name
+</pre></div>
+
+<p>
+Workers and their name are defined in workers.properties, by default workers.properties comes
+with a single pre-configured worker named <b>"defworker"</b> so you can use it.
+As an example, if you want to add a context named "shop", the line that you should add to
+uriworkermap.properties will be:
+</p>
+
+<div class="example"><pre>
+ /shop/*=defworker
+</pre></div>
+
+After saving uriworkermap.properties restart IIS and it will serve the new context.
+<p>
+The above should be all you need for IIS to pass through to Tomcat any request for any URI which corresponds
+to a Tomcat context (webapp).
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Advanced Context Configuration"><strong>Advanced Context Configuration</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+If your webiste is very busy (more than 100 requests/second, or more than 100 simultaneous client connections),
+it might sometimes be desirable to have IIS serve static content (html, gif, jpeg etc.) directly,
+even if these files are part of a context served by Tomcat. Allowing IIS to serve such files directly may
+ avoid the small overhead consisting of passing the request to Tomcat via the redirector, and may free up
+ Tomcat somewhat, by using it only to process requests that only Tomcat can handle (e.g. requests to JSP pages and java servlets).
+</p>
+<p>
+For example, consider the html and gif files in the examples context : you could serve these files directly
+with IIS; there is no need to serve them from the Tomcat process.
+</p>
+<p><font color="#ff0000">However, you should be very careful when you implement the following configuration style, because by doing so you are
+in fact providing a "back-door" to IIS, and allowing it to serve files out of a Tomcat context without Tomcat's knowledge,
+thus bypassing any security
+restrictions which Tomcat itself and the Tomcat context (webapp) may place on those files.</font></p>
+<p>
+Making IIS serve static files that are part of the Tomcat contexts requires the following:
+<ol>
+<li>
+Configuring IIS to know about the Tomcat contexts
+</li>
+<li>
+Configuring the redirector to leave the static files for IIS
+</li>
+</ol>
+</p>
+
+<p>
+Adding a Tomcat context to IIS requires the addition of a new IIS virtual directory that covers the Tomcat context.
+For example adding a /example IIS virtual directory that covers the c:\tomcat\webapps\examples directory.
+</p>
+
+<p>
+Configuring the redirector is somewhat harder, you will need to specify the exact
+URL-Path pattern(s) which you want Tomcat to handle (usually only JSP files and servlets).
+This requires a change to the uriworkermap.properties :
+
+<div class="example"><pre>
+ For the examples context it requires to replace the following line
+ /examples/*=defworker
+ with the following two lines
+ /examples/*.jsp=defworker
+ /examples/servlet/*=defworker
+</pre></div>
+</p>
+
+<p>
+As you can see the second configuration is more explicit, it actually instruct the redirector
+to redirect only requests to resources under /examples/servlet/ and resources under /examples/
+whose name ends with .jsp.
+</p>
+
+<p>
+You can even be more explicit and provide lines such as:
+
+<div class="example"><pre>
+ /example/servletname=defworker
+</pre></div>
+</p>
+
+<p>
+that instructs the redirector to redirect all requests whose URL-path matches the leading string "/example/servletname"
+to the worker named defworker.
+</p>
+
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Protecting the content of your Tomcat contexts"><strong>Protecting the content of your Tomcat contexts</strong></a></font></td></tr><tr><td><blockquote>
+<p>Once again, be aware that by allowing IIS to access the content of your Tomcat context directly, you are
+potentially bypassing Tomcat's protection of that content. You should thus make sure to protect this content
+at the IIS level if needed, by using the corresponding IIS management console functions.
+</p>
+<p>
+In particular, each servlet application (context) has a special directory named WEB-INF,
+which contains sensitive configuration data and Java classes, and which should always be kept hidden from web users.
+Using the IIS management console it is possible to protect the WEB-INF directory from user access, but considering that
+this is a general requirement, and considering that it is easy to forget to implement this protection
+at the IIS level, the redirector plugin does it automatically for you, and it will reject any request
+which contains WEB-INF in its URL-path.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Advanced Worker Configuration"><strong>Advanced Worker Configuration</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+Sometimes you may want to serve different contexts with different Tomcat processes
+(for example to spread the load among different machines).
+To achieve such a goal you will need to define several workers and assign each context to its own worker.
+</p>
+<p>
+Defining additional workers is done in the workers.properties file. This file includes two types of entries:
+</p>
+
+<p>
+<div class="example"><pre>
+ # An entry that lists all the workers defined
+ worker.list=worker1, worker2
+ # Entries that define the host and port associated with each of these workers
+ worker.worker1.host=localhost
+ worker.worker1.port=8009
+ worker.worker1.type=ajp13
+ worker.worker2.host=otherhost
+ worker.worker2.port=8009
+ worker.worker2.type=ajp13
+</pre></div>
+</p>
+
+<p>
+The above example defined two workers, now we can use these workers to serve two different contexts
+each with its own worker:
+<div class="example"><pre>
+ example uriworkermap.properties fragment
+ /examples/*=worker1
+ /webpages/*=worker2
+</pre></div>
+</p>
+
+<p>
+As you can see the <b>examples</b> context is served by <b>worker1</b> while the
+<b>webpages</b> context is served by <b>worker2</b>.
+</p>
+
+<p>
+More information on using and configuring workers in the <a href="../generic_howto/workers.html">Workers HowTo</a>
+and in the <a href="../reference/workers.html">worker.properties configuration reference</a>.
+</p>
+
+</blockquote></td></tr></table>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Building ISAPI redirector"><strong>Building ISAPI redirector</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+The redirector was developed using Visual C++ Ver.6.0, so having this environment is a prerequisite if you want
+to perform a custom build. You should also have the IIS developer SDK.
+
+The steps that you need to take are:
+<ul>
+<li>
+Change directory to the isapi plugins source directory.
+</li>
+<li>
+Make the source with MSDEV
+</li>
+</ul>
+<p class="screen"><div align="left"><table width="80%" border="1" cellspacing="0" cellpadding="2" bgcolor="#000000"><tr><td bgcolor="#000000" align="left"><div class="screen">Change directory to the isapi plugins source directory</div><code><nobr><em class="screen">c:\&gt;</em><b class="screen">cd c:\home\apache\jk\iis</b></nobr></code><br><div class="screen">Build the sources using MSDEV</div><code><nobr><em class="screen">c:\&gt;</em><b class="screen">MSDEV isapi.dsp /MAKE ALL</b></nobr></code><br></td></tr></table></div></p>
+</p>
+<p>
+If msdev is not in your path, enter the full path to msdev.exe.
+This will build both release and debug versions of the redirector plugin.
+An alternative will be to open the isapi workspace file (isapi.dsw) in msdev and
+build it using the build menu.
+</p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Troubleshooting"><strong>Troubleshooting</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+It is easy to have the ISAPI redirector not work the first time you try to install it.
+</p>
+<p>
+If this happens to you, here are some steps to follow to try to correct the problem.
+</p>
+<p>
+These steps aren't guaranteed to cover all possible problems,
+but they should help find the typical mistakes.
+</p>
+<p>
+If you make any corrections during these steps, restart the IIS service as described above in the last step
+of the installation, then retry the step.
+</p>
+
+<p>To enable error tracking, make sure web site activity is being logged.
+For PWS 4.0 make sure "Save Web Site Activity Log" is checked in the Advanced Options of the Personal Web Manager.
+</p>
+
+<p>
+Note: These steps assume your <b>worker_mount_file</b> setting points to an unmodified copy of the
+<b>uriworkermap.properties</b> file.<br>
+Results may be misleading if <b>worker_mount_file</b> points to a modified <b>uriworkermap.properties</b>
+or the <b>uriworkermap.properties-auto</b> file.<br>
+It is also assumed that the <b>"/examples" context</b> works correctly if you access Tomcat directly.
+</p>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Win98"><strong>Win98</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+Start the IIS service and Tomcat.
+</p>
+<p>
+Check for the presence of the ISAPI redirector log file you specified in the log_file setting.
+If not found, verify the following:
+</p>
+<ul>
+<li>
+Check the "Filter DLLs" setting in the "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\W3SVC\Parameters"
+key and make sure the path is correct.
+</li>
+<li>
+Check the spelling of the "HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Jakarta Isapi Redirector\1.0" key.
+Case isn't important, but an incorrect letter will prevent the isapi_redirect.dll from finding its registry settings.
+</li>
+<li>
+Check the log_file setting for typos, name and data. Also insure the directory in which the log file will appear already exists.
+</li>
+If the above are set correctly, the ISAPI redirector should be able to create the log file.
+</ul>
+<p>
+Invoke the URL <a href="http://localhost/examples/jsp/index.html">http://localhost/examples/jsp/index.html</a>
+in your browser.
+Case is important in Tomcat. The characters following "localhost" in the URL must be lower case.
+If the page fails to appear, stop the IIS service (required to view the IIS log file).
+Then examine the last line in the IIS log file in found in SYSTEM/LogFiles/W3SVC1 :
+</p>
+<p>
+If the last line contains:
+</p>
+<div class="example"><pre>
+ GET "/examples/jsp/index.html HTTP/1.1" 404
+</pre></div>
+<p>
+then the ISAPI redirector is not recognising that it should be handling requests for the "/examples" context.
+Check the following:
+</p>
+<ul>
+<li>
+Check the extension_uri name for typos.
+</li>
+<li>
+Check the worker_file setting for typos, name and data.
+</li>
+<li>
+Check the worker_mount_file setting typos, name and data.
+</li>
+If these are set correctly, the ISAPI redirector should recognise that it should handle requests for the "/examples" context.
+</ul>
+
+<p>If the last line contains something like:
+</p>
+
+<div class="example"><pre>
+ GET "/jakarta/isapi_redirect.dll HTTP1.1"
+</pre></div>
+
+<p>
+then the ISAPI redirector is recognising that it should handle the request,
+but is not successful at getting Tomcat to service the request.
+</p>
+
+<p>
+You should check the HTTP error code following GET "/..." :
+</p>
+
+<div class="example"><pre>
+ Error 404
+ GET "/..." 404
+</pre></div>
+
+<ul>
+<li>
+Make sure you entered the URL correctly.
+</li>
+<li>
+Make sure the virtual directory created was called "jakarta".
+It should display in Personal Web Manager as "/jakarta" (without the quotes).
+</li>
+<li>
+Make sure the extension_uri data begins with "/jakarta/" (without the quotes).
+</li>
+</ul>
+
+<div class="example"><pre>
+ Error 500
+ GET "/..." 500
+</pre></div>
+
+<ul>
+<li>
+Make sure that "isapi_redirect.dll" follows "/jakarta/" in the extension_uri setting.
+</li>
+<li>
+Check the workers.properties file and make sure the port setting for worker.ajp12.port is the same as the port specified in the server.xml for the "Apache AJP12 support".
+</li>
+</ul>
+
+<div class="example"><pre>
+ Error 200 or 403
+ GET "/..." 200
+ GET "/..." 403
+</pre></div>
+
+<ul>
+<li>
+Make sure you have checked Execute Access
+for the jakarta virtual directory in the Advanced Options of the Personal Web Manager.
+</li>
+</ul>
+
+<p>
+If the above settings are correct, the index.html page should appear in your browser.
+You should also be able to click the Execute links to execute the JSP examples.
+</p>
+
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="WinNT/Win2K/WinXP"><strong>WinNT/Win2K/WinXP</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+Start the World Wide Web Publishing Service and Tomcat.
+</p>
+<p>
+Check for the presence of the ISAPI redirector log file you specified in the log_file setting.
+If not found, check the following:
+</p>
+<ul>
+<li>
+Check the "executable" you set for the filter in the IIS Management Console and make sure the path is correct.
+</li>
+<li>Check the spelling of the "HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Jakarta Isapi Redirector\1.0" key.
+Case isn't important, but an incorrect letter will prevent the isapi_redirect.dll from finding its registry settings.
+</li>
+<li>
+Check the log_file setting for typos, name and data. Also insure the directory in which the log file will appear already exists.
+</li>
+If the above are set correctly, the ISAPI redirector should be able to create the log file.
+</ul>
+
+<p>
+Check the tomcat filter you added and make sure its status shows a green upward-pointing arrow.
+If not, check the following:
+</p>
+<ul>
+<li>
+Check the worker_file setting for typos, name and data.
+</li>
+<li>
+Check the worker_mount_file setting typos, name and data.
+</li>
+If the above are set correctly, the green upward-pointing arrow should appear, even if the other settings are wrong.
+</ul>
+
+<p>
+Invoke the URL <a href="http://localhost/examples/jsp/index.html">http://localhost/examples/jsp/index.html</a>
+in your browser. Case is important in Tomcat. The characters following "localhost" in the URL must be lower case.
+If the page fails to appear, examine the last line in the IIS server log file in found in SYSTEM32/LogFiles/W3SVC1.
+</p>
+
+<p>
+The last line should contain something like: GET "/jakarta/isapi_redirect.dll HTTP1.1",
+which indicates the ISAPI redirector is recognising that it should handle the request.
+</p>
+
+<p>
+You should check the HTTP error code following GET "/..." :
+</p>
+
+<div class="example"><pre>
+ Error 404
+ GET "/..." 404
+</pre></div>
+
+<ul>
+<li>
+Make sure you entered the URL correctly.
+</li>
+</ul>
+
+<div class="example"><pre>
+ Error 500
+ GET "/..." 500
+</pre></div>
+
+<ul>
+<li>
+Make sure the virtual directory created was called "jakarta".
+</li>
+<li>
+Make sure that the extension_uri setting is correct.
+</li>
+<li>
+Check the workers.properties file and make sure the port setting for worker.ajp12.port is the same as the port specified in the server.xml for the "Apache AJP12 support".
+</li>
+</ul>
+
+<div class="example"><pre>
+ Error 200 or 403
+ GET "/..." 200
+ GET "/..." 403
+</pre></div>
+
+<ul>
+<li>
+Make sure you have checked Execute Access for the jakarta virtual directory in the
+Advanced Options of the Personal Web Manager.
+</li>
+</ul>
+
+<p>
+If the above settings are correct, the index.html page should appear in your browser.
+You should also be able to click the Execute links to execute the JSP examples.
+</p>
+</blockquote></td></tr></table>
+
+
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright &copy; 1999-2011, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html> \ No newline at end of file
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/docs/webserver_howto/nes.html b/rubbos/app/tomcat-connectors-1.2.32-src/docs/webserver_howto/nes.html
new file mode 100644
index 00000000..e9d60a2e
--- /dev/null
+++ b/rubbos/app/tomcat-connectors-1.2.32-src/docs/webserver_howto/nes.html
@@ -0,0 +1,483 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>The Apache Tomcat Connector - Webserver HowTo - SunOne -- Netscape/iPlanet HowTo</title><meta name="author" value="Henri Gomez"><meta name="email" value="hgomez@apache.org"><meta name="author" value="Jim Jagielski"><meta name="email" value="jim@apache.org"><meta name="author" value="Gal Shachor"><meta name="email" value="shachor@il.ibm.com"><meta name="author" value="Mladen Turk"><meta name="email" value="mturk@apache.org"><link href="../style.css" type="text/css" rel="stylesheet"></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="4"><!--PAGE HEADER--><tr><td colspan="2"><!--TOMCAT LOGO--><a href="http://tomcat.apache.org/"><img src="../images/tomcat.gif" align="left" alt="Apache Tomcat" border="0"></a><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="http://www.apache.org/images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><tr><!--LEFT SIDE NAVIGATION--><td width="20%" valign="top" nowrap="true"><p><strong>Links</strong></p><ul><li><a href="../index.html">Docs Home</a></li></ul><p><strong>Reference Guide</strong></p><ul><li><a href="../reference/workers.html">workers.properties</a></li><li><a href="../reference/uriworkermap.html">uriworkermap.properties</a></li><li><a href="../reference/status.html">Status Worker</a></li><li><a href="../reference/apache.html">Apache HTTP Server</a></li><li><a href="../reference/iis.html">IIS</a></li></ul><p><strong>Generic HowTo</strong></p><ul><li><a href="../generic_howto/quick.html">For the impatient</a></li><li><a href="../generic_howto/workers.html">All about workers</a></li><li><a href="../generic_howto/timeouts.html">Timeouts</a></li><li><a href="../generic_howto/loadbalancers.html">Load Balancing</a></li><li><a href="../generic_howto/proxy.html">Reverse Proxy</a></li></ul><p><strong>Webserver HowTo</strong></p><ul><li><a href="../webserver_howto/apache.html">Apache HTTP Server</a></li><li><a href="../webserver_howto/iis.html">IIS</a></li><li><a href="../webserver_howto/nes.html">Netscape/SunOne/Sun</a></li></ul><p><strong>AJP Protocol Reference</strong></p><ul><li><a href="../ajp/ajpv13a.html">AJPv13</a></li><li><a href="../ajp/ajpv13ext.html">AJPv13 Extension Proposal</a></li></ul><p><strong>Miscellaneous Documentation</strong></p><ul><li><a href="../miscellaneous/faq.html">Frequently asked questions</a></li><li><a href="../miscellaneous/changelog.html">Changelog</a></li><li><a href="http://issues.apache.org/bugzilla/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Tomcat+Connectors&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=">Current Tomcat Connectors bugs</a></li><li><a href="../miscellaneous/doccontrib.html">Contribute documentation</a></li><li><a href="../miscellaneous/jkstatustasks.html">JK Status Ant Tasks</a></li><li><a href="../miscellaneous/reporttools.html">Reporting Tools</a></li><li><a href="http://tomcat.apache.org/connectors-doc-archive/jk2/index.html">Old JK/JK2 documentation</a></li></ul><p><strong>News</strong></p><ul><li><a href="../news/20110701.html">2011</a></li><li><a href="../news/20100101.html">2010</a></li><li><a href="../news/20090301.html">2009</a></li><li><a href="../news/20081001.html">2008</a></li><li><a href="../news/20070301.html">2007</a></li><li><a href="../news/20060101.html">2006</a></li><li><a href="../news/20050101.html">2005</a></li><li><a href="../news/20041100.html">2004</a></li></ul></td><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left"><table border="0" width="100%" cellspacing="4"><tr><td align="left" valign="top"><h1>The Apache Tomcat Connector - Webserver HowTo</h1><h2>SunOne -- Netscape/iPlanet HowTo</h2></td><td align="right" valign="top" nowrap="true"><small><a href="printer/nes.html"><img src="../images/printer.gif" border="0" alt="Printer Friendly Version"><br>print-friendly<br>version
+ </a></small></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+This document explains how to set up Sun ONE Web Server previously known as
+Netscape web servers to cooperate with Tomcat.
+</p>
+
+<p>
+Normally the Sun ONE Web Servers come with their own Servlet engine,
+but you can also configure them to send servlet and JSP requests to Tomcat
+using the NSAPI redirector plugin.
+</p>
+
+<p>
+It is recommended that you also read the <a href="../generic_howto/workers.html">Workers HowTo</a> document
+to learn how to setup the working entities between your web server and Tomcat Engines.
+</p>
+
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Document Conventions and Assumptions"><strong>Document Conventions and Assumptions</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+${tomcat_home} is the root directory of tomcat.
+Your Tomcat installation should have the following subdirectories:
+
+<ul>
+<li>
+${tomcat_home}\conf - Where you can place various configuration files
+</li>
+<li>
+${tomcat_home}\webapps - Containing example applications
+</li>
+<li>
+${tomcat_home}\bin - Where you place web server plugins
+</li>
+</ul>
+</p>
+<p>
+In all the examples in this document ${tomcat_home} will be <b>c:\tomcat</b>.
+A worker is defined to be a tomcat process that accepts work from the Sun ONE Web Server.
+</p>
+</blockquote></td></tr></table>
+
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Supported Configuration"><strong>Supported Configuration</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+The NSAPI-Tomcat redirector was developed and tested on:
+<ul>
+<li>
+WINNT 2000/XP/2003 (should be able to work with other service packs) and some Unixes
+</li>
+<li>
+Sun ONE Web Server 6.1
+</li>
+<li>
+Tomcat 4.1.x , Tomcat 5.0.x and Tomcat 5.5.x
+</li>
+</ul>
+</p>
+
+<p>
+The redirector uses <b>ajp12</b> and <b>ajp13</b> to send requests to the Tomcat containers.
+There is also an option to use Tomcat in process,
+more about the in-process mode can be found in the in process howto.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Who support ajp protocols ?"><strong>Who support ajp protocols ?</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+The ajp12 protocol is only available in Tomcat 3.2.x and 3.3.x.
+</p>
+
+<p>
+The <b>ajp12</b> has been <b>deprecated</b> with Tomcat 3.3.x and you should use instead
+<b>ajp13</b> which is the only ajp protocol known by Tomcat 4.0.x, 4.1.x, 5.0.x, 5.5.x and 6.
+</p>
+
+<p>
+Of course Tomcat 3.2.x and 3.3.x also support ajp13 protocol.
+</p>
+
+<p>
+Others servlet engines such as <b>jetty</b> have support for ajp13 protocol
+</p>
+
+</blockquote></td></tr></table>
+
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="How does it work ?"><strong>How does it work ?</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+<ol>
+<li>
+The NSAPI-Tomcat redirector is an Netscape service step plugin,
+Netscape load the redirector plugin and calls its service handler
+function for request that are assigned to the "servlet" configuration object.
+</li>
+<li>
+For each in-coming request Netscape will execute the set of NameTrans directives
+that we added to obj.conf, the assign-name function will check if it's from
+parameter matches the request URL.
+</li>
+<li>
+If a match is found, assign-name will assign the servlet object name to the request.
+This will cause Netscape to send the request to the servlet configuration object.
+</li>
+<li>
+Netscape will execute our jk_service extension. The extension collects the
+request parameters and forwards them to the appropriate worker using the ajp13 protocol
+(the worker="defworker" parameter in jk_service inform it that the worker for this request is named <b>defworker</b>).
+the workers properties files, <b>workers.properties</b>, will indicate that defworker use ajp13 protocol.
+</li>
+<li>
+The extension collects the response from the worker and returns it to the browser.
+</li>
+</ol>
+</p>
+</blockquote></td></tr></table>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Installation"><strong>Installation</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+A pre-built version of the NSAPI redirector, nsapi_redirect.dll, may be available under
+the win32/i386 directory of tomcat-connectors distribution.
+For those using Netscape as your browser, try downloading a zip version of the file, if available.
+
+You can also build a copy locally from the source present in tomcat-connectors distribution.
+
+
+The Tomcat redirector requires two entities:
+<ul>
+<li>
+nsapi_redirect.dll (Windows) -or- nsapi_redirector.so (Unix) - The NSAPI server plugin, either obtain a pre-built DLL/so or build it yourself
+(see the build section).
+</li>
+<li>
+workers.properties - A file that describes the host(s) and port(s) used by the workers (Tomcat processes).
+A sample workers.properties can be found under the conf directory.
+</li>
+</ul>
+
+The installation includes the following parts:
+
+<ul>
+<li>
+Configuring the NSAPI redirector with a default /examples context and checking that you can serve servlets
+with Netscape.
+</li>
+<li>
+Adding more contexts to the configuration.
+</li>
+</ul>
+
+</p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Configuring the NSAPI Redirector"><strong>Configuring the NSAPI Redirector</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+In this document we'll assume that nsapi_redirect.dll is placed in
+<b>c:\jk\lib\nsapi_redirect.dll</b>, the properties file is in<b>c:\jk\conf</b>
+and you created a log directory <b>c:\jk\logs</b>
+</p>
+
+<ul>
+<li>
+If the built in servlet support is working disable it.
+</li>
+<li>
+Add the redirector plugin into the Netscape server configuration.
+Edit your server <b>magnus.conf</b> and add the following lines:
+</li>
+</ul>
+
+<div class="example"><pre>
+
+ Init fn="load-modules" funcs="jk_init,jk_service" shlib="c:/jk/lib/nsapi_redirect.dll" shlib_flags="(global|now)"
+ Init fn="jk_init" worker_file="c:/jk/conf/workers.properties" log_level="debug" log_file="c:/jk/logs/nsapi.log" shm_file="c:/jk/logs/jk_shm"
+</pre></div>
+<ul>
+<li>
+Edit your server <b>obj.conf</b> and add the following lines:
+</li>
+</ul>
+<div class="example"><pre>
+
+
+ In the default object NameTrans section
+ &lt;Object name="default"&gt;
+
+ NameTrans fn="assign-name" from="/servlets-examples(|/*)" name="jknsapi"
+ NameTrans fn="assign-name" from="/jsp-examples(|/*)" name="jknsapi"
+ ....
+ &lt;/Object&gt;
+
+ Create a new configuration object by adding the following lines to the end of the obj.conf file
+
+ &lt;Object name="jknsapi"&gt;
+ ObjectType fn=force-type type=text/plain
+ Service fn="jk_service" method="*" worker="worker1"
+ &lt;/Object&gt;
+</pre></div>
+
+<ul>
+<li>
+Edit your worker definition file <b>workers.properties</b>. You should at least choose a connection pool size:
+</li>
+</ul>
+
+<div class="example"><pre>
+ #An entry that lists all the workers defined. For example:
+ worker.list=worker1
+
+ # Entries that define the host and port associated with these workers.
+ worker.worker1.host=localhost
+ worker.worker1.port=8009
+ worker.worker1.type=ajp13
+ worker.worker1.connection_pool_size=50
+</pre></div>
+
+<ul>
+<li>
+Restart Web Server (stop and start the server)
+</li>
+</ul>
+
+<p>
+That's all, now you should start tomcat and ask for http://server:port/servlets-examples/
+</p>
+<p><font color="#ff0000">
+The file <b>obj.conf</b> seems to be sensitive to leading white space in lines, especially in
+the <b>Object</b> element. Make sure you have no leading white space (no indentation)
+on any line of this file.
+</font></p>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Adding additional Contexts"><strong>Adding additional Contexts</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+The examples context is useful for verifying your installation, but you will also need to add your own contexts.
+Adding a new context requires two operations:
+</p>
+<ul>
+<li>
+Adding the context to Tomcat (I am not going to talk about this).
+</li>
+<li>
+Assigning the NSAPI redirector to handle this context.
+</li>
+</ul>
+
+<p>
+Assigning the NSAPI redirector to handle this context is simple,
+all you need to do is to edit <b>obj.conf</b> and add a NameTrans line that looks like:
+</p>
+
+<div class="example"><pre>
+ NameTrans fn="assign-name" from="/&lt;context name&gt;/*" name="jknsapi"
+</pre></div>
+
+<p>
+After saving <b>obj.conf</b> restart Netscape and it will serve the new context.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Advanced Context Configuration"><strong>Advanced Context Configuration</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+Sometimes it is better to have Netscape serve the static pages (html, gif, jpeg etc.)
+even if these files are part of a context served by Tomcat. For example, consider the html and gif files in the examples context, there is no need to serve them from the Tomcat process, Netscape will suffice.
+</p>
+<p>
+Making Netscape serve static files that are part of the Tomcat contexts requires the following:
+</p>
+<ul>
+<li>
+Configuring Netscape to know about the Tomcat contexts
+</li>
+<li>
+Make sure that the WEB-INF directory is protected from access.
+</li>
+<li>
+Configuring Netscape to assign the NSAPI redirector only specific requests that requires JSP/Servlet handling.
+</li>
+</ul>
+
+<p>
+Adding a Tomcat context to Netscape requires the addition of a new Netscape virtual directory
+that covers the Tomcat context.
+</p>
+
+<p>
+For example, adding a /example Netscape virtual directory that
+covers the <b>c:\tomcat\webapps\examples</b> directory.
+</p>
+
+<p>
+To add a new virtual directory add the following line to your <b>obj.conf</b>:
+</p>
+
+<div class="example"><pre>
+ NameTrans fn=pfx2dir from=/examples dir="c:/tomcat/webapps/examples"
+</pre></div>
+
+<p>
+WEB-INF protection requires some explanation; Each servlet application (context) has a special directory named <b>WEB-INF</b>,
+this directory contains sensitive configurations data and Java classes and must be kept hidden from web users.
+WEB-INF can be protected by adding the following line to the PathCheck section in the default configuration object:
+</p>
+
+<div class="example"><pre>
+ PathCheck fn="deny-existence" path="*/WEB-INF/*"
+
+ This line instructs the Netscape server to reject any request with a URL that contain the path /WEB-INF/.
+</pre></div>
+
+<p>
+Configuring Netscape to assign the NSAPI redirector only specific requests is somewhat harder,
+you will need to specify the exact URL-Path pattern(s) that you want Tomcat to handle
+(usually only JSP files and servlets).
+</p>
+
+<p>
+This requires a change to NameTrans portion of <b>obj.conf</b>.
+</p>
+
+<div class="example"><pre>
+ For the examples context it requires to replace the following line:
+
+ NameTrans fn="assign-name" from="/examples/*" name="jknsapi"
+
+ with the following two lines:
+
+ NameTrans fn="assign-name" from="/examples/jsp/*.jsp" name="jknsapi"
+ NameTrans fn="assign-name" from="/examples/servlet/*" name="jknsapi"
+</pre></div>
+
+<p>
+As you can see the second configuration is more explicit, it actually instructs
+Netscape to assign the redirector with only requests to resources under
+<b>/examples/servlet/</b> and resources under <b>/examples/</b> whose name ends with <b>.jsp</b>.
+</p>
+
+<p>
+You can be even more explicit and provide lines such as:
+</p>
+
+<div class="example"><pre>
+ NameTrans fn="assign-name" from="/examples/servletname" name="jknsapi"
+
+ Instructs Netscape to assign the redirector request whose URL-Path equals /example/servletname
+</pre></div>
+
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Advanced Worker Configuration"><strong>Advanced Worker Configuration</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+Sometimes you want to serve different contexts with different Tomcat processes
+(for example to spread the load among different machines).
+To achieve such goal you will need to define several workers and assign each context with its own worker.
+</p>
+
+<p>
+Defining workers is done in <b>workers.properties</b>, this file includes two types of entries:
+</p>
+
+<div class="example"><pre>
+ #An entry that lists all the workers defined. For example:
+ worker.list=worker1,worker2
+
+ # Entries that define the host and port associated with these workers.
+ worker.worker1.host=localhost
+ worker.worker1.port=8009
+ worker.worker1.type=ajp13
+
+ worker.worker2.host=otherhost
+ worker.worker2.port=8009
+ worker.worker2.type=ajp13
+</pre></div>
+
+<p>
+The above examples defined two workers, now we can use these workers to serve two different
+contexts each with it's own worker.
+Submitting requests to different workers is accomplished by using multiple Service directives
+in the servlet configuration Object, each with a different path pattern parameter.
+</p>
+
+<p>
+For example, if we want to submit the <b>/examples</b> context to the worker named <b>worker1</b> and the
+<b>/webpages</b> context to the worker named <b>worker2</b> we should use the following configuration:
+</p>
+
+<div class="example"><pre>
+ &lt;Object name="jknsapi"&gt;
+ ObjectType fn=force-type type=text/plain
+ Service fn="jk_service" worker="worker1" path="/examples/*"
+ Service fn="jk_service" worker="worker2" path="/webpages/*"
+ Service fn="jk_service" worker="worker1"
+ &lt;/Object&gt;
+</pre></div>
+
+<p>
+More informations on using and configuring workers in the <a href="../generic_howto/workers.html">Workers HowTo</a>
+and in the <a href="../reference/workers.html">worker.properties configuration reference</a>.
+
+</p>
+</blockquote></td></tr></table>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Building NSAPI DLL redirector for Windows"><strong>Building NSAPI DLL redirector for Windows</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+The redirector was developed using Visual C++ Ver.6.0, so having this environment is a prereq if you want
+to perform a custom build. You should also have NES developer SDK
+
+The steps that you need to take are:
+<ul>
+<li>
+Change directory to the nsapi plugins source directory.
+</li>
+<li>
+Edit <b>nsapi.dsp</b> and update the include and library path to reflect your own Netscape server installation
+(search for a <b>/I compiler</b> option and <b>/libpath</b> linker option)
+</li>
+<li>
+Make the source with MSDEV
+</li>
+</ul>
+<screendos>
+<notedos>Change directory to the nsapi plugins source directory</notedos>
+<code><nobr><em class="screen">c:\&gt;</em><b class="screen">cd c:\home\apache\jk\nsapi</b></nobr></code><br>
+<notedos>Build the sources using MSDEV</notedos>
+<code><nobr><em class="screen">c:\&gt;</em><b class="screen">MSDEV nsapi.dsp /MAKE ALL</b></nobr></code><br>
+</screendos>
+</p>
+<p>
+If msdev is not in your path, enter the full path to msdev.exe.
+This will build both release and debug versions of the redirector plugin.
+An alternative will be to open the nsapi workspace file (nsapi.dsw) in msdev and
+build it using the build menu.
+</p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Building NSAPI so plugin redirector for Unix"><strong>Building NSAPI so plugin redirector for Unix</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+The redirector requires either gcc (Linux) or gcc or the Sun cc compiler (Solaris).
+
+The steps that you need to take are:
+<ul>
+<li>
+Change directory to the nsapi plugins source directory (src/native).
+</li>
+<li>
+configure for Netscape/iPlanet/SunONE webserver.
+</li>
+<li>
+Change directory to the nsapi netscape directory (./netstape).
+</li>
+<li>
+Set environment variables JAVA_HOME resp. SUITSPOT_HOME to the location of your Java installation
+resp. Netscape server installation. Depending on the web server version, you must add the subdirectory
+"plugins" to SUITSPOT_HOME.
+The variable is correct, if the file $SUITSPOT_HOME/include/nsapi.h exists.
+</li>
+<li>
+Edit <b>Makefile.solaris</b> resp. <b>Makefile.linux</b> and update the variables according to your needs.
+In the Solaris Makefile, you need to switch the commented lines in order to use the Sun compiler cc
+instead of GNU gcc.
+</li>
+<li>
+Make the source with gmake.
+</li>
+</ul>
+<screendos>
+<notedos>Change directory to the nsapi plugins source directory</notedos>
+<code><nobr><em class="screen">c:\&gt;</em><b class="screen">cd /usr/local/src/tomcat-connectors-xxx-src/native</b></nobr></code><br>
+<notedos>configure for Netscape/iPlanet/SunONE webserver</notedos>
+<code><nobr><em class="screen">c:\&gt;</em><b class="screen">./configure --enable-netscape</b></nobr></code><br>
+<notedos>Change directory to the nsapi netscape directory</notedos>
+<code><nobr><em class="screen">c:\&gt;</em><b class="screen">cd netscape</b></nobr></code><br>
+<notedos>Set JAVA_HOME (ksh example)</notedos>
+<code><nobr><em class="screen">c:\&gt;</em><b class="screen">export JAVA_HOME=/path/to/my/java</b></nobr></code><br>
+<notedos>Set SUITSPOT_HOME (ksh example)</notedos>
+<code><nobr><em class="screen">c:\&gt;</em><b class="screen">export SUITSPOT_HOME=/path/to/my/netscape/server</b></nobr></code><br>
+<notedos>Edit the Makefile</notedos>
+<code><nobr><em class="screen">c:\&gt;</em><b class="screen">vi Makefile.solaris</b></nobr></code><br>
+<notedos>Make the source with gmake</notedos>
+<code><nobr><em class="screen">c:\&gt;</em><b class="screen">gmake -f Makefile.solaris</b></nobr></code><br>
+</screendos>
+</p>
+<p>
+After the build, you will have the required nsapi_redirector.so plugin.
+</p>
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright &copy; 1999-2011, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html> \ No newline at end of file
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/docs/webserver_howto/printer/apache.html b/rubbos/app/tomcat-connectors-1.2.32-src/docs/webserver_howto/printer/apache.html
new file mode 100644
index 00000000..ab972c65
--- /dev/null
+++ b/rubbos/app/tomcat-connectors-1.2.32-src/docs/webserver_howto/printer/apache.html
@@ -0,0 +1,1123 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>The Apache Tomcat Connector - Webserver HowTo - Apache HTTP Server HowTo</title><meta name="author" value="Henri Gomez"><meta name="email" value="hgomez@apache.org"><meta name="author" value="Gal Shachor"><meta name="email" value="shachor@il.ibm.com"><link href="../../style.css" type="text/css" rel="stylesheet"></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="4"><!--PAGE HEADER--><tr><td colspan="2"><!--TOMCAT LOGO--><a href="http://tomcat.apache.org/"><img src="../../images/tomcat.gif" align="left" alt="Apache Tomcat" border="0"></a><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="http://www.apache.org/images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><tr><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left"><table border="0" width="100%" cellspacing="4"><tr><td align="left" valign="top"><h1>The Apache Tomcat Connector - Webserver HowTo</h1><h2>Apache HTTP Server HowTo</h2></td><td align="right" valign="top" nowrap="true"><img src="../../images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+This document explains how to connect Tomcat to the popular open source web server, Apache httpd.
+There is actually three versions of Apache HTTP Server, 1.3, 2.0 and 2.2 and all can be used with mod_jk,
+the Tomcat redirector module.
+</p>
+
+<p>
+It is recommended that you also read the
+<a href="../../generic_howto/workers.html">Workers HowTo</a> document
+to learn how to setup the working entities between your web server and Tomcat Engines.
+For more detailed configuration information consult the Reference Guide for
+<a href="../../reference/worker.html">workers.properties</a>,
+<a href="../../reference/uriworkermap.html">uriworkermap</a>
+and <a href="../../reference/apache.html">Apache</a>.
+</p>
+
+<p><b>Waring: If Apache HTTP Server and Tomcat are configured to serve content from
+the same filing system location then care must be taken to ensure that httpd is
+not able to serve inappropriate content such as the contents of the WEB-INF
+directory or JSP source code.</b> This could occur if the httpd DocumentRoot
+overlaps with a Tomcat Host's appBase or the docBase of any Context. It could
+also occur when using the httpd Alias directive with a Tomcat Host's appBase or
+the docBase of any Context.
+</p>
+
+<p>
+This document was originally part of <b>Tomcat: A Minimalistic User's Guide</b> written by Gal Shachor,
+but has been split off for organisational reasons.
+</p>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Document Conventions and Assumptions"><strong>Document Conventions and Assumptions</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+${tomcat_home} is the root directory of tomcat.
+Your Tomcat installation should have the following subdirectories:
+
+<ul>
+<li>
+${tomcat_home}\conf - Where you can place various configuration files
+</li>
+<li>
+${tomcat_home}\webapps - Containing example applications
+</li>
+<li>
+${tomcat_home}\bin - Where you place web server plugins
+</li>
+</ul>
+</p>
+<p>
+In all the examples in this document ${tomcat_home} will be <b>/var/tomcat3</b>.
+A <a href="../../generic_howto/workers.html">worker</a> is defined to be a tomcat process that accepts work from the Apache server.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Supported Configuration"><strong>Supported Configuration</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+The mod_jk module was developed and tested on:
+<ul>
+<li>
+Linux, FreeBSD, AIX, HP-UX, MacOS X, Solaris and should works on major Unixes platforms
+supporting Apache 1.3 and/or 2.0/2.2
+</li>
+<li>
+WinNT4.0-i386 SP4/SP5/SP6a (should be able to work with other service packs), Win2K and WinXP and Win98
+</li>
+<li>
+Cygwin (until you have an apache server and autoconf/automake support tools)
+</li>
+<li>
+Netware
+</li>
+<li>
+i5/OS V5R4 (System I) with Apache HTTP Server 2.0.58. Be sure to have the latest Apache PTF installed.
+</li>
+<li>
+Tomcat 3.2.x, Tomcat 3.3.x, Tomcat 4.0.x, Tomcat 4.1.x, Tomcat 5.0.x, Tomcat 5.5.x and Tomcat 6.
+</li>
+</ul>
+</p>
+
+<p>
+The redirector uses <b>ajp12</b> and <b>ajp13</b> to send requests to the Tomcat containers. There is also an option to use Tomcat in process,
+more about the in-process mode can be found in the in process howto.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Who support ajp protocols ?"><strong>Who support ajp protocols ?</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+The ajp12 protocol is only available in Tomcat 3.2.x and 3.3.x.
+</p>
+
+<p>
+The <b>ajp12</b> has been <b>deprecated</b> with Tomcat 3.3.x and you should use instead
+<b>ajp13</b> which is the only ajp protocol known by Tomcat 4.x, 5 and 5.5 and Tomcat 6.
+</p>
+
+<p>
+Of course Tomcat 3.2.x and 3.3.x also support ajp13 protocol.
+</p>
+
+<p>
+Others servlet engines such as <b>jetty</b> have support for ajp13 protocol
+</p>
+
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="How does it work ?"><strong>How does it work ?</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+In a nutshell a web server is waiting for client HTTP requests.
+When these requests arrive the server does whatever is needed to serve the
+requests by providing the necessary content.
+</p>
+
+<p>
+Adding a servlet container may somewhat change this behaviour.
+Now the web server needs also to perform the following:
+</p>
+
+<ul>
+<li>
+Load the servlet container adaptor library and initialise it (prior to serving requests).
+</li>
+<li>
+When a request arrives, it needs to check and see if a certain request belongs to a servlet,
+if so it needs to let the adaptor take the request and handle it.
+</li>
+</ul>
+
+<p>
+The adaptor on the other hand needs to know what requests it is going to serve,
+usually based on some pattern in the request URL, and to where to direct these requests.
+</p>
+
+<p>
+Things are even more complex when the user wants to set a configuration that uses virtual hosts,
+or when they want multiple developers to work on the same web server
+but on different servlet container JVMs.
+We will cover these two cases in the advanced sections.
+</p>
+
+</blockquote></td></tr></table>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Obtaining mod_jk"><strong>Obtaining mod_jk</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+mod_jk can be obtained in two formats - binary and source.
+Depending on the platform you are running your web server on, a binary version of mod_jk may be available.
+</p>
+
+<p>
+It is recommended to use the binary version if one is available.
+If the binary is not available, follow the instructions for building mod_jk from source.
+The mod_jk source can be downloaded from a mirror
+<a href="http://tomcat.apache.org/download-connectors.cgi">
+here</a>
+</p>
+
+<p>
+The binaries for mod_jk are now available for several platforms.
+The binaries are located in subdirectories by platform.
+</p>
+
+<p>
+For some platforms, such as Windows, this is the typical way of obtaining mod_jk
+since most Windows systems do not have C compilers.
+</p>
+
+<p>
+For others, the binary distribution of mod_jk offers simpler installation.
+</p>
+
+<p>
+For example JK 1.2.x can be downloaded from a mirror
+<a href="http://tomcat.apache.org/download-connectors.cgi">
+here</a> (look for JK 1.2 Binary Releases). The "JK 1.2 Binary Releases" link contains binary version for a variety of
+operating systems for both Apache 1.3 and Apache 2.
+</p>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Installation"><strong>Installation</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+mod_jk requires two entities:
+
+<ul>
+<li>
+<b>mod_jk.xxx</b> - The Apache HTTP Server module, depending on your operating system, it will be mod_jk.so, mod_jk.nlm or
+or MOD_JK.SRVPGM (see the build section).
+</li>
+<li>
+<b>workers.properties</b> - A file that describes the host(s) and port(s) used by the workers (Tomcat processes).
+A sample workers.properties can be found under the conf directory in the source download.
+</li>
+</ul>
+</p>
+
+<p>
+Also as with other Apache HTTP Server modules, mod_jk should be first installed on the modules directory of your
+Apache webserver, ie : /usr/lib/apache and you should update your <b>httpd.conf</b> file.
+</p>
+
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Disabling old mod_jserv"><strong>Disabling old mod_jserv</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+If you've previously configured Apache to use <b>mod_jserv</b>, remove any <b>ApJServMount</b> directives
+from your httpd.conf.
+</p>
+
+<p>If you're including <b>tomcat-apache.conf</b> or <b>tomcat.conf</b>, you'll want to remove them as well -
+they are specific to <b>mod_jserv</b>.
+</p>
+
+<p>
+The mod_jserv configuration directives are not compatible with mod_jk !
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Using Tomcat auto-configure"><strong>Using Tomcat auto-configure</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+The auto-configure works only for a single Tomcat running on the same machine where Apache HTTP Server is running.
+The simplest way to configure Apache HTTP Server to use mod_jk is to turn on the Apache HTTP Server auto-configure setting
+in Tomcat and put the following include directive at the end of your Apache httpd.conf file
+(make sure you replace $TOMCAT_HOME with the correct path for your Tomcat installation:
+</p>
+
+<div class="example"><pre>
+ #To be added at the end of your httpd.conf
+ Include $TOMCAT_HOME/conf/jk/mod_jk.conf-auto
+</pre></div>
+
+<p>
+Note: this file may also be generated as $TOMCAT_HOME/conf/auto/mod_jk.conf
+</p>
+
+<p>
+This will tell Apache HTTP Server to use directives in the <b>mod_jk.conf-auto</b> file in
+the Apache configuration. This file is created by enabling the Apache
+auto-configuration by creating your workers.properties file at
+$TOMCAT_HOME/conf/jk/workers.properties and adding the listener to the Engine
+element in the server.xml file as per the following example.
+<b>Please note that this example is specific to Tomcat 5.x, unlike other sections of this document
+ which also apply to previous Tomcat branches.</b>
+</p>
+<div class="example"><pre>
+ ...
+ &lt;Engine ...&gt;
+ ...
+ &lt;Listener className="org.apache.jk.config.ApacheConfig" modJk="/path/to/mod_jk.so" /&gt;
+ ...
+ &lt;/Engine&gt;
+ ...
+</pre></div>
+
+<p>
+Then restart Tomcat and mod_jk.conf should be generated. For more information on
+this topic, please refer to the API documentation at the
+<a href="http://tomcat.apache.org/tomcat-5.5-doc/catalina/docs/api/org/apache/jk/config/ApacheConfig.html">
+Tomcat docs website</a>.
+</p>
+
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Custom mod_jk configuration"><strong>Custom mod_jk configuration</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+You should use custom configuration when :
+</p>
+<ul>
+<li>
+You couldn't use <b>mod_jk.conf-auto</b> since Tomcat engine isn't on the same machine that your Apache web server,
+ie when you have an Apache in front of a Tomcat Farm.
+</li>
+<li>
+Another case for custom configuration is when your Apache is in front of many different Tomcat engines,
+each one having it's own configuration, a general case in ISP hosting
+</li>
+<li>
+Also all Apache webmaster will retain custom configuration to be able to tune the settings
+to their real needs.
+</li>
+</ul>
+
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Simple configuration example"><strong>Simple configuration example</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+Here is a simple configuration:
+</p>
+
+<div class="example"><pre>
+ # Load mod_jk module
+ LoadModule jk_module libexec/mod_jk.so
+ # Declare the module for &lt;IfModule directive&gt; (remove this line on Apache 2.0.x)
+ AddModule mod_jk.c
+ # Where to find workers.properties
+ JkWorkersFile /etc/httpd/conf/workers.properties
+ # Where to put jk shared memory
+ JkShmFile /var/log/httpd/mod_jk.shm
+ # Where to put jk logs
+ JkLogFile /var/log/httpd/mod_jk.log
+ # Set the jk log level [debug/error/info]
+ JkLogLevel info
+ # Select the timestamp log format
+ JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
+ # Send servlet for context /examples to worker named worker1
+ JkMount /examples/servlet/* worker1
+ # Send JSPs for context /examples to worker named worker1
+ JkMount /examples/*.jsp worker1
+</pre></div>
+
+</blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="mod_jk Directives"><strong>mod_jk Directives</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+We'll discuss here the mod_jk directives and details behind them
+</p>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Define workers"><strong>Define workers</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+<b>JkWorkersFile</b> specify the location where mod_jk will find the workers definitions.
+
+<div class="example"><pre>
+ JkWorkersFile /etc/httpd/conf/workers.properties
+</pre></div>
+
+<br>
+<br>
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Logging"><strong>Logging</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+<b>JkLogFile</b> specify the location where mod_jk is going to place its log file.
+</p>
+
+<div class="example"><pre>
+ JkLogFile /var/log/httpd/mod_jk.log
+</pre></div>
+
+<p>
+Since JK 1.2.3 for Apache 2.0/2.2 and JK 1.2.16 for Apache 1.3 this can also
+be used for piped logging:
+</p>
+
+<div class="example"><pre>
+ JkLogFile "|/usr/bin/rotatelogs /var/log/httpd/mod_jk.log 86400"
+</pre></div>
+
+<p>
+<b>JkLogLevel</b>
+set the log level between :
+</p>
+
+<ul>
+<li>
+<b>info</b> log will contains standard mod_jk activity (default).
+</li>
+<li>
+<b>error</b> log will contains also error reports.
+</li>
+<li>
+<b>debug</b> log will contains all information on mod_jk activity
+</li>
+</ul>
+
+<div class="example"><pre>
+ JkLogLevel info
+</pre></div>
+
+<p>
+<b class="code">info</b> should be your default selection for normal operations.
+<br>
+<br>
+</p>
+
+<p>
+<b>JkLogStampFormat</b> will configure the date/time format found on mod_jk logfile.
+Using the strftime() format string it's set by default to <b>"[%a %b %d %H:%M:%S %Y]"</b>
+</p>
+
+<div class="example"><pre>
+ JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
+</pre></div>
+
+<p>
+<br>
+<br>
+</p>
+
+<p>
+<b>JkRequestLogFormat</b> will configure the format of mod_jk individual request logging.
+Request logging is configured and enabled on a per virtual host basis.
+To enable request logging for a virtual host just add a JkRequestLogFormat config.
+The syntax of the format string is similar to the Apache LogFormat command,
+here is a list of the available request log format options:
+</p>
+
+<p>
+<table>
+ <tr><th>Options</th><th>Description</th></tr>
+ <tr><td>%b</td><td>Bytes sent, excluding HTTP headers (CLF format)</td></tr>
+ <tr><td>%B</td><td>Bytes sent, excluding HTTP headers</td></tr>
+ <tr><td>%H</td><td>The request protocol</td></tr>
+ <tr><td>%m</td><td>The request method</td></tr>
+ <tr><td>%p</td><td>The canonical Port of the server serving the request</td></tr>
+ <tr><td>%q</td><td>The query string (prepended with a ? if a query string exists, otherwise an empty string)</td></tr>
+ <tr><td>%r</td><td>First line of request</td></tr>
+ <tr><td>%s</td><td>Request HTTP status code</td></tr>
+ <tr><td>%T</td><td>Request duration, elapsed time to handle request in seconds '.' micro seconds</td></tr>
+ <tr><td>%U</td><td>The URL path requested, not including any query string.</td></tr>
+ <tr><td>%v</td><td>The canonical ServerName of the server serving the request</td></tr>
+ <tr><td>%V</td><td>The server name according to the UseCanonicalName setting</td></tr>
+ <tr><td>%w</td><td>Tomcat worker name</td></tr>
+ <tr><td>%R</td><td>Session route name (available with 1.2.19 and up)</td></tr>
+</table>
+
+<div class="example"><pre>
+ JkRequestLogFormat "%w %V %T"
+</pre></div>
+
+<br>
+<br>
+</p>
+
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Forwarding"><strong>Forwarding</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+The directive JkOptions allow you to set many forwarding options which will enable (+)
+or disable (-) following option. Without any leading signs, options will be enabled.
+<br>
+<br>
+</p>
+
+<p>
+The four following options <b>+ForwardURIxxx</b> are mutually exclusive.
+Exactly one of them is required, a negative sign prefix is not allowed with them.
+The default value is "ForwardURIProxy" since version 1.2.24.
+It was "ForwardURICompatUnparsed" in version 1.2.23 and
+"ForwardURICompat" until version 1.2.22.
+You can turn the default off by switching on one of the other two options.
+You should leave this at it's default value, unless you have a very good
+reason to change it.
+<br>
+<br>
+</p>
+
+<p>
+All options are inherited from the global server to virtual hosts.
+Options that support enabling (plus options) and disabling (minus options),
+are inherited in the following way:
+<br>
+<br>
+options(vhost) = plus_options(global) - minus_options(global) + plus_options(vhost) - minus_options(vhost)
+<br>
+<br>
+</p>
+
+<p>
+Using JkOptions <b>ForwardURIProxy</b>, the forwarded URI
+will be partially reencoded after processing inside Apache httpd and
+before forwarding to Tomcat. This will be compatible with local
+URL manipulation by mod_rewrite and with URL encoded session ids.
+
+<div class="example"><pre>
+ JkOptions +ForwardURIProxy
+</pre></div>
+
+<br>
+<br>
+</p>
+
+<p>
+Using JkOptions <b>ForwardURICompatUnparsed</b>, the forwarded URI
+will be unparsed. It's spec compliant and secure.
+It will always forward the original request URI, so rewriting
+URIs with mod_rewrite and then forwarding the rewritten URI
+will not work.
+
+<div class="example"><pre>
+ JkOptions +ForwardURICompatUnparsed
+</pre></div>
+
+<br>
+<br>
+</p>
+<p>
+Using JkOptions <b>ForwardURICompat</b>, the forwarded URI will
+be decoded by Apache httpd. Encoded characters will be decoded and
+explicit path components like ".." will already be resolved.
+This is less spec compliant and is <b>not safe</b> if you are using
+prefix JkMount. This option will allow to rewrite URIs with
+mod_rewrite before forwarding.
+
+<div class="example"><pre>
+ JkOptions +ForwardURICompat
+</pre></div>
+
+<br>
+<br>
+</p>
+<p>
+Using JkOptions <b>ForwardURIEscaped</b>, the forwarded URI will
+be the encoded form of the URI used by ForwardURICompat.
+Explicit path components like ".." will already be resolved.
+This will not work in combination with URL encoded session IDs,
+but it will allow to rewrite URIs with mod_rewrite before forwarding.
+
+<div class="example"><pre>
+ JkOptions +ForwardURIEscaped
+</pre></div>
+
+<br>
+<br>
+</p>
+
+<p>
+JkOptions <b>RejectUnsafeURI</b> will block all
+URLs, which contain percent signs '%' or backslashes '\'
+after decoding.
+<br>
+<br>
+</p>
+<p>
+Most web apps do not use such URLs. Using the option RejectUnsafeURI, you
+can block several well known URL encoding attacks. By default, this option
+is not set.
+</p>
+<p>
+You can also realise such a check with mod_rewrite, which is more powerful
+but also slightly more complicated.
+
+<div class="example"><pre>
+ JkOptions +RejectUnsafeURI
+</pre></div>
+
+<br>
+<br>
+</p>
+
+<p>
+JkOptions <b>ForwardDirectories</b> is used in conjunction with <b>DirectoryIndex</b>
+directive of Apache web server. As such mod_dir should be available to Apache,
+statically or dynamically (DSO)
+<br>
+<br>
+</p>
+
+<p>
+When DirectoryIndex is configured, Apache will create sub-requests for
+each of the local-url's specified in the directive, to determine if there is a
+local file that matches (this is done by stat-ing the file).
+</p>
+
+<p>
+If ForwardDirectories is set to false (default) and Apache doesn't find any
+files that match, Apache will serve the content of the directory (if directive
+Options specifies Indexes for that directory) or a <b class="code">403 Forbidden</b> response (if
+directive Options doesn't specify Indexes for that directory).
+</p>
+
+<p>
+If ForwarDirectories is set to true and Apache doesn't find any files that
+match, the request will be forwarded to Tomcat for resolution. This is used in
+cases when Apache cannot see the index files on the file system for various
+reasons: Tomcat is running on a different machine, the JSP file has been
+precompiled etc.
+</p>
+
+<p>Note that locally visible files will take precedence over the
+ones visible only to Tomcat (i.e. if Apache can see the file, that's the one
+that's going to get served). This is important if there is more then one type of
+file that Tomcat normally serves - for instance Velocity pages and JSP pages.
+
+<div class="example"><pre>
+ JkOptions +ForwardDirectories
+</pre></div>
+<br>
+<br>
+</p>
+
+<p>
+JkOptions <b>ForwardLocalAddress</b>, you ask mod_jk to send the local address,
+of the Apache web server instead remote client address. This can be used by
+Tomcat remote address valve for allowing connections only from registered Apache
+web servers.
+
+<div class="example"><pre>
+ JkOptions +ForwardLocalAddress
+</pre></div>
+
+<br>
+<br>
+</p>
+
+<p>
+JkOptions <b>FlushPackets</b>, you ask mod_jk to flush Apache's connection
+buffer after each AJP packet chunk received from Tomcat. This option can have
+a strong performance penalty for Apache and Tomcat as writes are performed
+more often than would normally be required (ie: at the end of each
+response).
+
+<div class="example"><pre>
+ JkOptions +FlushPackets
+</pre></div>
+
+<br>
+<br>
+</p>
+
+<p>
+JkOptions <b>FlushHeader</b>, you ask mod_jk to flush Apache's connection
+buffer after the response headers have been received from Tomcat.
+
+<div class="example"><pre>
+ JkOptions +FlushHeader
+</pre></div>
+
+<br>
+<br>
+</p>
+
+<p>
+JkOptions <b>DisableReuse</b>, you ask mod_jk to close connections immediately
+after their use. Normally mod_jk uses persistent connections and pools idle
+connections to reuse them, when new requests have to be sent to Tomcat.
+</p>
+
+<p>
+Using this option will have a strong performance penalty for Apache and Tomcat.
+Use this only as a last resort in case of unfixable network problems.
+If a firewall between Apache and Tomcat silently kills idle connections,
+try to use the worker attribute socket_keepalive in combination with an appropriate
+TCP keepalive value in your OS.
+
+<div class="example"><pre>
+ JkOptions +DisableReuse
+</pre></div>
+
+<br>
+<br>
+</p>
+
+<p>
+JkOptions <b>ForwardKeySize</b>, you ask mod_jk, when using ajp13, to forward also the SSL Key Size as
+required by Servlet API 2.3.
+This flag shouldn't be set when servlet engine is Tomcat 3.2.x (off by default).
+
+<div class="example"><pre>
+ JkOptions +ForwardKeySize
+</pre></div>
+
+<br>
+<br>
+</p>
+
+<p>
+JkOptions <b>ForwardSSLCertChain</b>, you ask mod_jk, when using ajp13,
+to forward SSL certificate chain (off by default).
+Mod_jk only passes the <b class="code">SSL_CLIENT_CERT</b> to the AJP connector. This is not a
+problem with self-signed certificates or certificates directly signed by the
+root CA certificate. However, there's a large number of certificates signed by
+an intermediate CA certificate, where this is a significant problem: A servlet
+will not have the possibility to validate the client certificate on its own. The
+bug would be fixed by passing on the <b class="code">SSL_CLIENT_CERT_CHAIN</b> to Tomcat via the AJP connector.
+<br>
+This directive exists only since version 1.2.22.
+<div class="example"><pre>
+ JkOptions +ForwardSSLCertChain
+</pre></div>
+
+<br>
+<br>
+</p>
+
+<p>
+The directive <b>JkEnvVar</b> allows you to forward environment variables
+from Apache server to Tomcat engine.
+You can add a default value as a second parameter to the directive.
+If the default value is not given explicitly, the variable
+will only be send, if it is set during runtime.
+<br>
+The variables can be retrieved on the Tomcat side as request attributes
+via request.getAttribute(attributeName).
+Note that the variables send via JkEnvVar will not be listed
+in request.getAttributeNames().
+<br>
+<br>
+The variables are inherited from the global server to virtual hosts.
+
+<div class="example"><pre>
+ JkEnvVar SSL_CLIENT_V_START undefined
+</pre></div>
+<br>
+<br>
+</p>
+
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Assigning URLs to Tomcat"><strong>Assigning URLs to Tomcat</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+If you have created a custom or local version of mod_jk.conf-local as noted above,
+you can change settings such as the workers or URL prefix.
+</p>
+
+<p>
+<b>JkMount</b> directive assign specific URLs to Tomcat.
+In general the structure of a JkMount directive is:
+</p>
+
+<div class="example"><pre> JkMount [URL prefix] [Worker name]</pre></div>
+
+<div class="example"><pre>
+ # send all requests ending in .jsp to worker1
+ JkMount /*.jsp worker1
+ # send all requests ending /servlet to worker1
+ JkMount /*/servlet/ worker1
+ # send all requests jsp requests to files located in /otherworker will go worker2
+ JkMount /otherworker/*.jsp worker2
+</pre></div>
+
+<p>
+You can use the JkMount directive at the top level or inside &lt;VirtualHost&gt; sections of your httpd.conf file.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Configuring Apache to serve static web application files"><strong>Configuring Apache to serve static web application files</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+If the Tomcat Host appBase (webapps) directory is accessible by the Apache web server,
+Apache can be configured to serve web application context directory static files instead
+of passing the request to Tomcat.
+</p>
+
+<p>
+Caution: For security reasons is is strongly recommended that JkMount is used to
+pass all requests to Tomcat by default and JkUnMount is used to explicitly
+exclude static content to be served by httpd. It should also be noted that
+content served by httpd will bypass any security constraints defined in the
+application's web.xml.
+</p>
+
+<p>Use Apache's <b>Alias</b> directive to map a single web application context directory into Apache's
+document space for a VirtualHost:
+</p>
+
+<div class="example"><pre>
+ # Static files in the examples webapp are served by apache
+ Alias /examples /vat/tomcat3/webapps/examples
+ # All requests go to worker1 by default
+ JkMount /* worker1
+ # Serve html, jpg and gif using httpd
+ JkUnMount /*.html worker1
+ JkUnMount /*.jpg worker1
+ JkUnMount /*.gif worker1
+</pre></div>
+
+<p>
+Starting with mod_jk 1.2.6 for Apache 2.0/2.2 and 1.2.19 for Apache 1.3, it's possible to exclude some URL/URI from
+jk processing by setting the env var <b>no-jk</b>, for example with the SetEnvIf Directive.
+</p>
+
+<p>
+You could use <b>no-jk</b> env var to fix problem with mod_alias or mod_userdir
+directive when jk and alias/userdir URLs matches.
+</p>
+
+<div class="example"><pre>
+ # All URL goes to tomcat except the one containing /home
+ &lt;VirtualHost *:80&gt;
+ ServerName testxxx.mysys
+ DocumentRoot /www/testxxx/htdocs
+
+ # Use SetEnvIf to st no-jk when /home/ is encountered
+ SetEnvIf Request_URI "/home/*" no-jk
+
+ # Now /home will goes to /home/dataxxx/
+ Alias /home /home/dataxxx/
+
+ &lt;Directory "/home/dataxxx"&gt;
+ Options Indexes MultiViews
+ AllowOverride None
+ Order allow,deny
+ Allow from all
+ &lt;/Directory&gt;
+
+ JkMount /* myssys-xxx
+
+ &lt;/VirtualHost&gt;
+</pre></div>
+
+
+<p>
+Use the mod_jk <b>JkAutoAlias</b> directive to map all web application context directories
+into Apache's document space.
+</p>
+
+<p>
+Attempts to access the WEB-INF or META-INF directories within a web application context
+or a Web Archive *.war within the Tomcat Host appBase (webapps) directory will fail with an
+<b class="code">HTTP 403, Access Forbidden</b>
+</p>
+
+<div class="example"><pre>
+ # Static files in all Tomcat webapp context directories are served by apache
+ JkAutoAlias /var/tomcat3/webapps
+
+ # All requests go to worker1 by default
+ JkMount /* ajp13
+ # Serve html, jpg and gif using httpd
+ JkUnMount /*.html ajp13
+ JkUnMount /*.jpg ajp13
+ JkUnMount /*.gif ajp13
+</pre></div>
+
+<p>
+If you encoded all your URLs to contain the session id
+(<b class="code">;jsessionid=...</b>), and you later decide, you want to
+move part of the content to Apache httpd, you can tell
+mod_jk to strip off all session ids from URLs for
+those requests, that do not get forwarded via mod_jk.
+</p>
+
+<p>
+You enable this feature by setting JkStripSession to On.
+It can be enabled individually for virtual servers. The default
+value is Off.
+</p>
+
+</blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Building mod_jk on Unix"><strong>Building mod_jk on Unix</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+The mod_jk build use the widely used configure system.
+</p>
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Prepare your mod_jk configure from subversion"><strong>Prepare your mod_jk configure from subversion</strong></a></font></td></tr><tr><td><blockquote>
+In case you get source from subversion, ie without an existing configure script,
+you should have autoconf for configuration and installation.
+<p>
+To create tomcat-connectors's autoconf script, you will need libtool
+1.5.2, automake 1.10 and autoconf 2.59 or newer. The use of more recent
+versions is encouraged, e.g. for reliable detection of the features of
+recent version of operating systems.
+</p><p>
+Those tools will not be required if you are just using a package downloaded from apache.org,
+they are only required for developers.
+</p>
+<p>
+To create the configure script just type :
+
+<p class="screen"><div align="left"><table width="80%" border="1" cellspacing="0" cellpadding="2" bgcolor="#000000"><tr><td bgcolor="#000000" align="left"><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">./buildconf.sh</b></nobr></code><br></td></tr></table></div></p>
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Using configure to build mod_jk"><strong>Using configure to build mod_jk</strong></a></font></td></tr><tr><td><blockquote>
+<p>Here's how to use configure to prepare mod_jk for building, just type:
+<div class="example"><pre>
+./configure [autoconf arguments] [tomcat-connectors arguments]
+</pre></div>
+</p>
+
+<p>
+You could set <b>CFLAGS</b> and <b>LDFLAGS</b> to add some platform specifics:
+</p>
+
+<p class="screen"><div align="left"><table width="80%" border="1" cellspacing="0" cellpadding="2" bgcolor="#000000"><tr><td bgcolor="#000000" align="left"><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">LDFLAGS=-lc ./configure -with-apxs=/home2/local/apache/bin/apxs</b></nobr></code><br></td></tr></table></div></p>
+
+<p>
+If you want to build mod_jk for different version of Apache httpd, like 1.3, 2.0 and 2.2,
+you need to go through the full build process for each of them.
+Please note, that httpd 2.0 and 2.2 modules are <b>not</b> compatible. The mod_jk directory
+used is "apache-2.0" in both cases, but you need to compile separately.
+<ul>
+<li>
+use configure and indicate the correct Apache httpd apxs location (--with-apxs)
+</li>
+<li>
+use make
+</li>
+<li>
+copy the resulting mod_jk.so binary from the apache-1.3 or apache-2.0 subdirectory
+to the Apache httpd modules location.
+</li>
+<li>
+make clean (to remove all previously compiled object files)
+</li>
+<li>
+Start over with the apxs location for your next Apache httpd version.
+</li>
+</ul>
+
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="configure arguments"><strong>configure arguments</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+<table>
+ <tr valign="top"><th>Apache related parameters</th><th></th></tr>
+ <tr valign="top">
+ <td>--with-apxs[=FILE]</td>
+ <td>FILE is the location of the apxs tool. Default is finding apxs in PATH.
+It builds a shared Apache module. It detects automatically the Apache version.
+(2.0/2.2 and 1.3)</td>
+ </tr>
+ <tr valign="top"><td>--with-apache=DIR</td>
+ <td>DIR is the path where apache sources are located.
+The apache sources should have been configured before configuring mod_jk.
+DIR is something like: /home/apache/apache_1.3.19
+It builds a static Apache module.</td>
+ </tr>
+ <tr valign="top"><td>--enable-EAPI</td>
+ <td>This parameter is needed when using Apache-1.3 and mod_ssl, otherwise you will get the error message:
+"this module might crash under EAPI!" when loading mod_jk.so in httpd.
+Not needed when --with-apxs has been used</td>
+</tr>
+ <tr valign="top"><td>--enable-prefork</td>
+ <td>
+In case you build mod_jk for a multi-threaded Apache httpd 2.0/2.2 MPM (Multi-Processing Module),
+some areas of mod_jk code need to be synchronised to make it thread-safe.
+Because configure can not easily detect, whether your are using a multi-threaded MPM,
+mod_jk by default is always build thread-safe for Apache httpd 2.0/2.2.
+If you are sure, that your MPM is not multi-threaded, you can use "--enable-prefork"
+to force the removal of the synchronisation code (thus increasing performance a bit).
+For instance, the prefork MPM is not multi-threaded. For Apache httpd 1.3
+this flag will be set automatically.</td>
+</tr>
+ <tr valign="top"><td>--disable-trace</td>
+ <td>
+When using log level "trace", mod_jk traces a lot of function calls with
+"enter" and "exit" log messages. Even if the log level is not "trace",
+comparing the log levels to decide about logging has some performance
+impact.<br>
+If you use "--disable-trace", then the trace log code doesn't get compiled
+into the module binary and you might save some cycles during execution.<br>
+Even with "--disable-trace" logging debug messages with debug log level
+will still be possible.</td>
+</tr>
+ <tr valign="top"><td>--enable-api-compatibility</td>
+ <td>
+Only use httpd API functions available in all httpd production releases
+of the chosen major httpd release branch. This improves binary
+compatibility of module builds with httpd releases older than the release
+against mod_jk is build (only between minor httpd versions).</td>
+</tr>
+ <tr valign="top"><td>--enable-flock</td>
+ <td>
+In case the operating system supports flock system call use this flag to enable this
+faster locks that are implemented as system call instead emulated by GNU C library.<br>
+However those locks does not work on NFS mounted volumes, so you can use
+"--enable-flock" during compile time to force the flocks() calls.</td>
+</tr>
+
+</table>
+<br>
+<table>
+ <tr valign="top"><th>DEPRECATED: JNI related parameters</th><th></th></tr>
+ <tr valign="top"><td>--enable-jni</td>
+ <td>Build the JNI worker and so the build process will require
+some information about your Java Environment</td>
+ </tr>
+ <tr valign="top"><td>--with-java-home=DIR</td>
+ <td>DIR is the patch to the JDK root directory. Something like: /opt/java/jdk12</td>
+ </tr>
+ <tr valign="top"><td>--with-os-type=SUBDIR</td><td>SUBDIR is the os-type subdirectory,
+ configure should guess it correctly.</td>
+ </tr>
+ <tr valign="top"><td>--with-arch-type=SUBDIR</td><td>SUBDIR is the arch subdirectory,
+ configure should guess it correctly.</td>
+ </tr>
+ <tr valign="top"><td>--with-java-platform=VAL</td><td>VAL is the Java platform 1 is 1.1.x and 2 is for 1.2 and higher,
+ configure should guess it correctly.</td>
+ </tr>
+</table>
+</p>
+<p><font color="#ff0000">The JNI option has been deprecated. It will likely not work. Do not use it.</font></p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Examples of configure use"><strong>Examples of configure use</strong></a></font></td></tr><tr><td><blockquote>
+
+<p class="screen"><div align="left"><table width="80%" border="1" cellspacing="0" cellpadding="2" bgcolor="#000000"><tr><td bgcolor="#000000" align="left"><div class="screen">Apache 1.3 and 2.0/2.2 build</div><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">./configure --with-apxs=/usr/sbin/apxs</b></nobr></code><br><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">make</b></nobr></code><br><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">cp ./apache-1.3/mod_jk.so /usr/lib/apache</b></nobr></code><br><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">make clean</b></nobr></code><br><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">./configure --with-apxs=/usr/sbin/apxs2</b></nobr></code><br><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">make</b></nobr></code><br><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">cp ./apache-2.0/mod_jk.so /usr/lib/apache2</b></nobr></code><br></td></tr></table></div></p>
+
+<p class="screen"><div align="left"><table width="80%" border="1" cellspacing="0" cellpadding="2" bgcolor="#000000"><tr><td bgcolor="#000000" align="left"><div class="screen">Apache 2.0/2.2 build with JNI support</div><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">./configure --with-apxs2=/opt/apache2/bin/apxs \</b></nobr></code><br><code><nobr><em class="screen"> </em><b class="screen">--with-java-home=${JAVA_HOME} --with-java-platform=2 \</b></nobr></code><br><code><nobr><em class="screen"> </em><b class="screen">--enable-jni</b></nobr></code><br></td></tr></table></div></p>
+<p><font color="#ff0000">The JNI option has been deprecated. It will likely not work. Do not use it.</font></p>
+</blockquote></td></tr></table>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Building mod_jk for Apache on Windows NT/2K/XP"><strong>Building mod_jk for Apache on Windows NT/2K/XP</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+The module was developed using Visual C++ version 6.0, so having this environment is a prerequisite
+if you want to perform a custom build.
+</p>
+<p>
+The steps that you need to take are:
+</p>
+<ul>
+<li>
+Change directory to the apache 1.3 or apache 2.0 source directory depending on your version of Apache.
+</li>
+<li>
+If you want to build mod_jk for Apache 1.3, set an <b>APACHE1_HOME</b> environment variable which points
+to where your Apache 1.3 is installed.
+A mod_jk module for Apache 2.0 build will require <b>APACHE2_HOME</b> environment variable to be set.
+</li>
+<li>
+Copy mod_jk.so to Apache's modules directory.
+</li>
+</ul>
+<p>
+An example on how to build mod_jk for Apache 1.3:
+</p>
+<p class="screen"><div align="left"><table width="80%" border="1" cellspacing="0" cellpadding="2" bgcolor="#000000"><tr><td bgcolor="#000000" align="left"><div class="screen">Set location for Apache 1.3 sources</div><code><nobr><em class="screen">c:\&gt;</em><b class="screen">set APACHE1_HOME=c:\apache13</b></nobr></code><br><div class="screen">Change directory to the mod_jk module for Apache 1.3</div><code><nobr><em class="screen">c:\&gt;</em><b class="screen">cd c:\home\apache\jk\native\apache-1.3</b></nobr></code><br><div class="screen">Build the sources using MSDEV</div><code><nobr><em class="screen">c:\&gt;</em><b class="screen">MSDEV mod_jk.dsp /MAKE ALL</b></nobr></code><br><div class="screen">Copy the dll to your apache modules directory</div><code><nobr><em class="screen">c:\&gt;</em><b class="screen">cp release\mod_jk.so c:\apache13\modules\</b></nobr></code><br></td></tr></table></div></p>
+
+<p>
+An example on how to build mod_jk for Apache 2.0:
+</p>
+<p class="screen"><div align="left"><table width="80%" border="1" cellspacing="0" cellpadding="2" bgcolor="#000000"><tr><td bgcolor="#000000" align="left"><div class="screen">Set location for Apache 2.0 sources</div><code><nobr><em class="screen">c:\&gt;</em><b class="screen">set APACHE2_HOME=c:\apache20</b></nobr></code><br><div class="screen">Change directory to the mod_jk module for Apache 2.0</div><code><nobr><em class="screen">c:\&gt;</em><b class="screen">cd c:\home\apache\jk\native\apache-2.0</b></nobr></code><br><div class="screen">Build the sources using MSDEV</div><code><nobr><em class="screen">c:\&gt;</em><b class="screen">MSDEV mod_jk.dsp /MAKE ALL</b></nobr></code><br><div class="screen">Copy the dll to your apache modules directory</div><code><nobr><em class="screen">c:\&gt;</em><b class="screen">cp release\mod_jk.so c:\apache20\modules\</b></nobr></code><br></td></tr></table></div></p>
+
+<p>
+If msdev is not in your path, enter the full path to msdev.exe.
+Also, ApacheCore.lib is expected to exist in the <b>${APACHEX_HOME}\src\CoreD</b> and
+<b>${APACHEX_HOME}\src\CoreR</b> directories before linking will succeed.
+You will need to build enough of the Apache source to create these libraries.
+This will build both release and debug versions of the redirector plug-in (mod_jk).
+An alternative will be to open mod_jk.dsp in msdev and build it using the build menu.
+</p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Building mod_jk for Apache on System I - i5/OS (OS400)"><strong>Building mod_jk for Apache on System I - i5/OS (OS400)</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+Since OS400 V4R5, System I (AS/400) has used Apache 2.0 as their primary web server,
+replacing the old IBM webserver.
+It's now possible to build mod_jk on System I thanks to the help of the IBM
+Rochester Labs which has provided information and patches to adapt mod_jk to i5/OS.
+</p>
+<p>
+You should have at least Apache 2.0.58 (product 5722DG1), a C Compiler and IFS.
+Apache 2.0.58 is provided with the most recent set of PTFs for the iSeries Apache
+server, which can be found at <a href="http://www.ibm.com/servers/eserver/iseries/software/http/">
+http://www.ibm.com/servers/eserver/iseries/software/http/</a>
+</p>
+<p>
+The all latest Apache 2 for i5/OS V5R3 (or V5R4) is now 2.0.58 (as of 2007/04/17).
+Be sure to have the latest PTFs loaded if you want to make use of jk 1.2.15 and higher.
+NB: The latest mod_jk known to work on i5/OS V5R3 was 1.2.19.
+</p>
+<p>
+New in i5/OS V5R4, UTF is required, also for Apache modules, as such Apache modules do not require
+translations to/from EBCDIC but works should be done to port mod_jk 1.2.23 (and higher) to V5R4.
+
+From the V5R4 Infocenter :
+
+As of i5/OS(tm) V5R4, modules must be recompiled with a UTF locale. This creates an environment where locale-dependent C runtime functions assume
+that string data is encoded in UTF-8. Any hardcoded constants can be encoded in UTF-8 by adding a #pragma convert(1208) statement in the module.
+Additionally, input data from the client will no longer be converted to EBCDIC but will be passed as-is.
+Output data sent from the module is not converted either so it must be encoded in ASCII or UTF8 as required.
+APR and HTTP APIs as of V5R4, expect data in UTF-8. Note that several APIs have additional functions that allow a CCSID to be set to
+indicate the encoding of the parameters being passed. Conversion functions between UTF-8 and EBCDIC have been added.
+Be sure to review APIs used by your module to be aware of current changes.
+
+</p>
+<p>
+To configure mod_jk on System I use the CL source provided with the mod_jk source.
+</p>
+<ul>
+<li>
+Get the latest mod_jk source and untar it on a Windows or Unix boxes
+</li>
+<li>
+Create a directory in IFS, ie /home/apache
+</li>
+<li>
+Send the whole jk source directory to System I directory via FTP.
+</li>
+<li>
+Then go to the System I command line :
+</li>
+</ul>
+<p class="screen"><div align="left"><table width="80%" border="1" cellspacing="0" cellpadding="2" bgcolor="#000000"><tr><td bgcolor="#000000" align="left"><div class="screen">Create mod_jk library</div><code><nobr><em class="screen">===&gt;</em><b class="screen">CRTLIB MOD_JK TEXT(&#145;Apache mod'jk tomcat connector module')</b></nobr></code><br><div class="screen">Create service program source file</div><code><nobr><em class="screen">===&gt;</em><b class="screen">CRTSRCPF MOD_JK/QSRVSRC TEXT(&#145;Service program source file&#146;)</b></nobr></code><br><div class="screen">Create the CL build program source file</div><code><nobr><em class="screen">===&gt;</em><b class="screen">CRTSRCPF FILE(MOD_JK/QCLSRC) TEXT(&#145;Build program source file&#146;)</b></nobr></code><br><div class="screen">Edit the service program source file</div><code><nobr><em class="screen">===&gt;</em><b class="screen">STRSEU MOD_JK/QSRVSRC MOD_JK</b></nobr></code><br></td></tr></table></div></p>
+<p>
+In the edited file, specify that only jk_module should be exported :
+<p class="screen"><div align="left"><table width="80%" border="1" cellspacing="0" cellpadding="2" bgcolor="#000000"><tr><td bgcolor="#000000" align="left"><div class="screen"> Columns . . : 1 71 Edit MOD_JK/QSRVSRC </div><div class="screen"> SEU==&gt; MOD_JK </div><div class="screen"> *************** Beginning of data ************************************* </div><div class="screen">0001.00 STRPGMEXP PGMLVL(*CURRENT) </div><div class="screen">0002.00 EXPORT SYMBOL("jk_module") </div><div class="screen">0003.00 ENDPGMEXP </div><div class="screen"> ****************** End of data **************************************** </div></td></tr></table></div></p>
+</p>
+<p>
+You could start to build all the modules of mod_jk (cases for V5R4 or previous releases):
+</p>
+<p class="screen"><div align="left"><table width="80%" border="1" cellspacing="0" cellpadding="2" bgcolor="#000000"><tr><td bgcolor="#000000" align="left"><div class="screen">Copy the CL build program source for i5/OS before V5R4 from IFS</div><code><nobr><em class="screen">===&gt;</em><b class="screen">CPYFRMSTMF FROMSTMF('/home/apache/jk/native/apache-2.0/bldjk.qclsrc') +</b></nobr></code><br><div class="screen">TOMBR('/QSYS.LIB/MOD_JK.LIB/QCLSRC.FILE/BLDJK.MBR') MBROPT(*REPLACE)</div><div class="screen">Build the CL build program</div><code><nobr><em class="screen">===&gt;</em><b class="screen">CRTCLPGM PGM(MOD_JK/BLDJK) SRCFILE(MOD_JK/QCLSRC) TEXT('Apache mod_jk build program')</b></nobr></code><br><div class="screen">Launch the build</div><code><nobr><em class="screen">===&gt;</em><b class="screen">CALL MOD_JK/BLDJK</b></nobr></code><br><div class="screen">If the build if successfull, copy the new mod_jk module</div><code><nobr><em class="screen">===&gt;</em><b class="screen">CRTDUPOBJ OBJ(MOD_JK) FROMLIB(MOD_JK) OBJTYPE(*SRVPGM) TOLIB(QHTTPSVR) NEWOBJ(MOD_JK)</b></nobr></code><br></td></tr></table></div></p>
+<p class="screen"><div align="left"><table width="80%" border="1" cellspacing="0" cellpadding="2" bgcolor="#000000"><tr><td bgcolor="#000000" align="left"><div class="screen">Copy the CL build program source for i5/OS V5R4 from IFS</div><code><nobr><em class="screen">===&gt;</em><b class="screen">CPYFRMSTMF FROMSTMF('/home/apache/jk/native/apache-2.0/bldjk54.qclsrc') +</b></nobr></code><br><div class="screen">TOMBR('/QSYS.LIB/MOD_JK.LIB/QCLSRC.FILE/BLDJK54.MBR') MBROPT(*REPLACE)</div><div class="screen">Build the CL build program for i5/OS V5R4</div><code><nobr><em class="screen">===&gt;</em><b class="screen">CRTCLPGM PGM(MOD_JK/BLDJK54) SRCFILE(MOD_JK/QCLSRC) TEXT('Apache mod_jk build program') TGTRLS(*CURRENT)</b></nobr></code><br><div class="screen">Launch the build for i5/OS V5R4</div><code><nobr><em class="screen">===&gt;</em><b class="screen">CALL MOD_JK/BLDJK54</b></nobr></code><br><div class="screen">If the build if successfull, copy the new mod_jk module</div><code><nobr><em class="screen">===&gt;</em><b class="screen">CRTDUPOBJ OBJ(MOD_JK) FROMLIB(MOD_JK) OBJTYPE(*SRVPGM) TOLIB(QHTTPSVR) NEWOBJ(MOD_JK)</b></nobr></code><br></td></tr></table></div></p>
+<p>
+Next, you should restart your Apache 2.0 instance and enjoy this piece of OpenSource on System I.
+</p>
+<p class="screen"><div align="left"><table width="80%" border="1" cellspacing="0" cellpadding="2" bgcolor="#000000"><tr><td bgcolor="#000000" align="left"><div class="screen">ENDTCPSVR SERVER(*HTTP) HTTPSVR(MYSERVER)</div><div class="screen">STRTCPSVR SERVER(*HTTP) HTTPSVR(MYSERVER)</div></td></tr></table></div></p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Building mod_jk for Apache on MacOS/X"><strong>Building mod_jk for Apache on MacOS/X</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+Mac OS X (10.2.x) build notes :
+</p>
+<p>
+Assuming that you are root :
+</p>
+<p class="screen"><div align="left"><table width="80%" border="1" cellspacing="0" cellpadding="2" bgcolor="#000000"><tr><td bgcolor="#000000" align="left"><div class="screen">For Apache 1.3:</div><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">./configure --with-apxs=/usr/sbin/apxs</b></nobr></code><br><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">cd apache-1.3</b></nobr></code><br><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">make -f Makefile.apxs</b></nobr></code><br><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">cp mod_jk.so /etc/libexec/httpd</b></nobr></code><br><div class="screen">For Apache 2.0:</div><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">./configure --with-apxs=/usr/local/apache2/bin/apxs</b></nobr></code><br><div class="screen">(you should point to the directory where you installed Apache 2.0)</div><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">cd apache-2.0</b></nobr></code><br><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">make -f Makefile.apxs install</b></nobr></code><br></td></tr></table></div></p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Getting mod_jk linked statically with Apache"><strong>Getting mod_jk linked statically with Apache</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+mod_jk allows to install mod_jk in the Apache source tree to get a statically
+linked mod_jk. Having mod_jk in the httpd executable brings some performance
+improvements. The configure option --with-apache prepare mod_jk to install it
+in the Apache source tree.
+The option --with-apache works both for Apache-1.3 and Apache-2.0.
+The examples below show how to get mod_jk in the httpd process.
+</p>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Installation in Apache-2.0"><strong>Installation in Apache-2.0</strong></a></font></td></tr><tr><td><blockquote>
+<p class="screen"><div align="left"><table width="80%" border="1" cellspacing="0" cellpadding="2" bgcolor="#000000"><tr><td bgcolor="#000000" align="left"><div class="screen"> /home/apache20/httpd-2.0.43 is the directory where the httpd-2.0 sources
+are located. </div><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">./configure --with-apache=/home/apache20/httpd-2.0.43</b></nobr></code><br><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">make</b></nobr></code><br><div class="screen">Install the mod_jk library and other files in
+/home/apache20/httpd-2.0.43/modules: </div><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">make install</b></nobr></code><br><div class="screen"> It is not possible to configure Apache directly because the config.m4 of mod_jk must
+be added to the configure of httpd-2.0. </div><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">cd /home/apache20/httpd-2.0.43</b></nobr></code><br><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">sh buildconf</b></nobr></code><br><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">configure ... --with-mod_jk</b></nobr></code><br><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">make</b></nobr></code><br><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">make install</b></nobr></code><br></td></tr></table></div></p>
+<p>
+The enable-jk=share and enable-jk=static are not supported. --with-mod_jk only
+allow static linking of mod_jk.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Installation in Apache-1.3"><strong>Installation in Apache-1.3</strong></a></font></td></tr><tr><td><blockquote>
+<p class="screen"><div align="left"><table width="80%" border="1" cellspacing="0" cellpadding="2" bgcolor="#000000"><tr><td bgcolor="#000000" align="left"><div class="screen"> /home/apache/apache_1.3.27 is the directory where the apache-1.3 sources
+are located. </div><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">./configure --with-apache=/home/apache/apache_1.3.27</b></nobr></code><br><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">make</b></nobr></code><br><div class="screen">Install the libjk library, mod_jk.c, includes and other files in
+/home/apache/apache_1.3.27/src/modules/jk: </div><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">make install</b></nobr></code><br><div class="screen"> Configure in the Apache sources: </div><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">cd /home/apache/apache_1.3.27</b></nobr></code><br><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">configure ... --enable-module=dir --disable-shared=dir \</b></nobr></code><br><code><nobr><em class="screen"> </em><b class="screen"> --activate-module=src/modules/jk/libjk.a \</b></nobr></code><br><code><nobr><em class="screen"> </em><b class="screen"> --disable-shared=jk</b></nobr></code><br><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">make</b></nobr></code><br><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">make install</b></nobr></code><br></td></tr></table></div></p>
+<p>
+The --enable-shared=jk is also working and builds a dso file.
+</p>
+<p class="screen"><div align="left"><table width="80%" border="1" cellspacing="0" cellpadding="2" bgcolor="#000000"><tr><td bgcolor="#000000" align="left"><div class="screen"> Just change the configure in the Apache sources: </div><code><nobr><em class="screen">[user@host] ~ $ </em><b class="screen">configure ... --enable-module=dir --enable-shared=dir \</b></nobr></code><br><code><nobr><em class="screen"> </em><b class="screen"> --activate-module=src/modules/jk/libjk.a \</b></nobr></code><br><code><nobr><em class="screen"> </em><b class="screen"> --enable-shared=jk</b></nobr></code><br></td></tr></table></div></p>
+</blockquote></td></tr></table>
+
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright &copy; 1999-2011, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html> \ No newline at end of file
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/docs/webserver_howto/printer/iis.html b/rubbos/app/tomcat-connectors-1.2.32-src/docs/webserver_howto/printer/iis.html
new file mode 100644
index 00000000..498b71f0
--- /dev/null
+++ b/rubbos/app/tomcat-connectors-1.2.32-src/docs/webserver_howto/printer/iis.html
@@ -0,0 +1,684 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>The Apache Tomcat Connector - Webserver HowTo - IIS HowTo</title><meta name="author" value="Henri Gomez"><meta name="email" value="hgomez@apache.org"><meta name="author" value="Gal Shachor"><meta name="email" value="shachor@il.ibm.com"><meta name="author" value="Yoav Shapira"><meta name="email" value="yoavs@apache.org"><link href="../../style.css" type="text/css" rel="stylesheet"></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="4"><!--PAGE HEADER--><tr><td colspan="2"><!--TOMCAT LOGO--><a href="http://tomcat.apache.org/"><img src="../../images/tomcat.gif" align="left" alt="Apache Tomcat" border="0"></a><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="http://www.apache.org/images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><tr><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left"><table border="0" width="100%" cellspacing="4"><tr><td align="left" valign="top"><h1>The Apache Tomcat Connector - Webserver HowTo</h1><h2>IIS HowTo</h2></td><td align="right" valign="top" nowrap="true"><img src="../../images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+This document explains how to set up IIS to cooperate with Tomcat.
+</p>
+
+<p>
+Normally IIS can not execute Servlets and Java Server Pages (JSPs),
+configuring IIS to use the JK ISAPI redirector plugin will let IIS send servlet and
+JSP requests to Tomcat (and this way, serve them to clients).
+</p>
+
+<p>
+It is recommended that you also read the
+<a href="../../generic_howto/workers.html">Workers HowTo</a> document
+to learn how to setup the working entities between your web server and Tomcat Engines.
+For more detailed configuration information consult the Reference Guide for
+<a href="../../reference/workers.html">workers.properties</a>,
+<a href="../../reference/uriworkermap.html">uriworkermap</a>
+and <a href="../../reference/iis.html">IIS</a>.
+</p>
+
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Document Conventions and Assumptions"><strong>Document Conventions and Assumptions</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+${tomcat_home} is the root directory of tomcat.
+Your Tomcat installation should have the following subdirectories:
+
+<ul>
+<li>
+${tomcat_home}\conf - Where you can place various configuration files
+</li>
+<li>
+${tomcat_home}\webapps - Containing example applications
+</li>
+<li>
+${tomcat_home}\bin - Where you place web server plugins
+</li>
+</ul>
+</p>
+<p>
+In all the examples in this document ${tomcat_home} will be <b>c:\tomcat</b>.
+A worker is defined to be a tomcat process that accepts work from the IIS server.
+</p>
+</blockquote></td></tr></table>
+
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Supported Configuration"><strong>Supported Configuration</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+The IIS-Tomcat redirector was developed and tested on:
+<ul>
+<li>
+WinNT4.0-i386 SP4/SP5/SP6a (should be able to work with other service packs), Win2K and WinXP and Win98
+</li>
+<li>
+IIS4.0 and PWS4.0 (numerous people have working IIS 5 and IIS 6 configurations)
+</li>
+<li>
+Tomcat 3.2 and later, Tomcat 4.x, Tomcat 5 and 5.5 and Tomcat 6
+</li>
+</ul>
+</p>
+
+<p>
+The redirector uses <b>ajp12</b> and <b>ajp13</b> to send requests to the Tomcat containers. There is also an option to use Tomcat in process,
+more about the in-process mode can be found in the in process howto.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="IIS 5 and 6 Notes"><strong>IIS 5 and 6 Notes</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+There are extra steps you need to take for configuring Tomcat with IIS 5 and 6. Please see the appropriate links from
+<a href="http://wiki.apache.org/tomcat/Tomcat/Links">Tomcat Useful Links</a>.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="IIS 7 notes"><strong>IIS 7 notes</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+There is a known bug in IIS that may result in incomplete log messages. See <a href="https://issues.apache.org/bugzilla/show_bug.cgi?id=45769">bug 45769</a>
+for further details.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Who support ajp protocols ?"><strong>Who support ajp protocols ?</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+The ajp12 protocol is only available in Tomcat 3.2.x and 3.3.x.
+</p>
+
+<p>
+The <b>ajp12</b> has been <b>deprecated</b> with Tomcat 3.3.x and you should use instead
+<b>ajp13</b> which is the only ajp protocol known by Tomcat 4.x, 5 and 5.5 and Tomcat 6.
+</p>
+
+<p>
+Of course Tomcat 3.2.x and 3.3.x also support ajp13 protocol.
+</p>
+
+<p>
+Others servlet engines such as <b>jetty</b> have support for ajp13 protocol
+</p>
+
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="How does it work ?"><strong>How does it work ?</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+<ol>
+<li>
+The IIS-Tomcat redirector is an IIS plugin (filter + extension), IIS load the redirector plugin and calls its
+filter function for each in-coming request.
+</li>
+<li>
+The filter then tests the request URL against a list of URI-paths held inside uriworkermap.properties,
+If the current request matches one of the entries in the list of URI-paths,
+the filter transfers the request to the extension.
+</li>
+<li>
+The extension collects the request parameters and forwards them to the appropriate worker using the defined
+protocol like <b>ajp13</b>.
+</li>
+<li>
+The extension collects the response from the worker and returns it to the browser.
+</li>
+</ol>
+</p>
+</blockquote></td></tr></table>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Installation"><strong>Installation</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+A pre-built version of the ISAPI redirector server plugin, isapi_redirect.dll, is available under
+the win32/i386 directory of tomcat-connectors distribution.
+For those using Netscape as your browser, try downloading a zip version of the file, if available.
+There can be problems using Netscape to download DLL files.
+
+You can also build a copy locally from the source present in tomcat-connectors distribution.
+
+The Tomcat redirector requires three entities:
+
+<ul>
+<li>
+<b>isapi_redirect.dll</b> - The IIS server plugin, either obtain a pre-built DLL or build it yourself (see the build section).
+</li>
+<li>
+<b><a href="../../reference/workers.html">workers.properties</a></b> - A file that describes the host(s) and port(s) used by the workers (Tomcat processes).
+A sample workers.properties can be found under the conf directory.
+</li>
+<li>
+<b><a href="../../reference/uriworkermap.html">uriworkermap.properties</a></b> - A file that maps URL-Path patterns to workers.
+A sample uriworkermap.properties can be found under the conf directory as well.
+</li>
+</ul>
+</p>
+
+<p>
+The installation includes the following parts:
+
+<ul>
+<li>
+Configuring the ISAPI redirector with a default /examples context and checking that you can serve servlets with IIS.
+</li>
+<li>
+Adding more contexts to the configuration.
+</li>
+</ul>
+</p>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Configuring the ISAPI Redirector"><strong>Configuring the ISAPI Redirector</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+In this document I will assume that isapi_redirect.dll is placed in
+<b>c:\tomcat\bin\win32\i386\isapi_redirect.dll</b> and
+that the properties files which you created are in <b>c:\tomcat\conf</b>.
+</p>
+<p>
+<ol>
+<li>
+In the registry, create a new registry key named
+<b>"HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Jakarta Isapi Redirector\1.0"</b>
+</li>
+<li>
+Add a string value with the name <b>extension_uri</b> and a value of <b>/jakarta/isapi_redirect.dll</b>
+</li>
+<li>
+Add a string value with the name <b>log_file</b> and a value pointing to where you want your
+log file to be (for example <b>c:\tomcat\logs\isapi.log</b>).
+</li>
+<li>
+Add a string value with the name <b>log_level</b> and a value for your log level
+(can be debug, info, error or emerg).
+</li>
+<li>
+Add a string value with the name <b>worker_file</b> and a value which is the full path
+to your workers.properties file (for example <b>c:\tomcat\conf\workers.properties</b>)
+</li>
+<li>
+Add a string value with the name <b>worker_mount_file</b> and a value which is the full path
+to your uriworkermap.properties file (for example <b>c:\tomcat\conf\uriworkermap.properties</b>)
+</li>
+<li>
+Using the IIS management console, add a new virtual directory to your IIS/PWS web site.
+The name of the virtual directory must be jakarta.
+Its physical path should be the directory where you placed isapi_redirect.dll
+(in our example it is c:\tomcat\bin\win32\i386).
+While creating this new virtual directory assign it with execute access.
+</li>
+<li>
+Using the IIS management console, add isapi_redirect.dll as a filter in your IIS/PWS web site.
+The name of the filter should reflect its task (I use the name tomcat),
+its executable must be our c:\tomcat\bin\win32\i386\isapi_redirect.dll.
+For PWS, you'll need to use regedit and add/edit the <b>"Filter DLLs"</b> key under
+<b>HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\W3SVC\Parameters</b>.
+This key contains a "," separated list of dlls (full paths) -
+you need to insert the full path to isapi_redirect.dll.
+</li>
+<li>
+If you're using IIS 6.0 you must also do the following:
+<br>
+Using the IIS management console, add the Jakarta Isapi Redirector to the Web
+Service Extensions.
+<ol>
+<li>Right-click on Web Service Extensions and choose Add a new Web Service
+Extension.</li>
+<li>Enter tomcat for the Extension Name.</li>
+<li>Add the isapi_redirect.dll to the required files.</li>
+<li>Check the Set extension status to Allowed.</li>
+<li>Click on OK.</li>
+</ol>
+</li>
+<li>
+Restart IIS (stop + start the IIS service), make sure that the tomcat filter is marked with a green up-pointing arrow.
+Under Win98 you may need to <b>cd WINDOWS\SYSTEM\inetsrv</b> and type PWS /stop
+( the DLL and log files are locked - even if you click the stop button,
+PWS will still keep the DLLs in memory. ). Type pws to start it again.
+</li>
+</ol>
+</p>
+<p>
+That's all, you should now start Tomcat and ask IIS to serve you the /examples context.
+Try <a href="http://localhost/examples/jsp/index.html">http://localhost/examples/jsp/index.html</a> for example and
+execute some of the JSP examples.
+</p>
+<p>
+If this does not work successfully, refer to the Troubleshooting section below for help on correcting the problem.
+</p>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Adding additional Contexts"><strong>Adding additional Contexts</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+The examples context is useful for verifying your installation,
+but you will also need to add your own contexts. Adding a new context requires two operations:
+</p>
+<p>
+<ol>
+<li>
+Adding the context to Tomcat (I am not going to talk about this).
+</li>
+<li>
+Adding the context to the ISAPI redirector.
+</li>
+</ol>
+</p>
+<p>
+Adding a context to the ISAPI redirector is simple, all you need to do is to edit
+your uriworkermap.properties and to add a line that looks like:
+</p>
+
+<div class="example"><pre>
+ /context/*=worker_name
+</pre></div>
+
+<p>
+Workers and their name are defined in workers.properties, by default workers.properties comes
+with a single pre-configured worker named <b>"defworker"</b> so you can use it.
+As an example, if you want to add a context named "shop", the line that you should add to
+uriworkermap.properties will be:
+</p>
+
+<div class="example"><pre>
+ /shop/*=defworker
+</pre></div>
+
+After saving uriworkermap.properties restart IIS and it will serve the new context.
+<p>
+The above should be all you need for IIS to pass through to Tomcat any request for any URI which corresponds
+to a Tomcat context (webapp).
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Advanced Context Configuration"><strong>Advanced Context Configuration</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+If your webiste is very busy (more than 100 requests/second, or more than 100 simultaneous client connections),
+it might sometimes be desirable to have IIS serve static content (html, gif, jpeg etc.) directly,
+even if these files are part of a context served by Tomcat. Allowing IIS to serve such files directly may
+ avoid the small overhead consisting of passing the request to Tomcat via the redirector, and may free up
+ Tomcat somewhat, by using it only to process requests that only Tomcat can handle (e.g. requests to JSP pages and java servlets).
+</p>
+<p>
+For example, consider the html and gif files in the examples context : you could serve these files directly
+with IIS; there is no need to serve them from the Tomcat process.
+</p>
+<p><font color="#ff0000">However, you should be very careful when you implement the following configuration style, because by doing so you are
+in fact providing a "back-door" to IIS, and allowing it to serve files out of a Tomcat context without Tomcat's knowledge,
+thus bypassing any security
+restrictions which Tomcat itself and the Tomcat context (webapp) may place on those files.</font></p>
+<p>
+Making IIS serve static files that are part of the Tomcat contexts requires the following:
+<ol>
+<li>
+Configuring IIS to know about the Tomcat contexts
+</li>
+<li>
+Configuring the redirector to leave the static files for IIS
+</li>
+</ol>
+</p>
+
+<p>
+Adding a Tomcat context to IIS requires the addition of a new IIS virtual directory that covers the Tomcat context.
+For example adding a /example IIS virtual directory that covers the c:\tomcat\webapps\examples directory.
+</p>
+
+<p>
+Configuring the redirector is somewhat harder, you will need to specify the exact
+URL-Path pattern(s) which you want Tomcat to handle (usually only JSP files and servlets).
+This requires a change to the uriworkermap.properties :
+
+<div class="example"><pre>
+ For the examples context it requires to replace the following line
+ /examples/*=defworker
+ with the following two lines
+ /examples/*.jsp=defworker
+ /examples/servlet/*=defworker
+</pre></div>
+</p>
+
+<p>
+As you can see the second configuration is more explicit, it actually instruct the redirector
+to redirect only requests to resources under /examples/servlet/ and resources under /examples/
+whose name ends with .jsp.
+</p>
+
+<p>
+You can even be more explicit and provide lines such as:
+
+<div class="example"><pre>
+ /example/servletname=defworker
+</pre></div>
+</p>
+
+<p>
+that instructs the redirector to redirect all requests whose URL-path matches the leading string "/example/servletname"
+to the worker named defworker.
+</p>
+
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Protecting the content of your Tomcat contexts"><strong>Protecting the content of your Tomcat contexts</strong></a></font></td></tr><tr><td><blockquote>
+<p>Once again, be aware that by allowing IIS to access the content of your Tomcat context directly, you are
+potentially bypassing Tomcat's protection of that content. You should thus make sure to protect this content
+at the IIS level if needed, by using the corresponding IIS management console functions.
+</p>
+<p>
+In particular, each servlet application (context) has a special directory named WEB-INF,
+which contains sensitive configuration data and Java classes, and which should always be kept hidden from web users.
+Using the IIS management console it is possible to protect the WEB-INF directory from user access, but considering that
+this is a general requirement, and considering that it is easy to forget to implement this protection
+at the IIS level, the redirector plugin does it automatically for you, and it will reject any request
+which contains WEB-INF in its URL-path.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Advanced Worker Configuration"><strong>Advanced Worker Configuration</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+Sometimes you may want to serve different contexts with different Tomcat processes
+(for example to spread the load among different machines).
+To achieve such a goal you will need to define several workers and assign each context to its own worker.
+</p>
+<p>
+Defining additional workers is done in the workers.properties file. This file includes two types of entries:
+</p>
+
+<p>
+<div class="example"><pre>
+ # An entry that lists all the workers defined
+ worker.list=worker1, worker2
+ # Entries that define the host and port associated with each of these workers
+ worker.worker1.host=localhost
+ worker.worker1.port=8009
+ worker.worker1.type=ajp13
+ worker.worker2.host=otherhost
+ worker.worker2.port=8009
+ worker.worker2.type=ajp13
+</pre></div>
+</p>
+
+<p>
+The above example defined two workers, now we can use these workers to serve two different contexts
+each with its own worker:
+<div class="example"><pre>
+ example uriworkermap.properties fragment
+ /examples/*=worker1
+ /webpages/*=worker2
+</pre></div>
+</p>
+
+<p>
+As you can see the <b>examples</b> context is served by <b>worker1</b> while the
+<b>webpages</b> context is served by <b>worker2</b>.
+</p>
+
+<p>
+More information on using and configuring workers in the <a href="../../generic_howto/workers.html">Workers HowTo</a>
+and in the <a href="../../reference/workers.html">worker.properties configuration reference</a>.
+</p>
+
+</blockquote></td></tr></table>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Building ISAPI redirector"><strong>Building ISAPI redirector</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+The redirector was developed using Visual C++ Ver.6.0, so having this environment is a prerequisite if you want
+to perform a custom build. You should also have the IIS developer SDK.
+
+The steps that you need to take are:
+<ul>
+<li>
+Change directory to the isapi plugins source directory.
+</li>
+<li>
+Make the source with MSDEV
+</li>
+</ul>
+<p class="screen"><div align="left"><table width="80%" border="1" cellspacing="0" cellpadding="2" bgcolor="#000000"><tr><td bgcolor="#000000" align="left"><div class="screen">Change directory to the isapi plugins source directory</div><code><nobr><em class="screen">c:\&gt;</em><b class="screen">cd c:\home\apache\jk\iis</b></nobr></code><br><div class="screen">Build the sources using MSDEV</div><code><nobr><em class="screen">c:\&gt;</em><b class="screen">MSDEV isapi.dsp /MAKE ALL</b></nobr></code><br></td></tr></table></div></p>
+</p>
+<p>
+If msdev is not in your path, enter the full path to msdev.exe.
+This will build both release and debug versions of the redirector plugin.
+An alternative will be to open the isapi workspace file (isapi.dsw) in msdev and
+build it using the build menu.
+</p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Troubleshooting"><strong>Troubleshooting</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+It is easy to have the ISAPI redirector not work the first time you try to install it.
+</p>
+<p>
+If this happens to you, here are some steps to follow to try to correct the problem.
+</p>
+<p>
+These steps aren't guaranteed to cover all possible problems,
+but they should help find the typical mistakes.
+</p>
+<p>
+If you make any corrections during these steps, restart the IIS service as described above in the last step
+of the installation, then retry the step.
+</p>
+
+<p>To enable error tracking, make sure web site activity is being logged.
+For PWS 4.0 make sure "Save Web Site Activity Log" is checked in the Advanced Options of the Personal Web Manager.
+</p>
+
+<p>
+Note: These steps assume your <b>worker_mount_file</b> setting points to an unmodified copy of the
+<b>uriworkermap.properties</b> file.<br>
+Results may be misleading if <b>worker_mount_file</b> points to a modified <b>uriworkermap.properties</b>
+or the <b>uriworkermap.properties-auto</b> file.<br>
+It is also assumed that the <b>"/examples" context</b> works correctly if you access Tomcat directly.
+</p>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Win98"><strong>Win98</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+Start the IIS service and Tomcat.
+</p>
+<p>
+Check for the presence of the ISAPI redirector log file you specified in the log_file setting.
+If not found, verify the following:
+</p>
+<ul>
+<li>
+Check the "Filter DLLs" setting in the "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\W3SVC\Parameters"
+key and make sure the path is correct.
+</li>
+<li>
+Check the spelling of the "HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Jakarta Isapi Redirector\1.0" key.
+Case isn't important, but an incorrect letter will prevent the isapi_redirect.dll from finding its registry settings.
+</li>
+<li>
+Check the log_file setting for typos, name and data. Also insure the directory in which the log file will appear already exists.
+</li>
+If the above are set correctly, the ISAPI redirector should be able to create the log file.
+</ul>
+<p>
+Invoke the URL <a href="http://localhost/examples/jsp/index.html">http://localhost/examples/jsp/index.html</a>
+in your browser.
+Case is important in Tomcat. The characters following "localhost" in the URL must be lower case.
+If the page fails to appear, stop the IIS service (required to view the IIS log file).
+Then examine the last line in the IIS log file in found in SYSTEM/LogFiles/W3SVC1 :
+</p>
+<p>
+If the last line contains:
+</p>
+<div class="example"><pre>
+ GET "/examples/jsp/index.html HTTP/1.1" 404
+</pre></div>
+<p>
+then the ISAPI redirector is not recognising that it should be handling requests for the "/examples" context.
+Check the following:
+</p>
+<ul>
+<li>
+Check the extension_uri name for typos.
+</li>
+<li>
+Check the worker_file setting for typos, name and data.
+</li>
+<li>
+Check the worker_mount_file setting typos, name and data.
+</li>
+If these are set correctly, the ISAPI redirector should recognise that it should handle requests for the "/examples" context.
+</ul>
+
+<p>If the last line contains something like:
+</p>
+
+<div class="example"><pre>
+ GET "/jakarta/isapi_redirect.dll HTTP1.1"
+</pre></div>
+
+<p>
+then the ISAPI redirector is recognising that it should handle the request,
+but is not successful at getting Tomcat to service the request.
+</p>
+
+<p>
+You should check the HTTP error code following GET "/..." :
+</p>
+
+<div class="example"><pre>
+ Error 404
+ GET "/..." 404
+</pre></div>
+
+<ul>
+<li>
+Make sure you entered the URL correctly.
+</li>
+<li>
+Make sure the virtual directory created was called "jakarta".
+It should display in Personal Web Manager as "/jakarta" (without the quotes).
+</li>
+<li>
+Make sure the extension_uri data begins with "/jakarta/" (without the quotes).
+</li>
+</ul>
+
+<div class="example"><pre>
+ Error 500
+ GET "/..." 500
+</pre></div>
+
+<ul>
+<li>
+Make sure that "isapi_redirect.dll" follows "/jakarta/" in the extension_uri setting.
+</li>
+<li>
+Check the workers.properties file and make sure the port setting for worker.ajp12.port is the same as the port specified in the server.xml for the "Apache AJP12 support".
+</li>
+</ul>
+
+<div class="example"><pre>
+ Error 200 or 403
+ GET "/..." 200
+ GET "/..." 403
+</pre></div>
+
+<ul>
+<li>
+Make sure you have checked Execute Access
+for the jakarta virtual directory in the Advanced Options of the Personal Web Manager.
+</li>
+</ul>
+
+<p>
+If the above settings are correct, the index.html page should appear in your browser.
+You should also be able to click the Execute links to execute the JSP examples.
+</p>
+
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="WinNT/Win2K/WinXP"><strong>WinNT/Win2K/WinXP</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+Start the World Wide Web Publishing Service and Tomcat.
+</p>
+<p>
+Check for the presence of the ISAPI redirector log file you specified in the log_file setting.
+If not found, check the following:
+</p>
+<ul>
+<li>
+Check the "executable" you set for the filter in the IIS Management Console and make sure the path is correct.
+</li>
+<li>Check the spelling of the "HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Jakarta Isapi Redirector\1.0" key.
+Case isn't important, but an incorrect letter will prevent the isapi_redirect.dll from finding its registry settings.
+</li>
+<li>
+Check the log_file setting for typos, name and data. Also insure the directory in which the log file will appear already exists.
+</li>
+If the above are set correctly, the ISAPI redirector should be able to create the log file.
+</ul>
+
+<p>
+Check the tomcat filter you added and make sure its status shows a green upward-pointing arrow.
+If not, check the following:
+</p>
+<ul>
+<li>
+Check the worker_file setting for typos, name and data.
+</li>
+<li>
+Check the worker_mount_file setting typos, name and data.
+</li>
+If the above are set correctly, the green upward-pointing arrow should appear, even if the other settings are wrong.
+</ul>
+
+<p>
+Invoke the URL <a href="http://localhost/examples/jsp/index.html">http://localhost/examples/jsp/index.html</a>
+in your browser. Case is important in Tomcat. The characters following "localhost" in the URL must be lower case.
+If the page fails to appear, examine the last line in the IIS server log file in found in SYSTEM32/LogFiles/W3SVC1.
+</p>
+
+<p>
+The last line should contain something like: GET "/jakarta/isapi_redirect.dll HTTP1.1",
+which indicates the ISAPI redirector is recognising that it should handle the request.
+</p>
+
+<p>
+You should check the HTTP error code following GET "/..." :
+</p>
+
+<div class="example"><pre>
+ Error 404
+ GET "/..." 404
+</pre></div>
+
+<ul>
+<li>
+Make sure you entered the URL correctly.
+</li>
+</ul>
+
+<div class="example"><pre>
+ Error 500
+ GET "/..." 500
+</pre></div>
+
+<ul>
+<li>
+Make sure the virtual directory created was called "jakarta".
+</li>
+<li>
+Make sure that the extension_uri setting is correct.
+</li>
+<li>
+Check the workers.properties file and make sure the port setting for worker.ajp12.port is the same as the port specified in the server.xml for the "Apache AJP12 support".
+</li>
+</ul>
+
+<div class="example"><pre>
+ Error 200 or 403
+ GET "/..." 200
+ GET "/..." 403
+</pre></div>
+
+<ul>
+<li>
+Make sure you have checked Execute Access for the jakarta virtual directory in the
+Advanced Options of the Personal Web Manager.
+</li>
+</ul>
+
+<p>
+If the above settings are correct, the index.html page should appear in your browser.
+You should also be able to click the Execute links to execute the JSP examples.
+</p>
+</blockquote></td></tr></table>
+
+
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright &copy; 1999-2011, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html> \ No newline at end of file
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/docs/webserver_howto/printer/nes.html b/rubbos/app/tomcat-connectors-1.2.32-src/docs/webserver_howto/printer/nes.html
new file mode 100644
index 00000000..efb8f5a5
--- /dev/null
+++ b/rubbos/app/tomcat-connectors-1.2.32-src/docs/webserver_howto/printer/nes.html
@@ -0,0 +1,482 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>The Apache Tomcat Connector - Webserver HowTo - SunOne -- Netscape/iPlanet HowTo</title><meta name="author" value="Henri Gomez"><meta name="email" value="hgomez@apache.org"><meta name="author" value="Jim Jagielski"><meta name="email" value="jim@apache.org"><meta name="author" value="Gal Shachor"><meta name="email" value="shachor@il.ibm.com"><meta name="author" value="Mladen Turk"><meta name="email" value="mturk@apache.org"><link href="../../style.css" type="text/css" rel="stylesheet"></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="4"><!--PAGE HEADER--><tr><td colspan="2"><!--TOMCAT LOGO--><a href="http://tomcat.apache.org/"><img src="../../images/tomcat.gif" align="left" alt="Apache Tomcat" border="0"></a><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="http://www.apache.org/images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><tr><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left"><table border="0" width="100%" cellspacing="4"><tr><td align="left" valign="top"><h1>The Apache Tomcat Connector - Webserver HowTo</h1><h2>SunOne -- Netscape/iPlanet HowTo</h2></td><td align="right" valign="top" nowrap="true"><img src="../../images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+This document explains how to set up Sun ONE Web Server previously known as
+Netscape web servers to cooperate with Tomcat.
+</p>
+
+<p>
+Normally the Sun ONE Web Servers come with their own Servlet engine,
+but you can also configure them to send servlet and JSP requests to Tomcat
+using the NSAPI redirector plugin.
+</p>
+
+<p>
+It is recommended that you also read the <a href="../../generic_howto/workers.html">Workers HowTo</a> document
+to learn how to setup the working entities between your web server and Tomcat Engines.
+</p>
+
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Document Conventions and Assumptions"><strong>Document Conventions and Assumptions</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+${tomcat_home} is the root directory of tomcat.
+Your Tomcat installation should have the following subdirectories:
+
+<ul>
+<li>
+${tomcat_home}\conf - Where you can place various configuration files
+</li>
+<li>
+${tomcat_home}\webapps - Containing example applications
+</li>
+<li>
+${tomcat_home}\bin - Where you place web server plugins
+</li>
+</ul>
+</p>
+<p>
+In all the examples in this document ${tomcat_home} will be <b>c:\tomcat</b>.
+A worker is defined to be a tomcat process that accepts work from the Sun ONE Web Server.
+</p>
+</blockquote></td></tr></table>
+
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Supported Configuration"><strong>Supported Configuration</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+The NSAPI-Tomcat redirector was developed and tested on:
+<ul>
+<li>
+WINNT 2000/XP/2003 (should be able to work with other service packs) and some Unixes
+</li>
+<li>
+Sun ONE Web Server 6.1
+</li>
+<li>
+Tomcat 4.1.x , Tomcat 5.0.x and Tomcat 5.5.x
+</li>
+</ul>
+</p>
+
+<p>
+The redirector uses <b>ajp12</b> and <b>ajp13</b> to send requests to the Tomcat containers.
+There is also an option to use Tomcat in process,
+more about the in-process mode can be found in the in process howto.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Who support ajp protocols ?"><strong>Who support ajp protocols ?</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+The ajp12 protocol is only available in Tomcat 3.2.x and 3.3.x.
+</p>
+
+<p>
+The <b>ajp12</b> has been <b>deprecated</b> with Tomcat 3.3.x and you should use instead
+<b>ajp13</b> which is the only ajp protocol known by Tomcat 4.0.x, 4.1.x, 5.0.x, 5.5.x and 6.
+</p>
+
+<p>
+Of course Tomcat 3.2.x and 3.3.x also support ajp13 protocol.
+</p>
+
+<p>
+Others servlet engines such as <b>jetty</b> have support for ajp13 protocol
+</p>
+
+</blockquote></td></tr></table>
+
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="How does it work ?"><strong>How does it work ?</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+<ol>
+<li>
+The NSAPI-Tomcat redirector is an Netscape service step plugin,
+Netscape load the redirector plugin and calls its service handler
+function for request that are assigned to the "servlet" configuration object.
+</li>
+<li>
+For each in-coming request Netscape will execute the set of NameTrans directives
+that we added to obj.conf, the assign-name function will check if it's from
+parameter matches the request URL.
+</li>
+<li>
+If a match is found, assign-name will assign the servlet object name to the request.
+This will cause Netscape to send the request to the servlet configuration object.
+</li>
+<li>
+Netscape will execute our jk_service extension. The extension collects the
+request parameters and forwards them to the appropriate worker using the ajp13 protocol
+(the worker="defworker" parameter in jk_service inform it that the worker for this request is named <b>defworker</b>).
+the workers properties files, <b>workers.properties</b>, will indicate that defworker use ajp13 protocol.
+</li>
+<li>
+The extension collects the response from the worker and returns it to the browser.
+</li>
+</ol>
+</p>
+</blockquote></td></tr></table>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Installation"><strong>Installation</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+A pre-built version of the NSAPI redirector, nsapi_redirect.dll, may be available under
+the win32/i386 directory of tomcat-connectors distribution.
+For those using Netscape as your browser, try downloading a zip version of the file, if available.
+
+You can also build a copy locally from the source present in tomcat-connectors distribution.
+
+
+The Tomcat redirector requires two entities:
+<ul>
+<li>
+nsapi_redirect.dll (Windows) -or- nsapi_redirector.so (Unix) - The NSAPI server plugin, either obtain a pre-built DLL/so or build it yourself
+(see the build section).
+</li>
+<li>
+workers.properties - A file that describes the host(s) and port(s) used by the workers (Tomcat processes).
+A sample workers.properties can be found under the conf directory.
+</li>
+</ul>
+
+The installation includes the following parts:
+
+<ul>
+<li>
+Configuring the NSAPI redirector with a default /examples context and checking that you can serve servlets
+with Netscape.
+</li>
+<li>
+Adding more contexts to the configuration.
+</li>
+</ul>
+
+</p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Configuring the NSAPI Redirector"><strong>Configuring the NSAPI Redirector</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+In this document we'll assume that nsapi_redirect.dll is placed in
+<b>c:\jk\lib\nsapi_redirect.dll</b>, the properties file is in<b>c:\jk\conf</b>
+and you created a log directory <b>c:\jk\logs</b>
+</p>
+
+<ul>
+<li>
+If the built in servlet support is working disable it.
+</li>
+<li>
+Add the redirector plugin into the Netscape server configuration.
+Edit your server <b>magnus.conf</b> and add the following lines:
+</li>
+</ul>
+
+<div class="example"><pre>
+
+ Init fn="load-modules" funcs="jk_init,jk_service" shlib="c:/jk/lib/nsapi_redirect.dll" shlib_flags="(global|now)"
+ Init fn="jk_init" worker_file="c:/jk/conf/workers.properties" log_level="debug" log_file="c:/jk/logs/nsapi.log" shm_file="c:/jk/logs/jk_shm"
+</pre></div>
+<ul>
+<li>
+Edit your server <b>obj.conf</b> and add the following lines:
+</li>
+</ul>
+<div class="example"><pre>
+
+
+ In the default object NameTrans section
+ &lt;Object name="default"&gt;
+
+ NameTrans fn="assign-name" from="/servlets-examples(|/*)" name="jknsapi"
+ NameTrans fn="assign-name" from="/jsp-examples(|/*)" name="jknsapi"
+ ....
+ &lt;/Object&gt;
+
+ Create a new configuration object by adding the following lines to the end of the obj.conf file
+
+ &lt;Object name="jknsapi"&gt;
+ ObjectType fn=force-type type=text/plain
+ Service fn="jk_service" method="*" worker="worker1"
+ &lt;/Object&gt;
+</pre></div>
+
+<ul>
+<li>
+Edit your worker definition file <b>workers.properties</b>. You should at least choose a connection pool size:
+</li>
+</ul>
+
+<div class="example"><pre>
+ #An entry that lists all the workers defined. For example:
+ worker.list=worker1
+
+ # Entries that define the host and port associated with these workers.
+ worker.worker1.host=localhost
+ worker.worker1.port=8009
+ worker.worker1.type=ajp13
+ worker.worker1.connection_pool_size=50
+</pre></div>
+
+<ul>
+<li>
+Restart Web Server (stop and start the server)
+</li>
+</ul>
+
+<p>
+That's all, now you should start tomcat and ask for http://server:port/servlets-examples/
+</p>
+<p><font color="#ff0000">
+The file <b>obj.conf</b> seems to be sensitive to leading white space in lines, especially in
+the <b>Object</b> element. Make sure you have no leading white space (no indentation)
+on any line of this file.
+</font></p>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Adding additional Contexts"><strong>Adding additional Contexts</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+The examples context is useful for verifying your installation, but you will also need to add your own contexts.
+Adding a new context requires two operations:
+</p>
+<ul>
+<li>
+Adding the context to Tomcat (I am not going to talk about this).
+</li>
+<li>
+Assigning the NSAPI redirector to handle this context.
+</li>
+</ul>
+
+<p>
+Assigning the NSAPI redirector to handle this context is simple,
+all you need to do is to edit <b>obj.conf</b> and add a NameTrans line that looks like:
+</p>
+
+<div class="example"><pre>
+ NameTrans fn="assign-name" from="/&lt;context name&gt;/*" name="jknsapi"
+</pre></div>
+
+<p>
+After saving <b>obj.conf</b> restart Netscape and it will serve the new context.
+</p>
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Advanced Context Configuration"><strong>Advanced Context Configuration</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+Sometimes it is better to have Netscape serve the static pages (html, gif, jpeg etc.)
+even if these files are part of a context served by Tomcat. For example, consider the html and gif files in the examples context, there is no need to serve them from the Tomcat process, Netscape will suffice.
+</p>
+<p>
+Making Netscape serve static files that are part of the Tomcat contexts requires the following:
+</p>
+<ul>
+<li>
+Configuring Netscape to know about the Tomcat contexts
+</li>
+<li>
+Make sure that the WEB-INF directory is protected from access.
+</li>
+<li>
+Configuring Netscape to assign the NSAPI redirector only specific requests that requires JSP/Servlet handling.
+</li>
+</ul>
+
+<p>
+Adding a Tomcat context to Netscape requires the addition of a new Netscape virtual directory
+that covers the Tomcat context.
+</p>
+
+<p>
+For example, adding a /example Netscape virtual directory that
+covers the <b>c:\tomcat\webapps\examples</b> directory.
+</p>
+
+<p>
+To add a new virtual directory add the following line to your <b>obj.conf</b>:
+</p>
+
+<div class="example"><pre>
+ NameTrans fn=pfx2dir from=/examples dir="c:/tomcat/webapps/examples"
+</pre></div>
+
+<p>
+WEB-INF protection requires some explanation; Each servlet application (context) has a special directory named <b>WEB-INF</b>,
+this directory contains sensitive configurations data and Java classes and must be kept hidden from web users.
+WEB-INF can be protected by adding the following line to the PathCheck section in the default configuration object:
+</p>
+
+<div class="example"><pre>
+ PathCheck fn="deny-existence" path="*/WEB-INF/*"
+
+ This line instructs the Netscape server to reject any request with a URL that contain the path /WEB-INF/.
+</pre></div>
+
+<p>
+Configuring Netscape to assign the NSAPI redirector only specific requests is somewhat harder,
+you will need to specify the exact URL-Path pattern(s) that you want Tomcat to handle
+(usually only JSP files and servlets).
+</p>
+
+<p>
+This requires a change to NameTrans portion of <b>obj.conf</b>.
+</p>
+
+<div class="example"><pre>
+ For the examples context it requires to replace the following line:
+
+ NameTrans fn="assign-name" from="/examples/*" name="jknsapi"
+
+ with the following two lines:
+
+ NameTrans fn="assign-name" from="/examples/jsp/*.jsp" name="jknsapi"
+ NameTrans fn="assign-name" from="/examples/servlet/*" name="jknsapi"
+</pre></div>
+
+<p>
+As you can see the second configuration is more explicit, it actually instructs
+Netscape to assign the redirector with only requests to resources under
+<b>/examples/servlet/</b> and resources under <b>/examples/</b> whose name ends with <b>.jsp</b>.
+</p>
+
+<p>
+You can be even more explicit and provide lines such as:
+</p>
+
+<div class="example"><pre>
+ NameTrans fn="assign-name" from="/examples/servletname" name="jknsapi"
+
+ Instructs Netscape to assign the redirector request whose URL-Path equals /example/servletname
+</pre></div>
+
+</blockquote></td></tr></table>
+
+<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Advanced Worker Configuration"><strong>Advanced Worker Configuration</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+Sometimes you want to serve different contexts with different Tomcat processes
+(for example to spread the load among different machines).
+To achieve such goal you will need to define several workers and assign each context with its own worker.
+</p>
+
+<p>
+Defining workers is done in <b>workers.properties</b>, this file includes two types of entries:
+</p>
+
+<div class="example"><pre>
+ #An entry that lists all the workers defined. For example:
+ worker.list=worker1,worker2
+
+ # Entries that define the host and port associated with these workers.
+ worker.worker1.host=localhost
+ worker.worker1.port=8009
+ worker.worker1.type=ajp13
+
+ worker.worker2.host=otherhost
+ worker.worker2.port=8009
+ worker.worker2.type=ajp13
+</pre></div>
+
+<p>
+The above examples defined two workers, now we can use these workers to serve two different
+contexts each with it's own worker.
+Submitting requests to different workers is accomplished by using multiple Service directives
+in the servlet configuration Object, each with a different path pattern parameter.
+</p>
+
+<p>
+For example, if we want to submit the <b>/examples</b> context to the worker named <b>worker1</b> and the
+<b>/webpages</b> context to the worker named <b>worker2</b> we should use the following configuration:
+</p>
+
+<div class="example"><pre>
+ &lt;Object name="jknsapi"&gt;
+ ObjectType fn=force-type type=text/plain
+ Service fn="jk_service" worker="worker1" path="/examples/*"
+ Service fn="jk_service" worker="worker2" path="/webpages/*"
+ Service fn="jk_service" worker="worker1"
+ &lt;/Object&gt;
+</pre></div>
+
+<p>
+More informations on using and configuring workers in the <a href="../../generic_howto/workers.html">Workers HowTo</a>
+and in the <a href="../../reference/workers.html">worker.properties configuration reference</a>.
+
+</p>
+</blockquote></td></tr></table>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Building NSAPI DLL redirector for Windows"><strong>Building NSAPI DLL redirector for Windows</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+The redirector was developed using Visual C++ Ver.6.0, so having this environment is a prereq if you want
+to perform a custom build. You should also have NES developer SDK
+
+The steps that you need to take are:
+<ul>
+<li>
+Change directory to the nsapi plugins source directory.
+</li>
+<li>
+Edit <b>nsapi.dsp</b> and update the include and library path to reflect your own Netscape server installation
+(search for a <b>/I compiler</b> option and <b>/libpath</b> linker option)
+</li>
+<li>
+Make the source with MSDEV
+</li>
+</ul>
+<screendos>
+<notedos>Change directory to the nsapi plugins source directory</notedos>
+<code><nobr><em class="screen">c:\&gt;</em><b class="screen">cd c:\home\apache\jk\nsapi</b></nobr></code><br>
+<notedos>Build the sources using MSDEV</notedos>
+<code><nobr><em class="screen">c:\&gt;</em><b class="screen">MSDEV nsapi.dsp /MAKE ALL</b></nobr></code><br>
+</screendos>
+</p>
+<p>
+If msdev is not in your path, enter the full path to msdev.exe.
+This will build both release and debug versions of the redirector plugin.
+An alternative will be to open the nsapi workspace file (nsapi.dsw) in msdev and
+build it using the build menu.
+</p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Building NSAPI so plugin redirector for Unix"><strong>Building NSAPI so plugin redirector for Unix</strong></a></font></td></tr><tr><td><blockquote>
+<p>
+The redirector requires either gcc (Linux) or gcc or the Sun cc compiler (Solaris).
+
+The steps that you need to take are:
+<ul>
+<li>
+Change directory to the nsapi plugins source directory (src/native).
+</li>
+<li>
+configure for Netscape/iPlanet/SunONE webserver.
+</li>
+<li>
+Change directory to the nsapi netscape directory (./netstape).
+</li>
+<li>
+Set environment variables JAVA_HOME resp. SUITSPOT_HOME to the location of your Java installation
+resp. Netscape server installation. Depending on the web server version, you must add the subdirectory
+"plugins" to SUITSPOT_HOME.
+The variable is correct, if the file $SUITSPOT_HOME/include/nsapi.h exists.
+</li>
+<li>
+Edit <b>Makefile.solaris</b> resp. <b>Makefile.linux</b> and update the variables according to your needs.
+In the Solaris Makefile, you need to switch the commented lines in order to use the Sun compiler cc
+instead of GNU gcc.
+</li>
+<li>
+Make the source with gmake.
+</li>
+</ul>
+<screendos>
+<notedos>Change directory to the nsapi plugins source directory</notedos>
+<code><nobr><em class="screen">c:\&gt;</em><b class="screen">cd /usr/local/src/tomcat-connectors-xxx-src/native</b></nobr></code><br>
+<notedos>configure for Netscape/iPlanet/SunONE webserver</notedos>
+<code><nobr><em class="screen">c:\&gt;</em><b class="screen">./configure --enable-netscape</b></nobr></code><br>
+<notedos>Change directory to the nsapi netscape directory</notedos>
+<code><nobr><em class="screen">c:\&gt;</em><b class="screen">cd netscape</b></nobr></code><br>
+<notedos>Set JAVA_HOME (ksh example)</notedos>
+<code><nobr><em class="screen">c:\&gt;</em><b class="screen">export JAVA_HOME=/path/to/my/java</b></nobr></code><br>
+<notedos>Set SUITSPOT_HOME (ksh example)</notedos>
+<code><nobr><em class="screen">c:\&gt;</em><b class="screen">export SUITSPOT_HOME=/path/to/my/netscape/server</b></nobr></code><br>
+<notedos>Edit the Makefile</notedos>
+<code><nobr><em class="screen">c:\&gt;</em><b class="screen">vi Makefile.solaris</b></nobr></code><br>
+<notedos>Make the source with gmake</notedos>
+<code><nobr><em class="screen">c:\&gt;</em><b class="screen">gmake -f Makefile.solaris</b></nobr></code><br>
+</screendos>
+</p>
+<p>
+After the build, you will have the required nsapi_redirector.so plugin.
+</p>
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright &copy; 1999-2011, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html> \ No newline at end of file