Skip to main content

One of our customers, who is using the Windows GUI (2019.2.17), is using up to 9 GB (!) of internal memory on the RDS with TSF_dotNET.exe. Most of the time TSF_dotNET.exe is using around 2 GB, but that is also too much.

How is this possible and how can we limit this?

Depending on how much data you'd like to show in your screens/subjects at once - I've seen the memory usage of the tsf_dotnet client grow up to 4GB on my laptop, iirc we analysed which screens/subjects and the query behind it were responsible for said amount and reduced the max amount of rows returned. 

https://community.thinkwisesoftware.com/deployment-12/windows-gui-on-microsoft-rds-server-923

 

From what I’ve also remembered is that the windows GUI does not support paging (as for example TCP does) 

https://community.thinkwisesoftware.com/development-13/list-pages-in-the-windows-gui-470


Hi Ricky,

Thank you for your response. I did read the topic “Windows GUI on Microsoft RDS Server” before I added a new topic, but could find an explanation. I understand now that it is depends on the amount of data.

Since paging is not available in the Windows GUI, is it an option to create a prefilter that is activated automatically (but can be switched off) when loading the list of a subject?


From a technical point of view:

When you are very certain on which column you could filter this could work. If you are not - a “select top” would bring a solution - in our case it was a search result which we reduced to a 1000 iirc…

But this ofcourse, will result in an end user thinking there are only 1000 records in the system. Not sure if we also created some form of warning that says that the 1000 record limit has been reached.

From an information/data/business perspective:

What is the use of having so many records in a screen/subject? Will your decisionmaking be better with 100k records? Are you really going to evaluate each record to make your decision? Why has the data not been stored in a separate archive table? Just maybe you’d be better of reviewing your data/information model.

But you get the idea I guess.


A few tables have a status column and we can use that for the prefilters. In other tables we could use the TOP X statement. That might work as well, although I agree that from an end user's perspective this can be confusing. When they use Ctrl]++Home] or Ctrl]++End] in the list they do not reach the actual BOF or EOF.

Other applications are using an empty list and you’ll have to type in your filter criteria. I am not sure if that can be done with Thinkwise as well.

Thanks for brainstorming on this issue. Have a nice weekend!


Hi Johan, it is possible to specify that a subject should open empty and only show data after filtering: https://docs.thinkwisesoftware.com/docs/kb/performance.html#start-empty-with-filter

Does this help?


Hi Jasper,

Thanks for the link. Documentation allways helps!

But it does not solve this specific problem. It looks like it is not directly related to opening subjects. The problem occurs when printing a report. Everytime the report “Werkbon” is generated as a PDF with ReportMailer more and more memory is being allocated (and not freed afterwards). After 10-15 reports there is so much memory allocated that the application crashes with the error:

Onvoldoende opslagruimte beschikbaar om deze opdracht te verwerken

As mentioned before the Windows GUI is 2019.2.17. The report was created with Crystal Reports 11.5 and the runtime that is being used is unclear. I provided version 13.0.24 but it looks like they installed 13.0.35.

This is reported by the Thinkwise version checker:

