Salesforce

What does the entry 'Deleted-by-GC' in the client log mean for a hybrid ABL .Net object?

« Go Back

Information

 
TitleWhat does the entry 'Deleted-by-GC' in the client log mean for a hybrid ABL .Net object?
URL Namewhat-does-the-entry-deleted-by-gc-in-the-client-log-mean-for-a-hybrid-abl-net-object
Article Number000143874
EnvironmentProduct: OpenEdge
Version: 11.x
OS: All supported platforms
Question/Problem Description
What does the entry 'Deleted-by-GC' in the client log mean for a hybrid ABL .Net object?

Does ''Deleted-by-GC' mean that only the ABL side of a hybrid object has been deleted (by the AVM Garbage collector)?

Can the object still be alive on the .NET side of the object even when the client log has a 'Deleted-by-GC' entry for the object?
 
Steps to Reproduce
Clarifying Information
Error Message
Defect Number
Enhancement Number
Cause
Resolution
'Deleted-by-GC' entries in the client log mean slightly different things depending on the object in question:
  • If the object is a simple .Net object (e.g. System.Object) 'Deleted-by-GC' means that the OpenEdge AVM has deleted the ABL references to the object, but it still might not have been garbage collected by .Net.  The .Net garbage collection may be delayed, but this will happen according to .Net garbage collection rules.  See https://docs.microsoft.com/en-us/dotnet/standard/garbage-collection/fundamentals  
 
  • If the object is a hybrid class (ABL class inheriting a .NET class), 'Deleted-by-GC' means that the OpenEdge AVM has deleted the ABL references to the object, and it has also been garbage collected by .Net.  With hybrid classes the OpenEdge AVM does not delete the ABL side of the object until the corresponding .Net side of the object has been garbage collected.  In this case it's possible that 'Deleted-by-GC' entries in the client log are delayed while the AVM waits for the .Net garbage collector to finish.  
Workaround
Notes
Keyword Phrase
Last Modified Date11/20/2020 7:07 AM

Powered by