We have seen in production (if DevArt is used together with OCI) we run into deadlocks.
Timeouts in DevArt are not taken into account and reasoned by that application is getting completly stuck.
Most of the time we are stuck in:
OciCall.dll!OciDynamicType.OCIDescriptorFree(System.Runtime.InteropServices.HandleRef value, int value)
Devart.Data.Oracle.dll!Devart.Data.Oracle.o.j()
and/or
OciCall.dll!OciDynamicType.OCITransRollback(System.Runtime.InteropServices.HandleRef value, System.Runtime.InteropServices.HandleRef value, uint value)
Devart.Data.Oracle.dll!Devart.Data.Oracle.dd.l()
If direct mode is used the problem does not appear (but we cannot because of Oracle RAC).
We have created a reproduce here:
https://goo.gl/zfXnXj (create schema with the provided sql script, , run the console application)
We also noticed that all other connection are blocked if that happens in getting
Devart.Data.Oracle.dll!Devart.Common.DbConnectionPoolGroup.a(Devart.Common.DbConnectionPool A_0)
Devart.Data.Oracle.dll!Devart.Common.DbConnectionPoolGroup.a(object A_0)
and
Devart.Data.Oracle.dll!Devart.Common.DbConnectionPool.GetObject(Devart.Common.DbConnectionBase owningConnection)
Devart.Data.Oracle.dll!Devart.Common.DbConnectionFactory.b(Devart.Common.DbConnectionBase A_0)Devart.Data.Oracle.dll!Devart.Common.DbConnectionClosed.Open(Devart.Common.DbConnectionBase outerConnection)
The big issue is that we have no way to recover from our end in that situation. Help would be highly appreciated.
DevArt and OCI - deadlock (DevArt 9.4.326.0)
Re: DevArt and OCI - deadlock (DevArt 9.4.326.0)
Looks like this is happening \ related to OracleXml datatype if disposed is not called. Why this is resulting in a deadlock \ and works with directmode is still unclear.
Re: DevArt and OCI - deadlock (DevArt 9.4.326.0)
We are processing your request.
-
- Devart Team
- Posts: 2420
- Joined: Wed 02 Nov 2011 09:44
Re: DevArt and OCI - deadlock (DevArt 9.4.326.0)
Your sample successfully runs in our environment with the OCI mode. Please tell us your Oracle server and Client version. Tell us also the Oracle Client bitness (32bit or 64bit).