Can anyone help me with the following point?

Does django keep internal state when psycopg throws a
OperationalError, and how do I clear it?

The situation is this: I have external processes writing into a django/
postgres database. To avoid using semaphors, etc, I'm trying to use a
row level lock and the "savepoint" mechanism to make sure a particular
process is the only one modifying a certain set of table rows.

When another process has beat a given one to the punch, I issue a
"select ... for update nowait" and get an operational error. The
"except" block does a "rollback to savepoint"... however, if I
continue on, I still can't use django -- I get an "InternalError".

I know I can clear this with "connection._rollback()" but there might
be other things in the transaction that are perfectly good....

The "rollback to savepoint" should be sufficient: it works when I
simulate with two psql processes. So django (or psycopg2?) must keep
some extra state somewhere. Does anyone know where it is and how I
clear it?

Thanks!

-- Shaun

--

You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-us...@googlegroups.com.
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.


Reply via email to