Salesforce

How to refresh AppServer r-code without restarting?

« Go Back

Information

 
TitleHow to refresh AppServer r-code without restarting?
URL NameHow-to-refresh-AppServer-r-code-without-restarting
Article Number000119058
EnvironmentProduct: OpenEdge
Version: 11.6 and later, 12.x
OS: All supported platforms
Other: Classic AppServer, Progress AppServer for OpenEdge, PASOE
Question/Problem Description
How to refresh AppServer r-code without restarting?
How to deploy code updates and avoid downtime with AppServers
Can new application code be run without restarting PASOE Agents?

Is it possible to refresh r-code for Classic AppServer or PASOE without restarting the whole instance?
How to update openge code in production PASOE without stopping and starting the whole instance?
When I copy modified .r code into a production PASOE instance, I don't see the changes run until I stop and restart PASOE.
Is there another way for PASOE to use the new code without stopping the entire instance?
PAS agent does not recognize new r-code put into webapps/root/WEB-INF/openedge
Steps to Reproduce
Clarifying Information
Error Message
Defect Number
Enhancement Number
Cause
Resolution

Progress AppServer for OpenEdge (PAS)

There are several ways to recognize new r-code depending the version:

1.  Stop and Restart the PASOE instance 2.  Stop all the MSAgents using the REST API or the oejmx script
Since OpenEdge 11.7.2 or higher, start a new agent before stopping the old ones with REST API or oejmx 3.  OpenEdge 12.0 introduced a PROPATH update option; updating the PROPATH will update all ABL sessions with new r-code.
  • It will refresh each ABL Session as that ABL Session is scheduled to handle a request (or as a request finishes).
  • If the ABL Session is bound to a client, it will not refresh the ABL Session until that ABL Session becomes unbound, thus it will not disrupt the client in its management of the ABL Session.
4.  Since OpenEdge 12.1 an option to refresh agents without requiring changes to the PROPATH to update new r-code.

There are a number of ways to execute the "refreshagents" command, including via JMX. For example,
tcman jmx refreshagents -appname <application name>

Refer to the following Documentation for more information about the PAS refreshagents feature and how to use it:
Progress Application Server for OpenEdge video collection 12.0 : Refresh agents on a PAS for OpenEdge Instance
https://docs.progress.com/bundle/openedge-video-collection/page/Refresh-agents-on-a-PAS-for-OpenEdge-Instance.html    
 
 

Classic AppServer (CAS)

OpenEdge 11.6 introduced the AppServer Server Refresh option where the Broker will trim and restart individual agents.
  • New agents will run new code added to the PROPATH.
  • Use the -refresh option with ASBMAN or WBTMAN.
It is important to note that if some of the agents are still performing a request when refresh is requested, the agent refresh will not happen until:
  1. Agents complete their requests, as they cannot be trimmed
  2. Until the agent's status is not known due to network issues.
Should there be issues with refreshing agents, consider enabling enhanced Broker logging to aid in identifying root cause:
brkrLogEntryTypes = UBroker.Basic, Ubroker.Debug, UBroker.ThreadPool
brkrLoggingLevel=4

Refer to the following Documentation for further information about the CAS agent refresh feature:
OpenEdge Application Server: Administration, "WebSpeed Administration : Configuring WebSpeed in Windows : Managing the WebSpeed Transaction Server : AppServer Refresh"
https://docs.progress.com/bundle/openedge-classic-appserver-administration-117/page/AppServer-Refresh.html   
 
Workaround
Notes
Keyword Phrase
Last Modified Date2/25/2022 2:12 PM

Powered by