ORA 3114 Error with MS .Net provider for oracle

A

Arjun

Hi ,

I am using System.Data.OracleClient to connect to a oracle 10g
database on a Win 2003 server.
I have also installed the oracle 10g client and .Net 2.0 on the app
server.
My problem is that I keep getting error (shown below) intermittently..

System.Data.OracleClient.OracleException: ORA-03114: not connected to
ORACLE
at System.Data.OracleClient.OracleException.Check(OciErrorHandle
errorHandle, Int32 rc)
at System.Data.OracleClient.OracleInternalConnection.Rollback()
at System.Data.OracleClient.OracleConnection.Rollback()
at System.Data.OracleClient.OracleTransaction.Dispose(Boolean
disposing)
at System.Data.OracleClient.OracleTransaction.Rollback()

After getting this error if I reboot my server, the error goes away
only to return after some time.Also I have noticed that if the
application servers remian idle for some time, I get this error when
they resume work.

On googling I came across this article
http://support.microsoft.com/default.aspx?scid=kb;en-us;830173
It mentions this problem has been fixed in the Win 2003 SP1.I am
already at SP2 on my servers.

I am looking for ways to find the root cause of this error.Is it
related with setting on the oracle database server,oracle client or
some Win 2003 network settings?

Thanks In Advance!
 
F

Frans Bouma [C# MVP]

Arjun said:
Hi ,

I am using System.Data.OracleClient to connect to a oracle 10g
database on a Win 2003 server.
I have also installed the oracle 10g client and .Net 2.0 on the app
server.
My problem is that I keep getting error (shown below) intermittently..

System.Data.OracleClient.OracleException: ORA-03114: not connected to
ORACLE
at System.Data.OracleClient.OracleException.Check(OciErrorHandle
errorHandle, Int32 rc)
at System.Data.OracleClient.OracleInternalConnection.Rollback()
at System.Data.OracleClient.OracleConnection.Rollback()
at System.Data.OracleClient.OracleTransaction.Dispose(Boolean
disposing)
at System.Data.OracleClient.OracleTransaction.Rollback()

After getting this error if I reboot my server, the error goes away
only to return after some time.Also I have noticed that if the
application servers remian idle for some time, I get this error when
they resume work.

On googling I came across this article
http://support.microsoft.com/default.aspx?scid=kb;en-us;830173
It mentions this problem has been fixed in the Win 2003 SP1.I am
already at SP2 on my servers.

I am looking for ways to find the root cause of this error.Is it
related with setting on the oracle database server,oracle client or
some Win 2003 network settings?


Do you use connection pooling ? (a setting specifyable in the
connection string. pooling is ON by default).

It looks like the underlying network connection has been closed. THis
could be due to a firewall which closes idle connections.

WHen you use connection pooling (on by default) a closed connection
isn't really closed: it's reset and the physical connection with the
server is stored in a pool. When the connection is through a firewall,
the connection can be closed on the server, and perhaps due to some bug
not being propagated to the client.

If possible, could you try with ODP.NET ? (if you have a big app in
production, that's not an option ;))

FB

--
------------------------------------------------------------------------
Lead developer of LLBLGen Pro, the productive O/R mapper for .NET
LLBLGen Pro website: http://www.llblgen.com
My .NET blog: http://weblogs.asp.net/fbouma
Microsoft MVP (C#)
------------------------------------------------------------------------
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top