We need urgent help. There are some cases, killing our server's memory and we are facing major performance issue.1. Some of our client's have permission to copy our existing report and make changes as per there need and they are not fully trained or aware of proper binding process. Here I am shearing a very common case which uses a lot of memory. Suppose my report has a DataMember Products which we bind to its detail section .. while coping the report our clients add detail report to the main report and pass the same data-member to is (Products) .. and the products is a large data set .. now when they run the report most of the time this loop cause a web application crash .. and some times it usages a lot of memory .. it is not in our hand whats design the user is creating .. can you please guide me if I can prevent this type of behaviour?
2. If a report has large data set then also the report printing process effect our memory . can we limit the pages or print the report in batches?
Hope my query is clear .. please share more suggestions . how to improve the performance when designing or printing the reports.
Thanks in advance.
The best way to overcome the memory consumption issues is to force your reports to use the file storage in order to store documents instead of using the server's memory. Check the CachedReportSourceWeb help topic to learn how to enable this functionality in your web application.
Our components do not provide any built-in functionality that allows to limit the size of generated reports. In any case, you can implement this functionality by using your custom logic. For example, use the BuildStarting method to catch the moment when the report document generation starts. For example, you can save a DateTime.Now property's value to some variable at this point to save the time when the report generation starts. Then, handle the report's or its DetailReportBand band's DataSourceRowChanged event and use this event handler to check how much time elapsed since the document generation started. In this code, you can throw an exception if the report generation is too long to prevent generating huge documents.