[sqlalchemy] InvalidRequestError: The transaction is inactive due to a rollback... using sqlite with multiple commits.

2009-04-28 Thread Daniel

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

2009-04-28 Thread Daniel

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
-~--~~~~--~~--~--~---