0% found this document useful (0 votes)
99 views36 pages

Openedge - Workshop Pasoe Tips and Tricks

Uploaded by

gymfisio
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
99 views36 pages

Openedge - Workshop Pasoe Tips and Tricks

Uploaded by

gymfisio
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 36

Workshop: Tips and Tricks for

Implementing the OpenEdge Application


Server

Version 1.1 May 30, 2018

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

Last updated with new content: Release 11.7.3

Tips and Tricks for Implementing the OpenEdge Application Server Page 2 of 36
© 2018Progress Software Corporation. All rights reserved.
Table of Contents

UNDERSTANDING PAS FOR OPENEDGE ................................................................................................ 5


CONFIGURE PAS FOR OPENEDGE FOR YOUR APPLICATION ................................................................ 14
MONITORING YOUR PRODUCTION PAS FOR OPENEDGE ..................................................................... 20
LOOKING FOR MEMORY LEAKS........................................................................................................... 32

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

Starting PAS for OpenEdge with OpenEdge Explorer/Management

1. To start OpenEdge Explorer/Management double click on the desktop icon.

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.

5. Click the Start button to start the database.

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

7. Click the start button.

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

9. Start “promon” to view database user connections.

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

OpenEdge MONITOR Release 11

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

R&D. Advanced options


T. 2PC Transactions Control
L. Resolve 2PC Limbo Transactions
C. 2PC Coordinator Information

J. Resolve JTA Transactions

M. Modify Defaults
Q. Quit

Enter your selection:

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.

Enter your selection: 1

1. Display all entries


2. Match a user number
3. Match a range of user numbers

5. Change list sorting


6. Match a tenant or tenants

Q. Return to main menu

Enter your selection:

11. Enter “1” for Display all entries.

NOTICE: The PASA user, this is the Agents administration thread


The PASN users, these are the ABL sessions started initially

Type “q” and then “q” again to quit and exit promon.

12. Run “tcman env” to see environment and status of “oepas1”.

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

13. Run “tcman plist” to see processes for “oepas1”.

proenv> cd %WRKDIR%\oepas1
proenv> bin\tcman.bat plist -f

proenv>bin\tcman.bat plist -f
4944 +3284
+3660
++4816

4944 is the Tomcat process ID


+3284 is the conhost.exe from windows process associated with Tomcat
+3660 is the msagent process ID
++4816 is the conhost.exe from windows process associated with msagent

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

NOTE: be sure to change this password in your production environments!

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

This is like the Classic AppServer’s “asbman -query” command.

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.

Use paspropconv to configure your PAS for OpenEdge.

Manually configure your PAS for OpenEdge

Review a sample asbman -query and sample ubroker.properties provided below to


configure PAS for OpenEdge properties used by your new instance in step #3.

1. This is a sample asbman -query output (don’t run the command).

What would be the most useful numbers for setting you


maxConnectionsPerAgent?

Broker Name : MyASBroker


Operating Mode : Stateless
Broker Status : ACTIVE
Broker Port : 13500
Broker PID : 42745
Active Agents : 10
Busy Agents : 1
Locked Agents : 0
Available Agents : 9
Active Clients (now, peak) : (0, 84)
Client Queue Depth (cur, max) : (0, 80)
Total Requests : 6396050
Rq Wait (max, avg) : (7620 ms, 3 ms)
Rq Duration (max, avg) : (7620 ms, 3 ms)

2. This is a sample section of a ubroker.properties for MyASBroker.

[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=__________

NOTE: the psc.as.executor.maxthreads=300 should not need to be changed,


but remember to change it if you have more than 300 concurrent client
connections.

4. Use the new “paspropconv” utility to convert a Classic AppServer


configuration to PAS for OpenEdge.

5. Run “paspropconv” on the ubroker.properties to get a merge file.

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

05/20/2018 01:10 AM 21 MyASBroker_setenv.bat


05/20/2018 01:10 AM 35 MyASBroker_setenv.sh
05/20/2018 01:10 AM 15,308 mypasoe.MyASBroker.oemerge
3 File(s) 15,364 bytes
0 Dir(s) 60,294,086,656 bytes free

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.

proenv>pasman create -v -f -p 19100 -P 19101 -s 19102 mypasoe

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

9. Open notepad++ and view the


C:\OpenEdge\WRK\mypasoe\conf\openedge.properties.

10. Do your manual changes match the changes done by “paspropconv”?

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

Monitoring your production PAS for OpenEdge with OE Explorer

1. Open a proenv command prompt from the icon on the Windows desktop
display of your workshop machine.

2. Start the “monpasoe” instance. The database monpasoe connects to is auto-


started through the AdminServer.

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

3. Verify monpasoe is up and running (remember the hints in last lab?).

4. Run “clientLoop.p” to make 100 requests to “monpasoe”.

proenv> cd C:\OpenEdge\WRK
proenv> prowin -b -p clientLoop.p

This will run 100 requests to “monpasoe”.

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

6. Select the “Manage Web Applications” button.

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.

9. Start Management Console by double-clicking the icon on the desktop.

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.

14. Select the “Application Metrics”.

15. Be sure to notice the Requests amount (should be 100).

16. Scroll down and view the whole page.

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.

18. Select “Stack” trace link and view.

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.

2. Use the oemanager REST API (username/password = tomcat/tomcat).

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

2. Use the default query file for this example.

proenv> cd C:\OpenEdge\WRK\monpasoe
proenv> bin\oejmx.bat -Q bin\jmxqueries\default.qry -o
work\myoejmx.out

3. Open the C:\OpenEdge\WRK\monpasoe\work\myoejmx.out with notepad ++.

Query: Line 1  Tomcat Heap Memory Usage


Query: Line 2  Tomcat Total Memory Usage
Query: Line 3  Gets agents
Query: Line 4  Gets metrics for the REST transport
Query: Line 8  Lists the states of all the transports

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.

The point is 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.

Running ABLObject Tracking

Use “monpasoe” to gather leaking memory objects.

1. Get your agent PID (in case you forgot it).

http://localhost:20000/oemanager/applications/monpasoe/agents

2. Turn on ABLObject tracking (use the PID from #1).

http://localhost:20000/oemanager/applications/monpasoe/agents/PID/tra
ckABLObjects/true

3. Verify that we are tracking ABLObjects.

http://localhost:20000/oemanager/applications/monpasoe/agents/872/tra
ckingABLObjects

4. Run code that leaks mem-pointers and handles.

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.

7. Close the pop-up window.


8. Then select the left most tab, should show a GET request for agents.

9. Hit the SEND button.

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.

You might also like