27
Orchestrator Studio Performance on Application Interface Services (AIS) Server The performance characterization of the AIS Orchestrator Studio that is available with EnterpriseOne Application Release 9.2 and Tools Release 9.2.4.3. June, 2020 | Version 1.01 Copyright © 2020, Oracle and/or its affiliates Confidential – Public

Orchestrator Studio Performance on Application Interface

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Orchestrator Studio Performance on Application Interface

Orchestrator Studio Performance on Application Interface Services (AIS) Server

The performance characterization of the AIS Orchestrator Studio

that is available with EnterpriseOne Application Release 9.2 and

Tools Release 9.2.4.3.

June, 2020 | Version 1.01

Copyright © 2020, Oracle and/or its affiliates Confidential – Public

Page 2: Orchestrator Studio Performance on Application Interface
Page 3: Orchestrator Studio Performance on Application Interface

1 TECHNICAL BRIEF | Application Interface Services (AIS) Orchestration Studio Performance | Version 1.01

Copyright © 2020, Oracle and/or its affiliates | Confidential – Public

PURPOSE STATEMENT

This document provides an overview of features and enhancements included in EnterpriseOne Tools Release 9.2.4.3. It is

intended solely to help you assess the business benefits of upgrading to Tools Release 9.2.4.3 and to plan your I.T. projects.

DISCLAIMER

This document in any form, software or printed matter, contains proprietary information that is the exclusive property of

Oracle. Your access to and use of this confidential material is subject to the terms and conditions of your Oracle software

license and service agreement, which has been executed and with which you agree to comply. This document and

information contained herein may not be disclosed, copied, reproduced or distributed to anyone outside Oracle without

prior written consent of Oracle. This document is not part of your license agreement nor can it be incorporated into any

contractual agreement with Oracle or its subsidiaries or affiliates.

This document is for informational purposes only and is intended solely to assist you in planning for the implementation

and upgrade of the product features described. It is not a commitment to deliver any material, code, or functionality, and

should not be relied upon in making purchasing decisions. The development, release, and timing of any features or

functionality described in this document remains at the sole discretion of Oracle.

Due to the nature of the product architecture, it may not be possible to safely include all features described in this document

without risking significant destabilization of the code.

Page 4: Orchestrator Studio Performance on Application Interface

2 TECHNICAL BRIEF | Application Interface Services (AIS) Orchestration Studio Performance | Version 1.01

Copyright © 2020, Oracle and/or its affiliates | Confidential – Public

TABLE OF CONTENTS

Purpose Statement 1

Disclaimer 1

Executive Summary 3

Overview: Configurating the AIS Server Architecture 4

Architecture and Design of the AIS Server 4

Configuration and Tuning 5

The Value 5

How it works 5

Testing Use Cases 5

Use Case Scenarios Used for Testing 6

Testing Methodology and Metrics 7

Methodology 7

Metrics 7

End User Experience 7

Server Side Metrics 8

Operating System Metrics 8

WebLogic HTML Server Metrics 8

Testing Results 10

Why you should tune first 10

Baseline Test 10

JMeter Metrics 10

Garbage Collection Statistics 11

Orchestration Studio Users 10, 20, and 50 with Background JSON Load 12

Orchestration Studio Performance with Background JSON Load 12

Server Side Response 12

Garbage Collection Statistics 12

Boundary Condition Tests 13

AIS Managed Instance Heap Size 13

Orchestration Studio Login Users 13

Increasing the vCPU 15

Java Garbage Collection Algorithms - Parallel versus G1 GC 16

Oracle Database Configuration – Open Cursors 18

Conclusion 18

Appendix A: Test Configuration 19

Appendix B: Background Load Details 20

Appendix C: use case steps 20

Page 5: Orchestrator Studio Performance on Application Interface

3 TECHNICAL BRIEF | Application Interface Services (AIS) Orchestration Studio Performance | Version 1.01

Copyright © 2020, Oracle and/or its affiliates | Confidential – Public

EXECUTIVE SUMMARY In today’s landscape, business requirements are always evolving. IT decision makers are looking for products that improve

their employees’ efficiency throughout the life cycle of an implemented ERP system. The JD Edwards team has been

investigating mechanisms to lower the ongoing total cost of ownership of your JD Edwards solution and deliver on the

promises of more integrated systems, ease of management, and improved feature and functionality.

The following are some challenges that our customers face today:

CHALLENGE SOLUTION

Additional servers needed to support the

EnterpriseOne Application Development

Framework (ADF) and the AIS functionality

This document covers the new implementation of the AIS Server and

more specifically the EnterpriseOne Orchestrator Studio which now

resides on the AIS Server as another managed instance on the HTML

Server component of the EnterpriseOne architecture. The ADF and the

AIS functionality have been merged, creating a more streamlined

implementation of the AIS Server in the EnterpriseOne architecture.

Scalability challenges and how to handle

increased load of the Orchestrator Studio

users

The redesign of the AIS Server, consolidating the ADF and the AIS

functionality into one solution, provides a greater scalable model to the

EnterpriseOne solution.

Understanding the performance impact of a

large number of Orchestrator Studio users

working concurrently on the AIS Server for

processing other activities such as active

notification and orchestration logic

Performance tuning the AIS server heap size, selecting the correct

garbage collection algorith, and making sure Oracle cursor settings

provides a solid foundation for a single AIS server to perform both

Orchestration Studio and respond to notification and orchestration JSON

requests.

Challenges and Solutions

In response to these challenges, the JD Edwards team has developed an integrated solution within the same HTML Server to

support the full range of capabilities of the AIS Server.

For more information, see EnterpriseOne Tools 9.2.4.3 Orchestration Studio Documentation.

Page 6: Orchestrator Studio Performance on Application Interface

