Hi , nt
I am working on a legacy system where the end users reported exception while loading a page. This is developend in ASP.NET 2.0 and Oracle.DataAccess. The exception is not reproducible in any of the staging or development serves, and is not consistent.ie sometime works and sometiem not. The exception is as follows,
System.OutOfMemoryException: Insufficient memory to continue the execution of the program. at System.Runtime.InteropServices.Marshal.AllocCoTaskMem(Int32 cb) at Oracle.DataAccess.Client.OracleParameter.PreBind_Char() at Oracle.DataAccess.Client.OracleParameter.PreBind(OracleConnection conn, IntPtr errCtx, Int32 arraySize) at Oracle.DataAccess.Client.OracleCommand.ExecuteNonQuery()
The way it calls in the data access layes are as follows, removed some parameters to just to get flow clear,
public void GetXXXData (
UserCredentials credentials
, decimal? P_IN_ID
, string P_IN_TYPE
, out string[] P_OUT_XX_ID
, out string[] P_OUT_XX_NAME
, int? outputArrayLength
)
{
if (outputArrayLength == null)
{
outputArrayLength = 3000;
}
OdacCmd cmd = null;
P_OUT_XX_ID = null;
P_OUT_XX_NAME = null;
cmd = OdacFactory.CreateCommand("PK_XX_QAS1.pr_xx_data_q", credentials);
cmd.AddParam("P_IN_ID", P_IN_ID);
cmd.AddParam("P_IN_QUAL_TYPE", P_IN_TYPE);
IDataParameter param_P_OUT_XX_ID = cmd.AddOutputParameterString("P_OUT_XX_ID", outputArrayLength.Value);
IDataParameter param_P_OUT_XX_NAME = cmd.AddOutputParameterString("P_OUT_XX_NAME", outputArrayLength.Value);
cmd.ExecuteNonQuery();
P_OUT_XX_ID = OdacFactory.GetStringArray(param_P_OUT_XX_ID.Value);
P_OUT_XX_NAME = OdacFactory.GetStringArray(param_P_OUT_XX_NAME.Value);
}
Any help on this is greatly apprecitaed
-Jyothish George