I use SQLAlchemy inside Tornado, and I use a singleton to make the Firebird connection inside application.
class FirebirdDatabase(object): def __init__(self, firebird_params, echo=False): engine = create_engine('firebird+fdb://%(user)s:%(password)s@%(host)s:%(port)s/%(path)s' % firebird_params, echo=echo, echo_pool=echo, pool_recycle=3600, convert_unicode=True, encoding='cp1251') self._session = sessionmaker(bind=engine) _instance = None def __new__(cls, *args, **kwargs): if not cls._instance: cls._instance = super(FirebirdDatabase, cls).__new__(cls, *args, **kwargs) return cls._instance def get_session(self): return self._session() After a while the Oldest transaction begin blocking and this slow down the database speed. To commit changes I use: try: self.Session.commit() except InvalidRequestError: self.Session.rollback() self.Session.commit() self.Session.close() What I'm doing wrong? Is it wrong way to close Firebird transaction? -- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To unsubscribe from this group and stop receiving emails from it, send an email to sqlalchemy+unsubscr...@googlegroups.com. To post to this group, send email to sqlalchemy@googlegroups.com. Visit this group at http://groups.google.com/group/sqlalchemy. For more options, visit https://groups.google.com/groups/opt_out.