Ah, all of this makes a lot more sense now. I assumed that the handles stayed connected until I close them intentionally. Lots of reading ahead...
Thanks though, at least now I know what is going wrong. On Wed, Apr 5, 2017 at 4:00 PM, George Neuner <[email protected]> wrote: > > On 4/5/2017 2:56 PM, David Storrs wrote: > >> On Wed, Apr 5, 2017 at 1:39 PM, Marc Kaufmann <[email protected]> >> wrote: >> > Thanks David, that makes a little sense also because it often happens >> after >> > there has been no activity on the server for a while. If it is a stale >> > handle, is there something I can do about it? >> >> Get a fresh handle instead of re-using an old one. I don't know what >> this line does: (define dbc (study-db a-study)) but if it's >> returning a cached handle then that's your problem. >> >> Something like this would work: >> >> (define (connect-me) >> (postgresql-connect #:user "foo" >> #:database "bar" >> #:password "baz" >> #:port 5432 >> )) >> >> (define dbc (connect-me)) >> >> >> (Note that this is illustrative, not necessarily efficient.) >> >> Also, you might want to look into virtual connections and connection >> pools. >> > > In addition to David's excellent suggestion: > > Be aware that the server may close an idle connection, and you may get a > stale handle even from a pool. Depending on the DBMS you may need to > enable keep-alives and/or change idle connection timeouts on the server so > that a pool can keep connections open. > > MySQL uses keep-alives by default, but there is a separate idle connection > timeout. > see https://dev.mysql.com/doc/refman/5.7/en/server-system-variab > les.html#sysvar_wait_timeout > > George > > -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.

