Hi,
We are trying to migrate a running tomcat/JK/IIS setup from win 2000/IIS 5.0
to win 2003/IIS 6.0. The struts application is hosted using two tomcat
instances and we use JK connectors as load balancer for these two servers.
We have configured the IIS with a 'jakarta' virtual directory.The setup is
working fine in 2000/IIS 5.0 setup but not in the 2003/IIS 6.0. We have
copied the ISAPI_REDIRECT.DLL frile from the 2000 box to 2003 box (we did
not use any binary installation) and in the IIS the status for the jakarta
shows as loaded with a green uparrow. But when we try to browse the site we
get '404- File or directory not found error'. I've listed the config files
below
1.isapi_redirect.properties
# 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=F:\tomcat\JakartaIsapiRedirector_PF\log\isapi_redirect.log
# Log level (debug, info, warn, error or trace)
log_level=info
# Full path to the workers.properties file
worker_file=F:\tomcat\JakartaIsapiRedirector_PF\conf\workers.properties.minimal
# Full path to the uriworkermap.properties file
worker_mount_file=F:\tomcat\JakartaIsapiRedirector_PF\conf\uriworkermap.properties
2.uriworkermap.properties
# uriworkermap.properties - IIS
#
# This file provides sample mappings for example ajp13w
# worker defined in workermap.properties.minimal
# The general sytax for this file is:
# [URL]=[Worker name]
/*=loadbalancer
# Optionally filter out all .jpeg files inside that context
# For no mapping the url has to start with exclamation (!)
##!/servlet-examples/*.jpeg=loadbalancer
3.workers.properties.minimal
ps=/
worker.list=loadbalancer
worker.loadbalancer.type=lb
worker.loadbalancer.balanced_workers=ajp13wpf, ajp13wpf2
worker.ajp13wpf.port=8019
worker.ajp13wpf.host=localhost
worker.ajp13wpf.type=ajp13
worker.ajp13wpf.lbfactor=1
worker.ajp13wpf2.port=8029
worker.ajp13wpf2.host=localhost
worker.ajp13wpf2.type=ajp13
worker.ajp13wpf2.lbfactor=1
# Disable worker2 for all requests except failover
#worker.worker2.disabled=True
4.server.xml(instance-1)--
<Server port="8015" shutdown="SHUTDOWN">
<GlobalNamingResources>
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml" />
</GlobalNamingResources>
<Service name="Catalina">
<Connector port="8090"
maxThreads="550" minSpareThreads="50" maxSpareThreads="100"
enableLookups="false" acceptCount="50"
connectionTimeout="20000" disableUploadTimeout="true" />
<Connector port="8019"
enableLookups="false" protocol="AJP/1.3" />
<Engine name="Catalina" defaultHost="appname.domain.net"
jvmRoute="ajp13wpf">
<!-- <Valve className="org.apache.catalina.valves.RequestDumperValve"/>-->
<!--<Logger className="org.apache.catalina.logger.FileLogger" />-->
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
<Host name="appname.domain.net" appBase="F:/tomcat/deploy/hosts/ins1/"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs" prefix="appname.domain.net_access_log."
suffix=".txt"
pattern="common" resolveHosts="false"/>
<!--<Valve className="
org.apache.catalina.valves.ByteBufferAccessLogValve"
directory="logs" prefix="appname.domain.net_access_log ."
suffix=".txt"
pattern="common" resolveHosts="false"/>
-->
</Host>
<Cluster className="org.apache.catalina.cluster.tcp.SimpleTcpCluster "
managerClassName="
org.apache.catalina.cluster.session.DeltaManager"
expireSessionsOnShutdown="false"
useDirtyFlag="true"
notifyListenersOnReplication="true">
<Membership
className="org.apache.catalina.cluster.mcast.McastService"
mcastAddr=" 228.0.0.4"
mcastPort="45564"
mcastFrequency="500"
mcastDropTime="3000"/>
<Receiver
className="org.apache.catalina.cluster
.tcp.ReplicationListener"
tcpListenAddress="auto"
tcpListenPort="4011"
tcpSelectorTimeout="100"
tcpThreadCount="6"/>
<Sender
className="
org.apache.catalina.cluster.tcp.ReplicationTransmitter"
replicationMode="pooled"
ackTimeout="15000"/>
<Valve className="
org.apache.catalina.cluster.tcp.ReplicationValve"
filter=".*\.gif;.*\.js;.*\.jpg;;.*\.txt;"/>
</Cluster>
</Engine>
</Service>
</Server>
The server.xml for the other instance is same as above except it uses the
other port defined in the workers.properties.minimal file and a different
appbase/host.
When we try to access the application using the
URL:port(http://a.com:8090and http://a.com:8100
) we are able to get the application working.But when we try through IIS we
are not able to access the application.The isapi_redirect log file is not at
all created.Please tell us if we are missing something.
Please ask us i you need more info on this regard.
Thanks
Vasanth.S