Hello,
I'm using 2015 Q1 version of Telerik.dataAccess dll. When i try to fetch multiple BLOB's from database(Oracle) which are more than 100 mb. I face below error. I'm using 8 GB RAM on Windows 7 64 bit machine. Please refer to below code and StackTrace. Sometimes i face the same issue when i try to save it back on database.
foreach (var dic in scannedLettersDictionary)
{
try
{
using (FileStream fs = new FileStream(ScannedLettersDirectory + dic.Value.LetterId + ".tiff", FileMode.Create, FileAccess.Write))
{
fs.Write(dic.Value.ScannedLetterContent, 0, dic.Value.ScannedLetterContent.Length);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message + " " + dic.Key.ToString());
}
}
Exception.Message:
Telerik.OpenAccess.RT.sql.SQLException: Memory could not be allocated ---> Oracle.DataAccess.Client.OracleException: Memory could not be allocated
at Oracle.DataAccess.Client.OracleException.HandleErrorHelper(Int32 errCode, OracleConnection conn, IntPtr opsErrCtx, OpoSqlValCtx* pOpoSqlValCtx, Object src, String procedure, Boolean bCheck)
at Oracle.DataAccess.Client.OracleException.HandleError(Int32 errCode, OracleConnection conn, IntPtr opsErrCtx, Object src, Boolean bCheck)
at Oracle.DataAccess.Client.OracleDataReader.Read()
at OpenAccessRuntime.Intellitrace.Read(DbDataReader reader, String id)
at Telerik.OpenAccess.Runtime.Logging.LoggingDbDataReader.Read()
at Telerik.OpenAccess.RT.Adonet2Generic.Impl.ResultSetImp.next()
--- End of inner exception stack trace ---
at Telerik.OpenAccess.RT.Adonet2Generic.Impl.ResultSetImp.next()
at OpenAccessRuntime.Relational.fetch.FetchResultImp.rsNext()
at OpenAccessRuntime.Relational.fetch.FetchResultImp.hasNext()
========================
Stack Trace:
at Telerik.OpenAccess.SPI.Backends.ThrowException(Exception e)
at OpenAccessRuntime.ExceptionWrapper.Throw()
at OpenAccessRuntime.DataObjects.PCStateMan.handleException(Exception x)
at OpenAccessRuntime.DataObjects.PCStateMan.getObjectFieldImp(PersistenceCapable pc, FieldMetaData fmd, Object currentValue)
at OpenAccessRuntime.DataObjects.PCStateMan.GetObjectField(PersistenceCapable pc, Int32 field, Object currentValue)
at UAEArmedForces.Tarasul3.MelsTLetterDatum.OpenAccessEnhancedGet_scannedLetterContent(MelsTLetterDatum owner)
at UAEArmedForces.Tarasul3.MelsTLetterDatum.get_ScannedLetterContent() in d:\Projects\Tarasul\Tarasul\Tarasul3Model\MelsTLetterDatum.generated.cs:line 95
at UAEArmedForces.Tarasul.TarasulSetup.MainForm.ExtractScannedLetterFiles(ConcurrentDictionary`2 scannedLettersDictionary) in d:\Projects\Tarasul\Tarasul\TarasulSetup - Oracle\MainForm.cs:line 7254