Skip to content
English
  • There are no suggestions because the search field is empty.

Release Notes ProTop 328-rc1 (March 2026)

These are public change notes for ProTop 328-rc1, which was not officially released but exists as a downloadable entity.  These changes are included in the officially released ProTop 329.  They include changes, fixes, and additions to the client-side code that monitors your OpenEdge resources and sends metric data and alerts to your ProTop portal.

Here's how to get the latest version of ProTop!

 

Change Type Description
Bug fix

Conflicting Alertable field names in dc/appmon.p and dc/pasoe.p.

To eliminate the conflict, the fields in dc/appmon.p and alert.cfg have been changed from appName to appMonName, from appNote to appMonNote, and from appStatus to appMonStatus.

If you are using Classic Application Servers, you are likely using alertable fields appName, appNote, and or appStatus in your alert.*.cfg files. Please be sure to correct these names accordingly to continue receiving alerts as expected.

Feature Update

CAUTIONEnhanced “trxmon”.  Updated TRXMON to run on both UNIX and Windows. Additionally, it now generates alerts rather than sends emails, so everything passes through the portal.  A new wstub/trxmon.bat has been created along with wstub/disconnect*.bat. The util/trxmon.p utility has been updated to run on both UNIX and Windows.  The estub/trxmon.cfg config file has been modified to remove email configuration options.

IF YOU ARE CURRENTLY USING TRXMON YOU MUST CONFIGURE IT ANEW AS PART OF YOUR 328 UPGRADE. 

See trxmon Disconnect Long Running Sessions (328+) for more information.

 Feature  Added ABLUnit - A framework for implementing “unit tests” in OpenEdge ABL code bases to improve code quality by building declarative testing into the development process.
 Feature  Update Service Telemetry to Show Transports.
 Feature  Invoke a menu when ProTop RT is invoked without an argument.
Feature Replace Global Shared Variables With ProTop Properties. 

This feature implements a “new style” configuration file: etc/protop.cfg. This configuration follows the standard hierarchy from most general to most specific, but unlike old-style configurations, the files are additive. Rather than the most specific file “winning” and being used solely, the entries in the files along the way are accumulated. In the case of multiple entries for a property, the last entry wins. This means that customization is more straightforward – detailed configuration only needs to specify changes and additions. The “api key” feature uses this new-style configuration approach.

Changes to the config files, or the addition of previously missing detailed config files, will be noticed, and the properties will be updated in near real time. There is a user-configurable delay to prevent excessive resource consumption. Previously, most shared variables were only settable at startup by way of the bin/localenv mechanism. Changes made post-startup were not seen by a running pt3agent or by other ProTop client processes. Now, changes in etc/protop.cfg will be seen and set in real time.
Feature Minimum Time to Accept Input (ProTop  RT).  

Under heavy system load, the ProTop “RT” (real-time) client will sometimes take more than the sample interval to collect a sample. When this occurs, the pause for input (to give commands to the program) is, effectively, eliminated. This appears to the user as if commands are impossible in this scenario.

This feature allows users to configure a minimum length for that pause so that there is always an opportunity to interact with RT even under heavy load.

The feature is controlled via the realTimeMinDelay property in etc/protop.cfg. The default is two seconds; the minimum is one second.
Feature Data Collectors That Do NOT Need a DB Connection.

Not all data collectors collect data about OpenEdge databases. This is important because a pt3agent that starts with no connected database will ONLY allow data collectors from that list to execute. Thus, if you have an agent that is monitoring something such as PASOE (which does not require a db connection) and you wish to add Service Telemetry, you will probably be confused about why Service Telemetry fails to execute.

The list of data collectors that do not require a db connection was previously hard-coded. This update moves that list to the nodbDataCollector property defined in the etc/protop.cfg configuration file.

Default values are:

nodbDataCollector     apsv.p,dbid.p,df.p,netstat.p,osinfo.p,pasoe.p,appmon.p,svctelemetry.p

Feature Task Scheduler Should Not Block While Running a Task.

The task scheduler runs within the context of the “dbmonitor” process. Because dbmonitor controls starting and stopping agents for resources, dbmonitor must not block for any substantial period of time, since that would prevent timely action on .lg messages, launching or stopping pt3agents, or acting on outages. This requires modification of the task scheduler, which currently, by default, blocks when a process is run and waits for it to complete.

In practice, most scheduled tasks are set up to run in the background without blocking, but the current code requires the user to remember to add an “&” to the command line to achieve this. 

There are no instances where a user would actually deliberately desire to block until the task completes, so modifying the scheduler to put all scheduled tasks into the background automatically should be harmless.

Bug fix Maintenance.bat fixed to handle all inputs and internal quoting correctly.
Bug fix Maintenance.p has been updated to enforce the numeric format as we do in other ProTop utilities. So as of ProTop 328 maintenance.sh (or .bat) should no longer be sensitive to the -d, -numsep, or -numdec parameters that might be in $DLC/startup.pf or any of the etc/protop*.pf parameter files.
Feature pctLastX and “xv” extents (also released and updated in ProTop 327.1)

