Search found 6 matches

by martinst
Thu 21 Jul 2022 11:17
Forum: dotConnect for Oracle
Topic: AccessVisolationException
Replies: 1
Views: 14081

AccessVisolationException

Hello,

our client keeps getting weird crashes of our application (.NET 4.8, EF 6.4.4, dotConnect for Oracle 9.14.1204, Oracle 12.1.0.2).

In the Windows event log, we found the following:

Code: Select all

 System.AccessViolationException
   bei OciDynamicType.nativeOCIStmtFetch(System.Runtime.InteropServices.HandleRef, System.Runtime.InteropServices.HandleRef, Int32, UInt16, UInt32)
   bei OciDynamicType.OCIStmtFetch(System.Runtime.InteropServices.HandleRef, System.Runtime.InteropServices.HandleRef, Int32, UInt16, UInt32)
   bei Devart.Data.Oracle.eb.b(Int32)
   bei Devart.Data.Oracle.OracleDataReader.Read()
The crashes seem to appear when tables / views with BLOB columns are accessed.

We cannot reproduce the error (connecting to Oracle 12.1.0.1) and for our client, the crashes also happen on an irregular basis.

Since it is a lot of effort for our client to update: is there any chance a driver update might fix this issue?

Thank you and kind regards,
Martin
by martinst
Wed 03 Mar 2021 10:00
Forum: dotConnect for Oracle
Topic: InitialLOBFetchSize in Direct mode: ORA-03106
Replies: 12
Views: 7786

Re: InitialLOBFetchSize in Direct mode: ORA-03106

Hi, thanks - with 9.14.1204, UTF-8 in combination with InitialLobFetchSize > 0 is running smoothly :)
by martinst
Thu 07 Jan 2021 17:45
Forum: dotConnect for Oracle
Topic: InitialLOBFetchSize in Direct mode: ORA-03106
Replies: 12
Views: 7786

Re: InitialLOBFetchSize in Direct mode: ORA-03106

Dear DevArt-Team,

we are now using dotConnect for Oracle 9.14.1160 and have the following issue:

When loading data from a CLOB column using the OracleDataAdapter from a unicode databases (NLS_CHAR: AL32UTF8, NLS_NCHAR: AL16UTF16) and InitialLobFetchSize > 0, we receive invalid data and it seems that the data from the CLOB (UTF-16?) is interpreted as ANSI.

As an example what happens: the German word "Örtlichkeit" becomes "\0�\0r\0t\0l\0i\0c\0h\0k\0e\0i\0t\".

I am posting this here since it seems to be related with the topic: with InitialLobFetchSize = 0 everything works fine; the issue only appears with InitialLobFetchSize > 0 (we use 1MB).

varchar2 columns work perfectly fine within the same OracleDataAdapter instance, also CLOB data is loaded correctly when using an OracleDataReader. The issue only appears for OracleDataAdapter in combination with InitialLobFetchSize > 0.

This issue did not appear with version 9.13.1107.0.

Best regards,
Martin
by martinst
Tue 23 Jun 2020 06:11
Forum: dotConnect for Oracle
Topic: InitialLOBFetchSize in Direct mode: ORA-03106
Replies: 12
Views: 7786

Re: InitialLOBFetchSize in Direct mode: ORA-03106

This works and is definitely speeding things up. Thank you!
by martinst
Wed 01 Apr 2020 08:30
Forum: dotConnect for Oracle
Topic: InitialLOBFetchSize in Direct mode: ORA-03106
Replies: 12
Views: 7786

Re: InitialLOBFetchSize in Direct mode: ORA-03106

Thanks! It would be great to have a solution for this since we would like to use direct mode to avoid dependency on any Oracle Instant Client.

I have one more suggestion: I understand that this is a property of the OracleCommand class; however, would it be possible to add this as a connection string parameter so that all commands created by this connection use the value of the connection? That would make it very easy to load LOB data with Entity Framework fast.

Would that actually be possible or is it not recommendable for some reason to open every connection with InitialLobFetchSize > 0 even if no LOB data is loaded??
by martinst
Thu 26 Mar 2020 12:53
Forum: dotConnect for Oracle
Topic: InitialLOBFetchSize in Direct mode: ORA-03106
Replies: 12
Views: 7786

InitialLOBFetchSize in Direct mode: ORA-03106

Hi,

the release notes of version 9.6.597 say "The bug with the ORA-03106 error when assigning a value to the OracleCommand InitialLobFetchSize property in the Direct mode is fixed".

We use version 9.10.909, so the issue should be able to assign values to InitialLobFetchSize.
We have the issue that by default (InitialLobFetchSize = 0), loading BLOBs is very slow. I can set InitialLobFetchSize = -1; the code then still works but does not show any performance improvement.

If I set InitialLobFetchSize to any value > 0 (e.g. InitialLobFetchSize = 65536) the SQL select can be executed (OracleCommand.ExecuteReader()) but when trying to get the results with OracleDataReader.Read() I get an ORA-03106 error.

If I disable direct mode, InitialLobFetchSize = 65536 works perfectly and is a lot faster than the default; however, we would prefer direct mode to avoid dependency on an Oracle client.

Any suggestions or solutions to this issue? Note: we are still using .NET 4.5.2 (customers' requirement); database is Oracle 12c.

Best regards,
Martin