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.
- Session Manager, will change immediately because these are in the SessionManager and are not locked by a an ABL session in process, and
- 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
- 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
- In OpenEdge 11.7.5 and 11.7.6, additional MSA Session Manager configuration property defrdLogEntryTypes is needed, review the workaround section below.
- 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..