For purposes of the pctLastX alert (percent full, last variable extent):

An “uncapped”, but pre-extended, extent (an “x” extent), the pre-extended portion is treated as if it were a fixed extent. If an extent is pre-extended to 1GB and pctLastX is set to fire at 50% an alert should be thrown at 512MB.

A “capped” variable extent (an “xv” extent) is treated as if it were a fixed extent, and the cap is considered part of the allocated space.

Thus, if an extent is capped at 2GB, we treat that as if it were a 2GB fixed extent - even though, from the OS perspective, it is growing. We do this because, from the db perspective, when it hits that cap, things will behave the same as if it were fixed. That is, if there is no “pure variable” at extent next in line the db will crash. So if pctLastX is set to alert at 50% when that capped extent grows to 1GB, an alert should fire.

In the case where an extent has been pre-extended, AND it has a cap, we only care about the cap. No alert will be fired for growing beyond the pre-extended size.

Bug fix User Experience Client Server Fails When DB is Remote.

The getResource() function in bin/protopenv was updated to recognize that a resource is remote and behave accordingly.
Feature User Experience Client Server – Local DLC Setting Differs From Server. It has been determined that ProTop is functioning as designed and that the solution to this problem is to use bin/zipenv.[sh|bat] to override the PT3DLC environment variable. 
Feature

Create alerts and HC findings specific to B2 issues.

Check _ActBuffer._Buffer-LRUEnabled field to see whether the LRU replacement algorithm has been enabled.

New alertable fields are:

zbpLru2         possible values are “enabled” or “disabled”
zbpABPAct    logical, yes or no

Feature

Change when the automated health check (HC) flags -omsize as an issue.  Added a new field, tt_configuration.omsizeExcess, to track the “extra” -omsize entries. This field is available for alerts and health checks, but no alerts currently use it.

Bug Fix Missing PARAM in hc.sh.  Updated bin/hc.sh to correctly set $PARAM.
Feature Enhance xrange.p to include LOBs. 

ProTop RT startup will now show LOB range data along with table and index range data and settings if the relevant ranges are inadequate or when the “T” (upper case) command is issued. 

