Danie Qian wrote:
I am using mod_authn_dbd and mod_dbd to do authentication again a mysql
database. Basically it works but after sometime I will get a internal
server error. I checked the log this happens at apr_dbd_pvselect() line
in mod_authn_dbd.c. So this looks like to me that apr_dbd_pvselect() is
trying to re-use a connection that is closed by the mysql server side
whose wait-timeout is set to 1200 seconds. my mod_dbd setting is this
DBDMin 1
DBDKeep 2
DBDMax 50
DBDExptime 60
My question is why the keepalive setting for 60sec doesnt work for me?
How do I fix this without changing the timeout setting on the mysql server?
It looks like a higher priority is given to DBDKeep and DBDMin than to
expiring old connections. This would mean that 2 connections could be
retained past their deadline to ensure that DBDKeep connections remain
available.
ref: apr-util/misc/apr_reslist.c:169 function: reslist_maint()
in Apache 2.2.4 / APR 1.2.8
Perhaps setting both DBDKeep and DBDMin to zero would let all the
connections expire when they are idle for 60 seconds.
DBDKeep is required to be >= DBDMin.
-tom-