Did this article resolve your question/issue?



What is Deferred Logging for PASOE?


TitleWhat is Deferred Logging for PASOE?
URL Namewhat-is-deferred-logging-for-pasoe
Article Number000155287
EnvironmentProduct: OpenEdge
Version: 11.7.6, 12.1 and later
OS: All supported platforms
Question/Problem Description
What is Deferred Logging for PASOE ?
How to capture increased logging only when a MSAgent crashes?

Steps to Reproduce
Clarifying Information
Error Message
Defect Number
Enhancement Number

What is Deferred Logging for PASOE

Since OpenEdge 11.7.6, 12.1 a deferred logging feature for PASOE was introduced.
  1. The deferred logging feature allows an on-demand monitoring check against an online PAS instance, without affecting massive log files for the remainder of the session.
  2. The in-memory buffer is configured independently from MSAgent logging and automatically writes to the agent log file. In this way the deferred logging buffer can be used to act as a stack trace preceding crash events, or set it to record a separate log entry type from that configured in the file for the MSAgent log.
  3. When enabled, an in-memory buffer is opened to record information immediately preceding a multi-session agent crash or at any time it is called:
  • If a PAS for OpenEdge multi-session agent crashes with deferred logging enabled, the buffer memory is automatically printed to the abl-app-name.agent.datestamp.log file.
  • Additionally, a System Administrator or DevOps engineer can use a REST or JMX API to dump the in-memory buffer to the agent log file for detailed monitoring of a production system.

How is Deferred Logging for PASOE enabled ?

  • The Deferred Logging feature is configured in the {CATALINA_BASE}/conf/ file.
  • Three properties control how much in-memory logging information is stored. 
  • The deferred logging buffer is enabled only if all three properties are set to a non-zero value:
  1. defrdLogNumLines
  2. defrdLoggingLevel
  3. defrdLogEntryTypes

How to enable Deferred Logging for a PAS Server instance ?

As with any MSAgent configuration, the Deferred Logging properties can be configured directly in the file, in the OE Console UI, or using the oeprop command line, which the following example demonstrates.

1.  Use oeprop to specify the number of lines to be saved in the deferred logging buffer:
oeprop.{bat|sh} AppServer.SessMgr.defrdLogNumLines=1000

Two types of log entries can be written to the buffer:

  • Conditional entries which are based on logging-level and startup type.
  • Unconditional entries, include start-up and error events which use some lines specified with this property.
  • The default value is 0, which disables the feature.
2.  Use oeprop to specify the deferred logging buffer's logging level:
oeprop.{bat|sh} AppServer.SessMgr.defrdLoggingLevel=4
3.  Use oeprop to specify deferred logging buffer's log entry types:
oeprop.{bat|sh} AppServer.SessMgr.defrdLogEntryTypes=MSASSignals
  • The default is the 4GLTrace log entry type.
  • When this property is set to 0, no deferred log file buffer is written to the agent log file.

If the activity rate of the PASOE instance is very high volume it is recommended to have defrdLogNumLines be set higher than the example to capture as much as possible per agent for analysis of a crash.

There is a great video discussing this new deferred logging functionality in the Notes Section below.

References to Other Documentation:

Manage Progress Application Server (PAS) for OpenEdge, Monitor PAS for OpenEdge instances - Use deferred logging in PAS for OpenEdge
Last Modified Date11/13/2020 6:50 AM
Disclaimer The origins of the information on this site may be internal or external to Progress Software Corporation (“Progress”). Progress Software Corporation makes all reasonable efforts to verify this information. However, the information provided is for your information only. Progress Software Corporation makes no explicit or implied claims to the validity of this information.

Any sample code provided on this site is not supported under any Progress support program or service. The sample code is provided on an "AS IS" basis. Progress makes no warranties, express or implied, and disclaims all implied warranties including, without limitation, the implied warranties of merchantability or of fitness for a particular purpose. The entire risk arising out of the use or performance of the sample code is borne by the user. In no event shall Progress, its employees, or anyone else involved in the creation, production, or delivery of the code be liable for any damages whatsoever (including, without limitation, damages for loss of business profits, business interruption, loss of business information, or other pecuniary loss) arising out of the use of or inability to use the sample code, even if Progress has been advised of the possibility of such damages.