test cases and stack traces would be a start On Dec 4, 2012, at 9:29 AM, Piotr Deszyński wrote:
> Hello, > > Is there a way to use ZopeTransactionExtension using ShardedSession? I just > cannot figure it out. When I use it then I'm getting exception during any > query: > > unbound method after_begin() must be called with ZopeTransactionExtension > instance as first argument (got SessionMaker instance instead) > > Best regards > > W dniu środa, 28 grudnia 2011 18:18:46 UTC+1 użytkownik Michael Bayer napisał: > > On Dec 27, 2011, at 11:58 PM, Josh Ha-Nyung Chung wrote: > >> I've made web application using Pyramid 1.2.5 + Python 2.7.1 + SQLAlchemy >> 0.7.4 and occasionally encountered the following error. >> >> File "build/bdist.linux-x86_64/egg/sqlalchemy/engine/base.py", line 1599, >> in _execute_context >> conn = self._revalidate_connection() >> File "build/bdist.linux-x86_64/egg/sqlalchemy/engine/base.py", line 1018, >> in _revalidate_connection >> "Can't reconnect until invalid " >> StatementError: Can't reconnect until invalid transaction is rolled back >> (original cause: InvalidRequestError: Can't reconnect until invalid >> transaction is rolled back) 'SELECT dp_user.user_id AS dp_user_user_id, >> dp_user.email AS dp_user_email, dp_user.new_email AS dp_user_new_email, >> dp_sns_user.`SNS_name` AS `dp_sns_user_SNS_name` \\nFROM dp_user, >> dp_sns_user \\nWHERE dp_user.status = %s AND dp_user.user_id = >> dp_sns_user.user_id AND dp_user.signup_date >= %s AND dp_user.signup_date < >> %s ORDER BY dp_user.signup_date DESC' [immutabledict({})] >> >> All queries what my web app is doing is SELECT. So I don't think I need to >> explicitly call session.commit() at all. I can't understand why "invalid >> transaction" ever occurred. >> mysqld's wait_timeout is 28800 and I create sqlalchemy engine with >> pool_recycle of 3600. >> >> after I restarted apache, which run my web app through wsgi, it starts >> working again. > > > this can only happen if an error is emitted from a query or other SQL > operation inside of a transaction, and the connection continues to be reused > subsequent to that error condition without any attendance being given to the > invalid transaction. > > The "restarting of apache" step as the only solution suggests you're sharing > a single transaction between multiple requests, and the error was emitted in > a previous request. You'd need to ensure that the Session is completely > closed out at the end of each request, or at least rollback() is called, so > that any remaining transactional state is released. Pyramid suggests > integrating with the ZopeTransactionExtension which I believe should handle > this (you should check on the Pyramid list). > > > > > > -- > You received this message because you are subscribed to the Google Groups > "sqlalchemy" group. > To view this discussion on the web visit > https://groups.google.com/d/msg/sqlalchemy/-/FHYesCKZhD4J. > 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.