I've run with this configuration elsewhere without error. I'm not certain what
the issue is. I have this same problem without using the loadbalancer worker.
I can't even get to jkstatus. Any help is greatly appreciated.
server.xml
<?xml version='1.0' encoding='utf-8'?>
<Server>
<Listener className="org.apache.catalina.mbeans.ServerLifecycleListener"/>
<Listener
className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>
<GlobalNamingResources>
<Environment name="simpleValue" type="java.lang.Integer" value="30"/>
<Resource auth="Container" description="User database that can be updated
and saved" name="UserDatabase" type="org.apache.catalina.UserDatabase"/>
<ResourceParams name="UserDatabase">
<parameter>
<name>factory</name>
<value>org.apache.catalina.users.MemoryUserDatabaseFactory</value>
</parameter>
<parameter>
<name>pathname</name>
<value>conf/tomcat-users.xml</value>
</parameter>
</ResourceParams>
</GlobalNamingResources>
<Service name="Catalina">
<Connector URIEncoding="UTF-8" acceptCount="100" connectionTimeout="20000"
disableUploadTimeout="true" port="8080" redirectPort="8443">
</Connector>
<Connector URIEncoding="UTF-8" port="8009" protocol="AJP/1.3"
protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler"
disableUploadTimeout="true" maxProcessors="0" redirectPort="8443" debug="9">
</Connector>
<Engine defaultHost="localhost" jvmRoute="djk" name="Catalina">
<Host appBase="webapps" name="localhost">
<Logger className="org.apache.catalina.logger.FileLogger"
prefix="localhost_log." suffix=".txt" timestamp="true"/>
</Host>
<Logger className="org.apache.catalina.logger.FileLogger"
prefix="catalina_log." suffix=".txt" timestamp="true"/>
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"/>
</Engine>
</Service>
</Server>
workers.properties
# +++++++++++++++++++++++++++ BEGIN CONFIGURATION ++++++++++++++++++++++++++
#
# http://jakarta.apache.org/tomcat/connectors-doc/config/workers.html
#
# The following configuration file describes a JK installation
# which does round-robin, session-aware load balancing across all
# defined workers. Having a single worker will balance the load on
# that worker. This is the default, even if you don't spell it out,
# but it is spelled out here for clarity. @TODO indicates a
# configuration must be made here. @OPTIONAL indicates an optional
# customization may be made.
#
# workers.properties -
#
# Copyright 1999-2004 The Apache Software Foundation
#
# Licensed 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.
#
#
# This file provides jk derived plugins with the needed information to
# connect to the different tomcat workers. Note that the distributed
# version of this file requires modification before it is usable by a
# plugin.
#
# As a general note, the characters $( and ) are used internally to define
# macros. Do not use them in your own configuration!!!
#
# Whenever you see a set of lines such as:
# x=value
# y=$(x)\something
#
# the final value for y will be value\something
#
# Normaly all you will need to do is un-comment and modify the first three
# properties, i.e. workers.tomcat_home, workers.java_home and ps.
# Most of the configuration is derived from these.
#
# When you are done updating workers.tomcat_home, workers.java_home and ps
# you should have 3 workers configured:
#
# - An ajp12 worker that connects to localhost:8007
# - An ajp13 worker that connects to localhost:8009
# - A jni inprocess worker.
# - A load balancer worker
#
# However by default the plugins will only use the ajp12 worker. To have
# the plugins use other workers you should modify the worker.list property.
#
#
# You should configure your environment slash... ps=\ on NT and / on UNIX
# and maybe something different elsewhere.
#
ps=\
#
#------ ADVANCED MODE ------------------------------------------------
#---------------------------------------------------------------------
#
#
#------ DEFAULT worket list ------------------------------------------
#---------------------------------------------------------------------
#
#
# The workers that your plugins should create and work with
# The name of the worker can contain only the alphanumeric characters
# [a-z][A-Z][0-9] and is case insensitive.
#
# Add 'inprocess' if you want JNI connector
worker.list=loadbalancer,jkstatus
#
#------ DEFAULT ajp13 WORKER DEFINITION ------------------------------
#---------------------------------------------------------------------
#
#
# Defining a worker named ajp13 and of type ajp13
# Note that the name and the type do not have to match.
#
worker.djk.port=8009
worker.djk.host=sccp1
worker.djk.type=ajp13
#
# Specifies the load balance factor when used with
# a load balancing worker.
# Note:
# ----> lbfactor must be > 0
# ----> Low lbfactor means less work done by the worker.
worker.djk.lbfactor=1
#
# Specify the size of the open connection cache.
# Cachesize property is useful when you're using JK in 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.
# 20 is a guess for IIS 6.0
# Load testing should be done to determine what this number should be.
worker.djk.cachesize=100
worker.djk.cache_timeout=600
#
#------ DEFAULT LOAD BALANCER WORKER DEFINITION ----------------------
#---------------------------------------------------------------------
#
#
# The loadbalancer (type lb) workers perform wighted round-robin
# load balancing with sticky sessions.
# Note:
# ----> If a worker dies, the load balancer will check its state
# once in a while. Until then all work is redirected to peer
# workers.
# These workers should not appear in the worker.list property!
worker.loadbalancer.type=lb
worker.loadbalancer.balance_workers=djk
worker.loadbalancer.sticky_session=1
worker.loadbalancer.method=T
worker.jkstatus.type=status
uriworkermap.properties
#
# Copyright 1999-2004 The Apache Software Foundation
#
# Licensed 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.
#
/customer=loadbalancer
/customer/*=loadbalancer
/jkstatus=jkstatus
/jkstatus/*=jkstatus
/admin=loadbalancer
/admin/*=loadbalancer
jk 1.2.14 log
[Thu May 26 13:41:07 2005] [0252:1968] [debug] jk_shm.c (91): Initialized
shared memory size=66560 free=65536 addr=0x14e9e18
[Thu May 26 13:41:07 2005] [0252:1968] [debug] jk_isapi_plugin.c (1133): Using
registry.
[Thu May 26 13:41:07 2005] [0252:1968] [debug] jk_isapi_plugin.c (1136): Using
log file E:\files\jk-logs\isapi_filter.log.
[Thu May 26 13:41:07 2005] [0252:1968] [debug] jk_isapi_plugin.c (1137): Using
log level 1.
[Thu May 26 13:41:07 2005] [0252:1968] [debug] jk_isapi_plugin.c (1138): Using
extension uri /jakarta/isapi_redirect.dll.
[Thu May 26 13:41:07 2005] [0252:1968] [debug] jk_isapi_plugin.c (1139): Using
worker file C:\jk-connector\conf\workers.properties.
[Thu May 26 13:41:07 2005] [0252:1968] [debug] jk_isapi_plugin.c (1140): Using
worker mount file C:\jk-connector\conf\uriworkermap.properties.
[Thu May 26 13:41:07 2005] [0252:1968] [debug] jk_isapi_plugin.c (1142): Using
uri select 0.
[Thu May 26 13:41:07 2005] [0252:1968] [debug] jk_uri_worker_map.c (268): exact
rule /customer=loadbalancer was added
[Thu May 26 13:41:07 2005] [0252:1968] [debug] jk_uri_worker_map.c (260):
wildchar rule /customer/*=loadbalancer was added
[Thu May 26 13:41:07 2005] [0252:1968] [debug] jk_uri_worker_map.c (268): exact
rule /jkstatus=jkstatus was added
[Thu May 26 13:41:07 2005] [0252:1968] [debug] jk_uri_worker_map.c (260):
wildchar rule /jkstatus/*=jkstatus was added
[Thu May 26 13:41:07 2005] [0252:1968] [debug] jk_uri_worker_map.c (268): exact
rule /admin=loadbalancer was added
[Thu May 26 13:41:07 2005] [0252:1968] [debug] jk_uri_worker_map.c (260):
wildchar rule /admin/*=loadbalancer was added
[Thu May 26 13:41:07 2005] [0252:1968] [debug] jk_worker.c (229): creating
worker loadbalancer
[Thu May 26 13:41:07 2005] [0252:1968] [debug] jk_worker.c (135): about to
create instance loadbalancer of lb
[Thu May 26 13:41:07 2005] [0252:1968] [debug] jk_worker.c (148): about to
validate and init loadbalancer
[Thu May 26 13:41:07 2005] [0252:1968] [debug] jk_worker.c (135): about to
create instance djk of ajp13
[Thu May 26 13:41:07 2005] [0252:1968] [debug] jk_worker.c (148): about to
validate and init djk
[Thu May 26 13:41:07 2005] [0252:1968] [debug] jk_ajp_common.c (1801): worker
djk contact is 'sccp1:8009'
[Thu May 26 13:41:07 2005] [0252:1968] [debug] jk_ajp_common.c (1890): setting
socket keepalive to 0
[Thu May 26 13:41:07 2005] [0252:1968] [debug] jk_ajp_common.c (1929): setting
socket timeout to -1
[Thu May 26 13:41:07 2005] [0252:1968] [debug] jk_ajp_common.c (1933): setting
socket buffer size to 0
[Thu May 26 13:41:07 2005] [0252:1968] [debug] jk_ajp_common.c (1937): setting
connection recycle timeout to 0
[Thu May 26 13:41:07 2005] [0252:1968] [debug] jk_ajp_common.c (1941): setting
cache timeout to 600
[Thu May 26 13:41:07 2005] [0252:1968] [debug] jk_ajp_common.c (1945): setting
connect timeout to 0
[Thu May 26 13:41:07 2005] [0252:1968] [debug] jk_ajp_common.c (1949): setting
reply timeout to 0
[Thu May 26 13:41:07 2005] [0252:1968] [debug] jk_ajp_common.c (1953): setting
prepost timeout to 0
[Thu May 26 13:41:07 2005] [0252:1968] [debug] jk_ajp_common.c (1957): setting
recovery opts to 0
[Thu May 26 13:41:07 2005] [0252:1968] [debug] jk_ajp_common.c (1961): setting
number of retries to 3
[Thu May 26 13:41:07 2005] [0252:1968] [debug] jk_ajp_common.c (1838): setting
connection cache size to 100
[Thu May 26 13:41:07 2005] [0252:1968] [debug] jk_lb_worker.c (804): Balanced
worker 0 has name djk in domain
[Thu May 26 13:41:07 2005] [0252:1968] [debug] jk_worker.c (241): removing old
loadbalancer worker
[Thu May 26 13:41:07 2005] [0252:1968] [debug] jk_worker.c (229): creating
worker jkstatus
[Thu May 26 13:41:07 2005] [0252:1968] [debug] jk_worker.c (135): about to
create instance jkstatus of status
[Thu May 26 13:41:07 2005] [0252:1968] [debug] jk_worker.c (148): about to
validate and init jkstatus
[Thu May 26 13:41:07 2005] [0252:1968] [debug] jk_worker.c (241): removing old
jkstatus worker
[Thu May 26 13:41:07 2005] [0252:1968] [debug] jk_isapi_plugin.c (696):
Detected IIS >= 5.0
[Thu May 26 13:41:07 2005] [0252:1968] [debug] jk_isapi_plugin.c (747): Filter
started
[Thu May 26 13:41:07 2005] [0252:1968] [debug] jk_isapi_plugin.c (813): Virtual
Host redirection of /sccp1/customer
[Thu May 26 13:41:07 2005] [0252:1968] [debug] jk_uri_worker_map.c (442):
Attempting to map URI '/sccp1/customer' from 6 maps
[Thu May 26 13:41:07 2005] [0252:1968] [debug] jk_uri_worker_map.c (454):
Attempting to map context URI '/jkstatus/*'
[Thu May 26 13:41:07 2005] [0252:1968] [debug] jk_uri_worker_map.c (454):
Attempting to map context URI '/customer/*'
[Thu May 26 13:41:07 2005] [0252:1968] [debug] jk_uri_worker_map.c (454):
Attempting to map context URI '/customer'
[Thu May 26 13:41:07 2005] [0252:1968] [debug] jk_uri_worker_map.c (454):
Attempting to map context URI '/jkstatus'
[Thu May 26 13:41:07 2005] [0252:1968] [debug] jk_uri_worker_map.c (454):
Attempting to map context URI '/admin/*'
[Thu May 26 13:41:07 2005] [0252:1968] [debug] jk_uri_worker_map.c (454):
Attempting to map context URI '/admin'
[Thu May 26 13:41:07 2005] [0252:1968] [debug] jk_isapi_plugin.c (820): Default
redirection of /customer
[Thu May 26 13:41:07 2005] [0252:1968] [debug] jk_uri_worker_map.c (442):
Attempting to map URI '/customer' from 6 maps
[Thu May 26 13:41:07 2005] [0252:1968] [debug] jk_uri_worker_map.c (454):
Attempting to map context URI '/jkstatus/*'
[Thu May 26 13:41:07 2005] [0252:1968] [debug] jk_uri_worker_map.c (454):
Attempting to map context URI '/customer/*'
[Thu May 26 13:41:07 2005] [0252:1968] [debug] jk_uri_worker_map.c (454):
Attempting to map context URI '/customer'
[Thu May 26 13:41:07 2005] [0252:1968] [debug] jk_uri_worker_map.c (479): Found
an exact match loadbalancer -> /customer
[Thu May 26 13:41:07 2005] [0252:1968] [debug] jk_isapi_plugin.c (830): check
if [/customer] is points to the web-inf directory
[Thu May 26 13:41:07 2005] [0252:1968] [debug] jk_isapi_plugin.c (848):
[/customer] is a servlet url - should redirect to loadbalancer
[Thu May 26 13:41:07 2005] [0252:1968] [debug] jk_isapi_plugin.c (747): Filter
started
[Thu May 26 13:41:07 2005] [0252:1968] [debug] jk_isapi_plugin.c (813): Virtual
Host redirection of /sccp1/jakarta/isapi_redirect.dll
[Thu May 26 13:41:07 2005] [0252:1968] [debug] jk_uri_worker_map.c (442):
Attempting to map URI '/sccp1/jakarta/isapi_redirect.dll' from 6 maps
[Thu May 26 13:41:07 2005] [0252:1968] [debug] jk_uri_worker_map.c (454):
Attempting to map context URI '/jkstatus/*'
[Thu May 26 13:41:07 2005] [0252:1968] [debug] jk_uri_worker_map.c (454):
Attempting to map context URI '/customer/*'
[Thu May 26 13:41:07 2005] [0252:1968] [debug] jk_uri_worker_map.c (454):
Attempting to map context URI '/customer'
[Thu May 26 13:41:07 2005] [0252:1968] [debug] jk_uri_worker_map.c (454):
Attempting to map context URI '/jkstatus'
[Thu May 26 13:41:07 2005] [0252:1968] [debug] jk_uri_worker_map.c (454):
Attempting to map context URI '/admin/*'
[Thu May 26 13:41:07 2005] [0252:1968] [debug] jk_uri_worker_map.c (454):
Attempting to map context URI '/admin'
[Thu May 26 13:41:07 2005] [0252:1968] [debug] jk_isapi_plugin.c (820): Default
redirection of /jakarta/isapi_redirect.dll
[Thu May 26 13:41:07 2005] [0252:1968] [debug] jk_uri_worker_map.c (442):
Attempting to map URI '/jakarta/isapi_redirect.dll' from 6 maps
[Thu May 26 13:41:07 2005] [0252:1968] [debug] jk_uri_worker_map.c (454):
Attempting to map context URI '/jkstatus/*'
[Thu May 26 13:41:07 2005] [0252:1968] [debug] jk_uri_worker_map.c (454):
Attempting to map context URI '/customer/*'
[Thu May 26 13:41:07 2005] [0252:1968] [debug] jk_uri_worker_map.c (454):
Attempting to map context URI '/customer'
[Thu May 26 13:41:07 2005] [0252:1968] [debug] jk_uri_worker_map.c (454):
Attempting to map context URI '/jkstatus'
[Thu May 26 13:41:07 2005] [0252:1968] [debug] jk_uri_worker_map.c (454):
Attempting to map context URI '/admin/*'
[Thu May 26 13:41:07 2005] [0252:1968] [debug] jk_uri_worker_map.c (454):
Attempting to map context URI '/admin'
[Thu May 26 13:41:07 2005] [0252:1968] [debug] jk_isapi_plugin.c (830): check
if [/jakarta/isapi_redirect.dll] is points to the web-inf directory
[Thu May 26 13:41:07 2005] [0252:1968] [debug] jk_isapi_plugin.c (927):
[/jakarta/isapi_redirect.dll] is not a servlet url
[Thu May 26 13:41:09 2005] [0252:2608] [debug] jk_worker.c (297): Maintaining
worker loadbalancer
[Thu May 26 13:41:09 2005] [0252:2608] [debug] jk_ajp_common.c (2186): recycled
0 sockets in 0 seconds
[Thu May 26 13:41:09 2005] [0252:2608] [debug] jk_worker.c (105): did not find
a worker ajp13
[Thu May 26 13:41:09 2005] [0252:2608] [debug] jk_isapi_plugin.c (1004): could
not get a worker for name ajp13
[Thu May 26 13:41:09 2005] [0252:2608] [error] jk_isapi_plugin.c (1029): could
not get a worker for name ajp13