[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