A Understanding JD Edwards EnterpriseOne Performance Monitor Architecture

This appendix contains the following topics:

A.1 JD Edwards EnterpriseOne Performance Monitor Architecture Components

This section discusses the major components of JD Edwards EnterpriseOne Performance Monitor Architecture, which are:

  • JD Edwards EnterpriseOne application server.

  • JD Edwards EnterpriseOne web server (also known as JAS, Java application server)

  • JD Edwards EnterpriseOne monitoring server

  • User interface

  • Database host

  • Data Flow

A.1.1 JD Edwards EnterpriseOne Application Server

This section discusses the components of the application server.

A.1.1.1 AppServer C-Agent

All instrumented C processes on the JD Edwards EnterpriseOne application server are linked to the JD Edwards EnterpriseOne PerfMon DLL to call into instrumentation APIs. Instrumentation APIs send performance data to the PerfMon Java Adapter on the Monitoring Server using JD Edwards EnterpriseOne Proprietary JDENT communication protocol.

A.1.1.2 Archive Batch Process

This component is a batch process scheduled to periodically move data from current and history table to archive tables and also can be configured to remove data from all tables to manage disk space. This process uses JD Edwards EnterpriseOne proprietary JDB APIs to access and modify database tables.

A.1.1.3 Reaper Batch Process

This component is a batch process scheduled to periodically move data from current tables to history tables for completed transactions and also to delete flagged rows in current tables. This process uses JD Edwards EnterpriseOne proprietary JDB APIs to access and modify database tables.

A.1.2 JD Edwards EnterpriseOne JAVA Application Server

This section discusses the components of the JAS server.

A.1.2.1 JAS Runtime Engine

This component is used to display HTML pages for JD Edwards EnterpriseOne PerfMon User Interface. Retrieves meta-data from database and creates HTML Pages to send back to user browser over HTTP. It also changes Agent configuration in the database and sends a notification to the PPMI Servlet so the changes can get to the Agents. Jas runtime engine uses JD Edwards EnterpriseOne proprietary JDBj APIs to access and modify database tables.

A.1.3 JD Edwards EnterpriseOne Monitoring Server

Enterprise One Monitoring Server uses the same components as the Enterprise solution which are: PPMI Servlet, Monitor Servlet and Data Collator. Changes have been made to these components for integration with JD Edwards EnterpriseOne environment. For example these components have been changed to use JD Edwards EnterpriseOne JDBj mechanism for database operations. No changes have been made in the way 3rd part solutions will register and retrieve data from the Monitoring Server. One new component (JD Edwards EnterpriseOne PerfMon Java Adapter) has been added to act as a bridge between JD Edwards EnterpriseOne application server and Monitor Server. This adapter receives the performance data from the Enterprise Server (through JDENet messages) and converts them to HTTP and sends them to the Monitor Servlet by calling into existing PerfMon Java APIs.

A.1.3.1 PerfMon Java Adapter

PerfMon Java Adapter acts as a bridge between JD Edwards EnterpriseOne application server and the Monitoring Server. C processes on the application Server (also known as C-Agents) send the performance data to the PerfMon Java Adapter using the JD Edwards EnterpriseOne JDENet protocol. PerfMon Java Adapter calls into Java APIs and passes the performance data to the monitor Servlet which runs on the Monitor Server. Note that the Java APIs called by the PerfMon Java Adapter are the same APIs that are called in JAS Runtime Engine instrumented code.

A.1.3.2 Monitor Servlet

The Monitor Servlet receives the registration notification from all the Agents and updates the database with the registration information. It also receives the performance data from all the Agents in the environment and hands the data to all registered PPMI clients. In JD Edwards EnterpriseOne solution the "out of the box" PPMI client for performance data is the JD Edwards EnterpriseOne data collator whish is another component of the Monitor Server. Each time the Monitor Server receives the performance data from an Agent, it sends back the Agent configuration as the response to the Agents. This is how the Agents will be notified from any Agent configuration changes. The Monitor Servlet uses the JD Edwards EnterpriseOne proprietary JDBj APIs to access and modify database tables.

A.1.3.3 Data Collator Servlet

