点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)问候! 目前,我正在处理一位客...
点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)问候! 目前,我正在处理一位客...
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
问候!
目前,我正在处理一位客户的问题。 该问题是Crystal Report 2013内存不足的问题。 以下是问题的详细信息:
我们的客户针对中等大小的MS SQL Server数据库运行了3个月(最后一个季度)的报告。 他们遇到以下错误:
[错误] ReportViewer.RefreshReport:RunReport期间发生异常。 Cancelled = False
最高例外
Type = System.Runtime.InteropServices.COMException
Source = rptcontrollers.dll
Message = 没有足够的内存用于操作。
StackTrace:
at CrystalDecisions.ReportAppServer.Controllers.ReportSourceClass.GetLastPageNumber(RequestContext pRequestContext)
at CrystalDecisions.ReportSource.EromReportSourceBase.GetLastPageNumber(ReportPageRequestContext reqContext)
,位于CrystalDecisions.CrystalReports.Engine.FormatEngine.GetLastPageNumber(ReportPageRequestContext reqContext)
d中的ININ.Reporting.Historical.Engine.Module.ViewModels.CrystalReportsViewerControl.RunReport()上的cs:125行
在System.Threading.Tasks.Task`1.InnerInvoke()
在System.Threading.Tasks.Task.Execute()
StackTrace:
在<> c__DisplayClass16。 em>
at AggregateException.Handle(Func`2谓词)
在ReportViewer。
在Task.Execute()上
在Task.ExecutionContextCallback(Object obj)
在ExecutionContext.RunInternal(ExecutionContext执行上下文,ContextCallback回调,对象状态,布尔值saveSyncCtx)
在ExecutionContext.Run(ExecutionContext执行上下文,ContextCallback回调,对象状态,布尔值saveSyncCtx)
在Task.ExecuteWithThreadLocal(Task&currentTaskSlot)
在Task.ExecuteEntry(布尔值bPreventDoubleExecution)
在SynchronizationContextTaskScheduler.PostCallback(Object obj)
在ExceptionWrapper.InternalRealCall(委托回调,对象args,Int32 numArgs)
在ExceptionWrapper.TryCatchWhen(对象源,委托回调,对象args,Int32 numArgs,委托catchHandler)
在DispatcherOperation.InvokeImpl()
在DispatcherOperation.InvokeInSecurityContext(对象状态)
在ExecutionContext.RunInternal(ExecutionContext执行上下文,ContextCallback回调,对象状态,布尔值saveSyncCtx)
在ExecutionContext.Run(ExecutionContext执行上下文,ContextCallback回调,对象状态,布尔值saveSyncCtx)
在ExecutionContext.Run(ExecutionContext执行上下文,ContextCallback回调,对象状态)
在CulturePreservingExecutionContext.Run(CulturePreservingExecutionContext执行上下文,ContextCallback回调,对象状态)
在DispatcherOperation.Invoke()
在Dispatcher.ProcessQueue()
在Dispatcher.WndProcHook(IntPtr hwnd,Int32 msg,IntPtr wParam,IntPtr lParam,布尔值和已处理)
HwndWrapper.WndProc中的(IntPtr hwnd,Int32 msg,IntPtr wParam,IntPtr lParam,布尔值和已处理)
HwndSubclass.DispatcherCallbackOperation(Object o)上的
在ExceptionWrapper.InternalRealCall(委托回调,对象args,Int32 numArgs)
在ExceptionWrapper.TryCatchWhen(对象源,委托回调,对象args,Int32 numArgs,委托catchHandler)
位于Dispatcher.LegacyInvokeImpl(DispatcherPriority优先级,TimeSpan超时,Delegate方法,对象args,Int32 numArgs)
HwndSubclass.SubclassWndProc上的(IntPtr hwnd,Int32 msg,IntPtr wParam,IntPtr lParam)
在UnsafeNativeMethods.DispatchMessage(MSG&msg)
在Dispatcher.PushFrameImpl(DispatcherFrame frame)
在Dispatcher.PushFrame(DispatcherFrame frame)
在Application.RunDispatcher(对象忽略)
在Application.RunInternal(窗口窗口)
在Application.Run(窗口窗口)
at WpfShellImplementation.ShowAndRun()d:\ builds \ eic_main_systest \ products \ eic \ src\ Cafe \ Library.Wpf \ WpfShellImplementation.cs(72)
CafeApplication.Run()上的d:\ builds \ eic_main_systest \ products \ eic \ src\ Cafe \ Library \ CafeApplication.cs(203)
在ShellApplication.RunApp()
在ShellApplication.Main()
我们也可以使用其数据库在本地测试环境中重现该问题。 我们已经用16 GB的内存测试了该报告,但是运行Crystal Report的应用程序在可用内存下就很好了。
我们还测试了数据库查询,结果如下:
进一步调查该问题,我们尝试搜索有关该错误的一些内容,发现此链接表明,作为32位应用程序,Crystal Report在任何给定时间点只能访问大约2GB的RAM。 我们的Crystal Report版本是13.0.9.1312:
无法运行的报告具有不同组的聚合/求和公式。 如果运行时间较短(<30天),则此报告运行良好。
CR2013在处理具有不同组的聚合/求和公式的大数据集时是否有任何限制? 感谢您为解决此问题提供的帮助。
谢谢!
Sanjoy。
感谢您提供详细信息。
我想在这里更新以下内容:
1。 我们正在运行报告的系统上有足够的磁盘空间(> 25 GB)。 甚至清除了所有临时文件,没有运气。
2。 我们正在使用单一连接-此报告通过存储过程(SP)获取数据,并且SP返回单个结果集。 所有加入都发生在SP本身中。
3。 该报告的精选专家中没有任何内容。
4。 是的,该报告在出现故障时仅针对极少的大数据(3个月)运行。 运行包含1个月数据的报告运行良好。 在此数据上,调用了许多求和和聚合函数。 那是问题所在吗? Crystal Report 2013在处理大数据方面是否存在任何已知限制? SAP的任何官方知识库或注释都将对您有所帮助。
谢谢!
Sanjoy。
一周热门 更多>