I need to either close the ajp connections or send keepalive messages because there is a firewall with a timeout of 1h between the mod_proxy_ajp (Apache 2.2.9) and the JBoss Server with ajp connector and
<Valve className="org.jboss.web.tomcat.service.jca.CachedConnectionValve" cachedConnectionManagerObjectName="jboss.jca:service=CachedConnectionManager" transactionManagerObjectName="jboss:service=TransactionManager" /> in server.xml. Setting BalancerMember ajp://hostname status=-H ping=3 smax=0 ttl=600 did not help, even setting disablereuse did not help. After 1h idle time the connections are broken. A restart of the Apache solves the problem. Apache error log: [Wed May 06 08:45:20 2009] [error] (70007)The timeout specified has expired: ajp_ilink_receive() can't receive hea der [Wed May 06 08:45:20 2009] [error] ajp_read_header: ajp_ilink_receive failed [Wed May 06 08:45:20 2009] [error] (120006)APR does not understand this error code: proxy: read response failed from x.x.x.x:8009 (x.x.x.x) 2009/4/27 Rainer Jung <rainer.j...@kippdata.de> > > Because I use mpm-prefork as mentioned, default smax=max=1. Does it make > > sense to set smax to 0 to get a ttl for the one and only connection? > > I would say "yes, it does make sense." > > > So > > "zero connections will be created on demand"? Is it bad not to have a ttl > > for the one and only connection? When will that connection be closed > without > > ttl? When Tomcat connectionTimeout triggers? > > Yes, but then you rely on httpd to correctly detect the closed > connection. Usually you do that via activating cping/cpong. I would use > a ttl value as a kind of double safety net. > > Whether closing idle connections or not is also related to > > - what kind of connection pool is the backend using (relation to backend > threads, and how precious your thread resources are) > > - are there other systems influencing idle connections between the web > server and the backend (like a firewall dropping idle connections) > >