It is advisable to upgrade to OpenEdge 12.4, 12.2,7 ,11.7.11 or later. A PASOE MSAgent fails to shutdown when a worker thread is hung on a read or write to the Session Manager or under network failure conditions:
Using PASOESTART with -halt then -abort:
The “
pasoestart” command offers the combination of options “
-halt -abort” to forcefully stop an instance which may not respond to a simple “-halt”.
These command options are available for 12.2 and is the preferred option.
It is preferable to stop a PAS instance from within its own /bin/ directory, using the tailored TCMAN utility and the “
pasoestart” command.
$ tcman[.sh] pasoestart -halt
In some cases a more forceful stop may be required, in which case the
-abort option can be used to perform a termination of any (agent) processes which may have refused to start. Depending on the OS, this effectively calls a “kill -9” on the agent process which can cause bad side effects with open DB connections. This should only be used as last resort. Due to the nature of this termination, it is encouraged to stop any running requests and shut down agents in a more graceful manner first. This will be described below using PROANT
$ tcman[.sh] pasoestart -halt -abort
Using PROANT:
Progress has provided a set of tools for monitoring and management of a running PAS instance. The tools run using
PROANT (from the DLC/bin/ directory) using options and parameters to identify the PAS instance to manage. The tools can be downloaded to the server where PAS is running:
To run PROANT commands, the oemanager and manager webapps be installed. These web apps are not installed in production PAS instances by default. Manually deploy those webapps for a Production PAS and follow instructions in
OEManager is not installed during tcman createWhen deployed in a production environment, the “oemanager” and “manager” WebApps need to be secured:
PROANT is provided with the Progress install. Start a “proenv” session and run proant from the folder where the build.xml is located or use the
–buildfile option to point to a specific build.xml file.
1. Restart PAS with a graceful terminate request to the MSA
In the case of hung agents, first instruct a soft restart of PAS to gracefully shutdown of MSAgents using the PROANT script’s “
clean” action, followed by a forced PAS shutdown/restart only when necessary.
i. First, the current status of the ABL Application will be retrieved and displayed,
ii. Next, it will perform a stack dump via API for each running agent,
iii. If enabled the available deferred log buffer is flushed to the agent log file,
iv. Remaing active HTTP (client) sessions are terminated
v. Finally, it sends a termination request to the agent and reports again on the status of the ABL Application.
$ proant clean -buildfile <build.xml location> -Dhost=<PAS server IP> -Dport=<PAS HTTP Port> -Dpas.root=<Parent folder for PAS instance> -Dinstance=<instance name> -Dablapp=<ABL App Name>
Example:
$ proant clean -buildfile C:\Projects\iceberg\PAS\Management\OEManager\ABL\build.xml
-Dhost=localhost -Dport=8870 -Dpas.root=C:\pas -Dinstance=amatpas -Dablapp=amatapp
If all fails, issue an OS-specific “kill” command to stop the agent. Remember that direct process termination can potentially cause bad side effects with open DB connections, particularly when connected shared-memory:
1. Find the process ID of PAS in the logs/catalina-<instance>.pid file or run:
$ tcman pasoestart -query
- The first PID in the list is the Tomcat process, while all others belong to MSAgents for the instance.
2. For each PID for an agent process, issue an OS-specific “kill” command to stop the agent and retry the -halt of the instance:
tcman[.sh] pasoestart -halt -abort