Developer Productivity and Modernization

The enhancements to ABL, Progress Developer Studio for OpenEdge, and other development tools empower Developers to:
  • Boost productivity and efficiency.
  • Modernize existing applications.
This section details the Developer productivity features in this release.

Support for Collections and Generics in Developer Studio

Progress Developer Studio for OpenEdge now supports generic types and collection syntax in OpenEdge ABL. You can use the built-in generic types such as Progress.Collections.List, Progress.Collections.SortedSet, and Progress.Collections.HashMap with standard angle bracket notation (<T>). Developer Studio recognizes this syntax and supports it in Content Assist, Find References, Outline view, Class Browser, and other key tooling features.

With this enhancement, you can work more effectively with type-safe collections, while maintaining a consistent development experience in Developer Studio.

Strongly Typed Annotations for Object-Oriented ABL

OpenEdge now introduces strongly typed annotations for object‑oriented ABL. This feature allows you to define annotation types as ABL objects, apply them to classes and supported class members, and retrieve them at run time using the ABL reflection API. You define strongly typed annotations using the new ANNOTATION statement and apply them using the [ ] Strongly typed annotation syntax.

Unlike existing source‑only annotations, strongly typed annotations are validated by the compiler, stored in r‑code, and accessed programmatically without parsing source files, enabling more robust use of metadata for application frameworks, tooling, and architectural patterns such as configuration, service definition, and dependency injection.

For more information, see Learn about strongly typed annotations.

Analyze Memory Recordings and Get AI Recommendations in OpenEdge Memory Profiler

The OpenEdge Memory Profiler now analyzes imported recordings and displays health status on each recording card: Analysis Pending, Healthy, or Leaking. For each analyzed recording, you can:
  • View the Analysis Summary section on the Memory Usage page for an overall summary, observations, and the indicators that exceeded a configured threshold, to quickly identify recordings that need investigation. The analysis runs locally without an external AI service. Developers and administrators can adjust the analysis thresholds in the analysis.config file, and set the analyze property in the batch.config file to analyze recordings automatically after import.
  • Request AI-generated recommendation including a priority, an action, and a rationale to help you reduce memory consumption in your ABL application. These AI recommendations use Progress Agentic RAG and require a valid API key in the llm.config file. The request sends only the generated analysis summary, not the recording file or raw recording data.

For more information, see Recordings, Memory Usage, Modify batch configuration file, and Appendix—Analysis and AI recommendation configuration.

Rename and Edit Recording Information in OpenEdge Memory Profiler

You can now add a descriptive name and other details and also edit the information of a recording, to easily identify it in the recordings list when managing multiple recordings from different environments or test runs:
  • On the Home page, you can edit the name and description of a recording.
  • On the Memory Usage page, you can edit the host name, instance, HTTP and HTTPS ports, and notes.

For more information, see Edit recording information.

Bring Your Own Eclipse Delivery Model for Developer Studio

Progress Developer Studio for OpenEdge (Developer Studio) now moves to a new Bring Your Own Eclipse (BYOE) delivery model. It is delivered through the Feature Repository named Architect_Repo, which is a standard Eclipse p2 repository, instead of a bundled Eclipse installation with a fixed version and embedded dependencies.

With this model, you install Developer Studio features into your own supported Eclipse IDE alongside your existing Eclipse-based tools. The OpenEdge 13.1 installation provides the Developer Studio component, license, and the Feature Repository to install and update Developer Studio features with each OpenEdge release. This delivery model also removes embedded third-party dependencies from Developer Studio plugins, eliminating plugin conflicts and reducing update download sizes.

For information about supported platform versions, see OpenEdge® 13 Platform Compatibility Guide.

Improved Performance for Assignment Statements

Assignment statements (x = value.) now perform on par with ASSIGN statements, giving applications a free runtime performance boost with no code changes required.

JUnit-Compliant Test Result Reporting for ABLUnit

ABLUnit now generates test results that conform to the Apache Ant JUnit XML schema, enabling compatibility with standard CI/CD test reporting tools such as Jenkins, Azure DevOps, GitLab CI, GitHub Actions, and TeamCity without requiring custom transforms or post-processing scripts.

Previously, the output of ABLUnit followed a JUnit-like format that was intended primarily for Progress Developer Studio for OpenEdge, rather than for third-party CI/CD tools. ABLUnit now supports a second, strictly JUnit-compliant output writer that you can enable alongside, or instead of, the existing Developer Studio-oriented format. The new writer includes metadata expected by CI/CD test dashboards, including an ISO 8601 timestamp, hostname, a required classname on every test case, and the <system-out>/<system-err> elements required by the JUnit schema.

