Feedback
Did this article resolve your question/issue?

   

Article

PASOE: Inconsistent response times on calls

« Go Back

Information

 
TitlePASOE: Inconsistent response times on calls
URL NamePASOE-Inconsistent-response-times-on-calls
Article Number000140599
EnvironmentProduct: OpenEdge
Version: 11.7.2, 11.7.3
OS: AWS Linux (CentOS)
Other: PASOE (Pacific Application Server for OpenEdge)
Question/Problem Description
PASOE requests long time to complete.
Inconsistent response times on calls.
Average time is <= 7 seconds,  requests take up to 30 seconds. 
For each 10 requests longer requests can be reproduced at least 4 times when there is no load on the system.
 
Steps to Reproduce
Clarifying Information
Error Message
Defect Number
Enhancement Number
Cause
Resolution
Troubleshooting inconsistent response times

The following areas need to be investigated when PASOE responses are inconsistent:
  1. Database Tuning – Specifically options which impact available connections and network communication.
  2. AWS Machine Sizing – Instances should be large enough to support the Enhanced Networking Adapter.
  3. Network Latency - AWS Instances for the Client (PASOE) and Server (Database) should be located on the same AWS Availability Zone (AZ) with a sub-single-digit response time measured in seconds.
Once these three areas have been investigated and inconsistent respsonse times are still evident, engage Progress Professional Services to further assist with achieving a performant PASOE environment on AWS: Contacting Progress Professional Services (PSO) Team  

Database Tuning Options and Processes.

During quiet periods, preferably out of the business hours run the attached WebHandler class to collect metrics on your current client-server connection.
  • The queries perform a “PRESELECT EACH” on several target tables using NO-LOCK, which will result in sending multiple records in each response from the database. 
  • Using this test, the aim is to achieve consistent results from the embedded queries, generating traffic to the database through NO-LOCK reads
  • The parameters for -prefetch* and the -Mm effect network performance and will be the subject of investigation for the following process. For example, starting with a -Mm parameter of 16384, then changing the parameter (and restarting the database and PAS instance) the response time may vary. For further detail, review the following Articles: 
To setup the WebHandler class for a PASOE instance:
  1. Deploy the file TestHandler.cls  to the {CATALINA_BASE}/openedge directory.
  2. Add a new handler entry in the {CATALINA_BASE}conf/openedge.properties : handler#=TestHandler:/test 
  3. Replace handler# with the next sequential number after the last available handler definition (there must be no gaps in the numeric sequence).
  4. Backup the current database configuration options, eg. conmgr.properties file on the database server. The database should be running with existing options tuned for the Application.
  5. Restart the PAS instance or stop active MSAgents to pick up changes to the openedge.properties configuration file.
  6. Request the following URL via Postman (or similar):
    GET http://<Your_Instance_URL>/web/test
  7. Repeat the above tests as necessary to find suitable -Mm and -prefetch* values which maximize your throughput on the client-server connection.
Example: Run the WebHandler class for a PASOE instance connecting to a Sports2000 database:

Examining the following an example of 100 sequential requests, the response times were reduced by 200ms overall by doubling the message size (-Mm):
 
-Mm 16384 

 “security": "8ms", 
 "multiReads": "830ms" 

100 Sequential Requests: 0.911-1.156 sec. (~0.245 sec.) 
 
-Mm 32600 

 “security": "8ms", 
 "multiReads”: "630ms" 

100 Sequential Requests: 0.715-0.952 sec. (~0.237 sec.) 


AWS Machine SizingAWS Latency

While running this benchmark testing, AWS latency between a PASOE machine(EC2 instance), database server and availability zones(AZ) affecting the application’s response time can be captured with Network Tools between the IP addresses of the PAS instance and the Database Server listening on a port from the -minport / -maxport range.

Review the following Articles regarding AWS where further investigation needs to be addressed with AWS support directly. 
 
Workaround
Notes
Last Modified Date9/30/2020 2:15 PM
Attachment 
Disclaimer The origins of the information on this site may be internal or external to Progress Software Corporation (“Progress”). Progress Software Corporation makes all reasonable efforts to verify this information. However, the information provided is for your information only. Progress Software Corporation makes no explicit or implied claims to the validity of this information.

Any sample code provided on this site is not supported under any Progress support program or service. The sample code is provided on an "AS IS" basis. Progress makes no warranties, express or implied, and disclaims all implied warranties including, without limitation, the implied warranties of merchantability or of fitness for a particular purpose. The entire risk arising out of the use or performance of the sample code is borne by the user. In no event shall Progress, its employees, or anyone else involved in the creation, production, or delivery of the code be liable for any damages whatsoever (including, without limitation, damages for loss of business profits, business interruption, loss of business information, or other pecuniary loss) arising out of the use of or inability to use the sample code, even if Progress has been advised of the possibility of such damages.