What's New in OpenEdge 12.5
- Last Updated: February 9, 2026
- 21 minute read
- OpenEdge
- Version 12.8
- Documentation
|
OpenEdge Release 12.5 delivers updates and enhancements in the following product areas: |
Security Updates
Progress continually monitors OpenEdge for potential security vulnerabilities. The effort to scan, identify, assess, and mitigate potential security threats is on-going. Information on how Progress manages reporting, management, discussion, and disclosure of vulnerabilities discovered in OpenEdge can be found in Progress OpenEdge Security Guidelines.
In this release of OpenEdge, the work is on-going to implement code changes to harden OpenEdge executables, and perform upgrades for selected third-party libraries to reduce their vulnerability to possible security threats.
This section details Security features in this release.
AES-GCM Encryption support in ABL
In this release, the ENCRYPT and
DECRYPT functions in ABL are extended to support AES-GCM
encryption. Prior to this release, ABL developers had to hardcode the AES-GCM cipher
suite in their code to meet FIPS compliance.
Spring security upgrade for SAML and OAuth2 enhancements
OAuth2 Enhancements
Spring Security upgrades provide an opportunity to get
additional user information by using the new jwkissuer value for the jwtToken.keystore.type property. This new type requires an
additional jwtToken.keystore.jwkIssuerUrl
property. The related properties are:
|
For more information, see Configure an OAuth2 keystore.
You can migrate OpenEdge 12.3.x and 12.4.x instances by registering the instance in OpenEdge 12.5. For information on the process to migrate earlier instances, see the 12.1 to 12.2 configuration migration article.
To improve adoption of OAuth2, a new quick start guide uses
OAuth2 steps through configuring the most common jwk keystore.
For more information, see Progress Application Server (PAS) for OpenEdge OAuth2 Quick Start.
For information on oeablSecurity.properties, see $DLC/servers/pasoe/conf/oeablSecurity.properties.README.
SAML Enhancements
- SP-initiated flow, or service provider initiated flow.
- IdP-initiated flow, or identity provider Initiated flow.
You can migrate existing SAML header-based authentication from OpenEdge 12.3.0 and 12.4.x to OpenEdge 12.5. For information on the process to migrate earlier instances, see the 12.1 to 12.2 configuration migration article.
For information on migrating existing SAML header-based authentication, see 12.2 Support for SAML in PAS for OpenEdge.
To outline how to use SAML with PAS for OpenEdge, a new Progress Application Server (PAS) for OpenEdge Quick Start guide highlights a common use case.
For more information, see Progress Application Server (PAS) for OpenEdge SAML Quick Start
OESECTOOL for testing
- Manage keystores.
- Test OAuth2 configurations.
- Test SAML configurations.
To use this tool , enter the following command in the command prompt:
|
- Manage keys.
- Generate a JWS token.
- Generate a SAML token.
- Test a service provider-initiated flow.
- Test an identity provider-initiated flow.
- Test a header-based flow.
For more information see, OESECTOOL
Stronger encryption algorithm support for DataServer
OpenEdge DataServers now support AE1 and
AE2 encryption algorithms in addition to the
existing OECH1 algorithm for connecting to foreign
data sources, such as Oracle or MS SQL Server databases. As a result, security
administrators can now use standards-based encryption algorithms and improve
OpenEdge environment security. You can use the genpassword utility to encrypt the user credentials of the foreign
databases with the AE1 and AE2 encryption algorithms. You specify the encryption algorithm by
using prefixes.
ae1h{1-9}ae1b{1-9}ae2h{1-9}ae2b{1-9}oech1
ae1h{1-9}ae2h{1-9}oech1
The default encryption prefix for both DataServers is ae2h1.
For more information about DataServer for MS SQL Server, see Database authentication during foreign database connect.
For more information about Oracle DataServers, see Database Authentication During Foreign Database Connect.
OpenEdge Root Path Single Source of Truth
Security administrators can now make their OpenEdge installation safer and mitigate potential security vulnerabilities by creating a secure DLC. In a secure DLC environment, OpenEdge components (such as OpenEdge Management, sqlexp, ABL debugger, and so on) that reference the DLC path to installation, validate the DLC or root install path before the components attempt to use artifacts from this path.
When you install OpenEdge, the ESAM installer runs automatically in silent mode.
After the OpenEdge installation finishes automatic execution of the ESAM installer,
an external safe space called ESAM is created. ESAM is a file system space where you
can apply root and group authorities to protect installation artifacts and the
integrity of DLC. On a Windows machine, the safe space is created at …/Windows/System32/openedge.d. In the Linux environment,
the safe space is created at /etc/openedge.d/.
openedge.confoesec.poloesec.pol.readmeoesec.logsetdlcvaldlcoesec.reg
Operational Productivity
This release of OpenEdge provides improvements and enhancements that reduce maintenance downtime and speed error detection and resolution. Additionally, this release includes immediate auto-recovery to get systems up and running within seconds.
This section details the operational productivity features in this release.
DataServer support for server-side single table aggregation
Now, OpenEdge supports the AGGREGATE
statement for use with Oracle and Microsoft SQL Server DataServers. This statement
computes aggregate values on the database server for a single table, providing a
more efficient approach to get aggregate values compared to using the ACCUMULATE statement and ACCUM function.
For more information, see AGGREGATE statement.
Cancel SQL queries via ODBC clients
You can now use the Cancel() API to terminate a
SQL query in an ODBC or JDBC SQL client. When the SQL client executes the API, the
OpenEdge SQL server cancels the query and discards all running operations for that
query without impacting other queries or applications. You can use the Cancel() API to cancel SQL SELECT queries that are taking longer than expected.
Database backup with improved compression
Data compression is now improved in the OpenEdge Backup utility (PROBKUP).
PROBKUP now compresses data immediately, which allows database administrators to reduce disk space usage and save time needed to back up in both online and offline scenarios. PROBKUP compression now lets you specify a desired compression level. A lower compression level value yields higher compression speed, while a higher level yields higher data compression with the ZSTD compression algorithm. In this release, the default compression algorithm changed from Run-Length Encoding (RLE) to ZStandard (ZSTD).
For more information, see PROBKUP utility.
Truncate the before-image file on a replication target database
- Restore the disk-resident copy of the database to match the in-memory copy before the crash occurred.
- Undo any changes in uncommitted transactions.
- Reduce storage space usage by truncating the BI space on the replication target as it has grown to a huge size.
- Improve database performance adjusting the BI cluster or block size on the replication target.
- Reduce potential errors in replication by making the BI cluster size the same on both target and source databases.
For more information, see PROUTIL TRUNCATE BI qualifier and Manage before-image file growth.
After-image file summary
While using after-image (AI) during disaster recovery, you need better tools to identify the AI files quickly to reduce the recovery time. Prior to this release, there was no quick way to identify the AI files and determine the correct order in which to restore them. Therefore, you needed to either design your own process for identifying AI files or run the full AIMAGE SCAN utility, both of which cost considerable time.
Now, in this release, the new AIMAGE SUMMARY utility runs a quick scan of only the information that you need to identify AI files for faster disaster recovery.
For more information, see Show an after-image file summary.
Describe basic information for a backup file
When appended to the PROREST utility, -describe lists basic, yet thorough, information
about a database backup file. When you have many backups and are trying to
restore your database quickly, the -describe
function helps you identify which backup you want to select based on of the
information returned in the request. The -describe function is compatible from version 9 onwards for
OpenEdge database backups. If you upgraded to a more recent version of OpenEdge,
but have a database backup from a previous version, and need descriptive
information about that backup, then you can use the -describe function to do so.
For more information, see PROREST utility and Obtain backup file descriptions using PROREST -describe utility.
Uniquely identify the PAS session connected to a database
In the multi-session PAS for OpenEdge agent, a single process runs multiple sessions, each with its own ABL Virtual Machine (AVM). If an unresponsive or long-running session holds a record lock, the available metadata, like process ID (PID), is insufficient to identify the session locking the database record.
The new runtime information output from several database tools provides positive and immediate identification of PID and thread (AS-#) for a database connection from a PASN client. Now, you can uniquely identify sessions and troubleshoot them by looking at the ABL stack. In the case of runaway sessions, you can use the session identifier to safely terminate connections to maintain the uptime of PAS instance and hosted application.
For more information, see Identify unresponsive sessions and PROSHUT command.
Truncate and move LOB online
You can now quickly and efficiently move all of the large object (LOB) data associated with a particular table residing in a Type II area. The data storage space that was occupied by the LOB is returned to the storage area for reuse by other objects.
The PROUTIL utility lets you truncate, and
optionally move, a LOB while the database is running, without having to recreate
the schema. If you have multiple object types in the same area, which is not
recommended, you can move LOB objects to a separate LOB area.
For more information, see PROUTIL TABLEMOVE qualifier, Truncate tables, and Specify target areas when moving table data. To move a truncated LOB for a partitioned table, see PROUTIL PARTITIONMANAGE TRUNCATE qualifier and Truncate partitions.
Deactivate CDC feature on a database without a CDC license
Commonly, Database Administrators copy the backup file of a production CDC enabled database and later restore it for use in a development or testing environment. Usually, the development or testing environments do not have a CDC license, as holding multiple license can become expensive. Consequently, when the CDC enabled database is restored, the database cannot be brought online because there is no CDC license. Similarly, Database Administrators cannot disable the CDC features on the backup database because CDC policies restrict removing those features without a CDC license.
However, Database Administrators can use the proutil deactivateCDC command line utility on the CDC enabled database to deactivate CDC. This command requires neither a CDC license nor the Database Administrator to purge the CDC data or remove the CDC policies. After the command is issued, all the subsequent write jobs to CDC data tables are stopped and the database is then accessible with, or without, a CDC license. This command can be executed while the database is online or offline.
For more information, see Deactivate CDC feature on a database without a CDC license in Manage the OpenEdge Database.
VST datetime with time zone support
Virtual system tables (VSTs) enable an application to examine the status of a database and monitor its performance. With the database broker running, ABL and SQL applications can query a VST and retrieve the specified information as run-time data.
Several VST tables provide timestamp information as character strings that need to be parsed to allow applications to sort, index, or compare datetime values.
- Easier and faster querying of VST data for specific timeframes.
- Built-in millisecond granularity for application developers.
- Reduction in issues for database adminstrators who manage databases that span multiple time zones.
For more information on new VST datetime fields with time zone support, see Area status (_AreaStatus), Checkpoint (_Checkpoint), Database connection (_Connect), and Database status (_DbStatus).
Detect and match numeric and data formats to adjust runtime session settings
While loading table content using the table contents (.d)
file, the Data Dictionary now reads the information about the date and numeric
formats in the file and then uses the same formats to load the table contents. As a
result, the data is loaded correctly and the database administrators need not worry
about the date and numeric formats recorded in the table contents file.
For more information, see Load table contents.
Improved index compacting utility
Prior to this release, a DBA could not view the progress of index compaction processes. Without a status report on PROUTIL IDXCOMPACT progress, DBAs might wait a long time for a hung process to complete.
When the index compacting utility takes a long time to run, the utility now displays runtime status on screen approximately every two minutes. The status displays how much compacting has completed and how much time remains. You may use Ctrl-C to stop a long-running compacting process.
For more information, see Troubleshoot index compaction.
Improved performance for index fix utility
The PROUTIL IDXFIX qualifier is an online database utility that finds and fixes issues in indexes. It can be used for routine database health checks and when there is a problem in the database that must be repaired. With this improvement, the overall run-time for executing IDXFIX when scanning ALL TABLES is significantly reduced.
For more information, see PROUTIL IDXFIX qualifier
Developer Productivity
An API-first approach allows OpenEdge to become a truly open platform with service and data integration. This release provides new features to empower developers to meet business needs with improved time to market, increased productivity and performance, and lower overall costs. The enhancements to ABL make it easier to get new developers up to speed quickly and effectively.
This section details the developer productivity features in this release.
Override properties in object-oriented ABL
ABL application developers can now override properties in a subclass, whether
defined in an ABL or .NET class (.NET overrideable properties are defined with the
virtual modifier). Previously, you could only
override ABSTRACT properties, but now, you can
override non-ABSTRACT properties also. To mark
properties that are not overrideable, you can define them in ABL classes as FINAL.
|
|
To support this feature with reflection, the IsFinal property has been added to the Progress.Reflect.Property class. This property returns
TRUE if the method or property is FINAL.
For more information on overriding ABL properties, see Override properties within a class hierarchy.
For more information on overriding .NET properties, see Override .NET virtual properties.
Safe Navigation Operator
(?:) in ABL
List collections in object-oriented ABL
OpenEdge now supports built-in list collections in object-oriented ABL. A list, which is a common data structure used in programming, is a collection that maintains a set of elements (objects) to be accessed in sequential order.
The implementations that you earlier had to create for lists, included using
the temp-tables, OpenEdge.Core.Collections package,
or arrays. All these implementations have limitations and are inefficient for a list
use case. To solve these issues, OpenEdge has now implemented an efficient, built-in
list collection construct that can be used by any ABL application and supports a
type-safe, generic programming model that allows developers to restrict the types of
objects added to the list.
Now, OpenEdge supports the generic programming model used in lists by
introducing a new syntax. This syntax has defined type parameters within angle
brackets (<T>) and is used in other
object-oriented languages to represent generic types. For more information on this
syntax in ABL, see <T> Generic type reference.
The following example code shows how to create and work with a list:
|
No quotes for references to .NET generic types
In this release, due to ABL improvements to support generic types as part of the list collections feature, you no longer need to enclose in quotes the references to .NET generic types, in most cases. However, a few conditions still require the quotes. For more detail, see Reference .NET generic types in Use .NET Classes in ABL Applications.
Intelligent compilation support in Progress Developer Studio for OpenEdge
Progress Developer Studio for OpenEdge now supports intelligent compilation. When an ABL developer makes changes in a file and compiles it, the Developer Studio automatically compiles all other files that may be impacted by the changes, along with the modified file. As a result, all compilation errors introduced because of the code changes are identified.
- Keep the build state up to date in the Developer Studio.
- Identify compilation errors in the entire project by compiling only a few files.
- The project is build automatically the first time to get a base build state.
- You change a file and save it, the modified file and its related files are compiled automatically.
- A file is changed outside the Developer Studio and you start the Developer Studio or refresh the project.
For more information, download "OpenEdge 12.5 Documentation" from OpenEdge Documentation Archive and see "Intelligent compilation" in Progress Developer Studio for OpenEdge Online Help.
Replace indexing with Dependency Module in Progress Developer Studio for OpenEdge
Progress Developer Studio for OpenEdge now supports advance tooling features,
such as finding references, intelligent compilation, and so on, which significantly
improve the efficiency of developers. To support these features, the Developer
Studio analyzes all project files in your workspace and creates a metadata for every
project by using the newly introduced Initialize OpenEdge Tooling process. The
initialization process creates metadata of every project in your workspace at
{workspace-dir-path}/.metadata/.plugins/com.openedge.pdt.project/{project-name}.
- Mode 1—Use this mode when your ABL projects contain procedures and include files only. If your projects contain classes, then this mode may not support some tooling features. Mode 1 is the fastest initialization mode.
- Mode 2—Use this mode when your ABL projects contain classes, procedures, and include files. If a procedure has references of classes, then this mode does not provide tooling support for such references. For example, finding references does not show references of a class method used in procedures. Similarly, any procedure with class references is not compiled as part of the intelligent compilation. Mode 2 is the default initialization mode and requires more initialization time than mode 1.
- Mode 3—Use this mode when your ABL projects contain classes, procedures, and include files. This mode even supports references of classes in procedures. However, this initialization mode takes the maximum time.
Based on the composition of your ABL projects and the extent of tooling support requirements, you can set the initialization mode for your projects.
For more information, download "OpenEdge 12.6 Documentation" from OpenEdge Documentation Archive and see "Developer features of Progress Developer Studio for OpenEdge" in Progress Developer Studio for OpenEdge Online Help.
Event Streaming with Kafka
Modern enterprises consist of many interconnected business applications that must be able to respond to events and interact with other business applications in near real time. They are looking at distributed streaming platforms for their event-driven ecosystems and many have chosen Apache® Kafka® as their preferred technology.
After gaining insight and feedback to guide in what is needed in the marketplace, in this release, OpenEdge has been integrated with Kafka. As a result, OpenEdge applications are able to participate in an event-driven architecture based on the Kafka platform to send and receive messages from ABL applications or to be consumed by other Kafka applications. This release introduces the OpenEdge integration with Kafka, allowing you to produce and consume Kafka messages.
This section details the event streaming with Kafka feature in this release.
OpenEdge integration with Apache Kafka
You can now use Apache® Kafka® with OpenEdge. Kafka is an open-source, distributed, event-streaming
platform, widely used across many industries and organizations. It provides near
real-time data capture from sources such as databases, software applications,
sensors, mobile devices, and cloud services. In this release, OpenEdge provides the
new OpenEdge.Messaging API to send messages to a
Kafka cluster (via a Kafka producer) and receive messages from a Kafka cluster (via
a Kafka consumer). See the Use Apache® Kafka® with Progress®
OpenEdge® guide for information on Kafka concepts, setup, client
producers, client consumers, and troubleshooting tips.
Continuous Operation
- The highest levels of availability.
- Maintaining uptime SLAs for improved customer experience.
This section details the continuous operation features in this release.
OESERVER utility
OESERVER is the recommended utility for starting and stopping a PAS for OpenEdge instance. It supports additional parameters to close bound APSV client sessions and gather more detailed information for an instance. OESERVER, which replaces the existing PASOESTART command, supports existing PASOESTART parameters making it easier to transition scripts from using PASOESTART to using OESERVER.
Supported parameters
-ablapp appname-close-force-status-stop
How to use the utility
TCMAN or
PASMAN, PASMAN is recommended. The common
use cases include:- Start an instance.
- Restart an instance.
- Stop an instance.
- Close connections.
- Get summary information.
- Get detailed information.
For more information on common use cases, see OESERVER.
Additional resources
proenv
command prompt,
enterpasman oeserver -hDebug ABL HTTP problems using tracing
You can now debug problems, such as performance issues or site failures, in your ABL HTTP client program's communication with a web server, by implementing HTTP tracing and analyzing the resultant tracing data.
- The ability to log key aspects of an HTTP session, such as the URLs invoked, request and response data and times, and so on, in a configurable way.
- A better mechanism to debug HTTP tracing information than using the
LOG-MANAGERor settingSESSION:DEBUG-ALERTtotrue, because it produces a single output for the entire request-response exchange and the output data is not overwritten on redirects or subsequent requests. Further, an OpenEdge administrator can enable or disable tracing for certain requests. - Built-in support for logging the HTTP tracing information in an HTTP Archive (HAR) format, which is a standard format for HTTP tracing data. A HAR file provides you a complete view of a request-response exchange between your ABL HTTP client and a web server. Moreover, you can take advantage of a number of third-party tools that provide visualization based on the HAR format.
To learn more about HTTP tracing in ABL, see Debug problems using ABL HTTP tracing.
Automate OE PING service deployment for the WEB transport
PAS for OpenEdge now supports automated deployment
of the _oepingService.handlers file using an ABL
service package called oepingWebService.oeds.
This support allows you to deploy the OE PING service for the WEB transport without manually configuring your openedge.properties file or creating a _oepingService.handlers file.
|
pasman command to deploy the PING service:
|
For more information, see ABL application PING service.
Add Drop Field to the Post Deploy section of Delta.df
For a non-indexed field, database administrators can now add a Drop Field operation to the Post
Deploy section of the Delta.df file
and help in reducing the database downtime during upgrades that require schema
changes. The Post Deploy section of the Delta.df file contains all online disruptive schema
change operations, which are applied to the production system after confirming that
the objects are not used in any other version of the running application. If you
have more than one Drop Field operations for
non-indexed fields, then only the first operation is added to the Post
Deploy section and the remaining operations are added to the Offline
section of the Delta.df file. Similarly, the
Drop Field operation for an indexed field
remains in the Offline section.
For more information, see Dump incremental delta.df supporting online schema changes.
Pro2 6.3
Pro2 6.3 provides enhanced web user-interface with the additional capability for downloading logs from the Pro2 Management Console. This capability allows for quicker and easier debugging without having to log onto the database machine. This release also provides the ability to enter database objects as a comma-separated list of tables and fields, enabling quicker creation and modification of fields for replication.
This section details Pro2 features in this release.
Download logs from the Pro2 web UI
- Replication logs
- Replication-CDC logs
- CDC logs
- Replication log-check logs
- Status check logs

Enter database objects as a comma-separated list
In Pro2 6.3, with the new Table List function, you can enter the table names as a comma-separated list to map or unmap tables, fields, and CDC policies from the source and target databases. This function works by taking the table names as the input from the source database.
OpenEdge Command Center 1.1
OpenEdge Command Center 1.1 provides more capabilities for deployment of ABL application and REST services. An important improvement in this release is the ability to view and manage ABL applications across multiple PAS for OpenEdge application servers on a single panel.
This section details the OpenEdge Command Center features in this release.
Support for ABL Applications and REST Services deployment
- ABL Applications pane—Displays a list of ABL applications deployed on the different PAS for OpenEdge instances and the status of each application.
- Web Applications pane—Displays the web applications deployed on the ABL application selected in the ABL Applications pane. The details of web applications are displayed in separate cards.
- Services pane—Displays the REST services deployed on the web application selected in the Web Applications pane. The details of services are displayed in separate cards.
Upgrade OpenEdge Command Center
You can now upgrade your OpenEdge Command Center server and agents to the latest version by using the respective installers, after you download their latest version from the Progress Software Download Center. Both these installers detect their older installation on the computer and install the new version based on the existing configurations.
Third-Party Support
The following updates were made to supported third-party products.
Version update for Infragistics controls
In this release, the version of the "OE Ultra Controls .NET" license, which installs "Infragistics Ultimate UI for Windows Forms", is updated to 21.1.20211.62.