Page 1 of 1

Network error: 200

Posted: Sat 06 Mar 2010 17:06
by realrunner
I am testing dotConnect for Oracle and things are looking pretty good. Kudos on the speed, it is fast!

I am running into this error "Network error: 200", or "Network error:: Operation timed out." at a certain, reproducible point.

Here are the details on my environment:
  • OS: Linux, Centos 5.3, 64bit
    Runtime: Mono, 2.6.1
    dotConnect version: 5.6 (beta) trial
Symptom:
After a very long running transaction (a big, multi-table import, running around 20 minutes), an error is caused by a unique constraint violation. I know this because I have 2 versions, one with MS OracleClient, and one with yours. The unique constraint violation causes the import to rollback. The rollback process takes about 3 minutes.
With the OracleClient, I see the exception and process it normally. With your client, I get this error after about 60 seconds, and I don't get the ORA- code or any other meaningful information.

Connection is established like so:

Code: Select all

var cmdb = new Devart.Data.Oracle.OracleConnectionStringBuilder();
                cmdb.Direct = true;
                cmdb.Pooling = false;
                cmdb.DefaultCommandTimeout = 1800;
                cmdb.ConnectionTimeout = 60;
                cmdb.UserId = dbi.Username;
                cmdb.Password = dbi.Password;
                cmdb.Port = dbi.Port;
                cmdb.Sid = dbi.DatabaseName;
                cmdb.Server = dbi.Host;
                return cmdb.ToString();
I am creating commands as such:

Code: Select all

var cmd = conn.CreateCommand();
            cmd.CommandTimeout = 1800;
            return cmd;
Is there something else I can try to mitigate this issue. If needs be, I will try and isolate the problem into a more concise project and post it, but since it is a timing issue it will probably be hard to do simply.

Posted: Sat 06 Mar 2010 17:37
by realrunner
Here is the stack trace:

Code: Select all

Network error:: Operation timed out.
  at Devart.Data.Oracle.bs.a (System.Byte[] A_0, Int32 A_1, Int32 A_2) [0x00000]
  at Devart.Data.Oracle.bs.a (System.Byte& A_0) [0x00000]
  at xc.l.b (System.Byte[] A_0, Int32 A_1, Int32 A_2) [0x00000]
  at xc.l.b () [0x00000]
  at xc.f.b () [0x00000]
  at xc.d.c () [0x00000]
  at Devart.Data.Oracle.z.b (Boolean A_0) [0x00000]
  at Devart.Data.Oracle.OracleInternalConnection.Rollback () [0x00000]
Is there anyway to increase the timeout on the rollback operation?

Posted: Tue 09 Mar 2010 10:36
by StanislavK
At the moment, the timeout period for rollback operation is defined by the ConnectionTimeout property. We will investigate the possibility of using DefaultCommandTimeout instead and notify you about the results.

As a workaround, you may increase ConnectionTimeout.

OK...

Posted: Tue 09 Mar 2010 15:59
by realrunner
I can increase the connection timeout but DefaultCommandTimeout seems more appropriate.

I don't really want my Oracle connection timeout to be set at 1 hour. But a rollback could easily take that long given a big enough import.

Thanks

Posted: Wed 10 Mar 2010 10:49
by StanislavK
We have set DefaultCommandTimeout to be used for the rollback timeout, please look forward to the nearest build.

Posted: Wed 31 Mar 2010 16:53
by StanislavK
The latest 5.60.120 build of dotConnect for Oracle is available for download now. It can be downloaded from
http://www.devart.com/dotconnect/oracle/download.html
(trial version) or from Registered Users' Area (for users with valid subscription only).

For more information, please refer to
http://www.devart.com/forums/viewtopic.php?t=17514 .