Skip to Main Content

ODP.NET

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Attempted to read or write protected memory problems

621425Feb 4 2008 — edited Mar 29 2012
Hi there, we are having some issues with ODP.net. every few days after our system has been used quite a lot we get the "Attempted to read or write protected memory. This is often an indication that other memory is corrupt." errors.

I can reproduce this just by launching some threads that all make some DB calls, and after a while (took over an hour in the case) we encounter the error. It it not just one DB call causing it, looking at the logs it does appear to only be calls to 'Get' data, but just about all of them have failed at some point.

Yes we have upgraded to the latest version 11.1.0.6.20 and it still happens. Here are some stack traces, Oracle.DataAccess.Client.OpsSql.AllocSqlValCtx seems to be the most common in the stack traces though, others do occur.

at Oracle.DataAccess.Client.OpsSql.AllocSqlValCtx(OpoSqlValCtx*& pOpoSqlValCtx) at Oracle.DataAccess.Client.OracleCommand.BuildCommandText() at Oracle.DataAccess.Client.OracleCommand.ExecuteReader(Boolean requery, Boolean fillRequest, CommandBehavior behavior) at Oracle.DataAccess.Client.OracleCommand.ExecuteReader() at BUPA.HUGO.Common.DataAccessLayer.Database.StoredProcedures.ProspectSP.GetPersonProspectStoredProcedure.GetFullPersonDetailsDataReader(Int64 personId) in c:\Projects\CC.NETbuild_Hugo_Prod\Server\RF_Hugo_Services\Common\DataAccessLayer\Database\StoredProcedures\ProspectSP\GetPersonProspectStoredProcedure.cs:line 43

Sometime the top of the stack is

at Oracle.DataAccess.Client.OpsSql.CopySqlValCtx(OpoSqlValCtx* pOpoSqlValCtxSrc, OpoSqlValCtx*& pOpoSqlValCtxDst) at Oracle.DataAccess.Client.OracleParameter.PostBind_RefCursor(OracleConnection conn, OpoSqlValCtx* pOpoSqlValCtx) at Oracle.DataAccess.Client.OracleParameter.PostBind(OracleConnection conn, OpoSqlValCtx* pOpoSqlValCtx, Int32 arraySize) at Oracle.DataAccess.Client.OracleCommand.ExecuteReader(Boolean requery, Boolean fillRequest, CommandBehavior behavior) at

or

at Oracle.DataAccess.Client.OpsDac.Read(IntPtr opsConCtx, IntPtr opsErrCtx, IntPtr opsSqlCtx, IntPtr& opsDacCtx, OpoSqlValCtx* pOpoSqlValCtx, OpoMetValCtx* pOpoMetValCtx, OpoDacValCtx* pOpoDacValCtx) at Oracle.DataAccess.Client.OracleDataReader.Read()

Does anyone have any ideas? I saw some older post just asking people to try the new version (which we have). Any help on this matter would be great. We are having trouble figuring out if it is something we are not doing correctly or if there is a bug in ODP.NET.

Thank you,

Luke
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Apr 26 2012
Added on Feb 4 2008
24 comments
20,226 views