Salesforce

PASOE: Dynamically update a MSAgent's configuration properties

« Go Back

Information

 
TitlePASOE: Dynamically update a MSAgent's configuration properties
URL NameUnable-to-dynamically-update-the-Pacific-AppServer-agents-configuration
Article Number000185820
EnvironmentProduct: OpenEdge
Version: 11.7.2, 12.1 and later
OS: All supported platforms
Other: PASOE, MSA
Question/Problem Description
How to dynamically update PASOE AppServer Agents configuration changes to the openedge.properties file

When configuration properties are updated while the MSAgent is running it does not detect dynamic property updates

Does a PASOE MSA need to be restarted in order to use new configuration properties updated with oeprop when dynamic property updates is enabled: allowRuntimeUpdates=1

Will the current MSAgent remain running with old properties until it is is trimmed?
Will a new agent will pick up new openedge.properties Session Manager startup parameters
After restarting the webapp and trimming the MSA will a new agent start with modified agent startup parameters configured while the PAS instance was still running

Why do agents started before the configuration property change still use the configuration that was in place at the time that the PASOE instance was started but Session properties are changed. 

How to assure that new MSA Session Manager settings are not ignored for the agents started for dynamic configuration changes in {CATALINA_BASE}/conf/openedge.properties

How does the PASOE "Dynamic configuration update" feature work like the Classic AppServer
Steps to Reproduce
Clarifying Information
Error Message
Defect NumberEnhancement ADAS-18961
Enhancement Number
Cause
Resolution
OpenEdge 11.7.2, 12.1 and later introduced the Dynamic Configuration Update feature for PAS Multi-Session Agent online property changes

PAS instance as the combination of tomcat's Session Manager + MS-agents, MSAgents can be treated as separate entity and Session Manager is tightly coupled to instance which takes whole and sole responsibility to monitor and manage sessions. There is only ever one active Session Manager per instance which cannot be restarted itself, restarting a session manager means restarting the instance itself. Sessions themselves can be managed using rest-api's and oejmx requests. The Session Manager will detect dynamic property updates configured online when the openedge.properties file changes and update the current PAS Server's Session Manager properties. 

A property file watchdog runs in the MSAgent Session Manager to monitor for online openedge.properties file changes:
  • This "Dynamic configuration update" feature is enabled by setting: allowRuntimeUpdates=1 in the parent [AppServer] section of the openedge.properties 
  • allowRuntimeUpdates=1, must be pre-configured as enabled when the Server instance is originally started, it is not itself something that can be enabled online.  Otherwise, restart the PASOE instance to take advantage of the allowRuntimeUpdates feature.
  • The SessionManager peeks every 1 second using the file monitoring thread on the openedge.properties, to see if the instance's conf/openedge.properties file has been changed and reloads it.  The admin API allows the Session Manager to perform a dynamic property update on the Multi-Session Agent. Those changes are sent to the MSAgent(s) and where they are picked up on the next client request.  
  • Dynamic MSAgent Session property changes can be updated online, directly in the openedge.properties, using oeprop, through the OEE/OEM Console.
  • The only things that the allowRuntimeUpdates affects is the logging for the Session Manager and ABL sessions.
  1. Session Manager, will change immediately because these are in the SessionManager and are not locked by a an ABL session in process, and
  2. ABL Sessions, dynamic properties will change once they are done with their current requests the next time they called or when a new ABL session starts it picks up these new property values
  3. In OpenEdge 12, the PROPATH is also updated and MSA's can be specifically instructed to be refreshed online:  How to refresh AppServer r-code without restarting?  
 

Example:
After enabling allowRuntimeUpdates=1 this allows changes to agentLogEntryTypes, agentLoggingLevel will be dynamically applied as the new logging will be pushed to the currently running MSAgents, once the current ABL session completes a request and then notices the logging has changed. 

0.   Edit the {CATALINA_BASE}/conf/openedge.properties of the server instance as follows: 

1.   Enable allowRuntimeUpdates in "parent" [AppServer] Section:
        
[AppServer]
allowRuntimeUpdates=1

2.   Once enabled and the PAS instance started, modifications to Session Manager dynamic properties will be updated. The agentStartupParam will be in effect for the next MSA that starts. An IDLE MSA will trim and restart when required after refreshing agents with: tcman jmx refreshagents -appname 
        
[AppServer.SessMgr.oepas1]
agentLogEntryTypes=ASPlumbing,DB.Connects,DynObjects.*,4GLTrace,QryInfo
agentLoggingLevel=4
agentStartupParam=-T "${catalina.base}/temp" -s 256
 
NOTES
  1. In OpenEdge 11.7.5 and 11.7.6, additional MSA Session Manager configuration property defrdLogEntryTypes is needed, review the workaround section below.
  2. Prior to OpenEdge 11.7.2 and in version 12.0, the PASOE instance will need to be restarted to use changes to the MSAgent Session configuration to take effect. In these versions, the property file watchdog had not been implemented in the AppServer Session Manager to monitor for online changes in the openedge.properties file therefore the logging for session manager and ABL sessions configuration changes do not come into effect up until the PAS instance is restarted..
Workaround
For OpenEdge 11.7.5 and 11.7.6, additional MSA Session Manager configuration steps are necessary due to changes to logging for the deferred logging project. 

In addition to the {CATALINA_BASE}/conf/openedge.properties configuration changes described above where allowRuntimeUpdates is enabled:

1. In openedge.properties, under "AppServer.SessMgr" section, please add defrdLogEntryTypes= (sensitive case)as follow:
 
[AppServer.SessMgr]
    defrdLogEntryTypes=
  • In OpenEdge 11.7.5, this property has an empty value as shown above.
  • In OpenEdge 11.7.6, this property has an empty value, unless the Deferred Logging Feature introduced in this service pack is enabled.  Refer to Article:

2. Restart the PASOE instance for this change to the MSAgents Session Manager configuration to take effect.

3. The "Dynamic configuration update" feature, allowRuntimeUpdates=1 will work as expected when MSAgent properties are updated while the PASOE instance is running. 

Notes
References to Other Documentation:

Manage Progress Application Server (PAS) for OpenEdge > Monitor PAS for OpenEdge instances > Use deferred logging in PAS for OpenEdge
https://docs.progress.com/bundle/pas-for-openedge-management/page/Use-deferred-logging-in-PAS-for-OpenEdge.html  

Progress Articles:
 How to recycle a PASOE agent with OEJMX?  
 Can a UBroker or MSA detect property changes when the process is running?  
 Can PASOE agent logs be rolled over based on file size?     
 
Keyword Phrase
Last Modified Date8/17/2021 12:37 PM

Powered by