Stimulsoft Reports.Net
www.stimulsoft.com

Welcome Guest Search | Active Topics | Members | Log In | Register

Проблемы при отображении резалтсетов с большим количеством строк Options
eroshkin
Posted: Wednesday, February 18, 2009 1:16:35 PM
Rank: Newbie
Groups: Member

Joined: 2/18/2009
Posts: 3
При построении таблицы в stiWebViewer по выборке около 5,5 тыс. строк, компонент либо показывает чистый лист, либо валится
Quote:

Exception of type 'System.OutOfMemoryException' was thrown.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.

Source Error:


Line 18: protected void Page_Load(object sender, EventArgs e)
Line 19: {
Line 20: this.ReportViewer.Report = this.CreateReport(@"IM\PropStatusIncum.mrt");
Line 21: }
Line 22:


Source File: d:\Work\Projects\CPDB\trunk\src_Tsk\Source\TNKBP-CPDB Web\Pages\Reports\IM\Encum.aspx.cs Line: 20

Stack Trace:


[OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.]
System.IO.MemoryStream.set_Capacity(Int32 value) +63
System.IO.MemoryStream.EnsureCapacity(Int32 value) +55
System.IO.MemoryStream.Write(Byte[] buffer, Int32 offset, Int32 count) +245
System.IO.StreamWriter.Flush(Boolean flushStream, Boolean flushEncoder) +95
System.IO.StreamWriter.Write(String value) +109
System.Xml.XmlTextWriter.WriteStartAttribute(String prefix, String localName, String ns) +1073
System.Xml.XmlWriter.WriteAttributeString(String localName, String value) +21
Stimulsoft.Report.Components.StiText.Serialize(StiObjectStringConverter converter, XmlTextWriter tw) +714
Stimulsoft.Base.Serializing.StiSerializing.SerializeProperty(XmlTextWriter tw, StiPropertyInfo prop) +603
Stimulsoft.Base.Serializing.StiSerializing.SerializeObject(XmlTextWriter tw, StiPropertyInfoCollection props) +154
Stimulsoft.Base.Serializing.StiSerializing.SerializeProperty(XmlTextWriter tw, StiPropertyInfo prop) +780
Stimulsoft.Base.Serializing.StiSerializing.SerializeObject(XmlTextWriter tw, StiPropertyInfoCollection props) +154
Stimulsoft.Base.Serializing.StiSerializing.SerializeProperty(XmlTextWriter tw, StiPropertyInfo prop) +661
Stimulsoft.Base.Serializing.StiSerializing.SerializeObject(XmlTextWriter tw, StiPropertyInfoCollection props) +154
Stimulsoft.Base.Serializing.StiSerializing.SerializeProperty(XmlTextWriter tw, StiPropertyInfo prop) +780
Stimulsoft.Base.Serializing.StiSerializing.SerializeObject(XmlTextWriter tw, StiPropertyInfoCollection props) +154
Stimulsoft.Base.Serializing.StiSerializing.Serialize(Object obj, Stream stream, String application, StiSerializeTypes serializeType) +269
Stimulsoft.Report.SaveLoad.StiXmlDocumentSLService.Save(StiReport report, Stream stream) +386
Stimulsoft.Report.StiReport.SaveDocument(StiDocumentSLService service, Stream stream) +126
Stimulsoft.Report.StiReport.SaveDocument(Stream stream) +41
Stimulsoft.Report.StiReport.SaveDocumentToString() +205
Stimulsoft.Report.StiReport.SavePackedDocumentToString() +10
Stimulsoft.Report.Web.StiWebViewer.ProcessReport() +862
Stimulsoft.Report.Web.StiWebViewer.set_Report(StiReport value) +98
TNKBP_CPDB.Web.Pages.Reports.UL.Encum.Page_Load(Object sender, EventArgs e) in d:\Work\Projects\CPDB\trunk\src_Tsk\Source\TNKBP-CPDB Web\Pages\Reports\IM\Encum.aspx.cs:20
System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +35
System.Web.UI.Control.OnLoad(EventArgs e) +99
System.Web.UI.Control.LoadRecursive() +50
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +627
eroshkin
Posted: Wednesday, February 18, 2009 1:25:12 PM
Rank: Newbie
Groups: Member

Joined: 2/18/2009
Posts: 3
при смене режима рендеринга на RenderMode="RenderOnlyCurrentPage" стал строится.
- Однако, не работает переход на заданную страницу, вернее дальше 4 не переходит.
- При экспорте у Excel сохраняется только 3 страницы, начиная с текущей.
- При экспорте в PDF сохранилось 10 страниц (229 строк из 5000+) из них 7 просто пустые листы

у меня версия 2008.2 триал

File Attachment(s):
Отчет.pdf (83kb) downloaded 4 time(s).
Отчет.xls (31kb) downloaded 5 time(s).


