Click here for a list of the fixed issues.

The following table lists the release notes for this release:

Component Issue Number Description
ABLTOOLS OCTA-43408

A new 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.

ADE OCTA-44335

In the batch mode incremental dump, the DUMP_INC_INDEXMODE variable was introduced to mimic the interactive incremental dump behavior of the GUI tool.

When you use the GUI tool to create an incremental dump, the tool checks for new unique indexes. If the indexes are active, the tool informs the user and recommends dumping the indexes as inactive to ensure there are no duplicate key errors. At the same time, the tool provides users the option to dump the index with the active status as well.

In the batch mode, the DUMP_INC_INDEXMODE variable is provided to the users to specify if the unique indexes need to be dumped as active or inactive. If the value of the variable is not set, indexes are dumped with their existing status.

DB OCTA-47484

On Windows only, the database utility files that support converting your OpenEdge database from a version 10 release are provided differently than in the past.  You use these utilities in the situation where you have already removed OpenEdge 10.x from your system and did not truncate the BI to prepare your database for the convert.  These files contain utilities to let you do so.

In earlier OpenEdge releases, installing OpenEdge 12 placed the files in these folders:

     $DLC/bin/101dbutils

     $DLC/bin/102dbutils

On Windows only, they have been removed from the product install and are now available in Progress’s Electronic Software Download (ESD) area in their own folder:  Progress OpenEdge Database Conversion Utilities.

For 101dbutils, this started with OpenEdge 12.3

For 102dbutils, this started with OpenEdge 12.6

Lang OCTA-40710

Starting in OpenEdge 12.6, if a wait-state is active and a .NET form is displayed as a dialog box with the ShowDialog method, the controls on the dialog box will not be enabled. The application will appear to be frozen. You must cancel the wait-state with SESSION:SET-WAIT-STATE(““) before displaying the .NET form.

This behavior change is due to overall improvements in the operation of the wait-state in applications which display .NET forms.

Lang OCTA-3985

The case sensitive option of temp-table fields used in a where clause was not honored for dynamic queries.  Static queries using case sensitive temp-table fields properly honored the case sensitive option.

The fix for OCTA-3985 makes the behavior using case sensitive temp-table fields consistent between dynamic queries and static queries.

Lang OCTA-3887

When you get a lock conflict in a batch environment, such that the error message is written to a file, you did not get any of the information that you can get from either of these other two scenarios:

  1. The error happens in a GUI environment, the STOP condition is not caught and a dialog box is displayed with the user name, device and table name. The dialog allows you to wait or propagate the STOP condition.
  2. The Stop condition is caught and you get a Progress.Lang.LockConflict object which contains properties for each of those same data values (user, device, table).

Now you will get that same data in the error message that is written to a log.  The old error is this:

Lock wait timeout of %i seconds expired (8812)

 The new error is this:

 Lock wait timeout of %I seconds expired (8812); User: %s, Device: %s, Table: %s (20013)

Note: If the startup parameter -limitLgPayload is used, neither the User name nor Device will be shown in the error.   Instead you will see “<omitted>”.

PDSOE OCTA-48089

Progress Developer Studio for OpenEdge has a new welcome page that contains links to some useful web resources. The default in-built web browser in PDSOE (or, Eclipse) is internet explorer that cannot be changed for the welcome page web resources and it isn’t compatible with the OpenEdge CVP and OpenEdge Community.

Workaround: The links for the web resources can be copied and opened in any other supported browsers like Microsoft Edge, Google Chrome, Mozilla Firefox, Safari, etc.

PDSOE OCTA-48791

If the rcode folder of a project A is added to the propath of another project B, then compiling any file whose rcode is already generated may fail in Progress Developer Studio for OpenEdge with the exception “Problems encountered while deleting resources.”


This issue happens as the rcode file is locked by the project B as part of the “Initialize OpenEdge tooling” process and therefore the issue only occurs in the session where this process is started from scratch.

Workaround is to restart the PDSOE workspace.

Security OCTA-48787

External Security Administration Manager (ESAM) is installed by default along with OpenEdge 12.6. One of the ESAM goal is to make sure OpenEdge executables are launched from a trusted source path. Limitation of ESAM is that, administrators will not have an option to configure ESAM such that, it allows executing OpenEdge binaries from paths other than the OpenEdge installation path, which is commonly referred as DLC.

If you have a need to execute a different version of OpenEdge executable, then the existing binary in installation path can be renamed and your version of binary can be copied there before being executed.