On Tuesday, July 10, 2012 7:45:58 AM UTC-6, Dan Gentry wrote:
>
> My Django app runs on an Oracle database.
>
> A few times a year, the database is unavailable because of a scheduled 
> process or unplanned downtime. However, I can't see how to catch the error 
> and give a useful message back to the requester. Instead, a 500 error is 
> triggered, and I get an email (or hundreds) showing the exception. One 
> example is:
>
>   File 
> "/opt/UDO/env/events/lib/python2.6/site-packages/django/db/backends/oracle/base.py",
>  line 447, in _cursor
>     self.connection = Database.connect(conn_string, **conn_params)
>
> DatabaseError: ORA-01035: ORACLE only available to users with RESTRICTED 
> SESSION privilege
>
> I see a similar error with a different ORA number when the DB is down.
>
> Because the exception is thrown deep within the Django libraries, and can 
> be triggered by any of my views or the built in admin views, I don't know 
> where any exception trapping code would go.
>
> Any suggestions?
>
There's nothing specific to Oracle about this.  First, make sure you've 
read:

https://docs.djangoproject.com/en/1.4/howto/error-reporting/

In your case you might do any of the following:

1) Customize the 500.html server error template to provide a more 
user-friendly message.

2) Customize the server error view, which by default just renders the 
500.html template:
https://docs.djangoproject.com/en/1.4/topics/http/views/#the-500-server-error-view

3) Use a middleware to customize completely how otherwise unhandled errors 
are processed.  You can create a customized 500 (or 503) response and do 
whatever admin notification and other processing you want.

-- 
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/-/r5lfeWa1iAgJ.
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