4 TECHNICAL BRIEF | Application Interface Services (AIS) Orchestration Studio Performance | Version 1.01

Copyright © 2020, Oracle and/or its affiliates | Confidential – Public

OVERVIEW: CONFIGURING THE AIS SERVER ARCHITECTURE

The AIS Server provides the interface for communication with various AIS Server clients. The AIS Server provides a REST

interface (HTTP) and uses JSON requests to interact with the EnterpriseOne applications and forms.

This document covers the performance characterization of the new design that is introduced in Orchestrator Studio 9.2.4.0.

The Orchestrator Studio is deployed on the AIS Server instead of on a separate ADF Server and works with EnterpriseOne

Applications Release 9.2 and Tools Release 9.2.4.3. The new design eliminates the additional tasks of installing and

maintaining an ADF Server with its own discrete WebLogic Server.

Architecture and Design of the AIS Server The AIS Server resides on the same EnterpriseOne JAS Server as a separate managed instance. The Orchestrator Studio is

accessed through the AIS Server.

EnterpriseOne Architecture

The EnterpriseOne architecture depicted in the above image has HTML and AIS managed instances on a single WebLogic

Server. In this architecture, the HTML Server is used only to handle the JSON requests initiated on the AIS Server, and not

for processing requests from interactive applications. It is a simplified architecture to concentrate on the testing of strictly

the AIS Server.

In a more normalized architecture, the recommendation is to have two HTML Server configurations: one HTML managed

instance for processing AIS requests and the other HTML managed instance to handle the load of interactive applications.

Generic EnterpriseOne Architecture With Two HTML Servers

The figure above shows the EnterpriseOne architecture with an additional dedicated HTML Server instance for processing

AIS Server requests only. This additional instance is recommended so that the performance of the EnterpriseOne HTML

Server used by the EnterpriseOne web client users is not impacted by the AIS Server requests.

Page 7: Orchestrator Studio Performance on Application Interface

5 TECHNICAL BRIEF | Application Interface Services (AIS) Orchestration Studio Performance | Version 1.01

Copyright © 2020, Oracle and/or its affiliates | Confidential – Public

Configuration and Tuning This document provides guidance on the configuration and tuning of the AIS managed instance on the WebLogic Server for

the Orchestrator Studio load and AIS functionality in general.

The following are three tuning methods that can improve performance:

• Increase the heap size on the AIS WebLogic managed instance from a default of 256 MB to 4,096 MB.

• Increase the Oracle database limit for open cursors.

• Change the garbage collection (GC) algorithm specified in the WebLogic Server startup parameters for the AIS

managed instance from parallel to G1 GC.

Heap Size Tuning

Initial tests were executed with a default heap size of 256 MB. Consumption of memory with this default heap size was

inefficient causing a performance bottleneck as the Orchestrator Studio user requests increased. A heap size of 4,096 MB

was configured for the AIS managed instance to provide sufficient memory to handle all the Orchestrator Studio user

requests designed for the testing. More details are discussed in the results section of this document comparing the

256-MB heap size profile with 4,096-MB heap size.

Depending on their specific workload, customers can set their heap size to an appropriate value. Analysis of heap size data,

garbage collection statistics, and other metrics such as end-user response times is a good way to evaluate the performance

impact of bottlenecks created by configuring a heap size that is too small.

Oracle Database Open Cursors

It is important to monitor the Oracle database open cursor limit parameter and set the value high enough to prevent the AIS

processes from running outside open cursors. The open cursor limit will vary depending on AIS traffic and load. Initial load

testing of the Orchestrator Studio on the AIS Server showed that the Oracle Database open cursors gradually increased and

attempted to automatically exceed the Oracle default setting of 300. A setting of 400 or more is used to handle the

increased Orchestrator Studio user load, but this metric should be monitored to determine the range of open cursors used

by the specific implementation of AIS.

As this testing was performed solely on an Oracle database server, a comparison was made with the values of open cursors

for other EnterpriseOne-supported databases such as SQL Server and DB2 UDB. The SQL Database Server has an open

cursor limit of 65,556, which is also the default setting for DB2 UDB. This higher value means that the concern of adjusting

the open cursors is specific to the Oracle database.

Changing Garbage Collection Algorithm

The parallel GC algorithm is used by default with JDK release version 1.8. Starting with JDK 1.9, the G1 GC algorithm will be

the default methodology used for garbage collection. Fortunately, it is backward compatible with JDK 1.8 with a simple

addition to the server start parameters. This document shows how the G1 GC algorithm can be configured to increase

performance by 20%.

The Value As of EnterpriseOne Tools Release 9.2.4.3, the configuration of the AIS Server makes it capable of managing the load of the

Orchestrator Studio users and servicing the JSON requests. Prior to this, the AIS Server only serviced the JSON requests and

a separate server was required to support an ADF Server component, which managed the Orchestrator Studio software

implementation.

How It Works The merged services of the Orchestrator Studio and the functional JSON request services of the AIS Server are now located

on a single AIS managed server instance. This merger of services to the same server limits the number of servers in the

EnterpriseOne architecture and provides the same functionality as before.

TESTING USE CASES The use cases outlined below were designed to recreate typical Orchestrator Studio user activities. These activities include

insert, update, delete, and create actions of a simple orchestration performed through unique user logins to the

Orchestrator Studio residing on the AIS managed instance within the WebLogic HTML Server.

Page 8: Orchestrator Studio Performance on Application Interface

6 TECHNICAL BRIEF | Application Interface Services (AIS) Orchestration Studio Performance | Version 1.01

Copyright © 2020, Oracle and/or its affiliates | Confidential – Public

The use case below introduced additional load into the environment to understand the impact on the AIS Server when the

Orchestrator Studio users were running concurrently with the typical AIS JSON functionality, as these functional activities

now reside on the same server.