You do not need to change the existing configuration files and the existing ablunit.json configuration files continue to produce the current output format unchanged. To generate JUnit-compliant results, you add a writers object to the output settings of the configuration file.

For more information, see Configure ABLUnit output writers.

Performance and Scalability

As systems are getting faster, OpenEdge keeps up. This release provides the best and optimized performance throughout, necessarily making it as scalable as possible. Scalability can also be scaling down and reducing resources, to improve the throughput.

This section details the Performance and Scalability features in this release.

Manage ABL Application Agent Log File Growth

Previously, PAS for OpenEdge agent log files rolled over only at midnight, with no mechanism to limit file size or remove older files. In high-verbosity environments, this behavior caused uncontrolled disk growth and increased operational risk.

Now, administrators can use two new properties in openedge.properties to directly control the agent-log file size and retention:

  • agentLogMaxSize—Triggers a log file rollover when the active agent log file reaches a specified size (in MB), in addition to the existing date-based rollover at midnight. Both triggers operate concurrently and whichever condition is met first causes the rollover.
  • agentLogMaxHistory—Limits the number of agent log files retained per ABL application. After each rollover, the session manager automatically deletes the oldest files until the count does not exceed the configured value.

For more information, see Configure OpenEdge properties and Configure log rollover settings.

Limit ABL Session and Agent Process Life Span and Memory Usage

System Administrators can use the five new properties in openedge.properties to recycle ABL sessions and MS Agent processes based on age and total memory usage, and to coordinate the timing of automatic recycles so multiple agents are not recycled at once. These properties enable age-based recycling of ABL sessions and MS Agent processes, as well as limit the total memory consumption of all sessions within an agent. These new properties are:
  • ablSessionLifeSpanLimit—Terminates an ABL session when it has been alive for a specified ISO 8601 duration (for example, P1DT12H), regardless of request count or idle state.
  • ablSessionIdleLimit—Terminates an ABL session when it has been idle in the pool — not bound to a client—for a specified ISO 8601 duration (for example, PT10M).
  • agentLifeSpanLimit—Initiates a graceful shutdown of an MS Agent process when it has been running for a specified ISO 8601 duration (for example, P7D), recycling long-running agents on a predictable schedule.
  • agentMemoryLimit—Shuts down an MS Agent process when the combined memory usage of all its ABL sessions exceeds a specified limit (for example, 2G), complementing the existing per-session memory controls.
  • defaultAgentStaggerTrim—Enforces a minimum interval between automatic agent shutdowns triggered by agentLifeSpanLimit or agentMemoryLimit, preventing multiple agents from being recycled at the same time and causing a momentary drop in serving capacity.

For more information, see Configure OpenEdge properties.

Security

OpenEdge continually monitors for potential security vulnerabilities. The effort to scan, identify, assess, and mitigate potential security threats is ongoing. Information on how Progress manages reporting, management, discussion, and disclosure of vulnerabilities discovered in OpenEdge can be found in Progress OpenEdge Security Guidelines.

This section details the Security features in this release.

Validate TLS Certificates Using Operating System-Provided Trust Store

Now, OpenEdge TLS client components use the operating system (OS) trust store as the default source of trusted CA root certificates, replacing the OpenEdge-specific certificate store, such as $DLC/certs for ABL, used in earlier releases.

OpenEdge now reads CA root certificates directly from the OS trust store, which is used by the operating system and other applications on the host. Therefore, CA certificate changes—additions, updates, or revocations—made at OS level are automatically reflected in OpenEdge without requiring updates to a separate certificate store.

For more information, see Manage certificate stores for OpenEdge clients and servers.

New OESECTOOL Utilities to Generate Reusable Certificates for Test Servers

OESECTOOL now generates certificates from the bundled conf/oesectool.pem private key instead of creating a new key pair for each test run. This change allows administrators to trust the generated certificate once and reuse it across multiple SAML and OAuth2 test sessions. New gencert, certinfo, and matchcert utility commands simplify certificate generation and validation.

For more information, see OESECTOOL utilities.

Database Operations

In this release, OpenEdge elevates database management by providing additional capabilities to Database Administrators that:
  • Increase flexibility in managing OpenEdge database environments.
  • Support more efficient and effective database operations.
  • Streamline database administration activities.

This section details the database maintenance features in this release.

Enhanced Index Efficiency Visibility with New Delete Placeholder Metrics

PROUTIL DBANALYS and PROUTIL IDXANALYS now report additional index metrics that provide visibility into the impact of delete placeholders on index efficiency. The Index Block Summary section includes new columns only for unique indexes that show how much leaf-block key space is occupied by delete placeholders, whether those placeholders are part of the index delete chain, and how many leaf blocks are affected. Non‑unique indexes do not generate delete placeholders and therefore do not display values for these columns.