TSF_dotNET, Version=2019.2.17.0, Culture=neutral, PublicKeyToken=null
Thinkwise.Runtime, Version=2019.2.17.0, Culture=neutral, PublicKeyToken=null
Infragistics4.Documents.Core.v18.1, Version=18.1.20181.237, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb
Infragistics4.Documents.Excel.v18.1, Version=18.1.20181.237, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb
Infragistics4.Shared.v18.1, Version=18.1.20181.237, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb
Infragistics4.Win.Misc.v18.1, Version=18.1.20181.237, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb
Infragistics4.Win.v18.1, Version=18.1.20181.237, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb
Infragistics4.Win.SupportDialogs.v18.1, Version=18.1.20181.237, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb
Kan bestand of assembly Infragistics4.Win.UltraWinCalcManager.v18.1.FormulaBuilder, Version=18.1.20181.237, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb of een van de afhankelijkheden hiervan niet laden. Het systeem kan het opgegeven bestand niet vinden.
Infragistics4.Win.UltraWinEditors.v18.1, Version=18.1.20181.237, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb
Infragistics4.Win.UltraWinExplorerBar.v18.1, Version=18.1.20181.237, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb
Infragistics4.Win.UltraWinGanttView.v18.1, Version=18.1.20181.237, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb
Infragistics4.Win.UltraWinGrid.v18.1, Version=18.1.20181.237, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb
Infragistics4.Win.UltraWinListView.v18.1, Version=18.1.20181.237, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb
Infragistics4.Win.UltraWinLiveTileView.v18.1, Version=18.1.20181.237, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb
Infragistics4.Win.UltraWinOfficeNavBar.v18.1, Version=18.1.20181.237, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb
Infragistics4.Win.UltraWinPrintPreviewDialog.v18.1, Version=18.1.20181.237, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb
Infragistics4.Win.UltraWinSchedule.v18.1, Version=18.1.20181.237, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb
Infragistics4.Win.UltraWinStatusBar.v18.1, Version=18.1.20181.237, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb
Infragistics4.Win.UltraWinTabControl.v18.1, Version=18.1.20181.237, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb
Infragistics4.Win.UltraWinToolbars.v18.1, Version=18.1.20181.237, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb
Infragistics4.Win.UltraWinTree.v18.1, Version=18.1.20181.237, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb
DevExpress.Charts.v19.1.Core, Version=19.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.CodeParser.v19.1, Version=19.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.Data.v19.1, Version=19.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.DataAccess.v19.1, Version=19.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.Images.v19.1, Version=19.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.Mvvm.v19.1, Version=19.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.Office.v19.1.Core, Version=19.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.Pdf.v19.1.Core, Version=19.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.Pdf.v19.1.Drawing, Version=19.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.PivotGrid.v19.1.Core, Version=19.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.Printing.v19.1.Core, Version=19.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.RichEdit.v19.1.Core, Version=19.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.RichEdit.v19.1.Export, Version=19.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.Sparkline.v19.1.Core, Version=19.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.Utils.v19.1, Version=19.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.Xpo.v19.1, Version=19.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraBars.v19.1, Version=19.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraCharts.v19.1, Version=19.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraCharts.v19.1.UI, Version=19.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraCharts.v19.1.Wizard, Version=19.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
Kan bestand of assembly DevExpress.XtraVerticalGrid.v19.1, Version=19.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a of een van de afhankelijkheden hiervan niet laden. Het systeem kan het opgegeven bestand niet vinden.
Kan bestand of assembly DevExpress.Utils.v19.1.UI, Version=19.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a of een van de afhankelijkheden hiervan niet laden. Het systeem kan het opgegeven bestand niet vinden.
Kan bestand of assembly DevExpress.XtraNavBar.v19.1, Version=19.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a of een van de afhankelijkheden hiervan niet laden. Het systeem kan het opgegeven bestand niet vinden.
DevExpress.XtraEditors.v19.1, Version=19.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraGauges.v19.1.Core, Version=19.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraGauges.v19.1.Presets, Version=19.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraGauges.v19.1.Win, Version=19.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraGrid.v19.1, Version=19.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraLayout.v19.1, Version=19.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraPdfViewer.v19.1, Version=19.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraPivotGrid.v19.1, Version=19.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraPrinting.v19.1, Version=19.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraReports.v19.1, Version=19.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraReports.v19.1.Extensions, Version=19.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
Kan bestand of assembly DevExpress.Utils.v19.1.UI, Version=19.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a of een van de afhankelijkheden hiervan niet laden. Het systeem kan het opgegeven bestand niet vinden.
Kan bestand of assembly DevExpress.DataAccess.v19.1.UI, Version=19.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a of een van de afhankelijkheden hiervan niet laden. Het systeem kan het opgegeven bestand niet vinden.
Kan bestand of assembly DevExpress.XtraNavBar.v19.1, Version=19.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a of een van de afhankelijkheden hiervan niet laden. Het systeem kan het opgegeven bestand niet vinden.
Kan bestand of assembly DevExpress.XtraVerticalGrid.v19.1, Version=19.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a of een van de afhankelijkheden hiervan niet laden. Het systeem kan het opgegeven bestand niet vinden.
Kan bestand of assembly DevExpress.XtraCharts.v19.1.Extensions, Version=19.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a of een van de afhankelijkheden hiervan niet laden. Het systeem kan het opgegeven bestand niet vinden.
DevExpress.XtraReports.v19.1.Service, Version=19.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraRichEdit.v19.1, Version=19.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraScheduler.v19.1.Core, Version=19.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraScheduler.v19.1, Version=19.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraScheduler.v19.1.Extensions, Version=19.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
Kan bestand of assembly DevExpress.XtraSpellChecker.v19.1, Version=19.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a of een van de afhankelijkheden hiervan niet laden. Het systeem kan het opgegeven bestand niet vinden.
Kan bestand of assembly DevExpress.SpellChecker.v19.1.Core, Version=19.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a of een van de afhankelijkheden hiervan niet laden. Het systeem kan het opgegeven bestand niet vinden.
DevExpress.XtraScheduler.v19.1.Reporting, Version=19.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraTreeList.v19.1, Version=19.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
Noemax.FastInfoset.Net4, Version=4.14.1337.0, Culture=neutral, PublicKeyToken=4c0defa954f97f18
Noemax.WCFX.Net4, Version=4.14.1337.0, Culture=neutral, PublicKeyToken=4c0defa954f97f18
Aero.Controls, Version=1.0.1552.2238, Culture=neutral, PublicKeyToken=b507e6f1865ff765
Aero.Wizard, Version=1.0.1376.1838, Culture=neutral, PublicKeyToken=b5cf8b4765b41943
Thinkwise.Reporting, Version=2019.2.17.0, Culture=neutral, PublicKeyToken=null
Thinkwise.Shared, Version=2019.2.17.0, Culture=neutral, PublicKeyToken=null
Thinkwise.Shared.Images, Version=2019.2.17.0, Culture=neutral, PublicKeyToken=null
Thinkwise.TSFComponents, Version=2019.2.17.0, Culture=neutral, PublicKeyToken=null
Kan bestand of assembly FastColoredTextBox, Version=2.16.24.0, Culture=neutral, PublicKeyToken=fb8aa12b994ef61b of een van de afhankelijkheden hiervan niet laden. Het systeem kan het opgegeven bestand niet vinden.
Kan bestand of assembly DocumentServices.Modules.Readers.MsgReader, Version=1.7.0.0, Culture=neutral, PublicKeyToken=null of een van de afhankelijkheden hiervan niet laden. Het systeem kan het opgegeven bestand niet vinden.
Kan bestand of assembly TSF_UITestingHooks, Version=0.7.0.11, Culture=neutral, PublicKeyToken=null of een van de afhankelijkheden hiervan niet laden. Het systeem kan het opgegeven bestand niet vinden.
Thinkwise.DataGUI, Version=2019.2.17.0, Culture=neutral, PublicKeyToken=null
Thinkwise.TSFComponents.TSFCube, Version=2019.2.17.0, Culture=neutral, PublicKeyToken=null
Thinkwise.TSFComponents.TSFScheduler, Version=2019.2.17.0, Culture=neutral, PublicKeyToken=null
Thinkwise.Data.DB2.iSeries, Version=2019.2.17.0, Culture=neutral, PublicKeyToken=null
Kan bestand of assembly IBM.Data.DB2.iSeries, Version=12.0.0.0, Culture=neutral, PublicKeyToken=9cdb2ebfb1f93a26 of een van de afhankelijkheden hiervan niet laden. Het systeem kan het opgegeven bestand niet vinden.
Thinkwise.Data.SqlClient, Version=2019.2.17.0, Culture=neutral, PublicKeyToken=null
Thinkwise.Data.Oracle, Version=2019.2.17.0, Culture=neutral, PublicKeyToken=null
Kan bestand of assembly Oracle.ManagedDataAccess, Version=4.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342 of een van de afhankelijkheden hiervan niet laden. Het systeem kan het opgegeven bestand niet vinden.
Thinkwise.Data.SCL, Version=2019.2.17.0, Culture=neutral, PublicKeyToken=null
Thinkwise.Data.Mock, Version=2019.2.17.0, Culture=neutral, PublicKeyToken=null
Thinkwise.Data.OData, Version=2019.2.17.0, Culture=neutral, PublicKeyToken=null
Thinkwise.Data.Import, Version=2019.2.17.0, Culture=neutral, PublicKeyToken=null
Kan bestand of assembly Thinkwise.Data.Import.Shared, Version=2019.2.17.0, Culture=neutral, PublicKeyToken=null of een van de afhankelijkheden hiervan niet laden. Het systeem kan het opgegeven bestand niet vinden.
Thinkwise.AzureFileManager, Version=2019.2.17.0, Culture=neutral, PublicKeyToken=null
Thinkwise.CrystalReports.Shared, Version=2019.2.17.0, Culture=neutral, PublicKeyToken=null
Thinkwise.CrystalReports, Version=2019.2.17.0, Culture=neutral, PublicKeyToken=null
Thinkwise.CrystalClear, Version=2019.2.17.0, Culture=neutral, PublicKeyToken=null
Thinkwise.CrystalClear.NET, Version=2019.2.17.0, Culture=neutral, PublicKeyToken=null
Kan bestand of assembly ReportViewer, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null of een van de afhankelijkheden hiervan niet laden. Het systeem kan het opgegeven bestand niet vinden.
Thinkwise.SSRS.ReportExecuters, Version=2019.2.17.0, Culture=neutral, PublicKeyToken=null
Kan bestand of assembly Thinkwise.SSRS.Shared.Windows, Version=2019.2.17.0, Culture=neutral, PublicKeyToken=null of een van de afhankelijkheden hiervan niet laden. Het systeem kan het opgegeven bestand niet vinden.
Kan bestand of assembly Thinkwise.SSRS.Shared, Version=2019.2.17.0, Culture=neutral, PublicKeyToken=null of een van de afhankelijkheden hiervan niet laden. Het systeem kan het opgegeven bestand niet vinden.
Kan bestand of assembly Thinkwise.SSRS.Shared.TSFdotNET, Version=2019.2.17.0, Culture=neutral, PublicKeyToken=null of een van de afhankelijkheden hiervan niet laden. Het systeem kan het opgegeven bestand niet vinden.
Kan bestand of assembly Microsoft.ReportViewer.Common, Version=14.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91 of een van de afhankelijkheden hiervan niet laden. Het systeem kan het opgegeven bestand niet vinden.
Thinkwise.DevExpress.Reports.Shared, Version=2019.2.17.0, Culture=neutral, PublicKeyToken=null
Kan bestand of assembly IBM.Data.DB2.iSeries, Version=12.0.0.0, Culture=neutral, PublicKeyToken=9cdb2ebfb1f93a26 of een van de afhankelijkheden hiervan niet laden. Het systeem kan het opgegeven bestand niet vinden.
Kan bestand of assembly Oracle.ManagedDataAccess, Version=4.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342 of een van de afhankelijkheden hiervan niet laden. Het systeem kan het opgegeven bestand niet vinden.
Thinkwise.DevExpress.Reports, Version=2019.2.17.0, Culture=neutral, PublicKeyToken=null
Kan bestand of assembly TSF_UITestingHooks, Version=0.7.0.11, Culture=neutral, PublicKeyToken=null of een van de afhankelijkheden hiervan niet laden. Het systeem kan het opgegeven bestand niet vinden.
Kan bestand of assembly Newtonsoft.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed of een van de afhankelijkheden hiervan niet laden. Het systeem kan het opgegeven bestand niet vinden.
JPBouwManagement, Version=2019.2.17.0, Culture=neutral, PublicKeyToken=null
JPBouwManagementShared, Version=2019.2.17.0, Culture=neutral, PublicKeyToken=null
SMTPFileMailer, Version=2019.2.17.0, Culture=neutral, PublicKeyToken=null
IAMExternalTasks, Version=2019.2.17.0, Culture=neutral, PublicKeyToken=null
Kan bestand of assembly Microsoft.Data.Services.Client, Version=5.8.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 of een van de afhankelijkheden hiervan niet laden. Het systeem kan het opgegeven bestand niet vinden.
Kan bestand of assembly Microsoft.Data.OData, Version=5.8.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 of een van de afhankelijkheden hiervan niet laden. Het systeem kan het opgegeven bestand niet vinden.
Kan bestand of assembly Microsoft.Data.Edm, Version=5.8.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 of een van de afhankelijkheden hiervan niet laden. Het systeem kan het opgegeven bestand niet vinden.
Kan bestand of assembly Microsoft.Azure.KeyVault.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 of een van de afhankelijkheden hiervan niet laden. Het systeem kan het opgegeven bestand niet vinden.
Kan bestand of assembly Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed of een van de afhankelijkheden hiervan niet laden. Het systeem kan het opgegeven bestand niet vinden.
CrystalDecisions.CrystalReports.Engine, Version=13.0.3500.0, Culture=neutral, PublicKeyToken=692fbea5521e1304
CrystalDecisions.ReportAppServer.Prompting, Version=13.0.3500.0, Culture=neutral, PublicKeyToken=692fbea5521e1304
CrystalDecisions.ReportAppServer.XmlSerialize, Version=13.0.3500.0, Culture=neutral, PublicKeyToken=692fbea5521e1304
CrystalDecisions.ReportAppServer.ObjectFactory, Version=13.0.3500.0, Culture=neutral, PublicKeyToken=692fbea5521e1304
CrystalDecisions.Shared, Version=13.0.3500.0, Culture=neutral, PublicKeyToken=692fbea5521e1304
CrystalDecisions.Windows.Forms, Version=13.0.3500.0, Culture=neutral, PublicKeyToken=692fbea5521e1304
CrystalDecisions.ReportAppServer.CommLayer, Version=13.0.3500.0, Culture=neutral, PublicKeyToken=692fbea5521e1304
CrystalDecisions.ReportAppServer.ClientDoc, Version=13.0.3500.0, Culture=neutral, PublicKeyToken=692fbea5521e1304
CrystalDecisions.ReportAppServer.CommonControls, Version=13.0.3500.0, Culture=neutral, PublicKeyToken=692fbea5521e1304
CrystalDecisions.ReportAppServer.DataDefModel, Version=13.0.3500.0, Culture=neutral, PublicKeyToken=692fbea5521e1304
CrystalDecisions.ReportAppServer.CubeDefModel, Version=13.0.3500.0, Culture=neutral, PublicKeyToken=692fbea5521e1304
CrystalDecisions.ReportAppServer.ReportDefModel, Version=13.0.3500.0, Culture=neutral, PublicKeyToken=692fbea5521e1304
CrystalDecisions.ReportAppServer.Controllers, Version=13.0.3500.0, Culture=neutral, PublicKeyToken=692fbea5521e1304
CrystalDecisions.ReportAppServer.DataSetConversion, Version=13.0.3500.0, Culture=neutral, PublicKeyToken=692fbea5521e1304
CrystalDecisions.Shared.resources, Version=13.0.3500.0, Culture=nl, PublicKeyToken=692fbea5521e1304
CrystalDecisions.ReportSource, Version=13.0.3500.0, Culture=neutral, PublicKeyToken=692fbea5521e1304
CrystalDecisions.Windows.Forms.resources, Version=13.0.3500.0, Culture=nl, PublicKeyToken=692fbea5521e1304
CrystalDecisions.Web, Version=13.0.3500.0, Culture=neutral, PublicKeyToken=692fbea5521e1304
CrystalDecisions.ReportAppServer.CommonObjectModel, Version=13.0.3500.0, Culture=neutral, PublicKeyToken=692fbea5521e1304

 


