New methods on SESSION handle to get all client-principle objects - OpenEdge Development - Products Enhancements - Progress Community

 OpenEdge Development

New methods on SESSION handle to get all client-principle objects

  • Under Review

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?

Comments
  • 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.