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)
>
>

Reply via email to