Orchestration User Activity Use Case:

1. Log in to the Orchestrator Studio.

2. Initiate the creation of a new orchestration.

3. Create a new orchestration rule.

4. Add an existing form request (which was previously created).

5. Delete the form request.

6. Create and define a new form request.

7. Add an existing data request (from an existing data request template),

8. Save the orchestration.

9. Log out of the Orchestrator Studio.

The above use case is the base load for the Orchestrator Studio. Batches of 10, 20, and 50 unique EnterpriseOne users

logged in to the Orchestrator Studio concurrently and performed the above actions to generate the load to simulate a

normal customer environment under load.

While the Orchestrator Studio loads were generated, metrics were simultaneously collected to measure and compare the

performance between the different load levels of 10, 20, and 50 users. The results of these metrics were brought together to

form the basis for the comparison of performance. Detailed analysis of this comparison is provided in the following sections

of this document.

See Appendix C for more detail and screenshots of use case actions.

Use Case Scenarios Used for Testing Tests for different scenarios were performed using the use case actions described in the previous section with the following

configurations to measure performance for a variety of conditions that an Orchestrator Studio application might encounter.

The following scenarios were used in the testing:

1. Baseline tests – 10, 20, and 50 Orchestrator Studio users

2. Baseline tests – 10, 20, and 50 Orchestrator Studio users with additional background load

3. Boundary condition testing included the following configurations to illustrate potential performance bottlenecks:

256 MB versus 4,096 MB

Single versus multiple JDE Users

4 vCPUs versus 8 vCPUs

Parallel GC versus G1 GC

Each boundary condition scenario is described in detail with the metrics collected, in the following sections of this

document. Background load refers to a series of previously defined standard orchestrations that generate bell notifications.

A list of the notifications and orchestrations that formed background load are in the below table:

See Appendix C for more detail and screenshots of use case actions.

NOTIFICATION OR ORCHESTRATION AUTO START

Credit Review Notification 3 minutes

Equipment Down 3 minutes

Invoice Batches in Error 3 minutes

Invoice Batches Out of Balance 3 minutes

Invoice Pay Items Overdue 3 minutes

Page 9: Orchestrator Studio Performance on Application Interface

7 TECHNICAL BRIEF | Application Interface Services (AIS) Orchestration Studio Performance | Version 1.01

Copyright © 2020, Oracle and/or its affiliates | Confidential – Public

Large Customer Orders Index 3 minutes

Pending Invoice Batches 3 minutes

Pending Receipt Batches 3 minutes

Receipt Batches in Error 3 minutes

Receipt Batches Out of Balance 3 minutes

Simple Notification for CBM Alerts 3 minutes

Test Case Simple Large 3 minutes

Test Case Simple Shorts 3 minutes

Background Orchestrations

TESTING METHODOLOGY AND METRICS

Methodology

Tests were first categorized as baseline tests, second as baseline tests with load, and finally as boundary condition tests. All

the tests were executed for an hour with a standard warm-up scenario before the actual test. The warm-up test was running

a smaller number of users. This process forces the caching of any recently restarted processes. The goal of the testing was

not to measure any caching activity, but to measure only that activity that represented a steady state of processing.

Metrics

Key performance indicators show whether the application is performing within the expected range of parameters or whether

the performance is below acceptable standards.

The test cases evaluated and explained in this document are a replay of an HTML stream using the JMeter utility. Apache

JMeter is a Java-based open source software designed to load test functional behavior and measure performance. The

metrics that JMeter collects represent the server side response between the communicating servers. Server side metrics

differ from end user metrics in that end user metrics also include the processing that occurs with the browser.

The Orchestrator Studio is an HTML application and as such JMeter is an appropriate tool for collecting these specific

metrics. In JMeter, the simulated replay of the Orchestrator Studio user load can be reproduced.

The following key performance indicators were used in testing the AIS performance including that of the Orchestrator

Studio.

End user experience

This metric was derived through a manual test used to represent the real user experience including browser and

server side performance.

Server side response

This metric is collected by JMeter.

Operating system metrics

These metrics include CPU or memory utilization from the operating system end as well as garbage collection logs.

All these metrics play an important role in identifying the source of any problem and subsequently in troubleshooting.

End User Experience

Page 10: Orchestrator Studio Performance on Application Interface

8 TECHNICAL BRIEF | Application Interface Services (AIS) Orchestration Studio Performance | Version 1.01

Copyright © 2020, Oracle and/or its affiliates | Confidential – Public

End user experience serves as a good indicator of an existing performance bottleneck. The end user experience is measured

manually by logging in to the Orchestrator Studio while the load tests are performed and recording any performance

anomalies.

End user experience indicates the response time of the Orchestrator Studio page; the time taken by a page to render the

objects includes the time it takes to respond to any object clicks, saves, rules, form requests, logins, as well as log out

activities. End user experience is a unique metric; it includes the server side response on the EnterpriseOne component and

the time it takes to process that information request through the browser interface.

Server Side Metrics

Server-based performance metrics are collected at the back end of the EnterpriseOne architecture and provide an indication

of the health of the network and communications between the EnterpriseOne server components. JMeter is used to collect

the server side runtime metrics in the tests explained in this document.

Apache JMeter is a Java-based tool that tests performance on static resources, dynamic resources, and dynamic web

applications. It can be used to simulate a heavy load on a server, a group of servers, or network configurations to test the

impact of the load on the EnterpriseOne architecture on which the Orchestrator Studio is deployed, and to analyze overall

performance under different loads. Server side metrics are just one of the many data points based on which performance is

evaluated.

Operating System Metrics

Metrics collection would not be complete without the operating system metrics, namely the processor and memory metrics

that are used as indicators for performance. For the tests discussed in this document, CPU and memory metrics were

