In OE 12.6 the class - OpenEdge.Core.Util.LeakCheck - was added to support internal testing. This class parses AVM log files (PASOE agent logs and LOG-MANAGER logs) and determines whether there are any memory leaks, and reports on the objects that are considered leaking. It does so by reading DYNOBJECTS log lines.
In its simplest form, instantiate the LeakCheck class, call the ParseLog one or more times, and query the HasLeaks() method to determine whether there are any leaks detected. If there are, the GetReport() method returns a JSON object containing information about the leak.
using OpenEdge.Core.Util.LeakCheck.
using Progress.Json.ObjectModel.JsonObject.
var LeakCheck checker = new LeakCheck().
var JsonObject report.
checker:ParseLog('/path/to/log').
if checker:HasLeaks() then
do:
report = checker:GetReport().
// read the JSON or write to disk
end.
Leaks are grouped by type (eg DATA, XML, BLOB, PLO, WIDGET-POOL, HANDLE, PROCEDURE) and session id.