[Mono-devel-list] Problems with OracleClient
Jörg Rosenkranz
joergr at voelcker.com
Thu Dec 18 09:33:25 EST 2003
Hi all,
We are running into several problems regarding OracleClient.
Our initial problem was "ORA-01000: maximum open cursors exceeded".
After some research I've found out that Dispose of OciStatementHandle
objects is nearly never called. All handles are disposed by the
Finalizer which leads to this problem if many statements are fired in
short intervals. I have filed following bug report for this:
http://bugzilla.ximian.com/show_bug.cgi?id=52288
I have created the attached patch to fix this problem. This patch now
leads to the following problem in our real world app which is using
different threads (each one with it's own connection):
Segmentation fault with message
ORA-21500: internal error code, arguments: [ttcdrv-recursivecall], [],
[], [], [], [], [], [] in OCIStmtExecute
This error occurs after some time and I am not able to reproduce it in
a simple test case. The crash never happens when I let the garbage
collector dispose the handles.
After some research I have found out that libcntsh.so (which
OracleClient PInvokes into) is linked against libpthreads.so.
I remember that there were problems using code that is compiled without
the garbage collector includes.
Is this anything that rings a bell for anyone? Is there a way to fix
this?
Please do not commit this patch ;-)
Thanks,
Joerg.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Patch_OracleClient_52288.diff
Type: application/octet-stream
Size: 8778 bytes
Desc: Patch_OracleClient_52288.diff
Url : http://lists.ximian.com/pipermail/mono-devel-list/attachments/20031218/070332be/attachment.obj
More information about the Mono-devel-list
mailing list