collected for the Database Server, Enterprise Server, and HTML Server instances.

This document concentrates on the operating system performance metrics of the HTML Server on which the AIS managed

instance resides. This is the server on which the Orchestration Studio users perform their tasks and the JSON requests for

orchestrations and notifications are received.

Both a 4-vCPU configuration and an 8-vCPU configuration on the HTML Server are analyzed. Increasing server resources

does not always result in better performance. For this project, a higher number of vCPUs on the HTML Server did not show

an impact on performance. Further details are provided later in this document.

WebLogic HTML Server Metrics

The WebLogic HTML Server metrics collected are enabled through the Server Start parameters and are modified in the

WebLogic Administrative Console. The Server Start parameters used for the WebLogic HTML Server under the AIS managed

instance are shown in the below screenshot:

Page 11: Orchestrator Studio Performance on Application Interface

9 TECHNICAL BRIEF | Application Interface Services (AIS) Orchestration Studio Performance | Version 1.01

Copyright © 2020, Oracle and/or its affiliates | Confidential – Public

Server Start Parameters For AIS Server

In the above figure, the Server Start tab is highlighted and the arguments shown below are used to start the AIS managed

instance. The AIS managed instance Java process that is initiated handles all the Orchestrator Studio user and JSON

requests for the EnterpriseOne architecture.

This section discusses the garbage collection metrics which helps to measure Java memory heap usage and the importance

of the Java Flight Recorder (JFR) metrics. Although the JFR metrics are not discussed in detail in this document, they are

important to collect if a granular detail of object usage within the Java memory heap needs to be analyzed. For this project

and for the purposes of reporting, JFR metrics are not included.

Server Start parameters in the configuration shown in the above screenshot includes:

Configure the heap size (4,096 MB)

Enabling garbage collection metrics

Setting up the garbage collection algorithm (G1 GC)

Starting the Java Flight Recorder metrics collection

The below table describes each WebLogic Server Server Start configuration parameter in greater detail:

DESCRIPTION SERVER START PARAMETER

Enabling Garbage

Collection

-Xloggc:/u01/OracleJDE/user_projects/domains/jde_domain/servers/ais_server/logs/gc.log

-XX:-PrintGCDetails -XX:+PrintGCTimeStamps

Note: The location of the log file (that is –Xloggc may differ for a customer implementation).

Configuring

Heap Size

-Xms4096m -Xmx4096m

Note: It is recommended that both the minimum and maximum heap sizes be set to the same value.

Specifying the

G1GC Garbage

Collection algorithm

-XX:+UseG1GC

Note: In the absence of this parameter, the default algorithm for JDK 1.8 is parallel

Java Flight

Recorder Setting

-XX:+UnlockDiagnosticVMOptions -XX:+DebugNonSafepoints -XX:+UnlockCommercialFeatures -

XX:+FlightRecorder -

XX:FlightRecorderOptions=defaultrecording=true,disk=true,repository=/tmp/jfr_ais,maxage=3h

Page 12: Orchestrator Studio Performance on Application Interface

10 TECHNICAL BRIEF | Application Interface Services (AIS) Orchestration Studio Performance | Version 1.01

Copyright © 2020, Oracle and/or its affiliates | Confidential – Public

WebLogic Server Server Start Configuration Parameters

The Java heap size is the amount of memory allocated for applications running in the JVM and can be altered to match the

workload.

Garbage collection is the process by which Java programs perform automatic memory management. By default, JDK 1.8

uses a parallel algorthim GC if the algorithm is not specifically configured. Starting with JDK 1.9, the garbage collection

algorithm is G1 GC.

Parallel GC is used in all the tests presented in this document except for one test that was performed using G1 GC algorithm

to validate the performance improvement.

The Java Flight Recorder is a powerful tool used to investigate performance issues which does not skew the results with its

own performance overhead. We have collected the JFR logs, but they were not used for the analysis of any of the results

presented in this document. The JFR metrics are mentioned to point out the additional utilities that might be used in

performance analysis.

Note: To enter the JFR setting shown in the above table, you require user credentials to log in to the respective WebLogic

console. These settings are specified in the Arguments field under the Server Start tab.

TESTING RESULTS

Why You Should Tune First Tuning the environment is the best method to avoid performance bottlenecks in the testing process. Failure to tune initially

results in frequent retests of the use cases because the initial tests were performed with sub-optimal conditions.

Many of the initial findings, such as the impact of increasing the heap size and the importance of setting a high Oracle

database open cursor limit, were made as part of the initial testing and tuning of the AIS environment. As such, retesting was

avoided because these configuration requirements were found early in the testing cycle.

Baseline Test The first step in performance analysis is to create a baseline test which creates the foundation for comparing future test

results. The first category of baseline tests that were executed were with 10, 20, and 50 concurrent Orchestrator Studio users

with the heap sizes of 256 MB and 4,096 MB.

The purpose of this test was to determine if increasing the heap size of the AIS managed instance affects the load on the AIS

managed instance. Two metrics—JMeter server side response times and garbage collection statistics— are discussed in the

results section that clearly show the performance impact of the testing scenarios.

JMeter Metrics

The JMeter server side response time on the y-axis of the graph represents the time it took for the Orchestrator Studio user

to complete the use case actions. A detailed description of the use case and the actions performed by the Orchestrator

Studio user are provided in the appendix.

The graph below compares the JMeter server side response times for each of the three use cases of 10, 20, and 50

Orchestrator Studio users with a default heap size of 256 MB and an increased heap size of 4,096 MB.

Page 13: Orchestrator Studio Performance on Application Interface

11 TECHNICAL BRIEF | Application Interface Services (AIS) Orchestration Studio Performance | Version 1.01

Copyright © 2020, Oracle and/or its affiliates | Confidential – Public

Graph Representing the JMeter Average With Two Different Heap Sizes

