Forum OpenACS Development: Re: "interesting" db pool behavior

Posted by Andrew Piskorski on
The OpenACS request processor normally allocates at least one db handle in order to do authentication checks and the like, no? So my guess is that it is still holding that handle at the time you try to allocate another from the same pool, which of course breaks, as AOLserver does not allow that.

Note there is no particular reason to do that sort of check in a conn thread, did you try it from the scheduler thread instead? You can run that internally on the AOLserver, there is no need to have a separate keepalive server hitting a Tcl page to do the same thing.

Even better might be to also have AOLserver directly monitor an open TCP/IP connection to the remote Oracle server, and somehow get immediate notification when the network flakes out, although I don't know if that's feasible.

Clearly what you really want for this client is to fix AOLserver so that it can re-connect to Oracle without restarting AOLserver. Many people have wanted that over the years, but in normal use you almost never really need it so AFAIK no one actually implemented the feature.

(I won't ask why this client insists on keeping their main OpenACS database instance on the other side of a flaky network... which seems insane.)