You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by mt...@apache.org on 2002/10/03 17:34:10 UTC
cvs commit: jakarta-tomcat-connectors/jk/xdocs/jk2 configweb.xml configtc.xml
mturk 2002/10/03 08:34:10
Modified: jk/xdocs/jk2 configweb.xml configtc.xml
Log:
Add new splitted documents
Revision Changes Path
1.12 +1 -592 jakarta-tomcat-connectors/jk/xdocs/jk2/configweb.xml
Index: configweb.xml
===================================================================
RCS file: /home/cvs/jakarta-tomcat-connectors/jk/xdocs/jk2/configweb.xml,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- configweb.xml 3 Oct 2002 10:52:16 -0000 1.11
+++ configweb.xml 3 Oct 2002 15:34:10 -0000 1.12
@@ -1,7 +1,7 @@
<?xml version="1.0"?>
<document>
<properties>
-<title>Configuration in the Web Server</title>
+<title>Configuration file</title>
<author email="cmanolache@yahoo.com">Costin Manolache</author>
<author email="jfrederic.clere@fujitsu-siemens.com">Jean-Frederic Clere</author>
<date>$Date$</date>
@@ -37,596 +37,5 @@
PROPERTY=VALUE
</source>
</p>
- </section>
- <section name="Components"><p>Each component instance has a name, that is used for configuration and at runtime. Each component has a number of configurable properties. The following rules are used:
-<ul><li>The name is composed from the type and a local part, separated with a ':' ( example: channel.unixsocket:/tmp/jk.socket ) </li>
-<li>The 'type' consist of '.' and ascii characters. It is mapped to a JMX 'domain'. </li>
-<li>The local part consists of ascii characters and .:/;
-<p>Note that '=,' are not currently allowed - a future version may support the jmx syntax by using quotes to separate the local part from the property and value ( in .properties mode we must use '=' to separate the value from type, local name and property name ). </p></li>
-<li>The property is a simple name, with no dots. </li>
-<li>A simple form of substitution is used in values, where $(property) will be replaced with a previously defined setting. If the property has ':' in it, it'll take the value from the object, if not it'll take the value from a global map.</li></ul></p>
- <subsection name="Common properties">
- <p>Common properties for all components</p>
- <p>
- <table>
- <tr>
- <th>Property name</th>
- <th>Default</th>
- <th>Description</th>
- </tr>
- <tr>
- <td>disabled</td>
- <td>0 (false)</td>
- <td>"disabled" state for the component, 1=true 0=false</td>
- </tr>
- <tr>
- <td>debug</td>
- <td>0 (false)</td>
- <td>"debug" state for the component, 1=true 0=false</td>
- </tr>
- </table>
- </p>
- </subsection>
- <subsection name="workerEnv">
- <p>This component represent the core jk2, it has the default logger for all other components. Is the central controller, it controls global properties
-and provides access to all other objects</p>
- <p>
- <table>
- <tr>
- <th>Property name</th>
- <th>Default</th>
- <th>Description</th>
- </tr>
- <tr>
- <td>logger</td>
- <td>logger</td>
- <td>Default loger used by jk2 components, can be changed in the config file, normally it defaults to "logger" the Alias for the default logger for the Server/platform.</td>
- </tr>
- <tr>
- <td>timing</td>
- <td>0</td>
- <td>Will jk2 get request timing (needs APR?)</td>
- </tr>
- </table>
- </p>
- </subsection>
- <subsection name="config">
- <p>The config component, hold the detail of the conifg system, such config file name, create global defines</p>
- <p>
- <table>
- <tr>
- <th>Property name</th>
- <th>Default</th>
- <th>Description</th>
- </tr>
- <tr>
- <td>file</td>
- <td>${serverRoot}/conf/workers2.properties</td>
- <td>Location of the workers2.properties file</td>
- </tr>
- <tr>
- <td>debug</td>
- <td>0</td>
- <td>Set the debug level of the config component</td>
- </tr>
- <tr>
- <td>debugEnv</td>
- <td>0</td>
- <td>Set the debug level of the hidden env component </td>
- </tr>
- </table>
- </p>
- </subsection>
- <subsection name="uriMap"/>
- <subsection name="shm">
- <p>Shared memory descriptor</p>
- <p>
- <table>
- <tr>
- <th>Property name</th>
- <th>Default</th>
- <th>Description</th>
- </tr>
- <tr>
- <td>file</td>
- <td>No default value</td>
- <td>Name of the file that will be mmapped to use as shared memory.</td>
- </tr>
- <tr>
- <td>size</td>
- <td>No default value</td>
- <td>Size of the file.</td>
- </tr>
- </table>
- </p>
- </subsection>
- <subsection name="uri">
- <p>A uri stores a pattern that is used
- to match requests to workers, and asociated properties</p>
- <p>If the uri name doesn't have a slash then it is considered as a virtual host
- directive. Uri name can have a virtual host name and(or) port associated with. Format
- of such a name is <b>hostname</b> or <b>hostname:port</b> where hostname
- is virtual server name and the port is vitual server port number. The port number
- is used only for the non default server ports.</p>
- <p>
- Special case is a default server named as <b>[uri:*]</b> that is used when the virtual
- host cannot be found inside the configuration. All the uri directives not containing
- host name belongs to this default server making global mappings.
- </p>
- <p>
- Addition wild char scheme id <b>[uri:*:port]</b> that is used when you wish to
- match any virtual host having specified (non-default) port number, like [uri:*:443].
- This will map all the virtual hosts no mather what is their name but that have port number 443.
- </p>
- <p>
- The order how the host names are resolved is :
- <ul>
- <li>Exact host name and optional non default port number</li>
- <li>Alias matching host name and port number</li>
- <li>*:port if the port is other then default</li>
- <li>Default server</li>
- </ul>
- </p>
- <p>
- <table>
- <tr>
- <th>Property name</th>
- <th>Default</th>
- <th>Description</th>
- </tr>
- <tr>
- <td>worker</td>
- <td>lb:0 (The default loadbalancer)</td>
- <td>Name of the worker that process the request corresponding to the uri</td>
- </tr>
- <tr>
- <td>context</td>
- <td/>
- <td>the context that will be served by this uri component (webapp style)</td>
- </tr>
- <tr>
- <td>alias</td>
- <td/>
- <td>server name alias</td>
- </tr>
- </table>
- </p>
- </subsection>
- <subsection name="vm">
- <p>Represents the JVM when used as inprocess container
- </p>
- <p>
- <table>
- <tr>
- <th>Property name</th>
- <th>Default</th>
- <th>Description</th>
- </tr>
- <tr>
- <td>JVM</td>
- <td>(Autoguess)</td>
- <td>JVM to use for this vm</td>
- </tr>
- <tr>
- <td>OPT</td>
- <td/>
- <td>Option to pass to this vm, this is a multivalued property</td>
- </tr>
- </table>
- </p>
- </subsection>
- <subsection name="channels">
- <p>A channel represents a transport protocol, connecting 2
-sides for RPC communication. The most common and standard is the tcp socket.
-Other important channels are unix socket and jni</p>
- <subsection name="channel.un">
- <p>
- AF_UNIX socket. Only on UNIX like platform. These sockets are faster
- than "normal" sockets but they are limited to the machine.
-</p>
- <p>
- <table>
- <tr>
- <th>Property name</th>
- <th>Default</th>
- <th>Description</th>
- </tr>
- <tr>
- <td>file</td>
- <td>Name of socket</td>
- <td>Name of the socket file (It is created by the Tomcat ChannelUn)</td>
- </tr>
- </table>
- </p>
- </subsection>
- <subsection name="channel.socket">
- <p>
- A communication transport to a remote Engine
- <b>Magic:</b> The local part of the name will be the Engine name,
- to use when defining the uri mappings. For example
- channel.socket.local_9009 will automatically define an engine named
- local_9009, and if no other setting is set ajp13 will be used for
- communication.
- <b>Magic:</b> If no channel is defined in the config, a default channel
- will be constructed with port=8009, engine=DEFAULT, worker=ajp13 -
- named 'channel.socket.DEFAULT'
-</p>
- <p>
- <table>
- <tr>
- <th>Property name</th>
- <th>Default</th>
- <th>Description</th>
- </tr>
- <tr>
- <td>port</td>
- <td>8009</td>
- <td>Port where Tomcat is listening</td>
- </tr>
- <tr>
- <td>host</td>
- <td>localhost</td>
- <td>Remote host</td>
- </tr>
- <tr>
- <td>keepalive</td>
- <td>0</td>
- <td>? </td>
- </tr>
- <tr>
- <td>lbfactor</td>
- <td>1</td>
- <td>
- Load balancing factor to use. At this moment, it'll be set on the worker,
- but in future it should be possible to use lb on a channel level.
- </td>
- </tr>
- <tr>
- <td>group</td>
- <td>lb:0</td>
- <td>loadbalanced groups to which this channel and the associated worker will be added, multivalued</td>
- </tr>
- <tr>
- <td>tomcatId</td>
- <td>?</td>
- <td>?</td>
- </tr>
- </table>
- </p>
- </subsection>
- <subsection name="channel.apr">
- <p>
- A communication transport to a remote Engine using APR library
- <b>Magic:</b> The local part of the name will be the Engine name,
- to use when defining the uri mappings. For example
- channel.apr.local_9009 will automatically define an engine named
- local_9009, and if no other setting is set ajp13 will be used for
- communication.
- <b>Magic:</b> If no channel is defined in the config, a default channel
- will be constructed with port=8009, engine=DEFAULT, worker=ajp13 -
- named 'channel.apr.DEFAULT'
-</p>
- <p>
- <table>
- <tr>
- <th>Property name</th>
- <th>Default</th>
- <th>Description</th>
- </tr>
- <tr>
- <td>port</td>
- <td>8009</td>
- <td>Port where Tomcat is listening</td>
- </tr>
- <tr>
- <td>host</td>
- <td>localhost</td>
- <td>Remote host</td>
- </tr>
- <tr>
- <td>keepalive</td>
- <td>0 (disabled)</td>
- <td>If set to 1 then it enables the use of keep-alive packets on TCP connection </td>
- </tr>
- <tr>
- <td>timeout</td>
- <td>0 (infinite)</td>
- <td>Socket timeout for sending and receiving</td>
- </tr>
- <tr>
- <td>ndelay</td>
- <td>0</td>
- <td>If set to 1 Disables the Nagle algorithm for send coalescing</td>
- </tr>
- <tr>
- <td>lbfactor</td>
- <td>1</td>
- <td>
- Load balancing factor to use. At this moment, it'll be set on the worker,
- but in future it should be possible to use lb on a channel level.
- </td>
- </tr>
- <tr>
- <td>group</td>
- <td>lb:0</td>
- <td>loadbalanced groups to which this channel and the associated worker will be added, multivalued</td>
- </tr>
- </table>
- </p>
- </subsection>
- <subsection name="channel.jni">
- <p>The jni channel, used if tomcat is started inprocess</p>
- </subsection>
- </subsection>
- <subsection name="workers">
- <p>
- For the moment 4 worker types are supported: worker.jni,ajp13,status,lb.
- </p>
- <subsection name="worker.jni">
- <p>worker used in inprocess, holds the details of the Tomcat class to startup, and parameters to pass</p>
- <p>There are two predefined jni workers <b>onStartup</b> and <b>onShutdown</b>. Those two workers are executed
- during startup and shutdown phase of the connector. Both must exists in the configuration to be able to start
- and shutdown Tomcat.
- </p>
- <p>
- <table>
- <tr>
- <th>Property name</th>
- <th>Default</th>
- <th>Description</th>
- </tr>
- <tr>
- <td>class</td>
- <td>org/apache/jk/apr/TomcatStarter</td>
- <td>class that holds the main method called to start tomcat</td>
- </tr>
- <tr>
- <td>ARG</td>
- <td/>
- <td>Arguments to pass to main method when called</td>
- </tr>
- <tr>
- <td>stdout</td>
- <td>NULL</td>
- <td>file to redirect Standard output from the java process</td>
- </tr>
- <tr>
- <td>stderr</td>
- <td>NULL</td>
- <td>file to redirect Standard output from the java process </td>
- </tr>
- </table>
- </p>
- </subsection>
- <subsection name="ajp13">
- <p>Default worker</p>
- <p>
- <table>
- <tr>
- <th>Property name</th>
- <th>Default</th>
- <th>Description</th>
- </tr>
- <tr>
- <td>secretkey</td>
- <td>NULL</td>
- <td>
- <b>Magic:</b> The secret key will be set automatically on the associated
- worker.
- </td>
- </tr>
- <tr>
- <td>tomcatId</td>
- <td/>
- <td/>
- </tr>
- <tr>
- <td>route</td>
- <td/>
- <td/>
- </tr>
- <tr>
- <td>group</td>
- <td/>
- <td/>
- </tr>
- <tr>
- <td>level</td>
- <td/>
- <td/>
- </tr>
- <tr>
- <td>channel</td>
- <td/>
- <td/>
- </tr>
- </table>
- </p>
- </subsection>
- <subsection name="status">
- <p>Worker that outputs a page with usefull information to monitor JK2</p>
- <p>To use it add a uri component assigned to this worker</p>
- </subsection>
- <subsection name="lb">
- <p>Loadbalanced worker</p>
- <p>
- <table>
- <tr>
- <th>Property name</th>
- <th>Default</th>
- <th>Description</th>
- </tr>
- <tr>
- <td>worker</td>
- <td/>
- <td/>
- </tr>
- <tr>
- <td>noWorkerMsg</td>
- <td/>
- <td/>
- </tr>
- <tr>
- <td>noWorkerCode</td>
- <td>503</td>
- <td/>
- </tr>
- <tr>
- <td>hwBalanceErr</td>
- <td/>
- <td/>
- </tr>
- <tr>
- <td>timeout</td>
- <td>0 (disabled)</td>
- <td>If all the workers are in the error state, probably by Tomcat
-refusing any new connections due to the overload, you can set the timeout forcing lb to wait that some
-worker becomes available, instead of immediately returning error to the client. This is very useful in
-situations with high peek load. The timeout should be set to the maximum application call time, but
-not less then 1 second.
- </td>
- </tr>
- <tr>
- <td>attempts</td>
- <td>3</td>
- <td>Number of attempts that lb will try on each worker before
- giving up.
- </td>
- </tr>
- <tr>
- <td>recovery</td>
- <td>60 (seconds)</td>
- <td>Time to wait before retrying to see if the worker came out
- of the error state.
- </td>
- </tr>
- </table>
- </p>
- </subsection>
- </subsection>
- <subsection name="loggers">
- <p>Any connector based on jk2, at least has a default logger, that can be reached using the "logger" alias, the logger used is the more appropiate for the plataform/server combination, Apache2 under in any platform has logger.apache2 as default, IIS on his only platform uses logger.win32, and Any apache 1 install uses logger.file as default.., the config file lets you change that defaults, you can end using logger.file in IIs i.e</p>
- <p>The properties shared by all loggers are:
-<table>
- <tr>
- <th>Property name</th>
- <th>Default</th>
- <th>Description</th>
- </tr>
- <tr>
- <td>level</td>
- <td>INFO</td>
- <td>Log level. Supported: EMERG, ERROR, INFO, DEBUG</td>
- </tr>
- </table>
- </p>
- <subsection name="logger.file">
- <p>
- <table>
- <tr>
- <th>Property name</th>
- <th>Default</th>
- <th>Description</th>
- </tr>
- <tr>
- <td>file</td>
- <td>${serverRoot}/logs/jk2.log</td>
- <td>
- Log file. XXX you may be able to change this at runtime,
- to implement rolling.
- </td>
- </tr>
- </table>
- </p>
- </subsection>
- <subsection name="logger.win32">
- <p>logger used in the IIS server by default, it ends at native Application Event Log.</p>
- </subsection>
- <subsection name="logger.apache2">
- <p>Logger used in Apache2 servers, it normally in ends in error.log </p>
- </subsection>
- </subsection>
- </section>
- <section name="Examples">
- <p>
-The examples below are working when the Tomcat is configured according the
-examples described in the configtc file.
-</p>
- <subsection name="/example using normal socket">
- <p>
-Map /examples to the Tomcat /examples context using a normal socket. Note the
-IP instead localhost (The JVM listens on the IPV4 address not no the IPV6).
-</p>
- <p>
- <source>
-[shm]
-file=${serverRoot}/logs/shm.file
-size=1048576
-
-# Example socket channel, override port and host.
-[channel.socket:localhost:8019]
-port=8019
-host=127.0.0.1
-
-# define the worker
-[ajp13:localhost:8019]
-channel=channel.socket:localhost:8019
-
-# Uri mapping
-[uri:/examples/*]
-worker=ajp13:localhost:8019
-</source>
- </p>
- </subsection>
- <subsection name="/jkstatus">
- <p>
-Map /jkstatus to the status worker.
-</p>
- <p>
- <source>
-[shm]
-file=${serverRoot}/logs/shm.file
-size=1048576
-
-# define the worker
-[status:status]
-
-# Uri mapping
-[uri:/jkstatus/*]
-worker=status:status
-</source>
- </p>
- </subsection>
- <subsection name="/example using AF_UNIX socket">
- <p>
-Map /examples to the Tomcat /examples context using a AF_UNIX socket.
-Socket file is create by the Tomcat becarefull when the Web Server runs in
-a different user than the Tomcat with the permission of the socket file:
-<source>
-apache20@jfcexpert:~/apache> ls -l /home1/jakarta/jakarta-tomcat-4.1/dist/work/jk2.socket
-srw-rw---- 1 jakarta jakarta 0 Jun 20 08:27 /home1/jakarta/jakarta-tomcat-4.1/dist/work/jk2.socket
-</source>
-Here the Tomcat user and the Web Server user must be in the same group.
-</p>
- <p>
- <source>
-[shm]
-file=${serverRoot}/logs/shm.file
-size=1048576
-
-# Example unixsocket channel.
-[channel.un:unixsocket]
-file=/home1/jakarta/jakarta-tomcat-4.1/dist/work/jk2.socket
-
-# define the worker
-[ajp13:unixsocket]
-channel=channel.un:unixsocket
-
-# Uri mapping
-[uri:/examples/*]
-worker=ajp13:unixsocket
-</source>
- </p>
- </subsection>
</section>
</document>
1.4 +3 -100 jakarta-tomcat-connectors/jk/xdocs/jk2/configtc.xml
Index: configtc.xml
===================================================================
RCS file: /home/cvs/jakarta-tomcat-connectors/jk/xdocs/jk2/configtc.xml,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- configtc.xml 20 Sep 2002 21:35:31 -0000 1.3
+++ configtc.xml 3 Oct 2002 15:34:10 -0000 1.4
@@ -1,7 +1,7 @@
<?xml version="1.0"?>
<document>
<properties>
-<title>Configuration in the Tomcat</title>
+<title>Configuration options</title>
<author email="jfrederic.clere@fujitsu-siemens.com">Jean-Frederic Clere</author>
<date>$Date$</date>
</properties>
@@ -17,7 +17,7 @@
<section name="Config options">
<p>
<table>
-
+
<tr>
<th>Property name</th>
<th>Default</th>
@@ -142,102 +142,5 @@
</table>
</p>
-</section>
-
-<section name="Examples">
-<p>
-The examples below are working when the Web Server is configured according the
-examples described in the configweb file.
-</p>
-<subsection name="using normal socket">
-<p>
-There is no need to use the jkjni logic to use normal socket, so that just for
-Fun.
-</p>
-
-<p>
-<source>
-# list of needed handlers.
-handler.list=apr,channelSocket,request
-
-# Override the default port for the channelSocket
-channelSocket.port=8019
-
-# Dynamic library
-apr.NativeSo=/home1/jakarta/jakarta-tomcat-connectors/jk/build/jk2/apache2/jkjni.so
-</source>
-</p>
-</subsection>
-
-<subsection name="using AF_UNIX socket">
-<p>
-Create and listen on a AF_UNIX socket. The location of the socket must be the
-same in the Web Server configuration file.
-</p>
-
-<p>
-<source>
-# list of needed handlers.
-handler.list=apr,channelUnix,request
-
-# Location of the socket.
-channelUnix.file=${jkHome}/work/jk2.socket
-
-# Dynamic library
-jtc=/home1/jakarta/jakarta-tomcat-connectors
-apr.NativeSo=${jtc}/jk/build/jk2/apache2/jkjni.so
-</source>
-</p>
-</subsection>
-
-<subsection name="using user defined class for communication">
-<p>
-It is possible to have a user defined class for the communication.
-Here we have used the ChannelUn as example.
-</p>
-
-<p>
-<source>
-# Define our own handler.
-class.mychannel=org.apache.jk.common.ChannelUn
-# list of needed handlers.
-handler.list=apr,mychannel,request
-
-# Location of the socket.
-channelUnix.file=${jkHome}/work/jk2.socket
-
-# Dynamic library
-jtc=/home1/jakarta/jakarta-tomcat-connectors
-apr.NativeSo=${jtc}/jk/build/jk2/apache2/jkjni.so
-</source>
-</p>
-</subsection>
-
-<subsection name="using jni channel class for communication">
-<p>
-Here we have the minimum configuration needed for the jni communication.
-</p>
-
-<p>
-<source>
-# list of needed handlers.
-handler.list=apr,request,channelJni
-
-# Dynamic library needs to be defined only if Tomcat is used
-# out of process
-jtc=/home1/jakarta/jakarta-tomcat-connectors
-apr.NativeSo=${jtc}/jk/build/jk2/apache2/jkjni.so
-# Or you can use the mod_jk2 directly
-apr.jniModeSo=/opt/apache2/modules/mod_jk2.so
-
-# If you wish to start the Tomcat from inside web server then
-# you don't need any above directive. Here is shown the default
-# value for the apr that you can ommit
-apr.jniModeSo=inprocess
-
-</source>
-</p>
-</subsection>
-
</section>
</document>
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>