2 Understanding JD Edwards EnterpriseOne Performance Monitor

This chapter contains the following topics:

2.1 JD Edwards EnterpriseOne Performance Monitor

JD Edwards EnterpriseOne Performance Monitor helps system administrators monitor JD Edwards EnterpriseOne performance data and, if wanted, share the data with third-party monitoring tools. JD Edwards EnterpriseOne Performance Monitor is a diagnostic utility for monitoring the performance of the main elements of your JD Edwards EnterpriseOne system, such as web servers, application servers, and process scheduler servers. You can monitor real-time performance and analyze historical data.

JD Edwards EnterpriseOne Performance Monitor reports durations and key metrics of JD Edwards EnterpriseOne runtime execution, such as SQL statements and business functions.

Note:

JD Edwards EnterpriseOne Performance Monitor enables you to isolate and identify the causes of performance issues; however, it does not provide automatic solutions to performance issues.

2.1.1 JD Edwards EnterpriseOne Performance Monitor Output

The metrics provided by JD Edwards EnterpriseOne Performance Monitor enable system administrators to:

  • Monitor real-time system performance.

  • Identify poorly performing tiers, hosts, domains, servers, application code, and SQL statements in an EnterpriseOne environment.

  • Identify performance trends.

  • Address and isolate performance bottlenecks.

2.2 JD Edwards EnterpriseOne Performance Monitor Elements

This diagram illustrates the main elements of JD Edwards EnterpriseOne Performance Monitor:

Figure 2-1 JD Edwards EnterpriseOne Performance Monitor Elements

Description of Figure 2-1 follows
Description of "Figure 2-1 JD Edwards EnterpriseOne Performance Monitor Elements"

For a detail explanation of the diagram, see Appendix A, "Understanding JD Edwards EnterpriseOne Performance Monitor Architecture"

A monitoring system can monitor one or more JD Edwards EnterpriseOne application systems. However, the monitored system can be monitored by just one monitoring system.

You can configure a self-monitoring system for development and testing.

2.2.1 The Monitored System

The monitored system comprises these main elements:

  • JD Edwards EnterpriseOne application database.

  • JD Edwards EnterpriseOne application server.

  • JD Edwards EnterpriseOne web server.

Note:

An application server is also known as a business logic server in some materials. However, in this guide, only the term application server appears.

JD Edwards EnterpriseOne Performance Monitor agents reside on each main element of the monitored system. Agents run on the servers to gather and report performance information. An agent is a small piece of code operating from within an existing process. It collects performance data and uses a dedicated thread to send the data to the monitoring system. Agent threads report data to the monitoring system's monitor servlet, which in turn reports performance data to the PSPPMSRV server processes in the monitoring system's application server.

Two types of agents exist:

  • Process instrumentation agents that report data about the specific server activities.

  • Domain resource agents that report resource usage statistics about the process and server, such as CPU usage.

2.2.1.1 JD Edwards EnterpriseOne Application Database

This database is installed with the installation of the JD Edwards EnterpriseOne system. This database has all the tables to store performance data for EnterpriseOne. The default installation installs both JD Edwards EnterpriseOne application tables and JD Edwards EnterpriseOne Performance Monitor tables within the same database. JD Edwards EnterpriseOne users can use the Object Configuration Management (OCM) settings to use a separate database for Performance Data. Separating performance data and production data into separate databases should enhance the performance of the JD Edwards EnterpriseOne Servers.

2.2.1.2 Application Server

The JD Edwards EnterpriseOne application server, also known as the JD Edwards EnterpriseOne Enterprise Server, contains the CallObject Kernel processes used to run business functions on the application server. Each CallObject Kernel process, or each CallObject thread, in the case of multi-threaded CallObjects, uses a C-Agent to collect and send the performance data to the JD Edwards EnterpriseOne Performance Monitor Java Adapter on the monitoring server.

The C-Agent is a small piece of code that operates within an existing CallObject process or thread. The C-Agent uses the JD Edwards EnterpriseOne JDENet communication protocol to send the performance data to the monitoring server. C-Agents report data to the PerfMon Java Adapter, which in turn sends the data to the Monitor servlet. The monitoring system's monitor servlet then sends performance data to the monitoring system's Data Collator Servlet.

Note:

JD Edwards EnterpriseOne Performance Monitor does not monitor the performance of the RDBMS or the server on which it runs.

