[sqlalchemy] InvalidRequestError: The transaction is inactive due to a rollback... using sqlite with multiple commits.
Hello, In my application I have a function that looks more or less like this def run(self): # process first object in sequence for firstObject in firstObjects: self.session.add(firstObject) self.session.commit() # process second object in sequence # lots of these, so break along the way count = 0 for secondObject in secondObjects: self.session.add(secondObject) count += 1 if (count 100): #** self.session.commit() #** count = 0 time.sleep(1) # pause to let other process access the db self.session.commit() # process third objects for thirdObject in thirdObjects: self.session.add(thirdObject) self.session.commit() The commit nested inside the second loop (highlighted by asterisks) is potentially called many times (occasionally there are thousands of objects to deal with). intermittently that commit will produce the following error: Traceback (most recent call last): File C:\Aptina\pop\tester\AptinaStagingService.py, line 106, in __init__ self.run(self.pushPath,self.stagingPath) File C:\Aptina\pop\tester\AptinaStagingService.py, line 231, in run self.session.commit() File c:\python25\Lib\site-packages\sqlalchemy\orm\session.py, line 673, in commit self.transaction.commit() File c:\python25\Lib\site-packages\sqlalchemy\orm\session.py, line 378, in commit self._prepare_impl() File c:\python25\Lib\site-packages\sqlalchemy\orm\session.py, line 351, in _prepare_impl self._assert_is_active() File c:\python25\Lib\site-packages\sqlalchemy\orm\session.py, line 247, in _assert_is_active The transaction is inactive due to a rollback in a InvalidRequestError: The transaction is inactive due to a rollback in a subtransaction. Issue rollback() to cancel the transaction. I've read elsewhere in this group (http://groups.google.com/group/ sqlalchemy/browse_thread/thread/b87af73232998fe4) about this error message, but I'm not sure what they mean by squelching the original exception somewhere. Can someone please help me understand why I'm getting this error and ideas on how to fix it. 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 -~--~~~~--~~--~--~---
[sqlalchemy] InvalidRequestError: The transaction is inactive... using sqlite and multiple commits
Hello, In my application I have a function that looks more or less like this def run(self): # process first object in sequence for firstObject in firstObjects: self.session.add(firstObject) self.session.commit() # process second object in sequence # lots of these, so break along the way count = 0 for secondObject in secondObjects: self.session.add(secondObject) count += 1 if (count 100): #** self.session.commit() #** count = 0 time.sleep(1) # pause to let other process access the db self.session.commit() # process third objects for thirdObject in thirdObjects: self.session.add(thirdObject) self.session.commit() The commit nested inside the second loop (highlighted by asterisks) is potentially called many times (occasionally there are thousands of objects to deal with). intermittently that commit will produce the following error: Traceback (most recent call last): File C:\StagingService.py, line 106, in __init__ self.run(self.pushPath,self.stagingPath) File C:\StagingService.py, line 231, in run self.session.commit() File c:\python25\Lib\site-packages\sqlalchemy\orm\session.py, line 673, in commit self.transaction.commit() File c:\python25\Lib\site-packages\sqlalchemy\orm\session.py, line 378, in commit self._prepare_impl() File c:\python25\Lib\site-packages\sqlalchemy\orm\session.py, line 351, in _prepare_impl self._assert_is_active() File c:\python25\Lib\site-packages\sqlalchemy\orm\session.py, line 247, in _assert_is_active The transaction is inactive due to a rollback in a InvalidRequestError: The transaction is inactive due to a rollback in a subtransaction. Issue rollback() to cancel the transaction. I've read elsewhere in this group (http://groups.google.com/group/ sqlalchemy/browse_thread/thread/b87af73232998fe4) about this error message, but I'm not sure what they mean by squelching the original exception somewhere. Can someone please help me understand why I'm getting this error and ideas on how to fix it. 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 -~--~~~~--~~--~--~---