I've been using adbapi (with pyodbc talking to MS SQL Server) successfully in a Windows service. I've discovered that occasionally, the network between the service and the database machine goes down and comes back up (either that or the database server itself cycles down and back up). When this happens, any pyodbc connections hanging around are corrupted, so that the next query gets an exception (class pyodbc.Error). Currently, the best thing I can do is to restart the service. I'm trying to rewrite the service to be able to catch, analyze, and respond to exceptions from pyodbc. In particular, in the case above, it's possible to reconnect and retry the query. If the network connection is still down, I'd like to log it, send a message to alert someone, or whatever. I've rewritten a ConnectionPool.runQuery call to use runInteraction to call a function (in a thread) that works with the cursor created in runInteraction to execute the query. The function wraps the cursor.execute(...) in a try-except. I can successfully catch the exception, and I try to recover by doing cursor.reconnect(), then cursor.reopen(), and finally cursor.execute(...) again. I'm finding that this fails with a "wrong connection for thread" exception. I haven't been able to figure out why that should happen; more importantly, I'm not sure that I'm going about this in the right way. Any insights or pointers to code that does this kind of thing would be appreciated. Thanks, -- Don Dwiggins Advanced Publishing Technology