This is coming from Support Case 00458615.
We had memory leaks on CLIENT-PRINCIPLE objects which we tracked by enabling the DYNOBJECT server log entry types.
However, there is currently no way from ABL to cycle through all CLIENT-PRINCIPLE objects like we have SESSION:FIRST-OBJECT, SESSION;FIRST-PROCEDURE, etc. We're using these methods to report on any memory leaks from our code, but currently there is just no way to pick up memory leaks on CLIENT-PRINCIPLE objects. Can this please be added?
There are more built-in object types that can't be reached from the SESSION handle.
- You can't get to temp-tables directly (instead you have to go through the BUFFERs,and filter out dynamic buffers on db tables/static temp-tables, and duplicate buffers on the same dynamic temp-table)
- You won't find the X-DOCUMENT, X-NODEREFS there for XML DOM processing. Noderefs especially are easily leaked. Speaking of XML, SAX-READERS & SAX-WRITERS also won't show up.
A blanket approach to catch them all could be to just have a FIRST-HANDLE and have a chain which covers *all* handle-based dynamic objects. Or maybe go as far as having a VST-type structure where you can query by type etc.