IIS 6.0/ JK2/ Tomcat 5.0.28/ SQL Server My configuration is 1 W2K3 server running IIS and the JK2 connector, 2 W2K2 servers (load balanced) running my tomcat web app, and 1 running SQL Server.
When the requests are long (over 2 minutes), occasionally they re-post multiple times. I see the re-post activity on TP threads. I don't see the request originate from 'jakarta' in the IIS log. So my guess is I've misconfigured Tomcat or JK2. Attached are my workers2.properties and a server.xml from one of the tomcats. Any help is appreciated. Is there a complete workers2.properties file anywhere? Everyone seems to use the pieces they need and delete the rest. I feel shaky, at best, with the configuration I'm using. # ++++++++++++++++++++++BEGIN INSTALLATION INSTRUCTIONS+++++++++++++++++++++ # # Jakarta ISAPI Connector Installation Steps # # I. Update the server's registry settings. This can be accomplished # using either of the following two steps: # 1. Merge the registry file hosting.isapi_redirector2.reg # 2. Manually add the following registry entries: # a. In the registry, create a new registry key named # "HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\ # Jakarta Isapi Redirector\2.0" # b. [serverRoot] = [${JK2_HOME}/jk2-connector] # c. [extensionUri] = /jakarta/isapi_redirector2.dll # d. [workersFile] = [${JK2_HOME}/conf/workers2.properties] # e. [logLevel] = [INFO] # # II. Configure IIS # 1. Using the IIS management console, add a new virtual directory to # your default web site. The name of the virtual directory must be # jakarta. Map this to C:\jk2-connector\bin\. # While creating this new virtual directory assign it with # execute access (scripts + executables) # 2. Using the IIS management console, add isapi_redirector2.dll as a # filter to the default IIS web site. # The name of the filter does not matter. Use "jakarta". # The path should be C:\jk2-connector\bin\isapi_redirector2.dll # # [ # Windows 2003 / IIS 6.0 ONLY: # # 3. Add isapi_redirector2.dll to the list of allowed # "Web Service Extensions" # 4. Create an application pool named 'jakarta' under # "Application Pools\DefaultAppPool" # ] # # 5. Restart IIS # # 6. Test by requesting http://host-name/jkstatus # # -----------------------END INSTALLATION INSTRUCTIONS---------------------- # +++++++++++++++++++++++++++ BEGIN CONFIGURATION ++++++++++++++++++++++++++ # # The following configuration file describes a JK2 installation # which does round-robin, session-aware load balancing across all # defined workers. Having a single work 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. # # # Define the status worker, used with the URI: /jkstatus # This is useful for testing the health of the connector, and for # getting performance statistics # # @OPTIONAL: if you don't want a /jkstatus report, omit # [status:status] # # (1) Create a logger. # @OPTIONAL: You may customize the path if you wish. # [logger.file:0] level=DEBUG file=E:/files/jk2-logs/isapi_filter.log # # (2) Define a load balancer worker # @OPTIONAL: You may add "debug=9" for triage, if needed # [lb:lb] stickySession=1 # # (3) Define a communication channel to tomcat # # @TODO: # 1. Replace "@TODO-tomcat-server" with the tomcat server host name # 2. Update the corresponding tomcat configuration file (${CATALINA_HOME/conf/server.xml): # Find the line '<Engine ... name="Catalina" ...>' and add the element # jvmRoute="@TODO-tomcat-server:8009" >. The value of jvmRoute must # match the "tomcatId" below, or stick session load balancing will not work. # # @TODO: Change the host name as appropriate # # @OPTIONAL: You may add "debug=9" for triage, if needed # [channel.socket:qailt002:8009] info=AJP13 forwarding over socket tomcatId=qailt002:8009 [channel.socket:qailt003:8009] info=AJP13 forwarding over socket tomcatId=qailt003:8009 # # (4) Define a worker which communicates over the channel above # # @TODO: Change the host name as appropriate # # @OPTIONAL: Changing the lbfactor affects the weighted round-robin # load balancing. Higher numbers means stronger machine which will # receive more of the requests. # # @OPTIONAL: You may add "debug=9" for triage, if needed # [ajp13:qailt002:8009] channel=channel.socket:qailt002:8009 lbfactor=1 [ajp13:qailt003:8009] channel=channel.socket:qailt003:8009 lbfactor=1 # # @OPTIONAL: Repeat steps (3) and (4) here for every tomcat server # to participate in load balancing. At least one is required. # # For example, if the load on the single server defined above # is too great, configure a similar server, and repeat steps (3) and (4) # to include the new server in the load balancing. # # --------------------------- END CONFIGURATION -------------------------- # +++++++++++++++++++++++++++ BEGIN MAPPING ++++++++++++++++++++++++++ # # (5) Map URIs to be forwarded. # # @TODO: For each context deployed on the tomcat-server(s) above, # define a mapping to be forwarded. # # @OPTIONAL: You may add "debug=9" for triage, if needed # # @OPTIONAL: You may change the info= to be descriptive of this application. # [uri:/iltsp6150/*] info=Instructor-Led Training Add-On 1.0.3 + SkillPort 6.1.50 [uri:/iltsp6150a/*] info=Instructor-Led Training Add-On 1.0.3 + SkillPort 6.1.50 [uri:/iltsp6150b/*] info=Instructor-Led Training Add-On 1.0.3 + SkillPort 6.1.50 # --------------------------- END MAPPING -------------------------- # +++++++++++++++++++++++++++ /jkstatus MAPPING ++++++++++++++++++++++++++ # # @OPTIONAL: This provides a status report on the JK2 connector. Remove # if you don't want this available. # [uri:/jkstatus/*] worker=status:status # --------------------------- /jkstatus MAPPING -------------------------- <?xml version='1.0' encoding='utf-8'?> <Server> <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener"/> <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/> <GlobalNamingResources> <Environment description="Hibernate dialect: net.sf.Hibernate.dialect.[SQLServerDialect|OracleDialect|Oracle9Dialect]" name="hibernate.dialect" override="false" type="java.lang.String" value="net.sf.hibernate.dialect.SQLServerDialect"/> <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"/> <Resource name="com/skillsoft/ilt/jdbc/ILTSP6150A" type="javax.sql.DataSource"/> <Resource name="com/skillsoft/ilt/jdbc/ILTSP6150B" type="javax.sql.DataSource"/> <Resource name="com/skillsoft/ilt/jdbc/ILTSP6150" type="javax.sql.DataSource"/> <Resource name="com/skillsoft/mgs/mail/session" type="javax.mail.Session"/> <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> <ResourceParams name="com/skillsoft/ilt/jdbc/ILTSP6150A"> <parameter> <name>url</name> <value>jdbc:microsoft:sqlserver://qasql.amr.smtf.ds:1433;selectMethod=cursor;sendStringParametersAsUnicode=true</value> </parameter> <parameter> <name>validationQuery</name> <value>SELECT iltVersion FROM iltVersion WHERE iltVersion='1.0.0' AND versionid IN (SELECT param_val FROM master_parameters WHERE param_name='dbVersion')</value> </parameter> <parameter> <name>maxIdle</name> <value>50</value> </parameter> <parameter> <name>maxActive</name> <value>100</value> </parameter> <parameter> <name>driverClassName</name> <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value> </parameter> <parameter> <name>maxWait</name> <value>5000</value> </parameter> <parameter> <name>username</name> <value>ILTSP6150AMaster</value> </parameter> <parameter> <name>factory</name> <value>org.apache.commons.dbcp.BasicDataSourceFactory</value> </parameter> <parameter> <name>password</name> <value>ILTorBUST</value> </parameter> <parameter> <name>defaultCatalog</name> <value>ILTSP6150AMaster</value> </parameter> <parameter> <name>initialSize</name> <value>25</value> </parameter> </ResourceParams> <ResourceParams name="com/skillsoft/ilt/jdbc/ILTSP6150B"> <parameter> <name>url</name> <value>jdbc:microsoft:sqlserver://qasql.amr.smtf.ds:1433;selectMethod=cursor;sendStringParametersAsUnicode=true</value> </parameter> <parameter> <name>validationQuery</name> <value>SELECT iltVersion FROM iltVersion WHERE iltVersion='1.0.0' AND versionid IN (SELECT param_val FROM master_parameters WHERE param_name='dbVersion')</value> </parameter> <parameter> <name>maxIdle</name> <value>50</value> </parameter> <parameter> <name>maxActive</name> <value>100</value> </parameter> <parameter> <name>driverClassName</name> <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value> </parameter> <parameter> <name>maxWait</name> <value>5000</value> </parameter> <parameter> <name>username</name> <value>ILTSP6150BMaster</value> </parameter> <parameter> <name>factory</name> <value>org.apache.commons.dbcp.BasicDataSourceFactory</value> </parameter> <parameter> <name>password</name> <value>ILTorBUST</value> </parameter> <parameter> <name>defaultCatalog</name> <value>ILTSP6150BMaster</value> </parameter> <parameter> <name>initialSize</name> <value>25</value> </parameter> </ResourceParams> <ResourceParams name="com/skillsoft/mgs/mail/session"> <parameter> <name>mail.smtp.port</name> <value>25</value> </parameter> <parameter> <name>mail.smtp.host</name> <value>10.20.11.31</value> </parameter> <parameter> <name>mail.smtp.sendpartial</name> <value>true</value> </parameter> </ResourceParams> <ResourceParams name="com/skillsoft/ilt/jdbc/ILTSP6150"> <parameter> <name>url</name> <value>jdbc:microsoft:sqlserver://qasql.amr.smtf.ds:1433;selectMethod=cursor;sendStringParametersAsUnicode=true</value> </parameter> <parameter> <name>validationQuery</name> <value>SELECT iltVersion FROM iltVersion WHERE iltVersion='1.0.0' AND versionid IN (SELECT param_val FROM master_parameters WHERE param_name='dbVersion')</value> </parameter> <parameter> <name>maxIdle</name> <value>50</value> </parameter> <parameter> <name>maxActive</name> <value>100</value> </parameter> <parameter> <name>driverClassName</name> <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value> </parameter> <parameter> <name>maxWait</name> <value>5000</value> </parameter> <parameter> <name>username</name> <value>ILTSP6150Master</value> </parameter> <parameter> <name>factory</name> <value>org.apache.commons.dbcp.BasicDataSourceFactory</value> </parameter> <parameter> <name>password</name> <value>ILTorBUST</value> </parameter> <parameter> <name>defaultCatalog</name> <value>ILTSP6150Master</value> </parameter> <parameter> <name>initialSize</name> <value>25</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" disableUploadTimeout="true" port="8009" protocol="AJP/1.3" protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler" redirectPort="8443"> </Connector> <Engine defaultHost="localhost" jvmRoute="qailt002:8009" 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>
<?xml version='1.0' encoding='utf-8'?> <Server> <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener"/> <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/> <GlobalNamingResources> <Environment description="Hibernate dialect: net.sf.Hibernate.dialect.[SQLServerDialect|OracleDialect|Oracle9Dialect]" name="hibernate.dialect" override="false" type="java.lang.String" value="net.sf.hibernate.dialect.SQLServerDialect"/> <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"/> <Resource name="com/skillsoft/ilt/jdbc/ILTSP6150A" type="javax.sql.DataSource"/> <Resource name="com/skillsoft/ilt/jdbc/ILTSP6150B" type="javax.sql.DataSource"/> <Resource name="com/skillsoft/ilt/jdbc/ILTSP6150" type="javax.sql.DataSource"/> <Resource name="com/skillsoft/mgs/mail/session" type="javax.mail.Session"/> <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> <ResourceParams name="com/skillsoft/ilt/jdbc/ILTSP6150A"> <parameter> <name>url</name> <value>jdbc:microsoft:sqlserver://qasql.amr.smtf.ds:1433;selectMethod=cursor;sendStringParametersAsUnicode=true</value> </parameter> <parameter> <name>validationQuery</name> <value>SELECT iltVersion FROM iltVersion WHERE iltVersion='1.0.0' AND versionid IN (SELECT param_val FROM master_parameters WHERE param_name='dbVersion')</value> </parameter> <parameter> <name>maxIdle</name> <value>50</value> </parameter> <parameter> <name>maxActive</name> <value>100</value> </parameter> <parameter> <name>driverClassName</name> <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value> </parameter> <parameter> <name>maxWait</name> <value>5000</value> </parameter> <parameter> <name>username</name> <value>ILTSP6150AMaster</value> </parameter> <parameter> <name>factory</name> <value>org.apache.commons.dbcp.BasicDataSourceFactory</value> </parameter> <parameter> <name>password</name> <value>ILTorBUST</value> </parameter> <parameter> <name>defaultCatalog</name> <value>ILTSP6150AMaster</value> </parameter> <parameter> <name>initialSize</name> <value>25</value> </parameter> </ResourceParams> <ResourceParams name="com/skillsoft/ilt/jdbc/ILTSP6150B"> <parameter> <name>url</name> <value>jdbc:microsoft:sqlserver://qasql.amr.smtf.ds:1433;selectMethod=cursor;sendStringParametersAsUnicode=true</value> </parameter> <parameter> <name>validationQuery</name> <value>SELECT iltVersion FROM iltVersion WHERE iltVersion='1.0.0' AND versionid IN (SELECT param_val FROM master_parameters WHERE param_name='dbVersion')</value> </parameter> <parameter> <name>maxIdle</name> <value>50</value> </parameter> <parameter> <name>maxActive</name> <value>100</value> </parameter> <parameter> <name>driverClassName</name> <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value> </parameter> <parameter> <name>maxWait</name> <value>5000</value> </parameter> <parameter> <name>username</name> <value>ILTSP6150BMaster</value> </parameter> <parameter> <name>factory</name> <value>org.apache.commons.dbcp.BasicDataSourceFactory</value> </parameter> <parameter> <name>password</name> <value>ILTorBUST</value> </parameter> <parameter> <name>defaultCatalog</name> <value>ILTSP6150BMaster</value> </parameter> <parameter> <name>initialSize</name> <value>25</value> </parameter> </ResourceParams> <ResourceParams name="com/skillsoft/mgs/mail/session"> <parameter> <name>mail.smtp.port</name> <value>25</value> </parameter> <parameter> <name>mail.smtp.host</name> <value>10.20.11.31</value> </parameter> <parameter> <name>mail.smtp.sendpartial</name> <value>true</value> </parameter> </ResourceParams> <ResourceParams name="com/skillsoft/ilt/jdbc/ILTSP6150"> <parameter> <name>url</name> <value>jdbc:microsoft:sqlserver://qasql.amr.smtf.ds:1433;selectMethod=cursor;sendStringParametersAsUnicode=true</value> </parameter> <parameter> <name>validationQuery</name> <value>SELECT iltVersion FROM iltVersion WHERE iltVersion='1.0.0' AND versionid IN (SELECT param_val FROM master_parameters WHERE param_name='dbVersion')</value> </parameter> <parameter> <name>maxIdle</name> <value>50</value> </parameter> <parameter> <name>maxActive</name> <value>100</value> </parameter> <parameter> <name>driverClassName</name> <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value> </parameter> <parameter> <name>maxWait</name> <value>5000</value> </parameter> <parameter> <name>username</name> <value>ILTSP6150Master</value> </parameter> <parameter> <name>factory</name> <value>org.apache.commons.dbcp.BasicDataSourceFactory</value> </parameter> <parameter> <name>password</name> <value>ILTorBUST</value> </parameter> <parameter> <name>defaultCatalog</name> <value>ILTSP6150Master</value> </parameter> <parameter> <name>initialSize</name> <value>25</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" disableUploadTimeout="true" port="8009" protocol="AJP/1.3" protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler" redirectPort="8443"> </Connector> <Engine defaultHost="localhost" jvmRoute="qailt002:8009" 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>
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]