[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:
   This was caused by environment handles initialized without 

2) ORA-01000: maximum open cursors exceeded:
   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 
   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). 

-------------- 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