From: Thomas E J. <mo...@ca...> - 2003-08-07 19:22:21
|
On Thu, 2003-08-07 at 13:56, David Rushby wrote: > --- Thomas E Jenkins <mo...@ca...> wrote: > > On Thu, 2003-08-07 at 10:00, Stephan Diehl wrote: > > > On Thursday 07 August 2003 15:10, Thomas E Jenkins wrote: > > > > For what it's worth I've had the same problems. It always > > > > follows my other problem, MySQL throwing (2013, 'Lost connection > > > > to MySQL server during query'). > > > > > > Once in a while, I've seeing the same errormessage. Interestingly, > > > this was always early morning and the problem went away after a > > > while. It just looked like the connection run into a timeout over > > > night. > > > Maybe it's possible, to check for this specific errormessage in the > > > DBPool.py code and reset all connections if this happens. > > Although I use Firebird rather than MySQL, I created a DBPool subclass > called ResilientDBPool whose getConnection method "pings" the > connection it's about to return, to ensure that it's still connected to > the database server. > > If the ping fails, ResilientDBPool tries to reestablish the connection > a few times before giving up and raising an exception. As a result, > the pool never gives my servlets a timed-out connection or one that > could be trivially reconnected. This doesn't invalidate transaction > integrity because connections that are lying around idle in the pool > ought not have an active transaction anyway. > > Subclassing DBPool is tricky because in its constructor, it dynamically > selects between threadsafe and threadunsafe versions of its > getConnection method and sets the chosen method as an *instance > attribute*. One needs to set 'self.getConnection' in the constructor > of the subclass, rather than more conventionally overriding > DBPool._threadsafe_getConnection or DBPool._unthreadsafe_getConnection. > > I suppose I could make this code available if anyone wants it, but the > "ping" logic is database-specific. I'd love to see this code at least as a jumping off point for a MySQL (and Postgres) version. > __________________________________ > Do you Yahoo!? > Yahoo! SiteBuilder - Free, easy-to-use web site design software > http://sitebuilder.yahoo.com > > > ------------------------------------------------------- > This SF.Net email sponsored by: Free pre-built ASP.NET sites including > Data Reports, E-commerce, Portals, and Forums are available now. > Download today and enter to win an XBOX or Visual Studio .NET. > http://aspnet.click-url.com/go/psa00100003ave/direct;at.aspnet_072303_01/01 > _______________________________________________ > Webware-discuss mailing list > Web...@li... > https://lists.sourceforge.net/lists/listinfo/webware-discuss -- Thomas E Jenkins <mo...@ca...> |