First let us discuss the impact of scaling users from 10 to 20 and the finding derived from testing 50 concurrent Orchestrator

Studio users. Going from 10 to 20 concurrent users, we are seeing a performance improvement of 42 percent with a 256-MB

heap size and an improvement of 16 percent with a 4,096-MB heap size.

The improvement is attributed to performance gains in the AIS managed instance that supports the Orchestrator Studio

caching. When the improvement of caching is achieved the performance of server side response times improves moving

from 20 to 50 concurrent Orchestrator Studio users, as one would expect in an increasing load scenario. This improvement

is observed for both the 256-MB heap size and 4,096-MB heap size managed instance configurations.

The figure above also shows performance improvements in server side responses when the heap size is increased from 256

MB to 4,096 MB. A performance change from 80 percent to 91 percent is observed indicating a major bottleneck at the heap

size with Orchestration Studio user load.

Garbage Collection Statistics

The garbage collection statistics derived from testing 256-MB and 4,096-MB heap sizes lead to conclusions

similar to those derived from the JMeter server side metrics.

The figure below shows the comparison of the garbage collection log file statistics for a 50-concurrent Orchestrator Studio

user test run with two heap sizes, 256 MB and 4,096 MB.

Garbage Collection Graph With Two Different Heap Sizes

Page 14: Orchestrator Studio Performance on Application Interface

12 TECHNICAL BRIEF | Application Interface Services (AIS) Orchestration Studio Performance | Version 1.01

Copyright © 2020, Oracle and/or its affiliates | Confidential – Public

The blue lines indicate garbage collection events and the red background indicates the Java heap memory allocation. The

scales of the two graphs are different. In the first graph, the scale is up to 256MB and in the second graph, the scale is up to

4,096 MB. The y-axis scale represents the total heap memory of the JVM process that was allocated by the WebLogic server

at the managed instance start time.

The concluding analysis is that the 256-MB heap size performs poorly in comparison to the 4,096-MB heap size. The

graph for 256-MB shows many garbage collection events. A garbage collection event is a Java action trying to reclaim

unused memory for an active process. Garbage collection events have a major impact on performance—the higher the

number of events the more performance degrades.

Clearly, the 256-MB garbage collection profile requires significantly more events than the 4,096-MB heap size profile. With

fewer garbage collection events, the 4,096-MB heap size profile has a significant improvement in performance.

Orchestration Studio Users 10, 20, and 50 with Background JSON Load To understand how the AIS Server handles the Orchestrator Studio user load and additional background load, tests were

performed with a range of 10, 20, and 50 users with the addition of background load of orchestrations and notifications.

Processing of orchestrations and notifications with JSON requests provides a complete picture of the standard load an AIS

Server can have for a customer. The standard Orchestrator Studio user load was generated using the JMeter utility and the

background load was generated using the AIS Server Quartz scheduler. The purpose of creating an Orchestrator Studio user

load with background processes was to understand the performance of the AIS Server while managing the load created by

other JSON requests, represented by the background load.

Detailed explanations of each background process are in Appendix C. All the tests were performed with a Java heap size of

4,096 MB to show the performance differences related to load increase, given the AIS Server also processes the load of

JSON requests.

Orchestration Studio Performance with Background JSON Load

Server Side Response

The graph below depicts the comparison of the server side average response times recorded for load tests using 10, 20, and

50 Orchestrator Studio users executed with and without the JSON background request.

Graph Representing JMeter Average With And Without Load

The comparison shows that the average response time increased gradually with the additional background JSON load for all

the three scenarios.

AIS Server caching initially has a performance benefit with 10 and 20 Orchestration Studio users; however, that benefit is not

maintained as indicated by the increase in JMeter server side responses for the load of 50 Orchestrator Studio users.

Garbage Collection Statistics

Page 15: Orchestrator Studio Performance on Application Interface

13 TECHNICAL BRIEF | Application Interface Services (AIS) Orchestration Studio Performance | Version 1.01

Copyright © 2020, Oracle and/or its affiliates | Confidential – Public

Garbage collection logs were collected and analyzed to understand the differences in Java heap size memory utilization for

the baseline Orchestrator Studio user load with and without additional JSON load created by running orchestrations and

notifications.

The graph below shows the results of a test performed with a load of 50 Orchestrator Studio users with and without JSON

load.

Garbage Collection Graph With and Without Load

The first graph shows the use case scenario of the Orchestrator Studio with a load of 50 users without additional JSON load

and is compared to the adjacent graph that represents a use case scenario with a load of 50 users and with the additional

JSON load.

The graphs are very similar, but the graph with the additional JSON load represents a garbage collection profile that has

significantly more garbage collection events. As was illustrated in the 256-MB versus 4,096-MB garbage collection

comparison, in this use case too, garbage collection events were expensive in terms of the impact on performance.

The garbage collection graphs in the above figures support the findings derived from the JMeter metrics, that is, the

Orchestrator Studio user response time is slower with additional JSON load. The performance is slower because more work

is being done on the AIS managed server Java process on the AIS Server.

The graphs also show that in both cases, sufficient memory has been provided to the Java process heap size to support both

the Orchestrator Studio user load of 50and the additional JSON load.

Boundary Condition Tests A number of boundary conditions required some tuning as part of the initial metrics collection and for initiating the use case

scenarios.

AIS Managed Instance Heap Size

This document has already covered the analysis of the 256-MB and 4,096-MB Java heap sizes for the AIS Server managed

instance configuration; this testing result is only mentioned here as an initial finding in performance tuning and represents a

true boundary condition test.

Orchestrator Studio Logged-In Users

The second boundary condition that was identified is the Orchestrator Studio user login. When concurrent Orchestrator

Studio users log in to the EnterpriseOne application, they may do so using the standard JD Edwards EnterpriseOne user