The Data Collator registers itself to the PPMI Servlet as a PPMI Client Proxy to show interest in receiving performance data for JD Edwards EnterpriseOne environment. By receiving performance data from the Monitor Servlet, the data collator will update the database accordingly: If the data is indicating the end of an open transaction, then the data collator will add the data to the history table and remove all the corresponding data for this transaction from the current table. Otherwise the data is added to the current table. The Data Collator uses the JD Edwards EnterpriseOne proprietary JDBj APIs to access and modify database tables.

A.1.3.4 PPMI Servlet

The PPMI Servlet manages PPMI clients. PPMI Client is a component that registers to the PPMI Servlet to receive JD Edwards EnterpriseOne performance data. When a client registers, the PPMI Servlet will notify the Monitor Servlet of the newly registered client and the Monitor Servlet will make sure that the performance data will be sent to the client. In JD Edwards EnterpriseOne Performance Monitor architecture, the JD Edwards EnterpriseOne Data Collator is the default PPMI client for the system. The PPMI Servlet also receives the Agent configuration change messages from the JD Edwards EnterpriseOne JAS Server. This happens when a JD Edwards EnterpriseOne administrator changes the configuration for a group of Agents using the JD Edwards EnterpriseOne PerfMon User Interface. By receiving the notification, the PPMI Servlet reads the new Agent configuration from the database and updates the Agent configuration in the memory. This configuration in the memory is the one that is sent back to all the Agents by the Monitor Servlet. The PPMI Servlet uses the JD Edwards EnterpriseOne proprietary JDBj APIs to access and modify database tables.

A.1.4 Data Flow

This section describes how data flows through JD Edwards EnterpriseOne Performance Monitor.

A.1.4.1 Sending Performance Data to Monitor Server

Arrows 1

On the JD Edwards EnterpriseOne application server the C-Agent calls into C instrumentation API to send the performance data to the JD Edwards EnterpriseOne PerfMon Java Adapter on the Monitoring Server.

Arrow 2

On the Monitoring Server the Java Adapter calls into Java Agent APIs to send the performance data to the Monitor Servlet component of the Monitoring Server. The Java Agent APIs use a separate thread per Agent to communicate with the Monitoring Server.

Arrow 3

The JAS Runtime Engine calls into Java Agent APIs to send the performance data to the Monitor Servlet component of the Monitoring Server. The Java Agent APIs use a separate thread per Agent to communicate with the Monitoring Server.

A.1.4.2 Saving performance Data in database

Arrow 4

Inside the Monitor Server, the Monitor Servlet receives the performance data from Java Agents in HTTP format and converts the data to XML before sending it to the Data Collator. The data collator component of the Monitor Server calls into JD Edwards EnterpriseOne JDBj APIs to save performance data to the JD Edwards EnterpriseOne PerfMon database.

A.1.4.3 Sending configuration changes to the Agents

Arrows 5,6,7,8 and 9

The administrator uses the JD Edwards EnterpriseOne PerfMon User Interface to change Agent configuration for a group of Agents. (arrow number 5).

The JAS Runtime engine changes the Agent configuration data in JD Edwards EnterpriseOne PerfMon database (arrow number 6).

The JAS Runtime engine sends a notification message (in HTTP format) to the PPMI Servlet component of the Monitor Server (Arrow number 7).

The PPMI Servlet reads the new Agent configuration from PerfMon database (arrow number 8).

The PPMI Server updates the Agent configuration data in the memory, where it will be accessed by the Monitor Servlet. The Monitor Servlets sends the new Agent configuration to all the Agents the next time it communicates with the Agents (arrow number 19).

On the JAS Server no additional work is needed. The PerfMon Java Adaptor sends a JDENet message containing the new Agent configuration to all the C-Agents processes on the AppServer (arrow number 10). The Java Adapter manages a C-Agent process table where it keeps the host name and port number (among others) of all the C-Agent processes registered to the Java Adapter.

A.1.4.4 Archiving data in database

Arrow 11

A scheduled batch process will archive data in the database. The Archive batch process can be scheduled to run periodically to either move the performance data from database tables to the Archive tables or to remove them from Archive tables to free disk space on the database host. This batch process uses the EnterpriseOne proprietary JDB APIs to access data in the database.

A.1.4.5 Reaping data in database

Arrow 15

A scheduled batch process will move timed out data from current tables to history tables. This batch process uses the EnterpriseOne proprietary JDB APIs to access data in the database.