Additionally, the generated example tmp/*.range.pf file now includes -lobrangesize and -baselob suggestions.
Feature Excessive message frequency in dbmonitor.log. The default logging threshold (aka dbgMode) was changed from 2 to 5.
Feature zAppNote is not working.  Existing but incomplete, this fix enables the enhancer for use in alerts.
Feature HC is not reporting AIW as not running.  Updated estub/healthcheck.cfg to include an alert for AIW not running.
Bug fix Misdirected Profiler Output. Profiler output ("y") was going to "tmp";  it is now going to "rpt" if that directory exists (rpt is a default directory).
Bug fix ProTop RT “Backup Age” is improperly highlighted. Added filters to highlight.cfg to better control the detection of problems.
Bug fix Correct issues with OS-GetWinSize(). Code changed to avoid specific logic with versions of OpenEdge older than 11.7.
Feature Guard calls to Jolokia in dc/pasoe.p with a "localenv" property.  Not everyone uses Jolokia, so we added the following configuration option in bin/localenv:

# export AGENT_METRIC_PROVIDER=none    # Provider for PASOE agent metrics, possible values [jolokia | oemanager | none]

Feature

Review and update lib/ptprops.p.

This relates to the “&” command in ProTop RT.  That command shows the values of ProTop “properties” and allows many of them to be changed in real-time. (This is primarily helpful when debugging.)

For the most part, this involves cross-checking that variables documented in ustub/localenv.x and implemented with pt_* global shared variables are being exposed on the ptprops screen. Most of these variables are being initialized in lib/protop-cfg.p

Most such variables should at least be displayed. Likely, most should also be updateable.

The ptprops screen is getting crowded, so a 2nd “page” was created.

Changes to property values are not persisted and do not affect other running processes.

Feature

Track Execution Time of Data Collectors.

Add a field to the data collector temp tables to track the time it takes to collect the data. This will enable us to self-monitor for unexpected issues with data collection.

The only user-visible evidence of this feature at this time is that startup messages now report how long a data collector takes to initialize (in milliseconds).

Feature

Comments added to dc/b2.p to clarify the meaning of bpUnused.

Updated the meaning of bpUnused and also added comments to document arguments to update_xstat().  No user-visible impact.

Feature

Add -memcheck and -dbcheck to healthcheck. Added appropriate “not enabled” alerts to estub.source/healthcheck.cfg and supporting text to recommend4.dat. (Such alerts are automatically encrypted and promoted during the build process.)

Feature

Added the Windows version of the logmon script.   Created a BAT file equivalent to logmon.sh so that the log monitor utility can be run on Windows. 

A sample schedule.cfg.windows task is included along with comments in logmon.cfg.

Feature

ProTop self-monitoring.  Create appropriate entries in schedule.cfg and logmon.cfg to enable ProTop to monitor its own tmp/*.debug files.

Self-monitoring should send an alert to the portal when errors appear in the tmp/*.debug files.

A new log monitoring type, log_protop, has been created. The behavior of log_protop is controlled through etc/log_protop.cfg. Before this update, the rule sets for all log_* logmon types were processed in an undefined order.

This update now processes rules in the order that they appear in the log_*.cfg file. If a matched line processes ruleAction = “ignore”, then no additional rules will be applied to that line. Otherwise, all rules are applied, in order, to matching lines.

Feature

Create a getOEVersion() function and replace proversion().

ProTop sometimes needs to compare the proversion() function output with strings like “10.1C04” and “10.2A02”, but proversion() is not that granular. Proversion() only provides major and minor version numbers, e.g. “10.1C” and “10.2A”.

In 11.2+, proversion(1) provides more granular info like service pack, hotfix, and build. But proversion (without a mode) still only provides major and minor.
So at startup we should read $DLC/version (or %DLC%\version) to get the actual version string and assign it to a global variable, and then reference that variable for comparison, instead of using proversion.

Currently this new function is only used for log messages and to detect oe10.1c and oe10.2a when determining if the ai roll forward will fail at 65535 in ssg/sausage50.p

Security fix

Modify util/areainfo.p to remove LOOKUP() from the WHERE clause. 

SonarQube flagged this as “critical”. Replaced the LOOKUP with an equivalent set of OR clauses in the WHERE. FYI - util/areainfo.p is a stand-alone report.

Feature

Add ProTop and OpenEdge version to the alert body and add a maintenance alert nag limiter.

Add ProTop and OpenEdge version info to the alert body. i.e.:
[protop: 327.1 commit 3749fa5]
[proversion: 12.8]

In addition,  add a localenv variable to turn this off if desired:
export XALERTINFO=no       # append extra info to alerts (protop version), defaults to yes
export MAINTNAG=yes/no    # if yes, send an alert each time dbmonitor attempts to run, indicating the site is under maintenance. Defaults to no.

Feature

Add app server alerts to alert.cfg. 

# Sum of Busy, locked, and sending agents as a percentage of MaxSrv
# asSrUsePct     num   >        90  "" "hourly" "&1 &2 &3" page
# asSrUsePct     num   >        75  "" "hourly" "&1 &2 &3" alarm
# asSrUsePct     num   >        50  "" "hourly" "&1 &2 &3" alert
# This alertable field is not displayed and contains the sum of busy, locked, and sending agents
# zasSrInUse     num   >         4  "" "hourly" "&1 &2 &3" alarm

Feature

Update wstub/logmon.bat to include debugging logic related to getresource.bat. 

Added a section to echo variable settings when “set PT3DEBUG=TRUE” is activated.

Added additional logging messages for startup variations (with or without a friendly name).

Bug fix

zOldTRXDetails.sh is broken for certain Linux releases. Resolution: the “tail -1” suggestion was implemented.

Bug fix Add a third state, blank, to the "BX" column in the Storage Areas panel. Buffer pool assignment is not an attribute of all storage areas. It is only an attribute of data storage areas (i.e., areas with _area-type = 6). For others, including but not limited to the BI and AI areas, that column now shows a blank.
Bug fix

"CPU MHz" is zero in RHEL 9.x.  This has been corrected and now reports CPU speed as intended.

Big fix

Error: "No _AreaStatus record is available. (191)" is being reported. Changed to use a distinct buffer within aiInfo(). Modified getAreaStatus() to no longer call aiInfo().

Feature

Note when an audited DB has active audit indexes.  

When a database has OE Auditing enabled, the production database is NOT supposed to have the audit reporting indexes active and enabled. (Active indexes are a performance penalty on writes.) Best practice is to export audit data from production to a reporting database where the audit indexes are available and active.

The feature introduces new fields in tt_configuration to support detecting and alerting on such misconfigurations:

auditDBType; None, AuditSource, AuditArchive, NonStandard
inctAudIdx; count of inactive audit indexes

None = auditing is not available or not enabled
AuditSource = auditing is enabled and no audit indexes are active
AuditArchive = no application tables and audit indexes are enabled
NonStandard = auditing is enabled but the number of active audit indexes or the presence of application tables is nonstandard

Sample alert configuration is provided.

Feature

Create a field, alerts, and a report for inactive application indexes. 

Created a field (in tt_configuration) to track inactive application indexes and sample alerts to go with that field. The field name is “tt_configuration.inctveAppIdx”.  Created a stand-alone report, util/inactiveappidxrpt.p to list inactive application indexes.

   
Feature

Create a ProTop Windows compilation bat file for dbauthkey support.  The process was manual for Windows; this new feature automates that manual process. The new wstub/ptcompile.bat is the Windows version of ustub/ptcompile.sh.

Feature

getResource() argument should be optional. The getResource() function in protopenv now treats $1 as an optional parameter, as utilities (logmon is one) do not necessarily use a "friendly name".