credential or unique credentials. As this testing involves concurrent Orchestrator Studio logins of 10, 20, and 50 users. An

initial testing revealed that the choice of EnterpriseOne user credential makes a significant impact on performance of the

Orchestrator Studio application.

Orchestration Studio Login Analysis—Server Side Response Analysis

Page 16: Orchestrator Studio Performance on Application Interface

14 TECHNICAL BRIEF | Application Interface Services (AIS) Orchestration Studio Performance | Version 1.01

Copyright © 2020, Oracle and/or its affiliates | Confidential – Public

The graph below compares the server side average response time measured by JMeter for a 10-user test for two scenarios—

when each user had the same credential for the Orchestrator Studio login, and when the login was unique for each user.

Graph Representing The JMeter Average With Single And Multiple JDE Users

The graph above shows that there is a decrease of 86 percent, that is a drop from approximately 170 seconds to under 25

seconds, in terms of the server side response time measured by the JMeter utility when a single login—JDE—was used for

the Orchestrator Studio versus 10 unique logins.

The use of a common Orchestrator Studio user is not the normal process for most customers. They use a unique

EnterpriseOne user to log in to the Orchestrator Studio, which is the recommended process, or they use a group of

EnterpriseOne user logins that others may use for accessing the Orchestrator Studio application.

The logistics of how the Orchestrator Studio handles user login sessions, caching, and general management explains the

higher need of resources if a single Orchestrator Studio login is used. Customers should be aware of this fact and avoid this

boundary condition.

Orchestration Studio Login Analysis—Garbage Collection Analysis

The garbage collection log analysis also supports the fact that with a common Orchestrator Studio login, the memory

management of the Java heap size is heavier. The graphs below show the garbage heap size analysis of 10 concurrent

Orchestrator Studio users for two scenarios—a single login and unique Orchestrator Studio logins.

Garbage Collection Graph With Single And Multiple JDE Users

Page 17: Orchestrator Studio Performance on Application Interface

15 TECHNICAL BRIEF | Application Interface Services (AIS) Orchestration Studio Performance | Version 1.01

Copyright © 2020, Oracle and/or its affiliates | Confidential – Public

As shown in the figures above, the number of garbage collection events is greater when a single login is used, meaning that

the Java heap had to perform more memory recovery events than performed for the garbage collection profile where

multiple unique Orchestrator Studio users were used.

The graphs show that sufficient memory is available in the Java heap size to handle all the requests to the AIS managed

server Java process, but the number of garbage collection events is greater in the case of the single JDE Orchestrator Studio

user, supporting the slower response times observed from the JMeter metric of server side response time.

Increasing the vCPU

Increasing the number of processors and adding hardware resources to an existing EnterpriseOne architecture is a common

practice to determine the performance impact on EnterpriseOne in general and the Orchestrator Studio application

specifically.

For this boundary condition test, the AIS Server vCPUs were increased from four to eight and JMeter response time and

garbage collection metrics were analyzed. The result showed that no significant performance benefit was gained by adding

resources to the AIS component of the EnterpriseOne architecture.

The performance observed with 50-concurrent Orchestrator Studio users on a four-vCPU configured AIS Server was

compared to the performance observed on the same server with the same user concurrency after increasing the number of

vCPUs to eight.

Increasing Processors on AIS Server—CPU Utilization Analysis

The next set of graphs show the CPU utilization of the EnterpriseOne WebLogic HTML Server where the AIS managed

instance resides. Two tests are performed for a load of 50 Orchestrator Studio users—one using four vCPUs and the other

with eight vCPUs.

CPU utilization is measured during the complete test for the four-vCPU configuration providing a detailed profile of

processor usage.

HTML CPU Utilization With 4 vCPUs

The test with a load of 50 Orchestrator Studio users was repeated with eight vCPUs and the result is illustrated in the graph

below. Similar to the previous graph, the percent of processor utilization is measured for the complete testing process.

HTML CPU Utilization With 8 vCPUs

As seen in the above graphs, the processor utilization is lower for the eight-vCPU configuration than that of the four-vCPU

configuration.

Page 18: Orchestrator Studio Performance on Application Interface

16 TECHNICAL BRIEF | Application Interface Services (AIS) Orchestration Studio Performance | Version 1.01

Copyright © 2020, Oracle and/or its affiliates | Confidential – Public

Increasing Processors on AIS Server—Server Side Response Analysis

The below graph illustrates the JMeter metric of the server side response times for the actions of 50 concurrent Orchestrator

Studio users.

Graph Representing The JMeter Average With 4 And 8 CPUs

The graph above shows a 1.25 percent difference in the JMeter metric between the four and eight vCPUs. This difference

does not warrant a recommendation to increase the number of vCPUs for the AIS Server.

Java Garbage Collection Algorithms—Parallel Versus G1 GC

Both garbage collection algorithms are available in the current implementation of Java JDK 1.8.

By default, Java JDK 1.8 uses the parallel GC algorithm and Java JDK 1.9 uses the G1 GC algorithm. Java JDK 1.8 can be

configured to use either algorithm.

This document does not explain the differences between these two algorithms; these are only presented as a boundary

condition test as the choice of algorithm can yield performance benefit for the Orchestrator Studio and the selection of

algorithm in a production environment needs careful consideration. The impact of algorithm change must be evaluated by

each customer individually and the results may not always be what is shown in this document.

Garbage Collection Algorithm—Garbage Collection Profiles

The following graphs depict two test scenarios for 50 concurrent Orchestrator Studio users with a 4,096-MB Java heap size

using parallel GC algorithm for one scenario and G1 GC algorithm for the other scenario.

The average percentage consumption of Java heap memory was calculated and added to the garbage collection profile

graph for an easier comparison of results.

