[Mono-devel-list] [PATCH]Fix for Oracle problems (Threading, #52288, #52699, #52702), Tracing of OCI calls

Jörg Rosenkranz joergr at voelcker.com
Fri Jan 9 06:12:40 EST 2004


Hi all,

After some research I have found solutions for my Oracle problems:

1) OracleClient crashes in multithreaded environment:
   http://bugzilla.ximian.com/show_bug.cgi?id=52699
   This was caused by environment handles initialized without 
   OCI_THREADING flag.

2) ORA-01000: maximum open cursors exceeded:
   http://bugzilla.ximian.com/show_bug.cgi?id=52288
   OciHandles aren't disposed where they are created. They are 
   disposed by the Finalizer which causes many open handles.

3) No statements can be processed after committing an 
   OracleTransaction:
   http://bugzilla.ximian.com/show_bug.cgi?id=52702
   The service handle contains a invalid transaction handle
   after commit.

The attached patch contains fixes for all these problems. To track 
them down I have introduced the class OciCalls which wraps all calls
to the OCI.dll. The calls can be traced when environment variable
OCI_TRACE is set and System.Data.OracleClient.dll is compiled using
the TRACE flag:

	export MONO_TRACE=Console.Out
	export OCI_TRACE=yes

Can someone please review and commit this patch (I have tested it 
against Oracle 9i). 

Thanks,
Joerg.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OracleFixes_2004-01-09.diff
Type: application/octet-stream
Size: 37508 bytes
Desc: OracleFixes_2004-01-09.diff
Url : http://lists.ximian.com/pipermail/mono-devel-list/attachments/20040109/fa7dfbc0/attachment.obj 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OciCalls.cs
Type: application/octet-stream
Size: 20731 bytes
Desc: OciCalls.cs
Url : http://lists.ximian.com/pipermail/mono-devel-list/attachments/20040109/fa7dfbc0/attachment-0001.obj 


More information about the Mono-devel-list mailing list