The documentation above says that "setting MaxIdle to 0 makes it impossible for database handles to become stale". "stale" means that the connection will close.
The 2nd source, the config-reference.tcl.txt is not complete and does not tell what happens in the 0 case (or negative case). Not sure, where you are reading "0 causes connections to close immediately their initial purpose has been fulfilled" ... whatever this might mean.
If aolserver would close after every db-query the connection, it would be horrible for our setup. In our production environment, we have 90 connection threads and 150 db-connections, every day typically 1000 concurrent users, ... and we are using 0 for both values.
Anyhow, you don't have to believe me, the authoritative source is the code:
if ((handlePtr->poolPtr->maxidle && handlePtr->atime < minAccess) ||
(handlePtr->poolPtr->maxopen && (handlePtr->otime < minOpen)) ||
(handlePtr->stale == NS_TRUE) ||
....
see on
http://aolserver.cvs.sourceforge.net/viewvc/aolserver/aolserver/nsdb/dbinit.c?annotate=1.5&pathrev=aolserver_v45_r1if maxidle or maxopen are 0, the timeouts do not apply, no close happens for that reason....
-gustaf neumann