|Oracle9i Application Server Performance Guide
Release 2 (9.0.2) for UNIX
Part Number A97380-01
This chapter discusses how to monitor the performance of Oracle9iAS Containers for J2EE (OC4J). Obtaining performance data can assist you in tuning Oracle9iAS or in tuning and debugging applications with performance problems.
This chapter contains the following topics:
Using Oracle Enterprise Manager, you can view information on the performance characteristics of OC4J instances and of J2EE applications running under OC4J. This section covers the following:
Before analyzing OC4J performance, make sure that your OC4J instance is running. Figure 4-1 shows an Oracle Enterprise Manager display that shows the status for a selected OC4J instance (the Up under the heading General indicates the OC4J instance is running).
Figure 4-1 shows an Oracle Enterprise Manager OC4J instance page. Oracle Enterprise Manager provides overall OC4J performance data for active OC4J instances. The overall performance data includes OC4J performance data collected in the following categories:
The Oracle Enterprise Manager OC4J General information provides information on up and down status for the OC4J instance, its start time, the virtual machine where the OC4J instance is running. This area also presents buttons that allow you to stop or restart the OC4J instance.
The Oracle Enterprise Manager OC4J Status information shows the CPU usage, memory usage, and heap usage for the OC4J instance.
The Oracle Enterprise Manager OC4J Response information for Servlets and JSPs shows the number of active sessions, the active requests, the average request processing time, and the requests processed per second for active requests.
The Oracle Enterprise Manager OC4J Response information for EJBs shows the number of active EJB methods and the EJB method execution rate.
The Oracle Enterprise Manager OC4J JDBC Usage information shows the number of open JDBC connections, the total number of JDBC connections, the number of active transactions, and the total number of transaction commits and transaction rollbacks for the OC4J instance.
After you know that the OC4J instances that contain your J2EE applications are running, check the status for your applications. If your J2EE applications are not loaded, then deploy them and then try accessing the applications to make sure that they work properly.
For each J2EE application deployed on Oracle9iAS, you can view performance information in several categories.
Figure 4-2 shows the Oracle Enterprise Manager display for the sample petstore application.
Figure 4-2 shows the available Oracle Enterprise Manager J2EE application level performance data collected in the following categories:
The Oracle Enterprise Manager J2EE application General information provides an indication of whether the application is loaded or not in the status field, an shows if the Auto Start status is true or false. The Parent Application field provides a link to the application parent.
This area also presents buttons that allow you to Redeploy or Undeploy the application.
The Oracle Enterprise Manager J2EE application Response information for Servlets and JSPs shows the number of active sessions, the active requests, the average request processing time, and the requests processed per second for active requests for the application.
For more detail on this information or to drill down to specific Servlets and JSPs, use the links in the Web Modules table.
The Oracle Enterprise Manager J2EE application Response information for EJBs shows the number of active EJB methods and the EJB method execution rate.
For more detail on this information or to drill down to specific Servlets and JSPs, use the links in the EJB Modules table.
The Web Modules table allows you to obtain more detailed information for Servlets and JSPs within a J2EE application.
Figure 4-3 shows the details for the petstore application's Web Module, including General information, Response and Load information, and a table showing data values for each of the Servlets and JSPs that are part of the application.
The EJB Modules tables allow you to obtain more detailed information on EJB modules and EJBs within the J2EE application.
Figure 4-4 shows a sample EJB Module page.
You can use the Oracle9iAS built-in performance metrics to analyze OC4J and J2EE application performance. Before you attempt to monitor OC4J performance, verify that the OC4J home instance, that is installed by default with Oracle9iAS, is running by accessing the following URL:
The value for myhost should be the host where OC4J is installed. The port must be the port number on which Oracle HTTP Server listens, as configured in the Oracle HTTP Server
Be sure to include the trailing slash (
/) in the URL, otherwise the page cannot be found on the system. If your default Web site has been mapped to something other than the default location
/j2ee/, then you should access the location configured on your system.
If the default OC4J instance is running, then accessing this URL displays the Welcome page for Oracle9iAS Containers for J2EE.
From the OC4J Welcome page you can access the samples for JSPs and servlets. If you do not have active J2EE applications that generate requests on your OC4J instance, then you can use your browser to request the sample servlet-generated or JSP-generated Web pages.
For example, use the following URLs:
dmstool to see the built-in performance metrics.
For example, to use
AggreSpy, enter the following URL in your Web browser:
The resulting display from the
AggreSpy provides a list of metric tables in the left-hand pane that can be selected to display performance metrics for OC4J and Oracle9iAS components. Alternatively, you can use
dmstool on the command line or in scripts that you write to display performance metrics.
Note the following when you are monitoring OC4J built-in metrics:
AggreSpymetric tables or the
dmstoolcollected metrics to find the Servlets, JSPs, EJBs, and EJB methods that are used most often. In many cases, heavily-used application components are responsible for system resource utilization, so focus your troubleshooting effort on the most heavily-used components first.