A simple test case can be found here https://gist.github.com/4214092
Expected result: Query returns a list of results from database Current behaviour: Query throws an exception: https://gist.github.com/4214131 W dniu środa, 5 grudnia 2012 07:54:48 UTC+1 użytkownik Piotr Deszyński napisał: > > If it's necessary I will provide both, the question before that is: > Should ZopeTransactionExtension work with ShardedSession? Because if it > wasn't designed for that, then there's no need to write test cases. > > Best regards > > W dniu wtorek, 4 grudnia 2012 16:31:16 UTC+1 użytkownik Michael Bayer > napisał: >> >> 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 sqlal...@googlegroups.com. >> To unsubscribe from this group, send email to >> sqlalchemy+...@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 view this discussion on the web visit https://groups.google.com/d/msg/sqlalchemy/-/x64ucHKp8mIJ. 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.