All,
    I've got an issue with a flakey connection between my oracle database 
and my webserver.   We run a background merge process, managed by django.  
Every so often, the database connection will go down with an ORACLE-03113 
error, "Received end-of-file on communication channel.  This is occurring 
during a transaction.commit_manually decorated function.  So over all my 
code looks like this.

@transaction.commit_manually
def function():
    try:
        transaction.set_dirty()
        ... raw SQL queries here  <-- The exception occurs here 
        transaction.commit()
    except Exception e:
        transaction.rollback()

The issue is that after the ORACLE-03113 error, I've lost connection to the 
database, so transaction.rollback() raises an ORACLE-03114 error "not 
connected to ORACLE".  And I expect that if I just catch and silence the 
transaction.rollback() failure, I'll get a TransactionManagementError since 
the transaction was not (and cannot be) successfully rolled back.

Is there a proper way of handling this?

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/django-users/-/05q9lzzbQZUJ.
To post to this group, send email to django-users@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