2.2.1.3 Web Server

The JD Edwards EnterpriseOne web server, also known as the JD Edwards EnterpriseOne JAS (Java application server), contains Java components of the JD Edwards EnterpriseOne web server. The JD Edwards EnterpriseOne Java components have been instrumented to send performance data to the monitoring server. Each component of the JAS Server uses a Java Agent to collect and send the performance data to the monitor servlet on the monitoring server.

A Java Agent is a small piece of code operating from within an existing JVM process. It collects data and uses a dedicated thread to send the data to the monitoring system. Java Agents report data to the Monitor servlet which in turn sends XML formatted performance data to the Monitoring System's Data Collator servlet.

2.2.2 The Monitoring System

The monitoring system includes these elements:

  • JD Edwards EnterpriseOne Performance Monitor Java Adapter.

  • JD Edwards EnterpriseOne Monitor Servlet.

  • JD Edwards EnterpriseOne Performance Monitor Integration (PPMI) Servlet.

  • JD Edwards EnterpriseOne Data Collator Servlet.

2.2.2.1 JD Edwards EnterpriseOne Performance Monitor Java Adapter

JD Edwards EnterpriseOne Performance Monitor Java Adapter is the bridge between the JD Edwards EnterpriseOne application server and the monitoring server. C-Agents on the application server (CallObject Kernel processes/threads) collect and send the performance data to the Java Adapter using the JDENet communication protocol. For each C-Agent on the application server, a Java Agent is created within the JD Edwards EnterpriseOne PerfMon Java Adapter process. Based on the type of the message sent by the C-Agent, the Java Agent calls into the appropriate Java Agent API. From this point on, the performance data is processed the same way as if a Java Agent running on the JD Edwards EnterpriseOne web server sent the data. This architecture allows the same components on the monitoring server (Monitor, PPMI, and Data Collator servlets) to manage Agents and process performance data regardless of the origin of the data: application server or web server.

See Implementing the Production Monitoring System.

2.2.2.2 JD Edwards EnterpriseOne PPMI Servlet

The PPMI servlet registers and manages PPMI clients. The Data Collator is an integrated PPMI client for JD Edwards EnterpriseOne monitoring server. Any third-party solution can register to the PPMI servlet and receive JD Edwards EnterpriseOne performance data.

The PPMI servlet also receives the Agent configuration notifications sent by the JD Edwards EnterpriseOne web server. Administrators can change the Agent configuration for one or all the registered Agents and notify all the Agents of the changes. The JD Edwards EnterpriseOne web server sends an Agent notification message to the PPMI servlet, which in turn, notifies the Monitor servlet. The Monitor servlet reads the new Agent configuration for the appropriate Agents from the database and sends the configuration back to Agents. Note that each time an Agent sends the performance data to the Monitor Servlet the Agent configuration is sent back to the Agent as the response. The PPMI servlet also adds a new record in the database for each Agent registered with the monitoring system.

2.2.2.3 JD Edwards EnterpriseOne Monitor Servlet

The Monitor servlet receives the performance data from Agents and sends it to the Data Collators. For each message sent by an Agent, the Monitor servlet sends back the Agent configuration. This way, the Agents are always up-to-date of any configuration changes. Note that administrators can change the Agent configurations from the JD Edwards EnterpriseOne PerfMon User Interface.

2.2.2.4 JD Edwards EnterpriseOne Data Collator Servlet

The Data Collator servlet registers itself with the PPMI servlet as a PPMI client. By registering with the PPMI, the Data Collator will receive the performance data sent by the Monitor servlet. Note that the PPMI servlet notifies the Monitor servlet of all newly registered clients. The Data Collator's main function is to write the performance data to the JD Edwards EnterpriseOne PerfMon database. Two main database tables are used to contain the performance data: Current Transaction table and History Transaction table. The Data Collator writes the performance data for a running transaction to the current transaction table until the transaction ends. The Data Collator then writes the End Transaction data to the History Transaction table and removes all records related to this transaction from the Current Transaction table.

2.3 Implementing the Production Monitoring System

In a production environment, you should configure the JD Edwards EnterpriseOne monitoring system separate from the production monitored systems. Any JD Edwards EnterpriseOne system database that is delivered with JD Edwards EnterpriseOne installation contains the appropriate database definitions to store all JD Edwards EnterpriseOne Performance Monitor data. With the separate monitoring system, you can monitor a single JD Edwards EnterpriseOne system, or you can configure it to monitor multiple JD Edwards EnterpriseOne systems.

