thanks for the help.

Calling dispose on all engines did fix the error for me.

Michael Bayer wrote:
> there are many on this list who dont think very highly of global
> variables ! :)
> 
> id advise using your own create_engine function to keep track of created
> engines before calling SA's create_engine strategy, and/or monkeypatch
> sqlalchemy.create_engine to do so:
> 
>     atexit_engines = []
>     def atexit():
>         [e.dispose() for e in atexit_engines]
> 
>     import sqlalchemy as sa
>     _old_create_engine = sa.create_engine
>     def create_engine(*args, **kwargs):
>         engine = _old_create_engine(*args, **kwargs)
>         atexit_engines.append(engine)
>         return engine
>     sa.create_engine = create_engine
> 
> or, if you want to get more OO about it you can make your own
> EngineStrategy to do it:
> 
>     import sqlalchemy.engine.strategies as strategies
> 
>     atexit_engines = []
>     class CleanupStrategy(strategies.ThreadLocalEngineStrategy):
>         def __init__(self):
>             EngineStrategy.__init__(self, 'atexit_cleanup')
>         def create(self, *args, **kwargs):
>             engine = super(CleanupStrategy, self).create(*args, **kwargs)
>             atexit_engines.append(engine)
>             return engine
>     CleanupStrategy()
> 
>     engine = create_engine('someengine', strategy='atexit_cleanup')
> 
> 
> 
> On Jul 23, 2006, at 10:14 PM, Mike Bernson wrote:
> 
>> I am using threadlocal.
>>
>> Is there any global name that I can call in atexit function. The atexit
>> function is registered before any database stuff is accessed. The engine
>> create is ' engine = create_engine(connect_string,
>>         strategy='threadlocal')'. In the atexit function I just want to
>> close out any active because the port will not be there. There are a
>> number of engine. One is created for each database that I need to access.
>>
>> Michael Bayer wrote:
>>> maybe engine.dispose() to explicitly close off everything first
>>>
>>>
>>> On Jul 23, 2006, at 6:15 PM, Mike Bernson wrote:
>>>
>>>> I am using ssh to port forward the connection to the database.
>>>>
>>>> I have some code that execute before any sqlalchemy that sets up a
>>>> port forward from local host to mysql database host. In this function
>>>> I do atexit to kill off the ssh that has the port forward.
>>>>
>>>> I get a the following error when the program exits:
>>>> Exception _mysql_exceptions.OperationalError: (2006, 'MySQL server has
>>>> gone away') in <bound method ConnectionFairy.__del__ of
>>>> <sqlalchemy.pool.ConnectionFairy object at 0x2aaaad4c8d90>> ignored
>>>>
>>>> Is there something that I can put in the atexit function clear up this
>>>> error ?
>>>>
>>>> Is there something I can put as the last statements to be executed
>>>> that
>>>> would clean up this error (for normal execution path)
>>>>
>>>> The atexit is done so that no matter how the program exits the ssh is
>>>> killed off.
>>>>
>>>> ----------------------------------------------------------------------
>>>> ---
>>>> Take Surveys. Earn Cash. Influence the Future of IT
>>>> Join SourceForge.net's Techsay panel and you'll get the chance to
>>>> share your
>>>> opinions on IT & business topics through brief surveys -- and earn
>>>> cash
>>>> http://www.techsay.com/default.php?
>>>> page=join.php&p=sourceforge&CID=DEVDEV
>>>> _______________________________________________
>>>> Sqlalchemy-users mailing list
>>>> Sqlalchemy-users@lists.sourceforge.net
>>>> https://lists.sourceforge.net/lists/listinfo/sqlalchemy-users
>>>
>>>
>>> -------------------------------------------------------------------------
>>>
>>> Take Surveys. Earn Cash. Influence the Future of IT
>>> Join SourceForge.net's Techsay panel and you'll get the chance to
>>> share your
>>> opinions on IT & business topics through brief surveys -- and earn cash
>>> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
>>>
>>> _______________________________________________
>>> Sqlalchemy-users mailing list
>>> Sqlalchemy-users@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/sqlalchemy-users
>>
>> -------------------------------------------------------------------------
>> Take Surveys. Earn Cash. Influence the Future of IT
>> Join SourceForge.net's Techsay panel and you'll get the chance to
>> share your
>> opinions on IT & business topics through brief surveys -- and earn cash
>> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
>> _______________________________________________
>> Sqlalchemy-users mailing list
>> Sqlalchemy-users@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/sqlalchemy-users
> 

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Sqlalchemy-users mailing list
Sqlalchemy-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sqlalchemy-users

Reply via email to