These new metrics help Database Administrators to:
  • Better understand index space usage.
  • Distinguish delete placeholder–driven inefficiencies from normal index growth.

  • More effectively evaluate index maintenance actions, such as PROUTIL IDXCOMPACT.

For more information, see PROUTIL IDXANALYS qualifier and Analyze index use.

Move Large Objects with PROUTIL LOBMOVE

LOB data can consume significant space in a database area. If you truncate LOBs, but keep them in the same area, the storage remains allocated. Whereas, moving LOB data to another area allows the old area to be deleted or repurposed, which is especially useful for cloud deployments where storage costs matter.

This release of OpenEdge introduces the PROUTIL LOBMOVE command. Database Administrators can use this command to move Large Object (LOB) data from one area to another, which helps:
  • Reduce I/O contention between LOB operations and normal table and index operations.
  • Optimize for sequential reads/writes if LOBs are large and accessed in bulk.
  • Meet and maintain compliance standards.

For more information, see PROUTIL LOBMOVE qualifier.

Insert Pause Instructions into Spin Loops

OpenEdge RDBMS uses latches to synchronize the access of critical resources, which under heavy load, can become performance bottlenecks. This release of OpenEdge introduces the -spinPause parameter, which you can use to insert pause instructions into spin loops, reducing CPU overhead during latch contention. This parameter is especially useful on multi-core systems where excessive spinning increases memory bus contention.

For more information, see Spin Pause (-spinPause).

Move Inactive Indexes to Type II Storage Areas

You can now use PROUTIL IDXMOVE for moving inactive regular indexes to Type II storage areas while the database remains online, helping you transition from Type I areas. Key aspects of this enhancement include:
  • Online movement of inactive regular indexes to Type II areas
  • Reuse of the existing PROUTIL IDXMOVE syntax, with no command changes required
  • Support for migration scenarios where inactive regular indexes must be relocated before activation
  • Validation to ensure inactive regular indexes cannot be moved to Type I areas

For more information, see Move indexes and PROUTIL IDXMOVE qualifier.

Platform Compatibility

In this release, OpenEdge ensures that it functions reliably across newer operating systems, environments, browsers, and configurations, along with enhanced performance. This broad compatibility helps organizations integrate OpenEdge with their existing infrastructure and operational requirements while simplifying deployment and maintenance.

This section details the Platform Compatibility features in this release.

Support for .NET 10

You no longer need to modify the run-time configuration to use .NET 10, because now OpenEdge configures the .NET run time in the OpenEdge installation to use .NET 10 for ABL applications on Windows and Linux, by default. .NET Open Client applications can run with .NET 10 on Windows and Linux.

For information about installing and configuring .NET Open Client applications, see .NET Open Client Support FAQ.

Run the JMS Adapter Non-Interactively

In this release, the adaptman command-line utility is reintroduced, enabling Application and System Administrators to administer JMS Adapter non-interactively, which is consistent with the behavior in OpenEdge 11.7 and earlier releases.

By working through AdminServer, the adaptman utility lets you start, stop, and query the JMS Adapter non-interactively, ensuring continuous operation without dependency on an active terminal session. Alternatively, you can continue using oemessaging for interactive administration of the JMS Adapter.

For more information, see Configure your JMS provider using adaptman, Start the Progress OpenEdge JMS Adapter, and JMS Adapter broker management options.

Third-Party Support

The following updates were made to the supported third-party products and the operating system and other platform certifications.

Version Update for Infragistics Controls

The OpenEdge Ultra Controls .NET license that installs Infragistics Ultimate UI for Windows Forms is now updated to version 26.1.20261.27.

Version Update for Spring Framework and Spring Security

OpenEdge now includes Spring Framework 7.0.9 and Spring Security 7.0.6.

For information about Spring Framework and Spring Security version updates in service packs, see OpenEdge® 13 Platform Compatibility Guide.

Deprecated Features

The following features were de-supported or deprecated in this release.

De-support of OpenEdge Adapter for Sonic ESB

The OpenEdge Adapter for Sonic ESB is de-supported and no longer included with the OpenEdge installer. Also, the standalone installer for the OpenEdge Adapter for Sonic ESB is no longer available.

De-support of Sonic Native Invocation Proxy Generation

The proxygen and bproxygen tools no longer support generating proxies for Sonic Native Invocation services.

After upgrading to OpenEdge 13.1, you cannot generate Sonic Native Invocation proxies from proxy definitions migrated from an earlier OpenEdge release. Therefore, before upgrading, you must review any applications and deployment processes that depend on this capability.