From: Lionel B. <lio...@bo...> - 2004-11-18 18:22:10
|
HaJo Schatz wrote the following on 11/18/04 18:39 : >I know I'm getting annoying... I just tried and brought PostgreSQL down >while sqlgrey was running. The logs said: > >Nov 19 01:16:08 sun sqlgrey[32194]: Warning: couldn't do query: DELETE >FROM from_awl WHERE last_seen < now() - INTERVAL '60 DAY': FATAL: This >connection has been terminated by the administrator., reconnecting to DB >Nov 19 01:16:08 sun sqlgrey[32194]: Can't connect to DB: could not >connect to server: Connection refused >Nov 19 01:16:08 sun sqlgrey[32194]: warning: Database handle destroyed >without explicit disconnect at /usr/bin/sqlgrey line 608. >Nov 19 01:16:08 sun sqlgrey[32194]: fatal: Can't call method "do" on an >undefined value at /usr/bin/sqlgrey line 77. > >And sqlgrey disappeared from my process list... > > Ok, so my tests weren't enough : I dropped each table one at a time to check what would happen in different parts of the code when a database error occured. What I didn't expect is that a lost connection could have different effects than a pure SQL error. But now it makes sense that if the database isn't available, the database handle object is destroyed and calling the do method on it isn't such a great idea :-( Back to the drawing board (fault tolerance isn't a piece of cake, if we can't rely on the dbh object, I'll have to wrap it in another object). Thanks Lionel : still learning DBI :-) |