Page 19: Orchestrator Studio Performance on Application Interface

17 TECHNICAL BRIEF | Application Interface Services (AIS) Orchestration Studio Performance | Version 1.01

Copyright © 2020, Oracle and/or its affiliates | Confidential – Public

Garbage Collection Graph With Parallel and G1 GC Algorithm

The comparison of the two test scenarios with different garbage collection algorithms leads to the following observations:

G1 GC algorithm has 27.2 percent more memory consumption on an average

Parallel GC algorithm has more garbage collection events

It is inconclusive which algorithm would benefit the performance of the Orchestrator Studio and AIS managed instance.

More information and metrics are required to make that determination.

In the above figure, the parallel GC algorithm has slightly more events. If a larger number of garbage collection events

decreases the performance of the managed instance, then the G1 GC algorithm should be performing better than the

parallel GC algorithm.

The above figure also exhibits that the G1 GC algorithm has a much higher (27.2 percent) memory utilization. This is seen by

the red portion (free heap space) above the blue Java heap usage lines. As long as there is unused capacity in the Java heap

size, performance should increase with the G1 GC algorithm.

Garbage Collection Algorithm—Server Side Performance

As was concluded in the previous analysis, more metrics are required to determine which garbage collection algorithm

should be used for an AIS managed instance when performing Orchestrator Studio activities.

In this next boundary configuration test scenario, the JMeter server side average response time is compared between the

parallel GC and G1 GC algorithms. The comparison will provide a clear answer to the question of which garbage collection

algorithm to use in for an AIS Server managed instance.

Graph Representing The JMeter Average Parallel And G1 GC

Page 20: Orchestrator Studio Performance on Application Interface

18 TECHNICAL BRIEF | Application Interface Services (AIS) Orchestration Studio Performance | Version 1.01

Copyright © 2020, Oracle and/or its affiliates | Confidential – Public

The JMeter server side response times observed in the test results indicate that the G1 GC algorithm provides a 20-percent

or approximately an 8-second benefit to the total response time. This test was performed with 50 concurrent Orchestrator

Studio users with the only variable change being the garbage collection algorithm.

Customers are recommended to consider changing the garbage collection algorithm of their AIS managed instance

configuration to derive response time benefit. As the G1 GC algorithm is the default with Java JDK 1.9, it is worth the time to

explore the impact of this algorithm on performance in a customer environment and Orchestrator Studio load by applying

this algorithm in a Java JDK 1.8 environment configuration for testing.

Oracle Database Configuration—Open Cursors

From the metrics that were collected, it was found that the consumption of open cursors in the Oracle database was a

potential bottleneck in testing and resulted in performance degradation.

The Oracle database open cursor setting determines the maximum number of cursors used by a given session to access the

Oracle database. Open cursor limits were reached in the Orchestrator Studio test scenarios.

The Oracle database open cursor limit was being exceeded during testing and it was a concern whether this behavior could

potentially present a boundary condition in the performance of the AIS Server and managed instances supporting the

Orchestrator Studio.

The Oracle database open cursor default limit is 300 and the table below shows the range of cursors consumed during the

testing process. These metrics were collected after the Oracle database open cursor limit was updated to 5,000.

Cursor Utilization

The above table represents the Oracle database consumption of open cursors for the Orchestrator Studio.

Cursor Utilization with Parallel And G1 GC

A similar result was observed with 50 concurrent Orchestrator Studio users regardless of the garbage collection algorithm.

The open cursor setting limit for the other two supported platforms (SQL Server and DB2/UDB databases) is 65,536 by

default. Performance tuning would not be required for those databases.

CONCLUSION The scenarios used in the AIS Server performance characterization under required Orchestrator Studio and JSON request

loads, allowed for the discovery of key tuning values and identification of boundary conditions that customers should

consider when implementing any AIS Server component solution in an EnterpriseOne architecture.

From this performance characterization, it was found that the Java heap size, Oracle database open cursors, and unique

EnterpriseOne user logins were the primary bottlenecks. Moving to the garbage collection algorithm G1 GC should be an

additional tuning parameter.

Configuration of the Oracle database open cursors and the optimal size of the Java heap is dependent on customers’ needs,

and the managed instance load for the Orchestrator Studio users and JSON requests is one of the other factors that must be

considered during implemention of an AIS Server component solution.

Page 21: Orchestrator Studio Performance on Application Interface

19 TECHNICAL BRIEF | Application Interface Services (AIS) Orchestration Studio Performance | Version 1.01

Copyright © 2020, Oracle and/or its affiliates | Confidential – Public

APPENDIX A: TEST CONFIGURATION

The JD Edwards EnterpriseOne architecture configured for the testing process discussed in this document is listed below:

JD Edwards EnterpriseOne Enterprise Server:

• Oracle Enterprise Linux 7.5

• Oracle Database 12c (12.2.0.1.0) 32-bit client

• 4 VCPUs x Intel(R) Xeon(R) CPU E5-2697 v2 at 2.70GHz

• 12 GB RAM

Database Server:

• Oracle Enterprise Linux 7.5

• Oracle Database 12c Standard Edition Release 12.2.0.1.0 – 64-bit production

• 4 VCPUs x Intel(R) Xeon(R) CPU E5-2697 v2 at 2.70 GHz

• 12 GB RAM

HTML Server (includes AIS):

• Oracle Enterprise Linux 7.5

• 4 and 8 VCPUs x Intel(R) Xeon(R) CPU E5-2697 v2 at 2.70 GHz

• 12 GB RAM

• WebLogic Server 12c (12.1.3.0) with Java JDK 1.8

• Two managed instances: HTML (4 GB heap size) and AIS (4 GB heap size)

AIS Server:

• Resides as a managed instance on the HTML Server

• Managed instance (4 GB heap size)

Deployment Server:

