My Oracle Support Banner

FAN In ODP.NET With Connection Pooling Not Working During Dataguard Role Transitions (Doc ID 1454341.1)

Last updated on MARCH 04, 2022

Applies to:

Oracle Data Provider for .NET - Version to [Release 11.2]
Microsoft Windows x64 (64-bit)


Using ODP.NET with Client on Windows 64-bit, an application crashes when a Dataguard switchover is performed against an Database on Windows 2008 R2.

The following errors were received in the ODP.NET application:

ORA-03113: end-of-file on communication channel


Unhandled Exception: System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.

at Oracle.DataAccess.Client.OpsCon.RegisterCallbacks(IntPtr& opsConCtx, IntPtr& opsErrCtx, OpoConValCtx* pOpoConValCtx, OpoConRefCtx& pOpoConRefCtx)
at Oracle.DataAccess.Client.ConnectionDispenser.RegisterCallbacks(OpoConCtx opoConCtx)
at Oracle.DataAccess.Client.ConnectionPool.PopulatePool(Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
at System.Threading.ThreadPoolWorkQueue.Dispatch()
at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()



To view full details, sign in with your My Oracle Support account.

Don't have a My Oracle Support account? Click to get started!

In this Document

My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.