We are using ODP.NET in ASP.NET web site.
Environment: ODP.NET Oracle.DataAccess, Version=4.112.2.0 on Windows Server 2008R2. IIS 7.5
ExceptionType: Oracle.DataAccess.Client.OracleException, Oracle.DataAccess, Version=4.112.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342
Issue:
From time to time, ODP.NET Oracle connection gets terminated with ORA-03113 error. Sequence of events is:
1. Oracle connection is established and connection is opened
2. Using the connection when a procudure/function/SQL statement (like g.e.: OracleCommand.ExecuteNonQuery) is executed, and ORA-03113 error is raised
03113. I read in blogs, sites and forums disabling connection pooling would solve this issue. I dont know. If that is the workaround, and working; but, I do not want to do this because this would degrade the performance.
file on communication cannel. Process ID: 1660 Session ID: 266 Serial number: 61873
at Oracle.DataAccess.Client.OracleException.HandleErrorHelper(Int32 errCode, OracleConnection conn, IntPtr opsErrCtx, OpoSqlValCtx* pOpoSqlValCtx, Object src, String procedure, Boolean bCheck)
at Oracle.DataAccess.Client.OracleCommand.ExecuteNonQuery()
at Microsoft.Practices.EnterpriseLibrary.Data.Database.DoExecuteNonQuery(DbCommand command)
at Microsoft.Practices.EnterpriseLibrary.Data.Database.ExecuteNonQuery(DbCommand command)
at COMPANY.Frk.Data.OracleClient.Command.DoExecuteNonQuery()
at COMPANY.Frk.Data.OracleClient.Command.ExecuteNonQuery()
at COMPANY.Frk.Data.OracleClient.Command.ExecuteStoredFunction()
at COMPANY.B2b.Services.GD.DAL.Login.CheckUser(Int32 companyid, String login, String pass)
In any Oracle docs:
ORA-03113: end-of-file on communication channel
Cause: The connection between Client and Server process was broken. It may also happen if the external agent extproc crashes for some reason.
Action: There was a communication error that requires further investigation. First, check for network problems and review the SQL*Net setup. Also, look in the alert.log file for any errors. Finally, test to see whether the server process is dead and whether a trace file was generated at failure time. There may be some system calls in the .NET function which might terminate the process. Remove such calls.
How can I do troubleshooting about it? Which tools can I used ?
Thanks a lot.