Dear All,
Tomcat works fine for
1. Java HotSpot(TM) Server VM (build 1.4.2-b28, mixed
mode) on Linux 9 without NPTL (LD_ASSUME_KERNEL=2.4.1)
2. Java HotSpot(TM) Client VM (build 1.4.2-b28, mixed
mode) on Linux 9 with NPTL
Tomcat process simply ceases to respond after some requests from
JMeter
1. Java HotSpot(TM) Server VM (build 1.4.2-b28, mixed
mode) on Linux 9 with NPTL
Any idea?
J2SE 1.4.2
Tomcat4.1.27
Linux 9
Apache2.0.47
mod_jk2.0.2
Best Regards,
Srinivas.
>Mailing-List: contact tomcat-user-help@(protected)
>List-Unsubscribe: <mailto:tomcat-user-unsubscribe@(protected)>
>List-Subscribe: <mailto:tomcat-user-subscribe@(protected)>
>List-Help: <mailto:tomcat-user-help@(protected)>
>List-Post: <mailto:tomcat-user@(protected)>
>List-Id: "Tomcat Users List" <tomcat-user.jakarta.apache.org>
>Reply-To: "Tomcat Users List" <tomcat-user@(protected)>
>Delivered-To: mailing list tomcat-user@(protected)
>X-Sender: srini@(protected)
>X-Mailer: QUALCOMM Windows Eudora Version 5.2.1
>Date: Thu, 21 Aug 2003 10:52:13 +0800
>To: tomcat-user@(protected)
>From: "Venkata Srinivasa Rao, Yerra" <srini@(protected)>
>Subject: Problem, can't get response form tomcat after some requests
>X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N
>
>Hi All,
>
>I have installed tomcat4.1.27, apache2.0.47, modjk2.02, and j2se1.4.2 on
>Linux 9. I have compiled Apache, mod_jk2 from the source.
>
>After several requests from JMeter, tomcat simply holds up, no more
>requests can be processed by tomcat.
>I can't stop tomcat unless I kill the tomcat process. I have restarted
>apache, it doesn't help.
>I found some CLOSE_WAIT after I restart apache. I have killed tomcat, all
>CLOSE_WAITs are gone.
>Same thing is repeating again and again after I start tomcat.
>
>I can't figure out the problem. I have posted my configuration here.
>Can any one find where I am doing mistake?
>I am straggling since few days.
>Help would be appreciated.
>
>Thanks in advance.
>
>Regards,
>Srinivas
>------------------------------------------------------------------------------------
>
>workers.properties
>------------------------------------------------
># only at beginnin. In production uncomment it out
>[logger.apache2]
>level=DEBUG
>
>[uriMap:]
>info=Maps the requests. Options: debug
>debug=0
>
>[config:]
>file=${serverRoot}/conf/workers2.properties
>debug=0
>debugEnv=0
>
>#[shm]
>f#ile=${serverRoot}/logs/jk2.shm
>#size=1048576
>#debug=0
>#disabled=0
>
>[lb:lb-gipalbum]
>info=GIPALBUM load balancer.
>debug=0
>
>[lb:lb-ext]
>info=EXT load balancer.
>debug=0
>
># define the GIPALBUM worker
>[channel.socket:192.168.1.211:8091]
>info=Ajp13 forwarding over socket to GIPALBUM
>debug=0
>tomcatId=gipablum-tc
>lb_factor=1
>group=lb-gipalbum
>disabled=0
>
># define the EXT worker
>[channel.socket:192.168.1.211:8092]
>info=Ajp13 forwarding over socket to EXT
>debug=0
>tomcatId=ext-tc
>lb_factor=1
>group=lb-ext
>disabled=0
>
># define the status worker
>[status:]
>info=Status worker, displays runtime informations
>
># Uri mapping for status worker
>[uri:/jkstatus/*]
>info=Display status information and checks the config file for changes.
>group=status:
>
># Uri mapping
>[uri:/admin/*.jsp]
>info=admin project
>context=/admin
>group=lb-gipalbum
>debug=0
>
># Uri mapping
>[uri:/admin/*.do]
>info=admin project
>context=/admin
>group=lb-gipalbum
>debug=0
>
># Uri mapping
>[uri:/manager/*]
>info=manager project
>context=/manager
>group=lb-ext
>debug=0
>
>
># Uri mapping
>[uri:/*.jsp]
>info=default jsp project
>context=/
>group=lb-ext
>debug=0
>
>[uri:/*.do]
>info=default struts project
>context=/
>group=lb-ext
>debug=0
>
>[uri:/moto/*.osp]
>info=moto osp project
>context=/moto
>group=lb-ext
>debug=0
>
>[uri:/moto/*.ost]
>info=moto ost project
>context=/moto
>group=lb-ext
>debug=0
>------------------------------------------
>end workers.properties
>
>server.xml
>-------------------------------------
><!-- Example Server Configuration File -->
><!-- Note that component elements are nested corresponding to their
> parent-child relationships with each other -->
>
><!-- A "Server" is a singleton element that represents the entire JVM,
> which may contain one or more "Service" instances. The Server
> listens for a shutdown command on the indicated port.
>
> Note: A "Server" is not itself a "Container", so you may not
> define subcomponents such as "Valves" or "Loggers" at this level.
> -->
>
><Server port="8052" shutdown="SHUTDOWN" debug="0">
>
>
> <!-- Comment these entries out to disable JMX MBeans support -->
> <!-- You may also configure custom components (e.g. Valves/Realms) by
> including your own mbean-descriptor file(s), and setting the
> "descriptors" attribute to point to a ';' seperated list of paths
> (in the ClassLoader sense) of files to add to the default list.
> e.g. descriptors="/com/myfirm/mypackage/mbean-descriptor.xml"
> -->
> <Listener className="
org.apache.catalina.mbeans.ServerLifecycleListener"
> debug="0"/>
> <Listener
> className="
org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"
> debug="0"/>
>
> <!-- Global JNDI resources -->
> <GlobalNamingResources>
>
> <!-- Test entry for demonstration purposes -->
> <Environment name="simpleValue" type="
java.lang.Integer" value="30"/>
>
> <!-- Editable user database that can also be used by
> UserDatabaseRealm to authenticate users -->
> <Resource name="UserDatabase" auth="Container"
> type="
org.apache.catalina.UserDatabase"
> description="User database that can be updated and saved">
> </Resource>
> <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>
>
> <!-- A "Service" is a collection of one or more "Connectors" that share
> a single "Container" (and therefore the web applications visible
> within that Container). Normally, that Container is an "Engine",
> but this is not required.
>
> Note: A "Service" is not itself a "Container", so you may not
> define subcomponents such as "Valves" or "Loggers" at this level.
> -->
>
> <!-- Define the Tomcat Stand-Alone Service -->
> <Service name="Tomcat-Standalone">
>
> <!-- A "Connector" represents an endpoint by which requests are received
> and responses are returned. Each Connector passes requests on
> to the
> associated "Container" (normally an Engine) for processing.
>
> By default, a non-SSL HTTP/1.1 Connector is established on port
> 8080.
> You can also enable an SSL HTTP/1.1 Connector on port 8443 by
> following the instructions below and uncommenting the second
> Connector
> entry. SSL support requires the following steps (see the SSL Config
> HOWTO in the Tomcat 4.0 documentation bundle for more detailed
> instructions):
> * Download and install JSSE 1.0.2 or later, and put the JAR files
> into "$JAVA_HOME/jre/lib/ext".
> * Execute:
> %JAVA_HOME%\bin\keytool -genkey -alias tomcat -keyalg RSA
> (Windows)
> $JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg RSA (Unix)
> with a password value of "changeit" for both the certificate and
> the keystore itself.
>
> By default, DNS lookups are enabled when a web application calls
> request.getRemoteHost(). This can have an adverse impact on
> performance, so you can disable it by setting the
> "enableLookups" attribute to "false". When DNS lookups are
> disabled,
> request.getRemoteHost() will return the String version of the
> IP address of the remote client.
> -->
>
> <!-- Define a non-SSL Coyote HTTP/1.1 Connector on port 8080 -->
> <Connector className="
org.apache.coyote.tomcat4.CoyoteConnector"
> port="8082" minProcessors="5" maxProcessors="75"
> enableLookups="true" redirectPort="8443"
> acceptCount="100" debug="0" connectionTimeout="20000"
> useURIValidationHack="false" disableUploadTimeout="true" />
> <!-- Note : To disable connection timeouts, set connectionTimeout value
> to -1 -->
>
> <!-- Define a SSL Coyote HTTP/1.1 Connector on port 8443 -->
> <!--
> <Connector className="
org.apache.coyote.tomcat4.CoyoteConnector"
> port="8443" minProcessors="5" maxProcessors="75"
> enableLookups="true"
> acceptCount="100" debug="0" scheme="https" secure="true"
> useURIValidationHack="false" disableUploadTimeout="true">
> <Factory
> className="
org.apache.coyote.tomcat4.CoyoteServerSocketFactory"
> clientAuth="false" protocol="TLS" />
> </Connector>
> -->
>
> <!-- Define a Coyote/JK2 AJP 1.3 Connector on port 8009 -->
> <Connector className="
org.apache.coyote.tomcat4.CoyoteConnector"
> port="8092" minProcessors="5" maxProcessors="75"
> enableLookups="true" redirectPort="8443"
> acceptCount="10" debug="0" connectionTimeout="20000"
> useURIValidationHack="false" disableUploadTimeout="true"
>
>protocolHandlerClassName="
org.apache.jk.server.JkCoyoteHandler"/>
>
> <!-- Define an AJP 1.3 Connector on port 8009 -->
> <!--
> <Connector className="
org.apache.ajp.tomcat4.Ajp13Connector"
> port="8009" minProcessors="5" maxProcessors="75"
> acceptCount="10" debug="0"/>
> -->
>
> <!-- Define a Proxied HTTP/1.1 Connector on port 8082 -->
> <!-- See proxy documentation for more information about using this. -->
> <!--
> <Connector className="
org.apache.coyote.tomcat4.CoyoteConnector"
> port="8082" minProcessors="5" maxProcessors="75"
> enableLookups="true"
> acceptCount="100" debug="0" connectionTimeout="20000"
> proxyPort="80" useURIValidationHack="false"
> disableUploadTimeout="true" />
> -->
>
> <!-- Define a non-SSL legacy HTTP/1.1 Test Connector on port 8083 -->
> <!--
> <Connector className="org.apache.catalina.connector.http.HttpConnector"
> port="8083" minProcessors="5" maxProcessors="75"
> enableLookups="true" redirectPort="8443"
> acceptCount="10" debug="0" />
> -->
>
> <!-- Define a non-SSL HTTP/1.0 Test Connector on port 8084 -->
> <!--
> <Connector className="org.apache.catalina.connector.http10.HttpConnector"
> port="8084" minProcessors="5" maxProcessors="75"
> enableLookups="true" redirectPort="8443"
> acceptCount="10" debug="0" />
> -->
>
> <!-- An Engine represents the entry point (within Catalina) that
> processes
> every request. The Engine implementation for Tomcat stand alone
> analyzes the HTTP headers included with the request, and passes them
> on to the appropriate Host (virtual host). -->
>
> <!-- You should set jvmRoute to support load-balancing via JK/JK2 ie :
> <Engine name="Standalone" defaultHost="localhost" debug="0"
> jmvRoute="jvm1">
> -->
>
> <!-- Define the top level container in our container hierarchy -->
> <Engine name="Standalone" defaultHost="localhost" debug="0">
>
> <!-- The request dumper valve dumps useful debugging information about
> the request headers and cookies that were received, and the
> response
> headers and cookies that were sent, for all requests received by
> this instance of Tomcat. If you care only about requests to a
> particular virtual host, or a particular application, nest this
> element inside the corresponding <Host> or <Context> entry
> instead.
>
> For a similar mechanism that is portable to all Servlet 2.3
> containers, check out the "RequestDumperFilter" Filter in the
> example application (the source for this filter may be found in
> "$CATALINA_HOME/webapps/examples/WEB-INF/classes/filters").
>
> Request dumping is disabled by default. Uncomment the following
> element to enable it. -->
> <!--
> <Valve className="
org.apache.catalina.valves.RequestDumperValve"/>
> -->
>
> <!-- Global logger unless overridden at lower levels -->
> <Logger className="
org.apache.catalina.logger.FileLogger"
> prefix="catalina_log." suffix=".txt"
> timestamp="true"/>
>
> <!-- Because this Realm is here, an instance will be shared
> globally -->
>
> <!-- This Realm uses the UserDatabase configured in the global JNDI
> resources under the key "UserDatabase". Any edits
> that are performed against this UserDatabase are immediately
> available for use by the Realm. -->
> <Realm className="
org.apache.catalina.realm.UserDatabaseRealm"
> debug="0" resourceName="UserDatabase"/>
>
> <!-- Comment out the old realm but leave here for now in case we
> need to go back quickly -->
> <!--
> <Realm className="
org.apache.catalina.realm.MemoryRealm" />
> -->
>
> <!-- Replace the above Realm with one of the following to get a Realm
> stored in a database and accessed via JDBC -->
>
> <!--
> <Realm className="
org.apache.catalina.realm.JDBCRealm" debug="99"
> driverName="
org.gjt.mm.mysql.Driver"
> connectionURL="jdbc:mysql://localhost/authority"
> connectionName="test" connectionPassword="test"
> userTable="users" userNameCol="user_name"
> userCredCol="user_pass"
> userRoleTable="user_roles" roleNameCol="role_name" />
> -->
>
> <!--
> <Realm className="
org.apache.catalina.realm.JDBCRealm" debug="99"
> driverName="oracle.jdbc.driver.OracleDriver"
> connectionURL="jdbc:oracle:thin:@(protected)"
> connectionName="scott" connectionPassword="tiger"
> userTable="users" userNameCol="user_name"
> userCredCol="user_pass"
> userRoleTable="user_roles" roleNameCol="role_name" />
> -->
>
> <!--
> <Realm className="
org.apache.catalina.realm.JDBCRealm" debug="99"
> driverName="sun.jdbc.odbc.JdbcOdbcDriver"
> connectionURL="jdbc:odbc:CATALINA"
> userTable="users" userNameCol="user_name"
> userCredCol="user_pass"
> userRoleTable="user_roles" roleNameCol="role_name" />
> -->
>
> <!-- Define the default virtual host -->
> <Host name="localhost" debug="0" appBase="webapps"
> unpackWARs="true" autoDeploy="true">
>
> <!-- Normally, users must authenticate themselves to each web app
> individually. Uncomment the following entry if you would like
> a user to be authenticated the first time they encounter a
> resource protected by a security constraint, and then have that
> user identity maintained across *all* web applications contained
> in this virtual host. -->
> <!--
> <Valve className="
org.apache.catalina.authenticator.SingleSignOn"
> debug="0"/>
> -->
>
> <!-- Access log processes all requests for this virtual host. By
> default, log files are created in the "logs" directory
> relative to
> $CATALINA_HOME. If you wish, you can specify a different
> directory with the "directory" attribute. Specify either a
> relative
> (to $CATALINA_HOME) or absolute path to the desired directory.
> -->
> <!--
> <Valve className="
org.apache.catalina.valves.AccessLogValve"
> directory="logs" prefix="localhost_access_log."
> suffix=".txt"
> pattern="common" resolveHosts="false"/>
> -->
>
> <!-- Logger shared by all Contexts related to this virtual host. By
> default (when using FileLogger), log files are created in
> the "logs"
> directory relative to $CATALINA_HOME. If you wish, you can
> specify
> a different directory with the "directory"
> attribute. Specify either a
> relative (to $CATALINA_HOME) or absolute path to the desired
> directory.-->
> <Logger className="
org.apache.catalina.logger.FileLogger"
> directory="logs" prefix="localhost_log." suffix=".txt"
> timestamp="true"/>
>
> <!-- Define properties for each web application. This is only needed
> if you want to set non-default properties, or have web
> application
> document roots in places other than the virtual host's appBase
> directory. -->
>
> <!-- Tomcat Root Context -->
> <!--
> <Context path="" docBase="ROOT" debug="0"/>
> -->
>
> <!-- Tomcat Examples Context -->
> <Context path="/examples" docBase="examples" debug="0"
> reloadable="true" crossContext="true">
> <Logger className="
org.apache.catalina.logger.FileLogger"
> prefix="localhost_examples_log." suffix=".txt"
> timestamp="true"/>
> <Ejb name="ejb/EmplRecord" type="Entity"
> home="com.wombat.empl.EmployeeRecordHome"
> remote="com.wombat.empl.EmployeeRecord"/>
>
> <!-- If you wanted the examples app to be able to edit the
> user database, you would uncomment the following entry.
> Of course, you would want to enable security on the
> application as well, so this is not done by default!
> The database object could be accessed like this:
>
> Context initCtx = new InitialContext();
> Context envCtx = (Context) initCtx.lookup("java:comp/env");
> UserDatabase database =
> (UserDatabase) envCtx.lookup("userDatabase");
> -->
><!--
> <ResourceLink name="userDatabase" global="UserDatabase"
> type="
org.apache.catalina.UserDatabase"/>
>-->
>
>
> <!-- PersistentManager: Uncomment the section below to test
> Persistent
> Sessions.
>
> saveOnRestart: If true, all active sessions will be saved
> to the Store when Catalina is shutdown, regardless of
> other settings. All Sessions found in the Store will be
> loaded on startup. Sessions past their expiration are
> ignored in both cases.
> maxActiveSessions: If 0 or greater, having too many active
> sessions will result in some being swapped out. minIdleSwap
> limits this. -1 or 0 means unlimited sessions are allowed.
> If it is not possible to swap sessions new sessions will
> be rejected.
> This avoids thrashing when the site is highly active.
> minIdleSwap: Sessions must be idle for at least this long
> (in seconds) before they will be swapped out due to
> activity.
> 0 means sessions will almost always be swapped out after
> use - this will be noticeably slow for your users.
> maxIdleSwap: Sessions will be swapped out if idle for this
> long (in seconds). If minIdleSwap is higher, then it will
> override this. This isn't exact: it is checked periodically.
> -1 means sessions won't be swapped out for this reason,
> although they may be swapped out for maxActiveSessions.
> If set to >= 0, guarantees that all sessions found in the
> Store will be loaded on startup.
> maxIdleBackup: Sessions will be backed up (saved to the Store,
> but left in active memory) if idle for this long (in
> seconds),
> and all sessions found in the Store will be loaded on
> startup.
> If set to -1 sessions will not be backed up, 0 means they
> should be backed up shortly after being used.
>
> To clear sessions from the Store, set maxActiveSessions,
> maxIdleSwap,
> and minIdleBackup all to -1, saveOnRestart to false, then
> restart
> Catalina.
> -->
> <!--
> <Manager className="
org.apache.catalina.session.PersistentManager"
> debug="0"
> saveOnRestart="true"
> maxActiveSessions="-1"
> minIdleSwap="-1"
> maxIdleSwap="-1"
> maxIdleBackup="-1">
> <Store className="
org.apache.catalina.session.FileStore"/>
> </Manager>
> -->
> <Environment name="maxExemptions" type="
java.lang.Integer"
> value="15"/>
> <Parameter name="context.param.name" value="context.param.value"
> override="false"/>
> <Resource name="jdbc/EmployeeAppDb" auth="SERVLET"
> type="
javax.sql.DataSource"/>
> <ResourceParams name="jdbc/EmployeeAppDb">
> <parameter><name>username</name><value>sa</value></parameter>
> <parameter><name>password</name><value></value></parameter>
> <parameter><name>driverClassName</name>
> <value>org.hsql.jdbcDriver</value></parameter>
> <parameter><name>url</name>
> <value>jdbc:HypersonicSQL:database</value></parameter>
> </ResourceParams>
> <Resource name="mail/Session" auth="Container"
> type="
javax.mail.Session"/>
> <ResourceParams name="mail/Session">
> <parameter>
> <name>mail.smtp.host</name>
> <value>localhost</value>
> </parameter>
> </ResourceParams>
> <ResourceLink name="linkToGlobalResource"
> global="simpleValue"
> type="
java.lang.Integer"/>
> </Context>
>
> </Host>
>
> </Engine>
>
> </Service>
>
>
></Server>
>------------------------------------------
>end of server.xml
>
>jk2.properties
>------------------------------------------
>## THIS FILE MAY BE OVERRIDEN AT RUNTIME. MAKE SURE TOMCAT IS STOPED
>## WHEN YOU EDIT THE FILE.
>
>## COMMENTS WILL BE _LOST_
>
>## DOCUMENTATION OF THE FORMAT IN JkMain javadoc.
>
># Set the desired handler list
># handler.list=apr,request,channelJni
>handler.list=channelSocket,request
>#
># Override the default port for the socketChannel
># channelSocket.port=8019
># Default:
># channelUnix.file=${jkHome}/work/jk2.socket
># Just to check if the the config is working
># shm.file=${jkHome}/work/jk2.shm
>
># In order to enable jni use any channelJni directive
># channelJni.disabled = 0
># And one of the following directives:
>
># apr.jniModeSo=/opt/apache2/modules/mod_jk2.so
>
># If set to inprocess the mod_jk2 will Register natives itself
># This will enable the starting of the Tomcat from mod_jk2
># apr.jniModeSo=inprocess
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: tomcat-user-unsubscribe@(protected)
>For additional commands, e-mail: tomcat-user-help@(protected)