PASOE management scripts

Introduction

The oemanager app in a PASOE (Progress AppServer for OpenEdge) provides information about instance and the ability to manage a running PASOE instance. The oemanager webapp needs to be deployed in order to use the following scripts. Please refer to the OpenEdge documentation for details.

In Consultingwerk/Studio/bin you'll find the following scripts:

ScriptDescriptionMore information
scl-pasoe.cmdMain script and is used by all the following wrapper scripts
scl-pasoe-trim.cmdWrapper script that trims the agents.PASOE Management: trimming agents and agent sessions
scl-pasoe-query.cmdWrapper script that shows all information of the following scripts.
scl-pasoe-metrics.cmdWrapper script that shows the metrics.
scl-pasoe-agents.cmdWrapper script that shows information about the agents.
scl-pasoe-sessions.cmdWrapper script that shows information about the sessions.
scl-pasoe-clients.cmdWrapper script that shows information about the clients.
scl-pasoe-applist.cmdWrapper script that shows all applications.
scl-pasoe-trackablobjects.cmdWrapper script that shows all ABL trackable objects
scl-pasoe-agentrequests.cmdWrapper script that shows all Requests for a given Agent
scl-pasoe-agentsessions.cmdWrapper script that shows all Sessions for a given Agent

(The LINUX scripts equivalent are available too in Consultingwerk/Studio/bin)

The scripts support both http and https connections. The scripts will first try to establish a connection to the appserver using http, if that fails, the scripts will retry using https. There is no need to supply a parameter for a secure connection. 


It's recommended to add the Consultingwerk/Studio/bin directory to your PATH environment variable, e.g.:

PATH=%PATH%;c:\Work_STREAM\SmartComponentLibrary\Develop\ABL\Consultingwerk\Studio\bin

Usage

scl-pasoe-*.cmd -s Portnumber [ -h Hostname ]  [ -a Application ] [ -u Username ] [ -p Password ] [ -debug ]

-s is mandatory the other parameters are optional. If not supplied the default values used are -h=localhost, -a=root, -u=tomcat and -p=tomcat. The parameters can be supplied in any order, have to begin with the indicated letter and are not case-sensitive.

When -debug is added to the script's parameters, the script will display the PROPATH on startup.

Tracking ABL Objects

New Feature in OpenEdge 11.7.3

The tracking of ABL objects requires OpenEdge 11.7.3, more details on this capability can be found here: https://knowledgebase.progress.com/articles/Article/New-ABL-Objects-Tracking-REST-API-under-PASOE

scl-pasoe-trackableobjects.cmd has additional parameters, because the Appserver Agent PID needs to be specified as well as the tacking options [on|off|status|report]

Trackable Objects has to be explicitly turned on before usage. The status can be queried with -tracking status 

A report about all trackable ABL objects  is opened in the default browser  to display the ABL Trackable Objects information in Json format. 

When -tty is specified the console is used for output.

scl-pasoe-trackableobjects.cmd -s Portnumber [ -h Hostname ]  [ -a Application ] [ -u Username ] [ -p Password ] -agentpid AppserverAgentPID -tracking [on|off|status|report] [ -console ] 

Please take a look at https://knowledgebase.progress.com/articles/Article/New-ABL-Objects-Tracking-REST-API-under-PASOE for more information on ABL Object Tracking. 

Please note that the ABL Objects Tracking via REST API only works for appservers running on OpenEdge 11.7.3 and above!

Examples

Trim agents of a local PASOE running on port 1234, in application 'develop'. For more detail see PASOE Management: trimming agents and agent sessions .

scl-pasoe-trim.cmd -s 1234 -a develop


Show all available information of the 'root' application on the PASOE that's running on port 9876 on server with ipaddress 192.178.156.1. The oemanager username is 'admin' and password is 'welcome'.

scl-pasoe-query.cmd -h 192.178.156.1 -s 9876 -p welcome -u admin

Display Active PASOE Sessions.

scl-pasoe-sessions.cmd -s 9876 -a smartpas_stream

DLC:       C:\Progress\OPENED~3
OpenEdge Release 11.7.4 as of Wed Oct 10 19:02:14 EDT 2018

***************** SESSION(S) ********************
  url: http://localhost:8820/oemanager/applications/smartpas_stream/sessions

     adapterType:
           bound: no
    sessionState: RESERVED
       sessionID: 4KzM71tTTo2A3gbUX1tnbA
    requestState: READY
         agentID:
       requestID:
     sessionType: SESSION_FREE
   sessionPoolID: VeB4sTgESiy9edl9kSUzKQ
    ablSessionID:
   lastAccessStr: 2019-11-28T09:54:08.174+0000
   elapsedTimeMs: 5017
   agentConnInfo: ?

Display active Agents.

scl-pasoe-agents -s 9876 -a smartpas_stream

DLC:       C:\Progress\OpenEdge117_64
OpenEdge Release 11.7.5 as of Fri Jun  7 09:06:03 EDT 2019

***************** AGENT(S) **********************
  url: http://localhost:8820/oemanager/applications/smartpas_stream/agents

    agentId: lSRytGdJQXqXUGutQ7_cGg
        pid: 3708
      state: AVAILABLE

Display Agent Sessions.

