I am creating a web app with Django. I use a local MySQL database to
store users etc, but also connect to a remote Oracle database to pull
in some information to display.

Due to Django's lack of multiple database support I have written my
own very smalI Oracle wrapper, using cx_Oracle. In an effort to be
more efficient, I create a new Oracle connection when my oracle python
code is first included, and then only reconnect if the connection is
closed. I note that Django's own database wrapper code does the same
thing.

This works fine when running with Django's development server, but if
I:
1. Run my application via Apache and mod_wsgi
2. Then hit the server with two requests in rapid succession

The second request displays a database error of "ORA-24909: call in
progress. Current operation cancelled". It seems this is caused by
attempting to use a database connection/cursor before the last query
has finished - i.e. the Oracle client library doesn't like multiple
threads attempting to use the same cursor simultanously.

Questions:
1. Is this a bug in Oracle? I see some one web reference implying that
this is a bug in Oracle version 10.2.0.1, and that is indeed the
version I am using. However, I only get the error when multiple
threads are attempting to use the same connection at the same time, so
it might well be a valid error message regardless of version.

2. If it is not a bug in Oracle, then how does Django's own Oracle
wrapper avoid this problem? I was reading through the source but can't
see anything obvious.

3. If it is not a bug but Django's own wrapper doesn't deal with this
problem, how do I deal with it? Should I simply create a new database
connection for every single web request?

James
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django users" group.
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