We have recently made some changes to the way the Crystal Reports drivers are loaded. Can you check if this problem still occurs with the latest Windows GUI version and if so, create a ticket for this issue in TCP?


Hi Jasper. I downloaded version 2020.2.12 of the Windows GUI and installed it on the customers RDS. My contact can test next monday, so as soon as I have got some results, I’ll let you know.


The new Windows GUI 2020.2.12 does fix the problem. After a short period of time TSF_dotNET.exe uses 4GB of memory. What can we do to fix this problem?


The memory usage of the Windows GUI is mainly determined by the amount of data that is loaded. For example, loading cube data can significantly increase memory usage. Additionally, the .NET Framework only releases memory when there is memory pressure, so the amount of memory in Windows Task Manager can be much higher than what the GUI actually uses.

Can you identify specific screens that significantly increase the memory usage?


To analyse the actual memory usage of the Windows GUI, you could temporarily set the MonitorProcess extended property, which forces memory flushes after specific events.


It was with every screen that you open that the amount of memory increases, but not released when the screens where closed. Especially with reports (Crystal Reports) the amount of memory increases a lot.

Thank you for the advise of using MonitorProcess. I did not know about this setting. If this is the solution the question that still remains is why this setting is necessary for this customer. Because I do not see this issue at other customers.