Edward
Posted: Wednesday, February 18, 2009 3:25:45 PM
Rank: Advanced Member
Groups: Stimulsoft Team

Joined: 6/9/2006
Posts: 888
Здравствуйте.

Вероятнее всего при построении отчета заканчивается память после 3 страницы. Проверьте, не используются ли у Вас картинки очень большого размера в отчете?

Также если отчет имеет более 100 страниц, то есть смысл как-то уменьшить его размер, поскольку большие отчеты в Web приводят к неоправданно большому использованию памяти.

Спасибо.
eroshkin
Posted: Wednesday, February 18, 2009 7:35:21 PM
Rank: Newbie
Groups: Member

Joined: 2/18/2009
Posts: 3
Размер отчета - 235 стр. Картинок нет вообще.

Мда. Очень грустное назадекларированное ограничение.
Edward
Posted: Thursday, February 19, 2009 9:15:35 AM
Rank: Advanced Member
Groups: Stimulsoft Team

Joined: 6/9/2006
Posts: 888
Здравствуйте.

Да действительно, Ваш отчет имеет совсем не сложный и не отягощенный тяжелой графикой. Возможен ли тестовый проект, который иллюстрирует проблему?

Если да, то вышлите его, пожалуйста, на support[at]stimulsoft.com.

Спасибо.
VitHnat
Posted: Friday, March 05, 2010 2:50:05 PM
Rank: Newbie
Groups: Member

Joined: 3/5/2010
Posts: 1
Location: Ukraine
Добрый день, та же проблема > 4000 строк - WebViewer вылетает с Exception of type 'System.OutOfMemoryException' was thrown. Установлено Stimulsoft Reports.Ultimate 2009.3 Trial - которую и собираемся приобрести. Будет ли WebViewer работать на х64 ОС - так как на х86 ХР SP3 с 4Гб ОП сгенерировало отчет только с /3GB в boot.ini - и то только раз с приб. десяти попыток - так как с /3GB система крайне нестабильна. Опишите пожалуйста что приблизительно нужно для вынесения генерации и рендеринга\превью на отдельную машину повторюсь с х64 ОС.
Andrew
Posted: Friday, March 05, 2010 5:38:44 PM
Rank: Advanced Member
Groups: Stimulsoft Team

Joined: 6/9/2006
Posts: 186
Здравствуйте,

Пришлите, пожалуйста, нам Ваш пример отчета с данными, а лучше sample project для тестирования на support@stimulsoft.com . По Вашему письму пока не совсем понятна причина нехватки памяти.

Спасибо.
Jan
Posted: Tuesday, March 09, 2010 10:53:14 PM
Rank: Advanced Member
Groups: Stimulsoft Team

Joined: 2/19/2009
Posts: 401
Здравствуйте Виталий,

Построение отчета у Вас происходит в событии PageLoad страницы. В данном режиме крайне нежелательно использовать режимы с кэшированием StiWebViewer. Поскольку отчет будет перестраиваться при каждом обновлении страницы, и при этом StiWebViewer будет сохранять построенный отчет в кэше страницы (или сессии). Именно кэширование отчета в Вашем случае съедает большую часть памяти (на Вашем примере, на тестовой машине съело около 70%). Измените свойство RenderMode StiWebViewer со значения AjaxWithCache на просто Ajax. В данном случае отчет не будет сохраняться при каждом перестроении, но отчет нужно будет перестраивать при каждом обновлении страницы (что скажется на скорости). Также стоит учитывать при использовании режима с кэшированием время, на которое отчет будет сохраняться отчет в кэше (задается свойством ServerTimeOut). При большом количестве одновременных обращений, память можно забить даже маленькими отчетами.

Также рекомендую Вам обновить папку с картинками экспортов и кнопок, т.к. она не полная. Архив в приложении.

Кроме этого я рекомендую обратить внимание на StiWebViewerFx вьювер отчетов. Достаточно новый вьювер для Web. Поставляется в комлекте с Reports.Web и Ultimate. Благодаря использованию Flash он обладает большим динамизмом и лучшим GUI. А кроме этого возлагает проблемы по хранению отчета для просмотра на клиент а не на сервер.

Еще посмотрите на тикет на нашем форуме http://forum.stimulsoft.com/Default.aspx?g=posts&t=142
В этом тикете подробно объясняется почему возникает утечки памяти при компиляции отчетов в событии PageLoad (не могу сказать критично это для Вас или нет) и как переделать код для того, чтобы они не возникали.

Дайте знать если понадобится помощь.

Спасибо.

File Attachment(s):
Gif.zip (63kb) downloaded 6 time(s).


Users browsing this topic
Guest

Forum Jump
You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.

Main Forum Rss Feed : RSS

Powered by Yet Another Forum.net version 1.0.1 - 2/27/2006
Copyright © 2003-2006 Yet Another Forum.net. All rights reserved.
This page was generated in 0.167 seconds.