Page 1 of 1

Error on opening DbConnection

Posted: Mon 25 Feb 2013 21:38
by hepek
Receantly I got this error on PROD server.
Error on opening DbConnection, Server did not respond within the specified timeout interval

There was a problem with ORACLE connection, details included below. After that a lot of requests timed out and IIS CPU usage was 99%.
We had to restart IIS on a server. (Windows 2003 64 bit, oracle client 11g 32 bit)

I would expect this kind of error to raise exception before reuqest time out.
(currently Request Timeout is set to 2 minutes)

In another words, when any kind of ORACLE error happens my app should raise exception right away. In this case it took at least 2 minutes and finaly request timed out.

How can I be sure that Devart command/connection times out before IIS Response times out?

thanks

Code: Select all

Exception information: 
    Exception type: LinqCommandExecutionException 
    Exception message: Error on opening DbConnection.
   at Devart.Data.Linq.LinqCommandExecutionException.CanThrowLinqCommandExecutionException(String message, Exception e)
   at Devart.Data.Linq.Provider.k.a.g()
   at Devart.Data.Linq.Provider.k.a.b(IConnectionUser A_0)
   at Devart.Data.Linq.Provider.k.b(IConnectionUser A_0)
   at Devart.Data.Linq.Provider.DataProvider.ExecuteQuery(CompiledQuery compiledQuery, Object[] parentArgs, Object[] userArgs, Object lastResult)
   at Devart.Data.Linq.Provider.DataProvider.Devart.Data.Linq.Provider.IProvider.Execute(Expression query)
   at Devart.Data.Linq.DataQuery`1.System.Linq.IQueryProvider.Execute[S](Expression expression)
   at System.Linq.Queryable.SingleOrDefault[TSource](IQueryable`1 source)
   at RRD.OnePlace.BLL.JobBO.SaveUserFilter(Int64 empID, String filter)


.....

Server did not respond within the specified timeout interval
   at Devart.Data.Oracle.bd.a(ac A_0, ai A_1)
   at Devart.Data.Oracle.OracleInternalConnection..ctor(ac connectionOptions, OracleInternalConnection proxyConnection)
   at Devart.Data.Oracle.bx.a(j A_0, Object A_1, DbConnectionBase A_2)
   at Devart.Common.DbConnectionFactory.a(DbConnectionPool A_0, j A_1, DbConnectionBase A_2)
   at Devart.Common.DbConnectionPool.a(DbConnectionBase A_0)
   at Devart.Common.DbConnectionPool.GetObject(DbConnectionBase owningConnection)
   at Devart.Common.DbConnectionFactory.b(DbConnectionBase A_0)
   at Devart.Common.DbConnectionClosed.Open(DbConnectionBase outerConnection)
   at Devart.Common.DbConnectionBase.Open()
   at Devart.Data.Oracle.OracleConnection.Open()
   at Devart.Data.Linq.Provider.k.a.g()

Re: Error on opening DbConnection

Posted: Tue 26 Feb 2013 17:36
by Shalex
hepek wrote:Error on opening DbConnection, Server did not respond within the specified timeout interval
Please increase the value of the Connection Timeout connection string parameter.
hepek wrote:How can I be sure that Devart command/connection times out before IIS Response times out?
Please set the corresponding values in the Connection Timeout and Default Command Timeout connection string parameters. Setting the OracleCommand.CommandTimeout property explicitly overrides the value which is set via the Default Command Timeout connection string parameter.

Re: Error on opening DbConnection

Posted: Tue 26 Feb 2013 17:44
by hepek
how do I set Command Timeout in connection string?

thanks

Re: Error on opening DbConnection

Posted: Wed 27 Feb 2013 12:27
by Shalex
OracleConnection conn = new OracleConnection("Default Command Timeout=60;");

If a command is created in any of the following ways, the cmd.CommandTimeout property will be set with the value which is specified in the Default Command Timeout connection string parameter:
1. OracleCommand cmd1 = conn.CreateCommand();
2. OracleCommand cmd2 = new OracleCommand("", conn);
3. OracleCommand cmd3 = new OracleCommand();
cmd3.Connection = conn;