Thank you, I'll try that.
From: sqlalchemy@googlegroups.com [mailto:sqlalchemy@googlegroups.com] On Behalf Of Michael Bayer Sent: Sunday, December 23, 2012 6:42 PM To: sqlalchemy@googlegroups.com Subject: Re: [sqlalchemy] Keeping open connections alive if you want to go that route I'd use the connection events to hit every DBAPI connection as it's created, and store them in a weak-referencing collection: import weakref from sqlalchemy import event from sqlalchemy.engine import Engine connections = weakref.WeakKeyDictionary() @event.listens_for(Engine, "connect") def connect(dbapi_conn, conn_rec): connections[dbapi_conn] = True # this would run in a worker thread or other asynchronous system def refresh(): for conn in connections: cursor = conn.cursor() cursor.execute("select 1") cursor.close() there's a slight chance of unsupported concurrent access with the above pattern, esp. if you're using a non-threadsafe DBAPI like MySQLdb. If so, you might want to also keep track of connections as they are checked out and checked in using the "checkin", "checkout" events, and only do the "ping" if a connection is not in "checkout" state. On Dec 23, 2012, at 11:03 AM, Alexey Vihorev wrote: Hi, all! I've got a problem in my GUI app - if a connection stayes open for too long, and is inactive (user opened an editing window and went away for a cofee brake etc), firewall/other network machinery will close the connection and the session will fail with 'connection abnormally terminated'. So I'm trying to come up with a best way to handle that, and for now I've settled with using timer and executing session.connection().execute('select now()') every minute or so, but that requires handling of each session\connection individually. Can I get a list of all open connections for an engine, iterate over them and do execute('select now()')? Thanks. -- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To post to this group, send email to sqlalchemy@googlegroups.com. To unsubscribe from this group, send email to sqlalchemy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en. -- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To post to this group, send email to sqlalchemy@googlegroups.com. To unsubscribe from this group, send email to sqlalchemy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en. -- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To post to this group, send email to sqlalchemy@googlegroups.com. To unsubscribe from this group, send email to sqlalchemy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en.