<?xml version="1.0"?>
<!DOCTYPE document [
  <!ENTITY project SYSTEM "project.xml">
]>
<document url="status.html">

    &project;

    <properties>
        <author email="rjung@apache.org">Rainer Jung</author>
        <title>Status Worker Reference</title>
    </properties>

<body>

<section name="Introduction">
<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.
The dynamic management features of load balancers in combination with the status worker
are a good reason, to use load balancer workers on top of ajp13 workers, even if there would
be only one member worker in the load balancer.
</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>
</section>

<section name="Usage Patterns">
<br/>
<subsection name="Actions">
<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 information for a load balancer
or one of its members.
</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>
</ul>
</p>
</subsection>

<subsection name="Output Format">
<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>
</subsection>

<subsection name="User Interface Features">
<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 minimized, 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>Load Balancer 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>Member Workers</b>: Do not show detailed information concerning each member of load balancers
</li>
</ul>
</p>
</subsection>

<subsection name="Special Considerations concerning URL Maps and Virtual Hosts">
<br/>
<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, independant
of the virtual host the status worker has been called in.
</p>
</subsection>

<subsection name="Logging">
<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>
</subsection>

</section>

<section name="Configuration">
<br/>
<subsection name="Basic Configuration">
<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:
<source>
worker.list=mystatus
worker.mystatus.type=status
</source>
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:
<source>
/private/admin/mystatus=mystatus
</source>
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>
</subsection>

<subsection name="Output Customization">
<br/>
<p>
There are a couple of attributes for the workers.properties entries, which allow to customize
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:
<source>
worker.mystatus.css=/private/admin/static/mystatus.css
</source>
When writing HTML output, the status worker then includes the line
<source>
<link rel="stylesheet" type="text/css" href="/private/admin/static/mystatus.css" />
</source>
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 customized 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 namesspace 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>
</subsection>

<subsection name="Securing Access">
<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:
<source>
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
</source>
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 occurences 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>
</subsection>

<subsection name="Service Availability Rating">
<br/>
<p>
For load balancing workers the status worker shows some interesting overview information.
It categorizes 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 categorization might vary.
</p>
<p>
The categorization is based on the activation state of the workers (active, disabled or stopped),
which is a pure configuration state, and the runtime state
(OK, N/A, busy, recovering, probing, forced recovery, error)
which only depends on the runtime situation.
</p>
<p>
By default the status worker groups into "good" all members, that have activation "active" and
runtime state not equal to "error". The "bad" group consists of the members, that have either activation
"stopped", or are in runtime state "error".
</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", "na", "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.n,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 macth against "good", and finally it choses "degarded", if no "bad" or "good" match
can be found.
</p>
</subsection>
</section>

<section name="Request Parameters">
<br/>
<p>
This section should help you building automation scripts based on the jk status
management interface. This interface is still not stable, we expect further
improvements in the next releases. It is well possible, that the request parameters
might change in an incompatible way. So be prepared to change you scripts when
updating to future versions.
</p>
<subsection name="Actions">
<br/>
<p>
The action is determined by the parameter <b>cmd</b>. It can have the values "list", "show",
"edit", "update", "reset", "recover" and "version". If you omit the "cmd" parameter,
the default "list" will be used.
All actions except for "list" and "refresh" need additional parameters.
</p>
</subsection>
<subsection name="Output Format">
<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 "mime" parameter, the default "html"
will be used. The action "edit" (the edit form) does only make sense for "mime=html".
</p>
</subsection>
<subsection name="Worker Selection">
<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 "w"
contains the name of the load balancer worker, and the additional parameter <b>sw</b> contains the
name of the sub worker.
</p>
</subsection>
<subsection name="Automatic Refresh">
<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>
</subsection>
<subsection name="Hide Options">
<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>
</ul>
</p>
</subsection>
<subsection name="Data Parameters for the standard Update Action">
<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>lr</b>: retries (number)
</li>
<li>
<b>lt</b>: recover_time (seconds)
</li>
<li>
<b>ls</b>: sticky_session (0/f/n/off=off, 1/t/y/on=on; case insensitive)
</li>
<li>
<b>lf</b>: sticky_session_force (0/f/n/off=off, 1/t/y/on=on; case insensitive)
</li>
<li>
<b>lm</b>: method (0/r="Requests", 1/t="Traffic", 2/b="Busyness", 3/s="Sessions"; case insensitive, only first character is used)
</li>
<li>
<b>ll</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>wa</b>: activation flag (0/a="active", 1/d="disabled", 2/s="stopped"; case insensitive, only first character is used)
</li>
<li>
<b>wf</b>: load balancing factor (integer weight)
</li>
<li>
<b>wn</b>: route for use with sticky sessions (string)
</li>
<li>
<b>wr</b>: redirect to define simple failover rules (string)
</li>
<li>
<b>wc</b>: domain to tell JK about your replication design (string)
</li>
<li>
<b>wd</b>: distance to express preferences (integer)
</li>
</ul>
For the details of all parameters, we refer to the <a href="workers.html">workers.properties Reference</a>.
</p>
</subsection>
<subsection name="Aspect Editing for Load Balancer Members">
<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:
"wa", "wf", "wn", "wr", "wc" and "wd". But here you
need to put the name into the parameter "att", 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 "val1", "val2", ....
</p>
</subsection>
</section>

</body>
</document>