I added the setting MonitorProcess=yes as an extended property in the IAM of the customer and the first experience is positive (but I’ll let the customer decide after a day working with this setting).

I’ll keep you posted!


The MonitorProcess setting forces the Windows GUI to do a garbage collect after certain events, at the expense of performance. That is also the reason that it is not switched on by default.

Without this setting, the .NET Framework itself determines when this should be done, for example, when system memory runs out or the application is idle for some time. 

We do not advise to use the MonitorProcess setting in production environments.


I received an email from the customer that it does help to solve the problem.

I understand what you are saying. But if it is not the preferred solution, then we need to find out what causes this problem. How can we do that? I think I will need your help with that.


This is just the way the .NET Framework handles garbage collection. Is the high memory usage actually causing problems?


Yes, because our application runs on a RDS (Terminal Server). The system administrator of the customer tells me that it causes crashes at other users because they run out of memory!


Problem is escalating.
 


 

Please call me ASAP to find a solution. Thnx!


The new Windows GUI 2020.2.12 does fix the problem. ...

I understand that you have been in contact with Thinkwise Service & Care and the problem is probably caused by Crystal Reports after all, and not fixed with the latest Windows GUI, is that correct? 

Because the specific problem occurs with only one customer, please create a ticket in TCP for this. Service & Care will then schedule a support session to help you investigate the problem.


