As we have seen already in some cases, some reports which were optimised for the Classic Client may run slowly on RTC. This is especially the case when a report involves a lot of data. The post in the link below describes how to reduce the dataset for RTC reports. This is especially useful when a report may need to process lots of data but not actually print it (so process away on the NAV Server but no need to send all the data to RTC):
Designing reports for better performance on RTC
And of course - everything else being equal - smaller datasets also means faster reports. In some cases much faster.
In other cases, maybe a user actually needs to print a lot of data. Or for some other reason it's not possible to reduce the dataset.
The dataset is sent from NAV Server into memory on the RTC machine. If the dataset is larger than the amount of memory that Windows makes available, then Windows will stop allocating more memory and RTC will likely crash. There is nothing that RTC or NAV can do about this. So, if it is absolutely not possibly to reduce the dataset, then logically the only alternative is to increase available memory on the RTC machine.
You can do this without physically buying more memory but increasing the page file in Windows. Windows is pretty good at handling the size of the page file itself for general Windows performance. So interfering with this can easily cause problems for any other tasks running on that machine. So if you do choose to increase the page file, then I would recommend that you do that on a dedicated machine which is not much used for anything else than printing large reports on RTC.
You change the page file from Control Panel –> System and Security –> System –> Advanced System Settings –> Advanced, and then click “Settings…” in the “Performance” section.
This will not affect performance of reports (maybe on the contrary). It will just allow RTC to receive a little more data before running out of memory.
Just to test this method, I created a report which combined Integer table with Customer Ledger Entries to generate lots of data. My default settings were to let Windows manage the page file, and it had allocated 8053 MB to the page file:
With this setting, after transferring approximately 850.000 rows, my machine ran out of memory and RTC crashed. This corresponds to almost 60.000 pages.
I then set the page file to “Custom Size” and set both Initial size and Maximum Size to 15.000. Then rebooted. Note: In my first attempt I only set Maximum Size to 15.000 but this did not make any difference until I also increased the Initial Size. After rebooting, the same report was now able to transfer 2.000.000 rows which corresponds to hopefully more pages than anybody will ever need to print from RTC.
I should also mention that setting my page file to 15.000 left not much else and even my screen resolution suffered greatly. So finding the right balance may take a bit of trial and error, and unfortunately a reboot is necessary every time you try a new page file setting.
The test report I used here is a very simple one, and I was running on quite good hardware. The amount of pages any user is able to print will very much vary from one machine to the next.
I hope that this sharing of some basic testing with my page file can be useful or at least save a few reboots in a few RTC installations. And feel welcome to add your own experiences with this as comments below!
This may be very useful when you run e.g. Report 1001 Inventory Valuation RDL Layout report with millions of Value Entries. Thanks Lars !
Actually the previos post is for reports like report 1001, that processes millions of entries and only prints out a few pages. This post is for reports that actually do print out thousands of entries.
Report 1001 has been redesigned in std application to comply with design guidelines from previos post. To obtain the new version contact support.