• Windows Server 2016 Standard

• 4 VCPUs x Intel Xeon CPU E5-2697 at 2.90 GHz

• 16 GB RAM

Server Manager Console:

• Oracle Enterprise Linux 7.5

• 4 VCPUs x Intel Xeon CPU E5-2697 at 2.90 GHz

• 12 GB RAM

Test Controller:

• Windows Server 2012 R2 Enterprise Edition

• 8 VCPUs x Intel Xeon CPU E5-2697 V2 at 2.70 GHz

• 32 GB RAM

• Apache JMeter 5.1.1.r1855137

Software: JD Edwards EnterpriseOne Application 9.2 Update 4 with Tools Release 9.2.4.3

Page 22: Orchestrator Studio Performance on Application Interface

20 TECHNICAL BRIEF | Application Interface Services (AIS) Orchestration Studio Performance | Version 1.01

Copyright © 2020, Oracle and/or its affiliates | Confidential – Public

APPENDIX B: BACKGROUND LOAD DETAILS

This section describes the background load that were used for the testing process. Each background load was placed in the

Scheduler of the Orchestrator Studio and started just before the actual test and was stopped right after the test.

The following orchestrations and notifications were used as a part of the background load on the Scheduler:

NOTIFICATIONS AND ORCHESTRATIONS AUTO START

Credit Review Notification 3 minutes

Equipment Down 3 minutes

Invoice Batches in Error 3mins

Invoice Batches Out of Balance 3mins

Invoice Pay Items Overdue 3mins

Large Customer Orders Index 3mins

Pending Invoice Batches 3mins

Pending Receipt Batches 3mins

Receipt Batches in Error 3mins

Receipt Batches Out of Balance 3mins

Simple Notification for CBM Alerts 3mins

Test Case Simple Large 3mins

Test Case Simple Shorts 3mins

Total Row Total Row Text

List of Orchestrations And Notifications Used as Background Load

The notifications in the table above were derived from the same application notification events that are described in the

following technical brief on performance characterization: Oracle JD Edwards EnterpriseOne Notifications.

The additional load that was generated using the orchestrations and notifications is indicated by the number of jobs

executed on the EnterpriseOne application which is shown below as the bell notification:

EnterpriseOne Application Displaying the Notifications Icon

Page 23: Orchestrator Studio Performance on Application Interface

21 TECHNICAL BRIEF | Application Interface Services (AIS) Orchestration Studio Performance | Version 1.01

Copyright © 2020, Oracle and/or its affiliates | Confidential – Public

APPENDIX C: USE CASE STEPS

This section illustrates the user activitiy performed while executing the designed use cases.

Orchestrator User Activity Use Case:

1. Log in to the Orchestrator Studio.

2. Create a new orchestration.

3. Add a new orchestration rule.

4. Select Standard.

Page 24: Orchestrator Studio Performance on Application Interface

22 TECHNICAL BRIEF | Application Interface Services (AIS) Orchestration Studio Performance | Version 1.01

Copyright © 2020, Oracle and/or its affiliates | Confidential – Public

5. Define the rule to be greater than 100.

6. Add an existing orchestration form request.

7. Delete the previously created form request

8. Add a new form request

9. Define the order of execution.

Page 25: Orchestrator Studio Performance on Application Interface

23 TECHNICAL BRIEF | Application Interface Services (AIS) Orchestration Studio Performance | Version 1.01

Copyright © 2020, Oracle and/or its affiliates | Confidential – Public

10. Define the form request.

11. Add an existing data request.

12. Select the data request.

13. Save the orchestration.

Page 26: Orchestrator Studio Performance on Application Interface

24 TECHNICAL BRIEF | Application Interface Services (AIS) Orchestration Studio Performance | Version 1.01

Copyright © 2020, Oracle and/or its affiliates | Confidential – Public

14. Log out of the Orchestrator Studio.

Validation of Orchestration and Rule

The basic orchestration, rule, and form requests that were manually created in the Orchestrator Studio or were a result of a

use case execution, can be validated using the Work with User Defined Objects (P98220U) application.

1. Access Work with User Defined Objects (P98220U) application.

2. Search for Orchestrations.

3. Search for Rule.

4. Search for Service Requests and query the form description.

5. Search for Service Requests and query the data request description.

Page 27: Orchestrator Studio Performance on Application Interface

25 TECHNICAL BRIEF | Application Interface Services (AIS) Orchestration Studio Performance | Version 1.01

Copyright © 2020, Oracle and/or its affiliates | Confidential – Public

CONNECT WITH US

Call +1.800.ORACLE1 or visit oracle.com.

Outside North America, find your local office at oracle.com/contact.

blogs.oracle.com facebook.com/oracle twitter.com/oracle

Copyright © 2020, Oracle and/or its affiliates. All rights reserved. This document is provided for information purposes only, and the contents hereof are subject to change without

notice. This document is not warranted to be error-free, nor subject to any other warranties or conditions, whether expressed orally or implied in law, including implied warranties

and conditions of merchantability or fitness for a particular purpose. We specifically disclaim any liability with respect to this document, and no contractual obligations are formed

either directly or indirectly by this document. This document may not be reproduced or transmitted in any form or by any means, electronic or mechanical, for any purpose, without

our prior written permission.

Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.

Intel and Intel Xeon are trademarks or registered trademarks of Intel Corporation. All SPARC trademarks are used under license and are trademarks or registered trademarks of

SPARC International, Inc. AMD, Opteron, the AMD logo, and the AMD Opteron logo are trademarks or registered trademarks of Advanced Micro Devices. UNIX is a registered

trademark of The Open Group. 0120

Disclaimer: This document is for informational purposes. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing

decisions. The development, release, timing, and pricing of any features or functionality described in this document may change and remains at the sole discretion of

Oracle Corporation.