proenv>scl-pasoe-agentsessions -s 9876 -agentpid 12492

DLC:       C:\Progress\OPENED~3
OpenEdge Release 11.7.4 as of Wed Oct 10 19:02:14 EDT 2018

***************** AGENT SESSIONS **********************

       url: http://localhost:9876/oemanager/applications/12492/agents/12492/sessions

                    AgentId: 12492
                  SessionId: 4
               SessionState: IDLE
                  StartTime: 2019-12-24T08:30:41.983
                    EndTime: ?
                   ThreadId: -1
               ConnectionId: ?
       SessionExternalState: 0
              SessionMemory: 51.9 MB (54435655 Bytes)

                    AgentId: 12492
                  SessionId: 7
               SessionState: IDLE
                  StartTime: 2019-12-24T08:30:41.983
                    EndTime: ?
                   ThreadId: -1
               ConnectionId: ?
       SessionExternalState: 0
              SessionMemory: 65.4 MB (68534838 Bytes)

Display Agent Requests.

proenv>scl-pasoe-agentrequests -s 9876 -agentpid 12492

DLC:       C:\Progress\OPENED~3
OpenEdge Release 11.7.4 as of Wed Oct 10 19:02:14 EDT 2018

********************** AGENTREQUESTS **********************
  url: http://localhost:9876/oemanager/applications/12492/agents/12492/requests

                    AgentId: 12492
            RequestProcName: Progress.Web.InternalWebHandler:HandleRequest
                  SessionId: 7
               ConnectionId: 2968
                  StartTime: 2019-12-24T08:34:26.029
                    EndTime: 2019-12-24T08:34:26.462
                 RequestNum: 0

Activate tracking for PID 20140

scl-pasoe-trackablobjects.cmd -s 9876 -agentpid 20140 -tracking on

Deactivate tracking for PID 20140

scl-pasoe-trackablobjects.cmd -s 9876 -agentpid 20140 -tracking off


Console report on used objects per session

scl-pasoe-trackablobjects.cmd -s 9876 -agentpid 20140 -tracking report -console
DLC:       C:\Progress\OpenEdge117
OpenEdge Release 11.7.3 as of Thu Apr 12 19:02:12 EDT 2018
======== SESSION 4 ========
Source                                             Object        Handle ID         Size         Line
____________________________________________________________________________________________________
RunleakCode.p                                      MEMPTR             1038         1024           52
RunleakCode2.p                                     MEMPTR             1037         1024           48
======== SESSION 7 ========
<No objects found for this session>


When -console is not supplied at the command line, the default browser is opened to display the ABL Trackable Objects information in Json format. 

How does it work

The script calls Consultingwerk/Studio/Pasoe/scl-pasoe.p which is a wrapper for class Consultingwerk.Studio.Pasoe.PasoeManager.


Error handling 


When a command is used which uses the -a parameter (application name) the available applications will be queried on the pasoe instance.

When for instance there was a problem with the deployment of the instance and no applications are deployed the script returns the error :

"No applications deployed on pasoe instance" 


When an application was supplied with -a but it's not found on the instance the following error is returned:

"Could not find application '<name>' in available applications: (With a list of available applications)"  


When the user name and password are not correct the following error message is returned:

"Not authorized, check user name and password" 


When the oemanager.war is not deployed (like on a production system) the following error message is returned:

"Please check if oemanager.war is deployed"  


When a command is executed which uses the -agentpid parameter to identify a process the process ID is verified before executing the command. 

If there are no agents available the script will return error:

"Could not find any agent" 


When the script could find agents but not the chosen one the script will return error:

"Could not find agent '<agentpid>' for application '<name>', available agents: (With a list of available agents)" 


In all other error situations the http response status code and reason are displayed. 


Please note that the scripts will first try to establish a connection using http, when that is not a success, the request is repeated using https.

This is shown in the error message:

Error[1] (0): Trying http connection:
Error[2] (0): Connection failure for host localhost port 4812 transport TCP. (9407)
Error[3] (0): http://localhost:4812/oemanager/applications
Error[4] (0): Http failed, trying https connection:
Error[5] (0): https://localhost:4812/oemanager/applications
Error[6] (9318): Secure Socket Layer (SSL) failure. error code 0: Unknown SSL error (9318)
Error[7] (9407): Connection failure for host localhost port 4812 transport TCP. (9407)


OpenEdge.net.pl

UNIX:

During initialization of the scripts there is a check if <DLC>/tty/netlib/OpenEdge.net.pl can be found, if this is not the case the script returns the following error:

"Cannot locate OpenEdge.Net.pl in '<DLC>/tty/netlib/OpenEdge.net.pl' please check your OpenEdge installation"  


Windows:

First it's checked if <DLC>/gui/netlib/OpenEdge.net.pl is available on the system. When that is not the case then it's checked if <DLC>/tty/netlib/OpenEdge.net.pl is available on the system. 

If both are not available on the system the following error is returned:

"Cannot locate OpenEdge.Net.pl in ''<DLC>/gui/netlib/OpenEdge.net.pl' or ''<DLC>/tty/netlib/OpenEdge.net.pl' please check your OpenEdge installation"


If either one is found on the system, this library will be used by the scl-pasoe scripts.

Related information