Openedge - Workshop Pasoe Tips and Tricks
Openedge - Workshop Pasoe Tips and Tricks
Tips and Tricks for Implementing the OpenEdge Application Server Page 1 of 36
© 2018Progress Software Corporation. All rights reserved.
Notices
© 2018 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.
These materials and all Progress® software products are copyrighted and all rights are reserved by Progress
Software Corporation. The information in these materials is subject to change without notice, and Progress
Software Corporation assumes no responsibility for any errors that may appear therein. The references in
these materials to specific platforms supported are subject to change.
Business Making Progress, Corticon, DataDirect (and design), DataDirect Cloud, DataDirect Connect,
DataDirect Connect64, DataDirect XML Converters, DataDirect XQuery, Deliver More Than Expected,
Easyl, Fathom, Icenium, Kendo UI, Making Software Work Together, OpenEdge, Powered by Progress,
Progress, Progress Control Tower, Progress RPM, Progress Software Business Making Progress, Progress
Software Developers Network, Rollbase, RulesCloud, RulesWorld, SequeLink, Sitefinity (and Design),
SpeedScript, Stylus Studio, TeamPulse, Telerik, (Telerik (and Design), Test Studio, and WebSpeed are
registered trademarks of Progress Software Corporation or one of its affiliates or subsidiaries in the U.S.
and/or other countries. AccelEvent, AppsAlive, AppServer, BravePoint, BusinessEdge, DataDirect Spy,
DataDirect SupportLink, , Future Proof, High Performance Integration, Modulus, NativeScript, OpenAccess,
Pacific, ProDataSet, Progress Arcade, Progress Pacific, Progress Profiles, Progress Results, Progress RFID,
Progress Software, ProVision, PSE Pro, SectorAlliance, Sitefinity, SmartBrowser, SmartComponent,
SmartDataBrowser, SmartDataObjects, SmartDataView, SmartDialog, SmartFolder, SmartFrame,
SmartObjects, SmartPanel, SmartQuery, SmartViewer, SmartWindow, WebClient, and Who Makes Progress
are trademarks or service marks of Progress Software Corporation and/or its subsidiaries or affiliates in the
U.S. and other countries. Java is a registered trademark of Oracle and/or its affiliates. Any other marks
contained herein may be trademarks of their respective owners.
Please refer to the Release Notes applicable to the particular Progress product release for any third-party
acknowledgements required to be provided in the documentation associated with the Progress product.
The Release Notes can be found in the OpenEdge installation directory and online at:
https://community.progress.com/technicalusers/w/openedgegeneral/1329.openedge-product-
documentation-overview.aspx.
For the latest documentation updates see OpenEdge Product Documentation on Progress Communities:
(https://community.progress.com/technicalusers/w/openedgegeneral/
1329.openedge-product-documentation-overview.aspx).
May 2018
Tips and Tricks for Implementing the OpenEdge Application Server Page 2 of 36
© 2018Progress Software Corporation. All rights reserved.
Table of Contents
Tips and Tricks for Implementing the OpenEdge Application Server Page 3 of 36
© 2018Progress Software Corporation. All rights reserved.
Tips and Tricks for Implementing the
OpenEdge Application Server
LAB 1
Tips and Tricks for Implementing the OpenEdge Application Server Page 4 of 36
© 2018Progress Software Corporation. All rights reserved.
Understanding PAS for OpenEdge
Overview
Some daily administration tasks for Progress Application Server for OpenEdge
(PAS for OpenEdge).
• Understand using OpenEdge Explorer/Management
• Understand using “tcman” command line interface
• Understand msagent connections in shared memory database connection
• Finding the running processes
• Using a browser to verify PAS for OpenEdge is running
• Using a browser to get metrics
2. Login.
Username: admin
Password: 4admin
Tips and Tricks for Implementing the OpenEdge Application Server Page 5 of 36
© 2018Progress Software Corporation. All rights reserved.
3. Select Tab “Resources” and then select “Go to Resources”.
4. Scroll down to Database “sports2000” and click on the not running icon.
It may take a minute to start and the Status will not change until you refresh the
table
NOTICE: selecting the row and not the link gives you Resource Summary and
quick Start and Stop functions
Tips and Tricks for Implementing the OpenEdge Application Server Page 6 of 36
© 2018Progress Software Corporation. All rights reserved.
6. Scroll down in the resources and start “oepas1” clicking on the oepas1 link.
NOTICE: selecting the link directs you to the detailed Resources home page
8. Double click on the PROENV icon on the desktop to access the command line
utilities.
proenv> cd
proenv>cd
C:\OpenEdge\WRK
proenv> cd db
proenv>cd db
proenv>cd
C:\OpenEdge\WRK\db
Tips and Tricks for Implementing the OpenEdge Application Server Page 7 of 36
© 2018Progress Software Corporation. All rights reserved.
proenv> promon sports2000
proenv>promon sports2000
OpenEdge Release 11.7.3 as of Fri Apr 27 17:40:05 EDT
2018
Database: C:\OpenEdge\WRK\db\sports2000
1. User Control
2. Locking and Waiting Statistics
3. Block Access
4. Record Locking Table
5. Activity
6. Shared Resources
7. Database Status
8. Shut Down Database
9. Currently Connected Tenants
M. Modify Defaults
Q. Quit
Tips and Tricks for Implementing the OpenEdge Application Server Page 8 of 36
© 2018Progress Software Corporation. All rights reserved.
10. Enter “1” for User Control.
Type “q” and then “q” again to quit and exit promon.
proenv> cd %WRKDIR%\oepas1
proenv> bin\tcman.bat env
Tips and Tricks for Implementing the OpenEdge Application Server Page 9 of 36
© 2018Progress Software Corporation. All rights reserved.
proenv>bin\tcman.bat env
catalina home: C:\Progress\OpenEdge\servers\pasoe
catalina base: C:\OpenEdge\WRK\oepas1
catalina tmpdir C:\OpenEdge\WRK\oepas1\temp
catalina pid: C:\OpenEdge\WRK\oepas1\logs\catalina-oepas1.pid
java home: C:\Progress\OpenEdge\jdk
jre home:
manager http port: 8810
manager https port:8811
manager shut port: 8812
manager URL: http://localhost:8810/manager
config type: instance
config alias: oepas1
config parent: C:/Progress/OpenEdge/servers/pasoe
server running: 1
instance tracking: True
instance file:
C:\Progress\OpenEdge\servers\pasoe\conf\instances.windows
server process-id: 4944
window title: PAS--55920
security model: developer
service: false
proenv> cd %WRKDIR%\oepas1
proenv> bin\tcman.bat plist -f
proenv>bin\tcman.bat plist -f
4944 +3284
+3660
++4816
Tips and Tricks for Implementing the OpenEdge Application Server Page 10 of 36
© 2018Progress Software Corporation. All rights reserved.
14. Verify PAS for OpenEdge is running in a browser.
Username: tomcat
Password: tomcat
http://localhost:8810
This is the home page for a running development licensed PAS for OpenEdge.
Tips and Tricks for Implementing the OpenEdge Application Server Page 11 of 36
© 2018Progress Software Corporation. All rights reserved.
http://localhost:8810/oemanager/applications/oepas1/metrics
Tips and Tricks for Implementing the OpenEdge Application Server Page 12 of 36
© 2018Progress Software Corporation. All rights reserved.
Tips and Tricks for Implementing the
OpenEdge Application Server
LAB 2
Tips and Tricks for Implementing the OpenEdge Application Server Page 13 of 36
© 2018Progress Software Corporation. All rights reserved.
Configure PAS for OpenEdge for your application
Overview
This section covers steps to configure your PAS for OpenEdge application based
on your Classic AppServer information.
Manually configure your PAS for OpenEdge based on a sample Broker query and
its Broker settings in the ubroker.properties file.
[UBroker.WS.MyASBroker]
appserviceNameList=MyASBroker
controllingNameServer=NS1
maxSrvrInstance=80
minSrvrInstance=3
portNumber=19100
Tips and Tricks for Implementing the OpenEdge Application Server Page 14 of 36
© 2018Progress Software Corporation. All rights reserved.
3. Fill in the openedge.properties values based on the sample values provided
in steps #1 and #2.
[AppServer.SessMgr.myoepas]
maxABLSessionsPerAgent=__________
maxAgents=__________
maxConnectionsPerAgent=__________
numInitialAgents=__________
minAgents=__________
agentStartLimit=__________
[AppServer.Agent.myoepas]
numInitialSessions=__________
proenv> cd %WRKDIR%
proenv>paspropconv.bat --ubrokerPropsFile
%DLC%\properties\ubroker.properties --ubrokerName
UBroker.AS.MyASBroker --pasoeAppName mypasoe
proenv>paspropconv.bat --ubrokerPropsFile
%DLC%\properties\ubroker.properties --ubrokerName
UBroker.AS.MyASBroker --pasoeAppName mypasoe
Tips and Tricks for Implementing the OpenEdge Application Server Page 15 of 36
© 2018Progress Software Corporation. All rights reserved.
6. Expected output
a. mypasoe.MyASBroker.oemerge – merge file for PAS for
OpenEdge
b. MyASBroker_setenv.bat – environment file for Windows
c. MyASBroker_setenv.sh – environment file for UNIX
d. paspropconv.log – log file for property conversion
proenv>dir *MyASBroker*
Volume in drive C has no label.
Volume Serial Number is AAD5-F33A
Directory of C:\OpenEdge\WRK
7. Create a new PAS for OpenEdge instance and merge the MyASBroker
configuration.
a. We will use “pasman” this time, just to shake things up!
b. We will use the -v (verbose) command because its more
interesting.
c. And the -f will install the manager.war and oemanager.war.
Tips and Tricks for Implementing the OpenEdge Application Server Page 16 of 36
© 2018Progress Software Corporation. All rights reserved.
proenv>pasman create -v -f -p 19100 -P 19101 -s 19102 mypasoe
info: TCManager 2.1.4
info: executing create Tomcat instance command
info: creating new server instance at: C:\OpenEdge\117\WRK\mypasoe
info: creating instance directory structure: C:\OpenEdge\117\WRK\mypasoe
info: populating CATALINA_HOME files into instance directory structure:
C:\OpenEdge\117\WRK\mypasoe
info: copying CATALINA_HOME ROOT application into instance directory structure
info: copying CATALINA_HOME web application archives into instance directory structure
info: copying CATALINA_HOME conf files into instance directory structure
info: copying CATALINA_HOME bin files into instance directory structure
info: copying CATALINA_HOME bin\*_tlr tailoring files into instance directory structure
info: copying CATALINA_HOME bin\*_setenv files into instance directory structure
info: copying CATALINA_HOME bin\*_startup files into instance directory structure
info: copying CATALINA_HOME bin\*_shutdown files into instance directory structure
info: executing CATALINA_HOME product specific scripts
info: executing oe_manager create
info: executing create instance command
info: verifying source PASOE bin files
info: copying PASOE bin files into directory structure
info: cpyfile: C:\OpenEdge\WRK\mypasoe\bin\deployREST.sh
info: cpyfile: C:\OpenEdge\WRK\mypasoe\bin\deploySOAP.sh
info: cpyfile: C:\OpenEdge\WRK\mypasoe\bin\oeprop.sh
info: cpyfile: C:\OpenEdge\WRK\mypasoe\bin\deploysvc.sh
info: cpyfile: C:\OpenEdge\WRK\mypasoe\bin\oeabl_tlr.sh
info: cpyfile: C:\OpenEdge\WRK\mypasoe\bin\wscgi_tlr.sh
info: cpyfile: C:\OpenEdge\WRK\mypasoe\bin\oeproxy_tlr.sh
info: cpyfile: C:\OpenEdge\WRK\mypasoe\bin\oests_tlr.sh
info: cpyfile: C:\OpenEdge\WRK\mypasoe\bin\oedbg_tlr.sh
info: cpyfile: C:\OpenEdge\WRK\mypasoe\bin\oedbg_tlr.sh
info: cpyfile: C:\OpenEdge\WRK\mypasoe\bin\oejmx.sh
info: cpyfile: C:\OpenEdge\WRK\mypasoe\bin\oewatcher.sh
info: updating CATALINA_BASE in instance directory tlr files
info: updating CATALINA_BASE in C:\OpenEdge\WRK\mypasoe\bin\oeabl_tlr.bat to
C:\OpenEdge\WRK\mypasoe
info: updating CATALINA_BASE in C:\OpenEdge\WRK\mypasoe\bin\wscgi_tlr.bat to
C:\OpenEdge\WRK\mypasoe
info: updating CATALINA_BASE in C:\OpenEdge\WRK\mypasoe\bin\oeproxy_tlr.bat to
C:\OpenEdge\WRK\mypasoe
info: updating CATALINA_BASE in C:\OpenEdge\WRK\mypasoe\bin\oests_tlr.bat to
C:\OpenEdge\WRK\mypasoe
info: updating CATALINA_BASE in C:\OpenEdge\WRK\mypasoe\bin\oedbg_tlr.bat to
C:\OpenEdge\WRK\mypasoe
info: copying CATALINA_HOME openedge folders into instance directory structure
info: running oeabl tailoring script
info: begin tailoring ABL for the Progress Application Server
info: creating instance with application name mypasoe
info: Creating context.xml for context name ROOT
info: adding properties to openedge.properties for ABL instance mypasoe
info: setting application to mypasoe in openedge.properties
info: adding ROOT to webapps in openedge.properties
info: security model is developer
info: enabling server status pages for development server
info: setting intitial sessions to 2 for development server
info: enabling APSV transport for development server
info: enabling SOAP transport for development server
info: enabling REST transport for development server
info: enabling WEB transport for development server
info: setting default WEB handler to OpenEdge.Web.CompatibilityHandler
info: updating PROPATH with webapp directory
info: updated PROPATH to ${CATALINA_BASE}/webapps/ROOT/WEB-
INF/openedge,${CATALINA_BASE}/openedge,${DLC}/tty,${DLC}/tty/netlib/OpenEdge.Net.pl
info: creating welcome page
info: using static/ServerStatus.html as welcome page static/index.html
info: creating external command for oeprop.bat
info:
Tips and created
Tricks forexternal
Implementing command oepropCmd.bat
the OpenEdge Application Server Page 17 of 36
info: creating
© 2018Progress external
Software Corporation. All rightscommand
reserved. for deploysvc.bat
info: created external command deploysvcCmd.bat
info: Created folder C:\OpenEdge\WRK\mypasoe\ablapps\mypasoe\conf
info: Copying oeabl security properties file to
8. Change directory to mypasoe and merge the OEMERGE file.
proenv>cd mypasoe
proenv>bin\oeprop.bat -f
%WRKDIR%\mypasoe.MyASBroker.oemerge
11. EXTRA CREDIT – start mypasoe using “tcman start” and verify it is
running.
Hints: to verify tcman started: “tcman env”, “tcman plist”, use a browser
and hit the home page.
Tips and Tricks for Implementing the OpenEdge Application Server Page 18 of 36
© 2018Progress Software Corporation. All rights reserved.
Tips and Tricks for Implementing the
OpenEdge Application Server
LAB 3
Tips and Tricks for Implementing the OpenEdge Application Server Page 19 of 36
© 2018Progress Software Corporation. All rights reserved.
Monitoring your production PAS for OpenEdge
Overview
Review of the different ways to monitor your PAS for OpenEdge instance.
• OE Explorer and OE Management
• oemanager REST API
• oejmx script
1. Open a proenv command prompt from the icon on the Windows desktop
display of your workshop machine.
proenv> cd C:\OpenEdge\WRK\monpasoe
proenv> bin\tcman.bat start
proenv>bin\tcman.bat start
Using CATALINA_BASE: "C:\OpenEdge\WRK\monpasoe"
Using CATALINA_HOME: "C:\Progress\OpenEdge\servers\pasoe"
Using CATALINA_TMPDIR: "C:\OpenEdge\WRK\monpasoe\temp"
Using JRE_HOME: "C:\Progress\OpenEdge\jdk"
Using CLASSPATH:
";C:\Progress\OpenEdge\servers\pasoe\bin\bootstrap.jar;C:\Progress\OpenEdge\servers\pa
soe\bin\tomcat-juli.jar;C:\Progress\OpenEdge\servers\pasoe\bin\tomcat-juli.jar"
PAS started with process IDs: 5800 6016
proenv> cd C:\OpenEdge\WRK
proenv> prowin -b -p clientLoop.p
Tips and Tricks for Implementing the OpenEdge Application Server Page 20 of 36
© 2018Progress Software Corporation. All rights reserved.
5. Start the Chrome browser and hit the home page for monpasoe.
http://localhost:20000
7. This will bring to you the Tomcat Manager application (can also get there
with http://hostname:port/manager). Select the “Server Status” link.
Tips and Tricks for Implementing the OpenEdge Application Server Page 21 of 36
© 2018Progress Software Corporation. All rights reserved.
8. Notice the memory information and current threads.
10. Login.
Username: admin
Password: 4admin
Tips and Tricks for Implementing the OpenEdge Application Server Page 22 of 36
© 2018Progress Software Corporation. All rights reserved.
11. Select the “Resources” tab and then select “Go to Resources”.
12. Scroll down in the resources and click on the “monpasoe” link.
Tips and Tricks for Implementing the OpenEdge Application Server Page 23 of 36
© 2018Progress Software Corporation. All rights reserved.
13. Select the “monpasoe” from the ABL Applications section.
NOTICE: the graphs on the bottom and the RESET STATISTICS button.
Tips and Tricks for Implementing the OpenEdge Application Server Page 24 of 36
© 2018Progress Software Corporation. All rights reserved.
17. Click the back button and then select the “Agents” link.
Tips and Tricks for Implementing the OpenEdge Application Server Page 25 of 36
© 2018Progress Software Corporation. All rights reserved.
Monitoring with oemanager REST APIs
1. Now open a new Chrome tab in the browser to use the oemanager REST APIs.
http://localhost:20000/oemanager/applications/monpasoe/metrics
{
"result": {
"requests": 100,
"writeErrors": 0,
"reads": 400,
"concurrentConnectedClients": 0,
"maxQueueDepth": 0,
"writes": 400,
"maxConcurrentClients": 1,
"readErrors": 0,
"reserveConnectionTimeouts": 0,
"timesQueued": 0,
"avgQueueDepth": 0,
"type": "OE_BROKER",
"startTime": "2018-05-26T17:33:25.910Z",
"accessTime": "2018-05-26T18:51:57.682Z",
"lastResetTime": "2018-05-26T18:41:53.481Z"
},
"operation": "GET SESSION-MGR METRICS",
"outcome": "SUCCESS",
"errmsg": "",
"versionStr": "v11.7.3 ( 2018-04-27 )",
"versionNo": 1
}
Tips and Tricks for Implementing the OpenEdge Application Server Page 26 of 36
© 2018Progress Software Corporation. All rights reserved.
3. Now get the “Agent” PID or “agentId” (save PID for later, you will need it).
http://localhost:20000/oemanager/applications/monpasoe/agents
{
"result": {
"agents": [
{
"agentId": "lw5QhUaaRuSgQ1SMQzCkLg",
.
"pid": "5220",
"state": "AVAILABLE"
}
]
},
"operation": "GET AGENTS",
"outcome": "SUCCESS",
"errmsg": "","versionStr": "v11.7.3 ( 2018-04-27 )",
"versionNo": 1
}
4. Now get requests using the agentId or pid value (use your PID from #3).
http://localhost:20000/oemanager/applications/monpasoe/agents/PID/sessions
Tips and Tricks for Implementing the OpenEdge Application Server Page 27 of 36
© 2018Progress Software Corporation. All rights reserved.
5. Now get the agent’s requests.
http://localhost:20000/oemanager/applications/monpasoe/agents/PID/requests
{
"result": {
"AgentRequest": [
{
"RequestProcName": "serverLoop.p",
"SessionId": 7,
"ConnectionId": 1244,
"StartTime": "2018-05-26T17:35:28.928",
"EndTime": "2018-05-26T17:35:28.933",
"RequestNum": 0
},
{
"RequestProcName": "serverLoop.p",
"SessionId": 7,
"ConnectionId": 1244,
"StartTime": "2018-05-26T17:35:29.028",
"EndTime": "2018-05-26T17:35:29.032",
"RequestNum": 1
},
…
{
"RequestProcName": "serverLoop.p",
"SessionId": 7,
"ConnectionId": 1244,
"StartTime": "2018-05-26T17:35:39.028",
"EndTime": "2018-05-26T17:35:39.032",
"RequestNum": 100
}
]
},
"operation": "",
"errmsg": "",
"outcome": "SUCCESS",
"versionStr": "v11.7.3 ( 2018-04-27 )",
"versionNo": 1
}
Tips and Tricks for Implementing the OpenEdge Application Server Page 28 of 36
© 2018Progress Software Corporation. All rights reserved.
6. Now get a stack trace from a session (session 7 in the example below).
http://localhost:20000/oemanager/applications/monpasoe/agents/PID/sessions/7/stacks
{
"result": {
"ABLStacks": [
{
"AgentSessionId": 7,
"StartupParams": "-pf C:\\Progress\\OpenEdge\\startup.pf,-cpinternal ISO8859-1,-cpstream
ISO8859-1,-cpcoll Basic,-cpcase Basic,-d mdy,-numsep 44,-numdec 46,(end .pf),-logginglevel 2,-
logfile C:\\OpenEdge\\WRK\\monpasoe/logs/monpasoe.agent.log,-uburl
AppServerDC://0.0.0.0:62725/,-logname monpasoe,-logentrytypes ASPlumbing,DB.Connects,-
ubpropfile C:\\OpenEdge\\WRK\\monpasoe\\conf\\openedge.properties,-ASID 1,-ipver IPv4,-
sectok XXXXXXXXXXXXXXXXXXXXXX,-T C:\\OpenEdge\\WRK\\monpasoe/temp,-db
C:\\OpenEdge\\WRK\\monpasoe\\work\\mondb",
"Propath": "C:\\OpenEdge\\WRK\\monpasoe\\webapps\\ROOT\\WEB-
INF\\openedge,C:\\OpenEdge\\WRK\\monpasoe\\openedge,C:\\Progress\\OpenEdge\\tty,C:\\Progre
ss\\OpenEdge\\tty\\ablunit.pl,C:\\Progress\\OpenEdge\\tty\\adecomm.pl,C:\\Progress\\OpenEdge\\tt
y\\adecomp.pl,C:\\Progress\\OpenEdge\\tty\\adeedit.pl,C:\\Progress\\OpenEdge\\tty\\adeshar.pl,C:\\
Progress\\OpenEdge\\tty\\dataadmin.pl,C:\\Progress\\OpenEdge\\tty\\OpenEdge.BusinessLogic.pl,
C:\\Progress\\OpenEdge\\tty\\OpenEdge.Core.pl,C:\\Progress\\OpenEdge\\tty\\OpenEdge.ServerAd
min.pl,C:\\Progress\\OpenEdge\\tty\\prodict.pl,C:\\Progress\\OpenEdge\\tty\\netlib\\OpenEdge.Net.
pl,C:\\Progress\\OpenEdge,C:\\Progress\\OpenEdge\\bin",
"Databases": [
{
"LDBNAME": "mondb",
"DBTYPE": "PROGRESS",
"DBNAME": "C:\\OpenEdge\\WRK\\monpasoe\\work\\mondb"
}
],
"PersProcs": [],
"OO4GLObjs": [],
"Callstack": [],
"Status": "Idle"
}
]
},
"operation": "GET SESSION RUNTIME STACKS",
"outcome": "SUCCESS",
"errmsg": "",
"versionStr": "v11.7.3 ( 2018-04-27 )",
"versionNo": 1
}
Tips and Tricks for Implementing the OpenEdge Application Server Page 29 of 36
© 2018Progress Software Corporation. All rights reserved.
Monitoring your production PAS for OpenEdge with oejmx
1. The oejmx utility is self-documented, open the oejmx.bat in the notepad ++.
C:\OpenEdge\WRK\monpasoe\bin\oejmx.bat
proenv> cd C:\OpenEdge\WRK\monpasoe
proenv> bin\oejmx.bat -Q bin\jmxqueries\default.qry -o
work\myoejmx.out
NOTE: in real life, you may need to make several calls to get the information
you want. You may need to make a call to get the agentId or PID, then
modify the file_name.qry with that value, then run to get the agent data.
Section summary
There are several ways to monitor PAS for OpenEdge.
Tips and Tricks for Implementing the OpenEdge Application Server Page 30 of 36
© 2018Progress Software Corporation. All rights reserved.
Tips and Tricks for Implementing the
OpenEdge Application Server
LAB 4
Tips and Tricks for Implementing the OpenEdge Application Server Page 31 of 36
© 2018Progress Software Corporation. All rights reserved.
Looking for Memory Leaks
Overview
This section covers looking for dynamic objects in ABL code and reclaiming
system memory.
http://localhost:20000/oemanager/applications/monpasoe/agents
http://localhost:20000/oemanager/applications/monpasoe/agents/PID/tra
ckABLObjects/true
http://localhost:20000/oemanager/applications/monpasoe/agents/872/tra
ckingABLObjects
proenv>cd %WRKDIR%
proenv>prowin -b -p call-leak-code.p
Tips and Tricks for Implementing the OpenEdge Application Server Page 32 of 36
© 2018Progress Software Corporation. All rights reserved.
5. Get the ABLObjectReport.
http://localhost:20000/oemanager/applications/monpasoe/agents/PID/get
ABLObjectsReport
6. Manually add a new agent before stopping the current one. Open Postman
by double-clicking the Postman Icon.
Tips and Tricks for Implementing the OpenEdge Application Server Page 33 of 36
© 2018Progress Software Corporation. All rights reserved.
10. Get the agent PID from the returned JSON (should be the same as running
it from the browser).
11. Select the right most tab, should show a POST request to add an Agent.
This will add a new agent before removing the agent currently in use.
12. Hit the SEND button, notice the JSON reply with a new agent PID.
Tips and Tricks for Implementing the OpenEdge Application Server Page 34 of 36
© 2018Progress Software Corporation. All rights reserved.
13. Now run the GET agents (left most tab) again and notice 2 agents.
14. Now select the middle tab, a DELETE request to remove an agent.
This will terminate the old agent. The waitToFinish is 10 seconds and
waitAfterStop is also 10 seconds, so the agent will terminate in about 20
seconds.
Tips and Tricks for Implementing the OpenEdge Application Server Page 35 of 36
© 2018Progress Software Corporation. All rights reserved.
15. Change the agent PID to the one you got in the first GET request and hit
SEND.
16. Select the agents GET request tab again, hit SEND, and notice the agent is
gone.
Section summary
With the ability to track ABL Objects you can find memory leaks in production
and with the ability to manually add and remove agents you can keep your
production system up and running.
Tips and Tricks for Implementing the OpenEdge Application Server Page 36 of 36
© 2018Progress Software Corporation. All rights reserved.