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.
Please see the ChangeLog for a full list of changes.
If you find any bugs while using this release, please fill in the
Bugzilla
Bug Report.
The most important new features in this version are:
Watchdog Thread for Periodic Tasks
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.
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.
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
JkWatchdogInterval
for Apache or
watchdog_interval
for IIS.
Connection Probing
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
ping_mode.
This will also be useful as a protection against the infamous firewall
idle connection drop.
The older attributes connect_timeout and prepost_timeout
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 ping_mode,
ping_timeout and connection_ping_interval.
Mount Extensions
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.
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).
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.
Starting with this release, you can add so-called
rule extensions
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.
Improved IIS support
We improved IIS support im various ways. It is now possible to use
multiple IIS 6 application pools with the ISAPI redirector.
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.
Another new feature is an elegant way of configuring error page redirects.
All new features are documented on the documentation page about
configuring IIS.
Enhanced Status Worker
The
status worker
now can also manage and show statistics for AJP workers that
are not part of a load balancer. Other improvements are the new dump
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.
Unfortunately we had to change
some request parameters
used for the update action of the status worker.
Miscellaneous Improvements
Further enhancements are:
-
Configurable session stickyness indicator: cookie name and URL path
parameter name can be freely chosen instead of the servlet spec compliant
JSESSIONID and ;jsessionid.
-
Automatically determining the size of the shared memory segment needed
to accommodate all workers.
-
New connection establishment timeout socket_connect_timeout.
-
New timeout connection_acquire_timeout for acquiring a free connection from
the pool.
-
Improved retry handling by adjusting the meaning of the attribute retries for
AJP workers and for load balancers and by adding the new retry_interval.
-
Allowing the web server to provide error pages instead of Tomcat.