In our app, when user does a search, data is retrieved from the server and brought over to the client in a new Dataset. We have a rather simple control using an UltraTree bound to a DataTable in a Dataset.
So every time a search happens, we rebind the UltraTree to the DataTable in new Dataset. With that, we expect old references from UltraTree to the DataTable in the old Dataset to be cleared.
Our memory profiler tells us that the UltraTree continues to hold references the DataTable in the old Dataset. This keeps the Dataset from being garbage-collected and it continues living in memory well beyond its useful life.
Is UltraTree holding references to Datatable it was previously bound to a known issue? Are there ways to release the bindings so that references are cleared? We are still on version 7.3 and cannot upgrade.
Thanks!
Thank for your feedback.
Please let us know if you have any other questions.
Hi Hristo,
Hello,
Have you been able to download and verify that your issue is fixed with the latest service release available?
This service release is now available under your account at the Infragistics Website. To download the service release, log in to
‘My IG’ and select ‘Keys & Downloads’. Select the appropriate tab for this product, then the license key. The available service releases should now be listed on the page.
Please let me know if you have any further questions.
Sincerely,
Hristo
Developer Support Engineer
Infragistics, Inc.
www.infragistics.com/support
Hello Vern,
I saw that you already have opened a case in our system for this issue, so I will update you via the case as soon as I have information for you.
Thank you.
I was able to reprod the issue with a simpler sample. Please unzip and review.
Every time I press the button, a data retrieval happen in our case from the DB. In case of this example, data retrieval is from XML. It is then bound to the UltraTree.
I am using the Red Gate Memory Profiler to look for leaks. I have captured result after two data retrieval. As you can see from the screenshots there are two datasets in memory after the second data retrieval. If I continue, there would be an additional one for every additional data retrieval.
I am attaching Red Gate Profiler results to help you confirm that there is really leak happening.
The following one shows an old DataSet object that has New as No (it existed from the previous data retrieval) taking up 2.7MB of memory.
The following show how the UltraTree is still holding onto the DataSet via the various objects in the chain.
Please use the attached sample to help debug. We are unfortunately required to continue using V7.3 due to our large customer base that cannot easily upgrade. In the attached zip, you will find all the necessary DLL included. That way you can run it as is.
If you have determine that this has been fixed it in newer releases, please suggest some workaround for v7.3
Sample program attached -->