To test if the RDS is a part of the problem, I installed the Windows GUI on the local machine (laptop) and did some tests. Here are the results:

Geheugengebruik lokale installatie applicatie (WinGUI 2020.2.12)
Uitgevoerde actie Geheugengebruik Verschil  
Start applicatie 180,2 180,2  
Openen Meldingen 216,3 36,1  
Afsluiten Meldingen 216,3 0  
Openen Meldingen 253 36,7  
Afsluiten Meldingen 253 0  
Openen Meldingen 278,1 25,1  
Afsluiten Meldingen 276,3 -1,8  
Openen Communicatie 691,4 415,1  
Afsluiten Communicatie 691,4 0  
Openen Organisaties 688,9 -2,5  
Kwartiertje wachten (niks gedaan) 423,7 -265,2  
Afsluiten Organisaties 423,7 0  
Openen Communicatie 897,2 473,5  
Afsluiten Communicatie 897,9 0,7  
Openen Organisaties 901,8 3,9  
Openen rapport "Organisaties met relaties"  916,8 15  
Afsluiten rapport "Organisaties met relaties" 902,2 -14,6  
Openen rapport "Organisaties met relaties"  917,9 15,7  
Afsluiten rapport "Organisaties met relaties" 906,6 -11,3  
Afsluiten Organisaties 904,7 -1,9  
Openen Communicatie 1259,1 354,4  
Afsluiten Communicatie 1387,4 128,3 Toename!
       

 

The conclusion is that after closing a subject, the memory is not being released. Both on the RDS as well as on the local machine.


Issue 76851 has been added in TCP.


Johan and I analyzed this issue together. For future reference; huge memory increase is to be explained by opening the E-mail subject, (in excess of 10000 rows) containing HTML data. A new E-mail subject was opened every time a ‘Werkbon’ was processed (Process flow). Therefore the memory usage keeps increasing.
Only a few E-mail rows are actually needed during execution of the process flow so a workaround for the problem at hand is implementing (better) prefilters or setting a max no of records for the E-mail subject (platform > 2019.1).

Why memory is not released when closing a subject will be investigated by us.


Regarding the phrase in the answer “Why memory is not released when closing a subject will be investigated by us.” I am interested to hear if there has been a general solution to the problem of not releasing the internal memory by the normal .NET garbage process.

We have the same problem but than in the area of Cubes. Every time a user refreshes a cube, another 600 mb is added to the internal memory consumption of the user in a RDS session.

This can add up to similar proportions as described by Johan.

So has there been a fix or is it still pertinent to use the, not supported in production, extended property “Monitorprocess = yes”?


Reply