Note:

JD Edwards EnterpriseOne Performance Monitor can monitor any JD Edwards EnterpriseOne system running on 8.95 or greater. Always consult JD Edwards EnterpriseOne Release Notes and guides to become aware of any exceptions or unsupported features between release levels.

2.4 JD Edwards EnterpriseOne Performance Monitor Instrumentation

This section explains the terminology that is associated with JD Edwards EnterpriseOne Performance Monitor instrumentation. Instrumentation refers to the modifications that are made to internal JD Edwards EnterpriseOne programming code that enable the system to report performance data to a monitor. Selected areas of JD Edwards EnterpriseOne runtime source code have been instrumented. When the system runs instrumented code, it generates time-stamped performance metrics that are relevant to that section of code. Agents running on the monitored system send the performance data to JD Edwards EnterpriseOne Performance Monitor. Instrumentation generates performance measurement units (PMUs) and events.

2.4.1 Understanding PMUs

A PMU is a unit of measure that reflects the execution of a section of code. The system starts and stops a PMU at specific locations in the code, and the system may update a PMU anytime between the start and stop times. JD Edwards EnterpriseOne has defined a set of PMU types, and each type of PMU corresponds to the instrumentation at a specific code location such as a SQL Execute in the application server or a JDBj request in the web server.

Each PMU includes:

  • PMU Type.

  • Instance identifier (a unique identifier for a specific PMU instance).

  • Start time.

  • Stop time.

  • Status.

  • Metrics (such as number of SQL fetches or buffer size used in a Jolt response).

Open PMUs are those that are currently being processed. These are PMUs for which a "stop" transaction has not yet been received. Completed PMUs are those for which a "stop" transaction has been received. PMUs can assume a parent-child relationship. Child PMUs start within a parent PMU. Child PMUs are linked to their parent by the parent instance ID.

You can view PMUs within a tree structure that reveals the hierarchy of parent-child PMUs and indicates the processing times at each level.

2.4.2 Understanding Events

Events are not implemented for the 8.95 release of JD Edwards EnterpriseOne Performance Monitor.

Events are notifications containing performance metrics that are different from PMUs in that they are not hierarchical and they do not have durations. Events relate to resource usage, such as CPU usage or memory allocation. JD Edwards EnterpriseOne has defined a set of event types, and each type of event is reported at a specific location in the instrumented code.

Each event has:

  • Type.

  • Instance identifier (a unique identifier for a specific event instance).

  • Timestamp.

  • Severity.

  • Metrics (such as CPU usage and memory allocation).

See Revising Event Definitions.

2.5 Performance Integration with Third-Party Systems

Using web service technology, performance data that is generated by JD Edwards EnterpriseOne Performance Monitor can be shared with third-party performance-monitoring tools by way of JD Edwards EnterpriseOne Performance Monitor Integration (PPMI) API. The PPMI API uses the Simple Object Access Protocol (SOAP).

Note:

The PPMI API protocol is not documented in guides. It is used only in products that are developed by JD Edwards EnterpriseOne system and performance management integration partners. You can use the PPMI API only if you are licensed through JD Edwards.

2.6 JD Edwards EnterpriseOne Performance Monitor Data

After JD Edwards EnterpriseOne Performance Monitor is configured to retrieve and store data in the performance database tables, you can view the performance data using a variety of JD Edwards EnterpriseOne applications that:

  • Provide a summary of performance data.

  • Present raw performance data.

You can access all of the forms that are related to JD Edwards EnterpriseOne Performance Monitor using the JD Edwards EnterpriseOne Performance Monitor menu. Some performance information appears in grids, while other performance information appears in charts. You have the option to view chart information in grids for sorting and downloading to Microsoft Excel.

2.7 Scope of JD Edwards EnterpriseOne Performance Monitor

JD Edwards EnterpriseOne Performance Monitor provides performance metrics for:

  • JD Edwards EnterpriseOne application server components

    • Business function processing

    • Database operations (insert, delete, update, select).

  • JD Edwards EnterpriseOne WEB Server (also known as JAS) components.

    • Business function processing

    • Database operations (insert, delete, update, select)

    • JD Edwards EnterpriseOne application events.