Users Guide
Version 8.7
Technical support
For technical assistance, visit our customer portal at my.precise.com where you can find an extensive knowledge base, product updates and our online community forums. You can also contact our Customer Support Team via our customer portal, or go to www.precise.com/support for a list of our support access numbers in your country.
Contents
Chapter 1 Precise for J2EE Basics
How most workspaces are structured ........................................................................................9 About the Workspace selection bar ...................................................................................10 Switching to a different workspace .............................................................................11 About the General Options bar ..........................................................................................11 About the Call Path ...........................................................................................................11 About the General toolbar .................................................................................................11 About the Main area ..........................................................................................................11 About Main area features ...........................................................................................12 About the Association area ...............................................................................................12 About display intervals ..............................................................................................................12 About the Time Frame .......................................................................................................12 About the Archive Data Selection page .....................................................................13 Selecting data for analysis ................................................................................................15 About the Loading data... message ...................................................................................15 About administration pages ......................................................................................................15 About the Java Virtual Machine Settings Administration page ..........................................15 About the Monitoring Configuration page ...................................................................15 About the Java Virtual Machine Settings Administration options ...............................16 About the Java Virtual Machine Settings page ..................................................................16 About the FocalPoint Administration page ........................................................................18 About Layout Options .................................................................................................18 About Archiving Options .............................................................................................19 About Database Options ............................................................................................19 Switching from MySQL to Oracle ...............................................................................19 About Security Options ..............................................................................................20 About the Findings Administration page ............................................................................20 About the Findings Analysis and Graph options ........................................................21 About the Call Graph threshold options .....................................................................21 About the Call Graph configuration options ...............................................................21 About Contributors by Category Page Analysis options ............................................21 About Findings Application Summary categories .......................................................23 About the Business Transactions Administration page .....................................................27 About the Business Transactions Administration options ..........................................27 Creating a business transaction .................................................................................28 About the System Status page .................................................................................................28 About the Status Details page ...........................................................................................29 About data collection in Precise for J2EE .................................................................................29 About Monitoring Configuration .........................................................................................29 About Monitoring Configuration icons ........................................................................30 About selecting a pattern for editing or viewing matching loaded classes and methods .......................................................................................................30 About Monitoring Configuration results ......................................................................30 About Status values ...................................................................................................31 About Type values .....................................................................................................31 About Monitoring Configuration controls ....................................................................31 About the Pattern Manager ...............................................................................................32 About Pattern Manager loaded classes and methods results ....................................33 About instrumentation modes ............................................................................................33
Contents
About Adaptive Instrumentation ........................................................................................34 Tips on Adaptive Instrumentation ...............................................................................35 About the Adaptive Instrumentation Wizard page ......................................................38 Procedures for Adaptive Instrumentation ...................................................................40 About the Expert Configuration page ................................................................................42 About Expert Configuration options ...........................................................................43 About the Statistics Administration page ...........................................................................44 About the Statistics Administration options ................................................................45 About the Add Statistics to Configuration page ..........................................................45 About the Copy Instrumentation page ...............................................................................46 Troubleshooting memory errors and adjusting heap sizes ................................................46 About JVM heap size for all JDKs ..............................................................................47 About increasing collector memory ............................................................................47 About permanent generation size for Sun JDKs ........................................................47 Setting initial system heap size for IBM JDKs ............................................................47 How to launch the Precise for J2EE user interface ..................................................................48 Launching Precise for J2EE from Precise StartPoint ........................................................48 Launching the user interface directly .................................................................................48
Chapter 2
Contents
Identifying a memory bottleneck ........................................................................................67 Identifying which tier has a bottleneck ...............................................................................68 Detecting a service backlog ..............................................................................................68
Chapter 3
Chapter 4
Chapter 5
Appendix A
Contents
About using custom instrumentation ........................................................................................91 About modifying instrumenter configuration files ...............................................................91 Enabling an additional configuration file .....................................................................92 Adding your own custom instrumentation configuration file .......................................92 About custom instrumenter configuration ..........................................................................93 About instrumenting interfaces ...................................................................................94 About instrumenting classes ......................................................................................98 About instrumenting all calls from a method ............................................................102 About instrumenting calls to methods ......................................................................102 About preventing instrumentation for classes, methods, and calls to methods .......103 About instrumenting calls to EJB business method implementations .............................106 About the Calls to EJB instrumentation feature .......................................................106 About instrumenter configuration file reference ...............................................................108 About the master configuration file ...........................................................................109 About the instrumenter configuration files ................................................................110 About the structure of instrumenter configuration files .............................................111 About common instrumenter configuration matching techniques ............................114 Including application server classes in Leak Seeker instrumentation .............................116 About using the instrumentation configuration utility ..............................................................116 About system requirements .............................................................................................116 About how the ICU works ................................................................................................116 About prerequisites to using the ICU ...............................................................................117 About obtaining data files for the ICU ..............................................................................117 About running the ICU .....................................................................................................117 Loading data files for analysis .........................................................................................118 About identifying methods of interest ..............................................................................118 Enabling or disabling instrumentation for a method ........................................................119
Glossary Index
121 132
Chapter
How most workspaces are structured About display intervals About administration pages About the System Status page About data collection in Precise for J2EE How to launch the Precise for J2EE user interface
Workspace selection bar General options bar Call path Status bar Analysis tabs Main area Association area
10
Precise icons
The figure below shows the common workspace elements. Figure 2-1 Workspace terminology
Main area
Association area
Table settings
The table below describes which tasks can be performed in each workspace. Table 2-1 Workspace
Dashboard
Activity
The Activity workspace enables you to investigate your JVM invocation tree in a deep or shallow manner, and to track SQL execution, locks and exceptions in the same manner. See About the Activity workspace on page 69.
11
Memory
The Memory workspace allows you to examine memory usage, garbage collection, and Leak Seeker data. See About the Memory workspace on page 88.
Click a button on the Workspace Selection bar to display information on the selected entity in a different workspace.
Status click to view the System Status page Configure selected by default, and the main workspace area displays the administration pages
Highlights Hotspots
12
As you navigate through Precise for J2EE, the Analysis tabs change to enable you to view metrics relevant to the open page. The main area occupies many Precise for J2EE pages. The information displayed in this area changes as you select views, modes, and reports and drill down to underlying data.
13
The table below describes the Time Frame options. Table 2-2 Option
Archive Folder
Active is the folder containing current data for all monitored JVMs. The length of time for which data is collected in the Active archive is set by the Aging Timespan parameter in the FocalPoint Administration page.
JVM
Server host name and JVM ID of a monitored JVM. The list of JVMs contains all monitored JVMs for which your role(s) has access. Select a specific time frame.
From/To Day/Month/Year/Hour/Minutes Last n Hours/Days/Weeks/Months Use a previously saved time frame Save these definitions for future use as
This option is available if you have selected and saved a time frame. Select the name that you gave the time frame, when you saved it, from the drop-down list. Specify a time frame, then check this box to save the defined time frame with a name of your choosing. The time frame will be available in the Use a previously saved time frame option. Note: The saved time frame remains part of active data and will be purged according to the Aging Timespan setting in the FocalPoint Administration page. To permanently retain data from a specified time frame, you must create your own archive folder using the data export and import scripts. For details on using these scripts, see the Precise Administration Guide.
Archive Chooser
Opens the Archive Data Selection page where you choose data from the currently selected archive or select a different inactive archive label.
Analyze a single slice or series of slices Analyze an entire archive file Use data from the Active Archive Use data from the Inactive Archive demo (or change the inactive archive label)
14
After the data has been selected, click Next and Precise for J2EE automatically loads it into the Analysis Agent. Archived Data Summary pages containing the same information as the JVM Data Summary pages are then generated and displayed.
The table below describes the archive data selection options. Table 2-3 Option
Analyze a single slice Analyze an entire archive file Use data from the Active Archive Use data from the Inactive Archive
Next
15
16
Click the Monitoring Configuration hyperlink to view the Monitoring Configuration dialog. See About Monitoring Configuration on page 29.
Note: Though not recommended, you can also configure instrumentation manually. See About custom instrumenter configuration on page 93.
Instrumentation
Opens the Java Virtual Machine page to view or modify start-up settings, aggregation interval, and other JVM-specific options. Opens the Statistics Administration page with controls for selecting application server metrics to be collected for the specified JVM. See About the Statistics Administration page on page 44.
Statistics
Opens the Adaptive Instrumentation Wizard page where you configure and run Adaptive Instrumentation. See About the Adaptive Instrumentation Wizard page on page 38.
Opens the Copy Instrumentation Wizard page where you can copy instrumentation configuration files from one JVM to another. See About the Copy Instrumentation page on page 46.
Opens Expert Configuration where you can manage the instrumentation of the selected JVM at the method level. See About the Expert Configuration page on page 42.
17
The table below describes the Java Virtual Machine Settings options. Table 2-5 Option
Instrumentation Mode
Basic mode provides visibility of common J2EE interfaces, while keeping overhead low. Standard mode provides visibility of common J2EE interfaces as well as non-standard Java/J2EE components, but with limited instrumentation and flexibility to add additional instrumentation. Expert mode provides maximum visibility and flexibility but with higher overhead.
Clicking Click here for information about Instrumentation Modes displays information about when to use each mode. See About instrumentation modes on page 33. Leak Seeker Track Select the data that Leak Seeker collects. Leak Seeker can collect data on leaking Java objects, and the largest leaking collections, arrays, and string buffers. By default, Leak Seeker is not enabled. Objects: Leak Seeker reports the allocation sites with most live objects, excluding collections, arrays, and string buffers. Collections: Leak Seeker reports allocation sites for the collections with the largest number of objects. The size reported aggregates the size of all objects contained in the collections allocated at that site. Arrays: Leak Seeker reports allocation sites for the arrays with the most objects. The size reported is a sum of the sizes of the arrays allocated at that site. String Buffers: Leak Seeker reports allocation sites for string buffers with the most entries. The size reported is the sum of all the sizes of the data buffers allocated that site. Note: When enabling LeakSeeker, we recommend that you first enable Leak Seeker Track Objects since collecting this data uses fewer resources (execution time and memory). Only use Leak Seeker Track Collections, Arrays, or String Buffers when you suspect they are the source of the memory leaks. The number of objects tracked is limited and an error message will be displayed when the limit is reached. Note: After enabling Leak Seeker, you must restart the JVM. Aggregation Interval Controls the time span over which the Precise for J2EE Collector aggregates JVM data. At the end of this interval, the summarized data is sent to the Archive Agent. This interval comprises one time slice of data. Note: Shorter aggregation intervals cause more data to be transferred to the Precise for J2EE database. When a lot of data is being collected and reported about the monitored application, you may notice slower performance if the aggregation interval is less than five minutes. As a general rule, aggregation intervals less than five minutes are not recommended for production environments. Memory/Garbage Collection Interval SQL Statements Collected per Context Minimum threshold for SQL statements to collect Enable IXP Direct Connect for this JVM Controls the time interval used for JVM memory data gathering.
Controls the maximum number of top-N SQL statements collected for each JDBC invocation.
Controls whether Expert Configuration connects directly to the monitored JVM instead of getting its data through the Precise for J2EE Collector. Enabling IXP Direct Connect improves the performance of Expert Configuration. Available when IXP Expert Configuration Direct Connect is enabled. Specifies the port number that Expert Configuration uses to connect to the monitored JVM when IXP Direct Connect is enabled. By default, the port number is 20764, but any port number can be used as long as that port has been opened. Note: If Expert Configuration Direct Connect is enabled for more than one JVM running on the same machine, each JVM must be assigned a unique port number.
18
Filtering methods
no filtering - all data will be collected filter by percent of total response time - filters all execution trees where total response time % was less than the defined threshold
Note: The total response time % is calculated by finding the relative percent of the execution tree from all execution trees response time in the time slice.
filter by average response time - collect only execution trees which had an average response time greater than the threshold
Configure the user interface Select an inactive archive to analyze Modify the archiving, display, and Archive Agent network configuration Select Oracle or MySQL as the Precise for J2EE short-term database Enable HTTPS for communication between the user interface and the Precise for J2EE FocalPoint
To open the FocalPoint Administration page 1 In the General Options bar, click Settings. Then click the FocalPoint tab. The FocalPoint Administration page contains an Update button, in addition to the information contained in the table below. The values displayed on this page are the current values of the FocalPoint and are not saved on a per user basis. Click Update to save any changes made on this page.
Refresh Interval
Automatic page refresh timer. When refresh is enabled, the Current and Recent pages are refreshed at this interval. Controls the number of plotted time series line graph items in Recent and Archive series pages.
Controls the number of time slices plotted in time series graphs. These time slices are stored in the archive for each JVM monitored by the Precise for J2EE Collector. Each time slice summarizes JVM activity for the aggregation interval specified in the Java Virtual Machine Settings page. Controls whether the Dashboard or Activity workspace is the home page for Precise for J2EE. When the Activity workspace is used as the Precise for J2EE home page, the first page displayed in the Activity workspace is the Java Virtual Machine Summary page. When the Dashboard is used as the home page, the first page displayed when moving to the Activity workspace is the JVM Data Summary page for the JVM chosen in the Dashboard.
Start Page
19
Overflow Enabled
Inactive archives, such as the Demo archive that is delivered with Precise for J2EE, are used to permanently store interesting sets of data. By default, the inactive archive, Demo, is selected. To change the inactive archive that is available for analysis, type overflow, if overflow is enabled, or type the name of another inactive archive that you have imported. See the Precise Administration Guide for information on exporting and importing archive data.
Password
Database Name
20
To switch from MySQL to Oracle 1 Write down the database information for the Oracle database. You will enter this information when running the scripts and when updating the database information in the FocalPoint Administration page. Identical information must be entered in both places. Run the scripts to create the Precise for J2EE schema in the Oracle database. If you wish, you can also customize the username and password that Precise for J2EE uses to connect to the database. Information on the scripts and customization can be found in the Precise Administration Guide. In the FocalPoint Administration page, select Oracle as the database type. In the FocalPoint Administration page, enter the host name and port number for the Oracle database. If you have customized the user name, password, or database name, enter the names in the appropriate text fields. Warning: Enter the information exactly as it was entered in the Oracle scripts. If you update the FocalPoint Administration page with different information, you will not be able to communicate with the FocalPoint. For more information, see the Precise Frequently Asked Questions. 5 6 7 Click Update. Restart the Precise for J2EE FocalPoint. (Optional) Stop the MySQL database by running: UNIX: <i3_root>/products/j2ee/bin/stopMySQL.sh Windows: <i3_root>\products\j2ee\bin\stopMySQL.bat
3 4
21
22
appropriate for that method. If a category is not enabled (not selected), Findings analysis does not attempt to apply the category to the method. The table below explains each WebLogic contributor category. Table 2-12 WebLogic contributor categories Description of Findings analysis
Contribution of stateless session beans as measured from the application server's pool. Contribution of stateful session beans from the application server's cache as measured by the ejbActivate() and ejbPassivate() methods of the EJB life cycle. Contribution related to entity bean persistence as measured by the ejbLoad() and ejbStore methods of the EJB life cycle.
Contributor category
Stateless Session EJB Stateful Session EJB
Entity EJB
The table below explains each WebSphere contributor category. Table 2-13 WebSphere contributor categories Description of Findings Analysis
Contribution related to EJB cache performance as measured by the create method of the EJB life cycle. Contribution of stateful session beans from the application server's cache as measured by the ejbActivate() and ejbPassivate() methods of the EJB life cycle. Contribution related to entity bean persistence as measured by the ejbLoad() and ejbStore methods of the EJB life cycle.
Contributor Category
EJB Cache
Entity EJB
The table below explains each Oracle contributor category. Table 2-14 Oracle contributor categories Description of Findings Analysis
Contribution of stateless session beans as measured from the application server's pool. Contribution of stateful session beans from the application server's cache as measured by the ejbActivate() and ejbPassivate() methods of the EJB life cycle. Contribution related to entity bean persistence as measured by the ejbLoad() and ejbStore methods of the EJB life cycle.
Contributor Category
Stateless Session EJB Stateful Session EJB
Entity EJB
The table below explains contributor categories that apply to all application servers. Table 2-15 General contributor categories Description of Findings Analysis
Contribution of obtaining database connections from a database pool as measured by the getConnection() method of the JDBC API. Contribution of database queries as measured by execute(), executeQuery(), andexecuteUpdate() methods of the JDBC API. Contribution of database activity outside the scope of SQL Access methods. This category measures JDBC API calls for instrumented invocations of type JDBC such as ResultSet processing methods or closing of database connections. Contribution of EJB activity as measured by all other EJB business methods (instrumented invocations of type EJB) not designated as vendor-specific life cycle methods identified by the previous categories.
Contributor Category
JDBC Connection Pool
SQL Access
JDBC Access
EJB Access
23
Table 2-15
Contributor Category
JNDI Access HTTP Session Access XML Access
The table below explains WebLogic 8.1 application summary categories. Table 2-17 WebLogic 8.1 application summary categories Description of Findings Analysis
Evaluates if Idle threads are available.
24
The table below explains WebLogic 9.0 application summary categories. Table 2-18 WebLogic 9.0 application summary categories Description of Findings Analysis
Evaluates if Idle threads are available.
The table below explains WebLogic 9.1 application summary categories. Table 2-19 WebLogic 9.1 application summary categories Description of Findings Analysis
Evaluates if Idle threads are available.
The table below explains WebLogic 9.2 application summary categories. Table 2-20 WebLogic 9.2 application summary categories Description of Findings Analysis
Evaluates if Idle threads are available.
25
Table 2-20
The table below explains WebLogic 10.0 application summary categories. Table 2-21 WebLogic 10.0 application summary categories Description of Findings Analysis
Evaluates if Idle threads are available.
The table below explains WebSphere 5.0 application summary categories. Table 2-22 WebSphere 5.0 application summary categories Description of Findings Analysis
Evaluates if maximum available threads are in use.
The table below explains WebSphere 5.1 application summary categories. Table 2-23 WebSphere 5.1 application summary categories Description of Findings Analysis
Evaluates if maximum available threads are in use.
26
Table 2-23
The table below explains WebSphere 6.0 application summary categories. Table 2-24 WebSphere 6.0 application summary categories Description of Findings Analysis
Evaluates if maximum available threads are in use.
The table below explains WebSphere 6.1 application summary categories. Table 2-25 WebSphere 6.1 application summary categories Description of Findings Analysis
Evaluates if maximum available threads are in use.
The table below explains Oracle 10.1.2 application summary categories. Table 2-26 Oracle 10.1.2 application summary categories Description of Findings Analysis
Evaluates the JDBCDriver for leaked connections when a connection was obtained from the connection pool and never returned.
The table below explains Oracle 10.1.3 application summary categories. Table 2-27 Oracle 10.1.3 application summary categories Description of Findings Analysis
Evaluates the JCAConnectionPool for opened JCA connections that were obtained from the pool and never closed.
The table below explains SAP 6.4 application summary categories. Table 2-28 SAP 6.4 application summary categories Description of Findings Analysis
Evaluates Application Thread Pool size.
27
Table 2-28
Application Thread Pool Evaluates Application Thread Pool size. Waiting Tasks Queue Overflow System Thread Pool Availability Managed Connection Pool Availability Evaluates System Thread Pool Size.
In the General Options bar, click Settings. Then click the BusinessTransactions tab.
The Business Transactions Administration page contains the options shown in the table below.
Create New
View/Modify
Delete
Deletes the selected business transaction. Note: Delete Selected removes the business transaction from all JVMs. To remove the business transaction from specific JVMs, use View Selected.
28
4 5
6 7 8 9 10 11
Precise for J2EE Basics About data collection in Precise for J2EE
29
The component has encountered a problem. User intervention is recommended. Severity = Moderate The component has encountered a serious problem that has impacted the collection or archiving of data. Immediate user intervention is recommended. Severity = High
About Monitoring Configuration About the Pattern Manager About instrumentation modes About Adaptive Instrumentation About Expert Configuration page About the Statistics Administration page About the Copy Instrumentation page Troubleshooting memory and adjusting heap sizes
Note: Automatically loading classes onto a computer may be very time consuming because some of the loaded files are not helpful to the user. To shorten the loading time, the user can list specific class names to be ignored during loading. For more details, contact Precise Technical Support.
Precise for J2EE Basics About data collection in Precise for J2EE
30
Clear
Refresh
Warning
Error
About selecting a pattern for editing or viewing matching loaded classes and methods
There are 4 user-selectable editing or viewing options:
All Classes and Methods - shows all loaded default classes and associated methods (no filtering by status) Configured (Monitored & Blocked) - shows all statuses except for <blank> that are retrieved (for example: classes and methods including monitored, monitored (partial), pending, etc) Not Configured - shows only <blank> and pending statuses that can be retrieved Pending - shows only pending statuses
The selected view is applied directly by clicking on one of the above relevant viewing options. In addition to selecting a view option, the user can also apply search criteria. There are also options available for search (filtering) patterns:
Click the Search (spyglass) icon to search and select an already existing pattern name, or begin typing a pattern name into the appropriate field. Precise for J2EE has a unique auto-complete feature which displays a list of all pattern names with letters that match the typed letters in the field. The table displays results based on the selected viewing option and the search criteria. Click the Clear (X) icon to clear any searched pattern name, or simply delete the pattern name field content. See About Monitoring Configuration icons on page 30.
Precise for J2EE Basics About data collection in Precise for J2EE
31
Status (See About Status values on page 31.) Type Notes (additional information for a specific class) Note: JDBC methods will not appear in the loaded methods list. Methods invoking JDBC calls will appear with an indicator in the Notes column as Calls JDBC methods.
Class names are sorted in alphabetical order. If a class is expanded, by default methods are sorted alphabetically.
Monitored (partial)
For a class, it means that only some of its loaded methods are instrumented. For a method, it means that only some of the signatures are instrumented.
Blocked
For a class, it means that all of its loaded methods are ignored. For a method, it means that it is ignored.
Blocked (partial)
For a class, it means that all of its loaded methods are either ignored (exists at least once) or not instrumented (exists at least once). For a class, it means that all of its loaded methods are not instrumented (but not ignored). For a method, it means that it is not instrumented (not ignored).
<Blank>
Pending
Relevant for classes or methods after a change was performed and the JVM was not restarted. The Class will have a pending status if it has at least one pending method.
Precise for J2EE Basics About data collection in Precise for J2EE
32
Note: A Pending Changes message will appear at the top of the screen after the user has made any changes to instrumentation definitions, and restart has not yet been performed. If the Monitor button is enabled, the user can monitor a selected row in the table according to class or method status and view the class and method results. To monitor one or more loaded classes or methods 1 2 3 In the table, click to select one or more loaded classes or methods for monitoring. Click Monitor. Click Save to save your changes, or Cancel to close the screen without saving changes. Note: Restart JVM after saving your changes. The user can stop monitoring a selected row in the table according to class or method status. To stop monitoring a loaded class (classes) or methods 1 2 3 In the table, click to select one or more loaded classes or methods to stop monitoring. Click Stop Monitor. Click Save to save your changes, or Cancel to close the screen without saving changes. Note: Restart JVM after saving your changes. The user can exclude a selected row in the table according to class or method status. To exclude (ignore) a loaded class (classes) or methods 1 2 3 In the table, click to select one or more loaded classes or methods to exclude. Click Exclude. Click Save to save your changes, or Cancel to close the screen without saving changes. Note: Restart JVM after saving your changes. Click Manage Patterns to edit or view the matching classes or methods. After selecting a search pattern, click Monitor Search Results to monitor the search criteria pattern. After clicking the monitor search result, assign a type to the pattern in the opened pop-up message. Use Monitor Search Results to create and monitor patterns.
Precise for J2EE Basics About data collection in Precise for J2EE
33
Begin typing the class name and the Pattern Manager will automatically display current classes which start with the same matching letters. Select the appropriate class name from the list, or (for example, in case it will be deployed later to the JVM) at the right of a name in the list. For a selected class pattern, click the blank field in the Method Pattern column for the selected class row. Begin typing the method name and the Pattern Manager will automatically display current methods which start with the same matching letters. Select the appropriate method name from the list or (for example, in case it will be deployed later to the JVM) at the right of a method name that does not appear in the list.
3 4
Class (the class name) Method (the method name) Status (See About Status values on page 31.) Type (the assigned type, custom by default) Notes (additional information for a specific class)
The initial overhead (the overhead caused by the out-of-the-box monitoring probes) The flexibility users have in modifying instrumentation using advanced instrumentation tools The cost of (dynamically) instrumenting additional components or methods The need to restart the monitored application server for the changes to take effect
Precise for J2EE Basics About data collection in Precise for J2EE
34
The table below describes each instrumentation mode. Table 2-32 Instrumentation modes Description
This mode provides visibility of common J2EE interfaces (JSPs, Servlets, EJBs, etc.) while keeping the overhead at the minimum. To monitor other Java/J2EE components (such as home-grown applications), you manually modify instrumentation configuration files, add the components that you need to monitor, and then restart the application server. You can use Adaptive Instrumentation in this mode to tune instrumentation for service requests and common J2EE interfaces. Use this mode if:
Instrumentation mode
Basic
You need to keep the overhead at the absolute minimum in exchange for reduced visibility. You are mainly interested in monitoring service requests and key J2EE interfaces. You are not interested in monitoring other components or alternatively, you can manually identify these components and define them in the configuration files. You are also willing to restart the application servers when you make this type of modification.
Standard
This mode provides visibility of standard J2EE interfaces as well as of non-standard Java/J2EE components. However, to keep the overhead low, Precise for J2EE applies a reduced set of its probes that provides limited flexibility. The initial overhead is relatively low in this mode, however, the cost of instrumenting additional components is higher than in Basic mode. You can use Adaptive Instrumentation in this mode to discover root causes of performance problems in non-standard Java/J2EE components. This is the default mode. Use this mode if:
Your main concern is to get good visibility of standard J2EE interfaces but you would also like to monitor other components. You prefer to rely on Adaptive Instrumentation to automatically find the best instrumentation set rather than manually configure the instrumentation.
Expert
This mode provides maximum visibility and flexibility with a higher overhead. As with the Basic mode, common J2EE interfaces are covered out of the box, but in Expert mode, you can use Adaptive Instrumentation to automatically uncover additional contributors to performance, as needed, without restarting the monitored application servers. You can also use Expert Configuration to enable or disable instrumentation of specific components. In this mode, the initial overhead is the highest, as Precise for J2EE's probes are fully deployed to provide maximum flexibility. Use this mode if:
You need to get maximum visibility and are willing to accept a higher initial overhead. You need maximum flexibility in fine-tuning the instrumentation set to provide the best visibility for a given overhead budget. You need to make frequent changes to the instrumentation set without restarting the application server.
Precise for J2EE Basics About data collection in Precise for J2EE
35
Figure 2-2
Precise for J2EE Basics About data collection in Precise for J2EE
36
excluded by the calibration. Again ensure that the application activity during data collection includes any highly invoked methods. When you restart following the activity phase, any remaining or new hot spots are ignored. In some cases, you may need to perform several new activity survey data collections because elimination of one hot spot may cause another hot spot to surface.
Precise for J2EE Basics About data collection in Precise for J2EE
37
Before you start Adaptive Instrumentation data collection, make sure that you run at least one iteration of an application functionality test, such as a load test, or wait until your workload has exercised all the paths in the application. During this warm-up period, application pages are initialized, the underlying Java classes are loaded, and caches are created and filled. You should exclude this application initialization activity from the data collection because it is not part of the normal runtime of the application and may influence the results of Adaptive Instrumentation. In addition, you may need to lengthen the data collection phase because the application may take longer to execute its tasks. The increase in application service time is caused by monitoring overhead inside hot spots. The application service times should eventually be reduced after the calibration phase because the Adaptive Policies evaluate the instrumentation to learn where the hot spots are and avoid them. However, since Adaptive Instrumentation only analyzes the activity during the data collection, if some application activity is inadvertently excluded from the data collection because the data collection duration was too short, then some application hot spots may be instrumented. The data collection duration should be long enough for the application workload or load test to execute all application call paths. For example, the data collection period should include enough time to warm up, run, and cool down a load test. A good rule of thumb is to increase the data collection duration to 4x baseline (or more) for calibration phases and 2x for survey data collection phases. In cases of high initial overhead, you should run multiple calibration phases with an application JVM restart between each new data collection. The test itself must include all application activity to be analyzed. The activity mix should also be similar to that of the target system. If portions of the workload are not exercised, the generated instrumentation does not include the missed workload. In addition, if the workload or application structure changes, the Adaptive Instrumentation data should be collected again and the policies applied to generate new instrumentation.
Precise for J2EE Basics About data collection in Precise for J2EE
38
See About the Java Virtual Machine Settings page on page 16. Warning: Redeploying or restarting the application JVM that you are monitoring while running Adaptive Instrumentation data collection or analysis may cause Precise for J2EE to collect incorrect data or instrument unexpected methods. Always redeploy the application either before or after running Adaptive Instrumentation.
Please specify the desired The percentage in this text box defines the acceptable overhead for the generated instrumentation as a overhead budget relative percentage of application service time. Based on this setting, Adaptive Instrumentation constrains the amount of generated instrumentation and the corresponding overhead. If you want Precise for J2EE to collect additional Java method details, increase the overhead budget. If you want to reduce Java method details, lower the overhead budget. An overhead of zero disables all instrumentation.
Precise for J2EE Basics About data collection in Precise for J2EE
39
The number in this drop-down list defines the duration of the Adaptive Instrumentation data collection. During this time, the application should be exercised by user activity or a load test representative of the target runtime environment. The activity that occurs during this period is analyzed by Adaptive Instrumentation and used by the policies to select methods to instrument. Checking this box instructs Adaptive Instrumentation to apply changes made in Expert Configuration when running Adaptive Instrumentation. Applied changes will override the overhead budget setting.
The table below shows the Adaptive Instrumentation Wizard messages. Table 2-35 Adaptive Instrumentation Wizard messages Description
Displayed when you click Next. This message indicates that the collection of survey data or the Adaptive Instrumentation analysis has begun. Displayed when Precise for J2EE collects and saves the beginning or ending survey data. Displayed at the beginning of the Adaptive Instrumentation analysis. Loading the data files may take a few minutes, depending on the speed of the Agent machine and the complexity of the analyzed application. Displayed when Precise for J2EE runs instrumentation policies on the survey data. This status specifies the name of the policy being applied, such as Work Time Policy.
Status Message
Starting Adaptive
Policy Name
Precise for J2EE Basics About data collection in Precise for J2EE
40
Table 2-35
Status Message
Instrumented n Methods
Budget Remaining is n%
Budget Exhausted
Total Instrumented Method Count Saving Startup Configuration Applying Adaptive Instrumentation
4 5
Precise for J2EE Basics About data collection in Precise for J2EE
41
Run at least one iteration of an application functionality test as a ClassLoader primer, such as a load test, or wait until the workload has exercised all paths in the application. This step is a pre-test to exclude the application startup effects from skewing the survey data. Start the main application load test or wait until the workload is exercising the application and the activity you want to analyze begins. Select the Apply Changes from Expert Configuration if you want to apply instrumentation changes previously selected with Expert Configuration. Note that applied changes will override the overhead budget setting. In the Adaptive Instrumentation Wizard page, click Next. In the Adaptive Instrumentation Progress page, monitor the progress of Adaptive Instrumentation. Information in the Adaptive Instrumentation Progress page tells you which policies were applied so that you can evaluate the trade-off between increased overhead and fuller instrumentation. If the application activity does not finish within the Data Collection Duration, then allow Adaptive Instrumentation to finish, restart the monitored JVM, and re-run this procedure until the application activity can all be measured during one data collection duration. When you see the message Done, restart the monitored JVM. Repeat Step 2 to Step 11 to find additional hot spots. Running Adaptive Instrumentation twice is especially important if the Survey Calibration policy status indicates that changes were identified. After running Adaptive Instrumentation data collection two or more times, restart the application load test or wait until the workload is exercising the application. Allow two aggregation intervals and then view data in the user interface pages to evaluate whether the instrumentation has improved your understanding of the applications performance. Beware that time series summary metrics are misleading when instrumentation is applied by Adaptive Instrumentation or Expert Configuration during the displayed period.
7 8 9 10
11 12 13
Precise for J2EE Basics About data collection in Precise for J2EE
42
2 3
Precise for J2EE Basics About data collection in Precise for J2EE
43
View methods in a specific context, following execution path. This view shows methods by type and by invocation hierarchy from the caller method down to the callee methods. Tree controls in the Method Table and Expand All and Collapse All buttons allow you to see more or fewer methods. Selecting a method to instrument, from this view, instruments the method only when called in the specific method context. View methods in a specific context, inverse execution path. This view shows methods in the context of all the calls to the methods. This view can help you see where all invocations to a particular method are being made and can help you sort methods by Cumulative Invocation Count or Cumulative Service Time to see which methods are being called the most or are taking up the most time. Tree controls in the Method Table and Expand All and Collapse All buttons allow you to see more or fewer methods. Selecting a method to instrument, from this view, instruments the method only when called in the specific method context. View methods regardless of context, grouped by type. This view shows all methods that are called, organized by type. This view, when filtered appropriately, can help you see under each invocation type the worst performing or most frequently called methods. Selecting a method to instrument, from this view, instruments the method every time it is called, regardless of context. View methods regardless of context, no grouping. This view shows all methods running in the JVM. This view, when filtered appropriately, can help you see the worst performing or most frequently called methods. Selecting a method to instrument, from this view, instruments the method every time it is called, regardless of context.
Filter
The filter can be accessed by clicking the circle icon at the top right of the screen. You can filter the methods shown in the Method Table. Methods can be filtered by name (wildcard characters are allowed), invocation type, invocation count, service time, or instrumentation status. Methods that match the filter name are highlighted. After applying a filter, you can close the filter controls to increase the screen area for the Method Table. When you close the filter controls, the applied filter remains in force until you reopen the filter controls and click Clear Filters. The open and close filters control changes appearance to alert you that filtering has been applied to the Method Table.
Precise for J2EE Basics About data collection in Precise for J2EE
44
Namename of the method. Method names are truncated from the left. Selecting a method causes it to be highlighted in every context in which it appears. Placing the mouse over a method name will show you the complete name in a tool tip. Enable/Disable instrumentationchecking the box beside a method name causes Precise for J2EE to monitor the method each time it calls other methods. Only methods that Precise for J2EE is monitoring can be enabled. After selecting methods to instrument, you must click Apply Changes in order for the changes to take effect.
Note: It is not possible in all situations to change the instrumentation state due to technical limitations within the JVM. Precise for J2EE will warn you when the methods you selected cannot be instrumented.
Invocation Typesuch as HTTP, custom, and more. Cumulative Invocation Counttotal number of times the method was called. Cumulative Service Timetotal time, in milliseconds, across all invocations for this context that the method has spent executing. N/A indicates that Precise for J2EE is not monitoring the method. Cumulative Work Timetotal execution time across all invocations for this context for the method, that cannot be attributed to other instrumented methods called from this context. Set Byicon representing the area of Precise for J2EE responsible for instrumenting the method. Can be one of the following: Expert Configuration, Adaptive Instrumentation, Instrumentation Configuration files, Over-instrumentation Protection.
Action Buttons
Five buttons at the bottom of Expert Configuration allow you to take the following actions:
Refresh Cumulative Dataupdate the method data and counters to reflect the most recent data. By default, the method information and counters you view in Expert Configuration are cached to improve performance and reduce overhead on the instrumented JVM, so clicking this button renews the cache. Clear Cumulative Datadeletes the invocation counts currently displayed for methods in the Method Table. You can clear these counts when you want to be sure updates to the counts reflect current system loads. For example, after initial start-up, but prior to running under load, the Method Table will show invocations, but you may not want these counts included in the counts recorded when the system is under load. Apply Changesenable instrumentation for methods not previously instrumented or disable instrumentation for previously instrumented methods. If another user is currently using Adaptive Instrumentation, you will be notified that changes cannot be applied. Adaptive Instrumentationrun the Adaptive Instrumentation Wizard to survey application activity during a load and instruct Precise for J2EE to select an optimized set of methods to instrument without exceeding your specified overhead budget. See About the Adaptive Instrumentation Wizard page on page 38. Copy Instrumentationruns the Copy Instrumentation Wizard to apply the instrumentation configuration from the currently selected JVM to another JVM. This is convenient when fine-tuning instrumentation across servers in a cluster.
Page Controls
The number of methods in the Method Table that are accessible using the scroll bar out of the total number of methods in the Method Table. You can page forward and backward and jump to the first and last pages.
Precise for J2EE Basics About data collection in Precise for J2EE
45
Warning: Application server overhead will increase when the application server collects metrics and when the Precise for J2EE Collector gathers them. Refer to the application server documentation for further details. To open the Statistics Administration page 1 2 In the Java Virtual Machine Settings Administration page, click Statistics. The Statistics Administration page opens. Values displayed in this page are the current values in the system. To save any changes that you make on this page, click OK.
Java Virtual Machine Identifies the name of the JVM monitored by the Precise for J2EE Collector. The configuration values on this page apply to the specified JVM. Enable Statistics Collection Controls whether or not Precise for J2EE collects Application Server Metrics from the Java Virtual Machine. The application server metrics collection occurs at the interval value defined in the Precise for J2EE Collector Aggregation Interval. If this check box is selected, the Application Server Metrics collection is enabled. If this check box is cleared, the Application Server Metrics collection is disabled. Contains fields for Username and Password. These are required to set up a connection with the Application Server in order to collect Application Server metrics. The properties that are required depend upon the vendor and version of the application server. Lists the groups of Application Server Metrics collected by the Precise for J2EE Collector and names and describes each metric. The check box for each metric permits collection of individual metrics. Opens the Add Statistics to Configuration page from which users explore the J2EE application servers MBeans to select additional statistics for monitoring in Precise for J2EE.
Properties
Precise for J2EE Basics About data collection in Precise for J2EE
46
Group Type
PASS_THRU: Precise for J2EE sends the metric value directly to the FocalPoint. ABSOLUTE_COUNT: Reserved for future use. BSH: Reserved for future use. DELTA: Precise for J2EE subtracts the previous metric value from the current value and sends the difference to the FocalPoint. J2EE_STAT: Directs Precise for J2EE to report metrics using the javax.management.j2ee.statistics interface which implements JSR 77 for J2EE management. Use type J2EE_STAT only with Oracle 10g and JBoss application servers which implement this standard. MEAN: For WebSphere application servers only, Precise for J2EE reports the average value for the metric over the time period.
Description
Warning: After copying instrumentation, closely monitor the instrumentation overhead on the target JVM. Depending on the configuration of the target JVM prior to copying, the instrumentation overhead on the target JVM following the copy may exceed the overhead that the source JVM incurs as a result of the same instrumentation. To open the Copy Instrumentation page 1 2 From the Java Virtual Machine Settings Administration page, click Run Copy Instrumentation now. The Copy Instrumentation page opens. Click OK in the Copy Instrumentation page to open the Copy Instrumentation Progress page.
Precise for J2EE Basics About data collection in Precise for J2EE
47
memory when Adaptive Instrumentation data is being collected and saved to a file. The actual memory error produced depends on the state of the JVM at the time the memory is exhausted. In the best case scenario, you will see OutOfMemory errors in the command window or stdout/stderr log for the monitored JVM; look carefully since it is easy to miss the error if alot of output is sent to the console. In the worst case, no error message is visible, and the JVM crashes with or without a Hotspot JVM error. Typically memory related problems may be solved by allocating more memory to the monitored JVM. One way to gauge the size of the memory increase that is needed is to turn on the JVM argument -verbose:gc to view the free memory and garbage collection activity during startup and runtime. For example, if the JVM runs out of memory half way through startup, then you can surmise that the memory should be doubled. At the time of this writing, there is no way to predict the memory requirement except empirically. In many environments, if you use Adaptive Instrumentation, you will need to increase the JVM heap memory settings (using the -Xmx parameter) and the Permanent Generation settings on Sun's JDKs (using the -XX:MaxPermSize parameter) or the initial system heap size on IBM's JDKs (using the -Xinitsh parameter) or all of them. The amount of JVM memory increase that is required can vary dramatically from application to application, depending on a number of factors, including the number of classes loaded by the application in the JVM. In some cases, you might even need to double (or more) the JVM memory. After you adjust these memory settings you will need to restart the monitored JVM for the new settings to take effect. If your monitored JVM experiences stability or memory issues, set the monitored JVM to use the Basic Instrumentation Mode because that mode uses the least amount of JVM memory and system resources.
Precise for J2EE Basics How to launch the Precise for J2EE user interface
48
WebSphere 5.x
Servers > Application Servers > Application > Process Definition > Java Virtual Machine > Generic JVM Arguments Servers > Application servers > Server Name > Java and Process Management > Process Definition > Java Virtual Machine > Generic JVM arguments
WebSphere 6.x
3 4
Add the parameter into the text edit field. Click Apply.
Note: Make sure that the Precise user interface and J2EE are using the same hypertext transfer protocol, whether secure (HTTPS) or non-secure (HTTP).
Precise for J2EE Basics How to launch the Precise for J2EE user interface
49
Note: Precise for J2EE FocalPoint must be started before it can be accessed. See the Precise Administration Guide to learn how to start Precise for components. To access the Precise for J2EE user interface from a browser 1 Type the URL of the Precise for J2EE user interface into the Address bar of your browser and press Enter. If HTTPS is enabled for communication between the Precise for J2EE user interface and Precise for J2EE FocalPoint, you may see a security alert dialog box asking you to accept the certificate. Once you accept, the certificate will remain valid for the entire browser session. You can also choose to install the certificate for use in future browser sessions. See About the FocalPoint Administration page on page 18. If your Precise environment uses SiteMinder or other single sign-on authentication and your current session has not been authenticated, you will be redirected to the Precise Login page. In the Precise for J2EE Login page, specify your authorized role name and password. Click OK to open the Dashboard workspace. This is the Precise for J2EE home page.
2 3
Chapter
About the Dashboard workspace About the Dashboard portlets How to identify performance problems in the Dashboard workspace
Getting an overview of your environment in the Dashboard workspace About the Dashboard workspace
51
Portlet
Portlet preferences
About Portlets
Portlets are the data modules containing Precise for J2EE metrics that make up the Dashboard workspace. The JVMs in the JVM List portlet and the Select JVM drop-down list (where it exists) contain only the list of JVMs that the logged on user is authorized to view (based on previously defined roles definitions). The data in the All JVMs Health and All JVMs Threads portlets summarize data for all monitored JVMs in the JVM List. The data in all other portlets are for the JVM currently selected in the JVM List, or you can select the JVM in the portlet itself. See About the Dashboard portlets on page 53.
Getting an overview of your environment in the Dashboard workspace About the Dashboard workspace
52
Configuring portlets
For many portlets, you can select the JVM for which data is displayed. You can also configure the metrics that are displayed in the portlet as well as how the data is displayed. The figure below shows a typical Portlet Preferences page. Figure 3-2 Portlet Preferences
To configure a portlet 1 2 3 Click on the portlets Edit Preferences icon. Change the portlets title by entering a new title in the Displayed title field. The JVM List portlet only allows you to change the portlets displayed title and the JVM List Portlet height. Choose Table, Chart, or Traffic Light to select how the portlet will display the data. Only numeric metrics can be displayed in a chart or by using traffic light icons.
Table If you choose Table, additional metrics are available to be configured. These metrics serve as column headings for the table. You can choose Summary or Detail to select how the portlet will display data. Summary results in one row per metric, while Detail results in one row per data point.
Getting an overview of your environment in the Dashboard workspace About the Dashboard portlets
53
Chart
Chart typeType of chart and number of axes per chart. Multiple axes allows more than one metric to be plotted on a single graph. Chart widthWidth of chart in pixels when portlet is viewed normally (not maximized). Chart heightHeight of chart in pixels when portlet is viewed normally (not maximized). Maximized chart widthWidth of chart in pixels when portlet is maximized. Maximized chart heightHeight of chart in pixels when portlet is maximized. Chart legend maximum lengthMaximum number of characters to appear in the chart legend for each metric. For a legend of unlimited length, enter -1. Chart legend positionLocation of chart legend above, below, or to the right or left of the chart. Select No Legend to hide the legend.
Traffic Light
Traffic Light uses a red, yellow, or green icon for each metric the portlet is displaying. The metric value is compared to a user-configurable threshold to determine which icon to display. By default, the threshold for yellow icons in all portlets is 0.5, and the default for red icons is 0.25. You can customize the threshold by selecting the comparison method and entering a new value in the threshold text fields. You can also choose to see the actual metric value as a ToolTip, or displayed next to the Traffic Light icon.
4 5 6 7
Select the metrics that you want to see in the portlet. If the portlet has configurable parameters, select the parameters. Click Save Changes. Click the portlets Leave Edit Preferences icon.
Getting an overview of your environment in the Dashboard workspace About the Dashboard portlets
54
The following is a short description of the information displayed for each JVM. The averages displayed are averages over the last time slice analyzed.
JVM Name Server hostname and JVM ID of the monitored JVM. Clicking the JVM Name field selects this JVM and transfers data to the Activity workspace. The Status column contains the following icons to indicate the JVM's status: Indicates the JVM is running and being monitored by Precise for J2EE Indicates the JVM is not running Indicates that Precise for J2EE could not obtain information from the JVM Note: Clicking on the Status field for a JVM selects this JVM and it remains on the Dashboard workspace. CPU (%) Heap (%) Avail (%) Average percent of CPU time this JVM consumed. See note above. Average percent of the JVM heap in use. See note above. Average percent of the time frame that the selected JVM was available. See note above.
Status
The table below shows the metrics that are available when displaying the All JVMs Health data. Table 3-1 Metric
Service Time
Total GC Count
Getting an overview of your environment in the Dashboard workspace About the Dashboard portlets
55
Data values are displayed in table, chart, or traffic light formats using the metrics selected from the table below
The table below shows the metrics that are available when displaying the All JVMs Thread data. Table 3-2 Metric
Concurrent Active Threads Long Running Threads
Data values are displayed in table, chart, or traffic light formats using the metrics selected from the table below.
The table below shows the metrics that are available when displaying the Concurrent Active Thread Metrics data. Table 3-3 Metric
Concurrent Active Threads Long Running Threads
Data values are displayed using the metrics selected from the table below.
The table below shows the metrics that are available when displaying the Exception Seeker data. Table 3-4 Metric
Exception Stack Trace Message Thrown Class
Getting an overview of your environment in the Dashboard workspace About the Dashboard portlets
56
The table below shows the metrics that are available when displaying the Grouped JVMs Health portlet as a chart. Table 3-5 Metric
Service Time
Total GC Count
Getting an overview of your environment in the Dashboard workspace About the Dashboard portlets
57
The table below shows the metrics that are available when displaying the Grouped JVMs Threads portlet as a chart. Table 3-6 Metric
Concurrent Active Threads Long Running Threads
Data values are displayed in table, chart, or traffic light formats using the metrics selected from the table below.
The table below contains the metrics that are available when displaying the Invocation Type Scalability data. Table 3-7 Metric
Service Time
Getting an overview of your environment in the Dashboard workspace About the Dashboard portlets
58
Data values are displayed in table, chart, or traffic light formats using the metrics selected from the table below.
The table below shows the metrics that are available when displaying the JDBC data. Table 3-8 Metric
Service Time
Throughput
Data values are displayed in table, chart, or traffic light formats using the metrics selected from the table below.
The table below shows the metrics that are available when displaying the JVM Health data. Table 3-9 Metric
Service Time
Total GC Count
Getting an overview of your environment in the Dashboard workspace About the Dashboard portlets
59
Data values are displayed in table, chart, or traffic light formats using the metrics selected from the table below.
The table below shows the metrics that are available when displaying Leak Seeker Metrics. Table 3-10 Metric
Object Count
Object Count Trend line Object Count Growth Rate (Objects per Minute)
Data values are displayed in table, chart, or traffic light formats using the metrics selected from the table below.
The table below shows the metrics that are available when displaying Lock Seeker Metrics as a chart. Table 3-11 Metric
Lock Acquisitions Lock Acquisition Time Average Lock Acquisition Time
Getting an overview of your environment in the Dashboard workspace About the Dashboard portlets
60
Data values are displayed in table, chart, or traffic light formats using the metrics selected from the table below.
The table below shows the metrics that are available when displaying the Memory Metrics as a chart. Table 3-12 Metric
Avg Heap Size Avg Free Heap Avg Heap Used Min Heap Size Max Heap Size Min Free Heap Max Free Heap Min Heap Used Max Heap Used Major GC Count
Data values are displayed in table, chart, or traffic light formats using the metrics selected from the table below.
The table below shows the metrics that are available when displaying the Method Scalability data. Table 3-13 Metric
Service Time
Getting an overview of your environment in the Dashboard workspace About the Dashboard portlets
61
Data values are displayed in table, chart, or traffic light formats using the metrics selected from the table below.
The table below shows the metrics that are available when displaying the Portal Server Metrics data. Table 3-14 Metric
Service Time
Data values are displayed in table, chart, or traffic light formats using the metrics selected from the table below.
Getting an overview of your environment in the Dashboard workspace About the Dashboard portlets
62
The table below shows the metrics that are available when displaying SQL Statements data. Table 3-15 Metric
Start Time End Time SQL Unique ID
Table headings with the metrics selected from the table below are displayed.
The table below shows the parameters that can be configured for the Findings Application Summary portlet. Table 3-16 Parameter
Measurement
Type
All Service Requests All Threads EJB Service Requests HTTP Service Requests Portal Service Requests
Category
Selects the category of contributor to display. The list includes all Findings method categories listed below.
Getting an overview of your environment in the Dashboard workspace About the Dashboard portlets
63
Getting an overview of your environment in the Dashboard workspace About the Dashboard portlets
64
portlet to show specific metrics. You use the portlet's Portlet Preferences page to select the statistic to display and the number of top measurements that will be displayed for that statistic. The Statistics portlet displays the following information:
Select JVM Current selected JVM from JVM List (drop-down list)
Data values are displayed in table, chart, or traffic light formats using the metrics selected from the table below.
The table below contains the metrics that are available when displaying the Top Business Transactions data. Table 3-17 Metric
Service Time Executions
Service Time/Execution The total service time per execution over a period of time. This is the Average Service Time. Throughput CPU Time CPU TIme/Execution The total number of method completions for the methods that are part of the business transaction. Total CPU time for the methods that are part of the business transaction. Average CPU time per slice for the displayed item.
Data values are displayed in table, chart, or traffic light formats using the metrics selected from the table below.
Getting an overview of your environment in the Dashboard workspace About the Dashboard portlets
65
The table below contains the metrics that are available when displaying the Top Instrumented Methods data. Table 3-18 Metric
Service time
Data values are displayed in table, chart, or traffic light formats using the metrics selected from the table below.
The table below shows the metrics that are available when displaying the Top Methods by Invocation Type data. Table 3-19 Metric
Service time
Getting an overview of your environment in the Dashboard workspace How to identify performance problems in the Dashboard workspace
66
Data values are displayed in table, chart, or traffic light formats using the metrics selected from the table below.
The table below shows the metrics that are available when displaying Work Times of Invocation Types data. Table 3-20 Metric
Work time
Service time
Getting an overview of your environment in the Dashboard workspace How to identify performance problems in the Dashboard workspace
67
names displayed in the Precise for J2EE Activity workspace tabs, but when entering the class and method names in the Portlet Preferences page omit the period. 5 6 Save and close the Portlet Preferences page. Then wait until the GUI is updated with data for the next time slice. In the Dashboard Method Scalability portlet, look at the service times for the method. If the method has high service times, you can use the Activity and Statistics workspaces to get a deeper understanding of the problem.
If the method is an EJB type, further investigate the methods behavior in the Statistics workspace (if Application Server Metrics are configured) by examining the EJB pool and cache sizes. For methods of type JDBC, use the Statistics workspace to look at database connection pools. For all types of methods, use the Hotspots tab in the Activity workspace to assist with the analysis.
3 4
3 4 5 6
Getting an overview of your environment in the Dashboard workspace How to identify performance problems in the Dashboard workspace
68
Compare the portlet graphs to the JVM %Heap in the JVM Health portlet. Is the request Throughput low or decreasing and is the request response time high or increasing during the same period that the %Heap usage is high? If the answer is 'no', then the high %Heap is not correlated to an end-user problem. If the answer is 'yes' then a memory bottleneck may be contributing to a poor end-user experience. If the Memory Metrics portlet is not already displayed, use Add Portlet to display it. This portlet helps you assess the end-user impact of garbage collections. In the Memory Metrics portlet, click Portlet Preferences to configure the portlet to show Average Heap Size, Average Heap Used, Major CG Count, Total GC Count, GC Freed, and Total GC Freed metrics. Analyze these metrics to understand how busy the system is reclaiming memory and whether the end-user experience is suffering as a result. If so, investigate tuning the JVM memory settings. In other cases, the system may be operating normally and you should ask a developer or architect whether the Heap usage, garbage collection time, and end-user experience are normal for the load.
8 9 10
Chapter
About the Activity workspace About Activity workspace tabs How the Activity workspace can help you identify performance problems
Service time CPU time Throughput URIs Other Invocations, either displayed as direct contributors or as Work Time
Dispatched by the application server to Java Servlets and JSPs. Java Servlets and JSPs usually contain presentation logic and invoke business logic in EJBs. HTTP requests invoked from outside the JVM are called external HTTP service requests and requests invoked from inside the JVM (e.g., from another Servlet or JSP) are called HTTP invocations. HTTP service requests are top-level HTTP invocations, that is, the first HTTP invocation to occur in a given invocation context. The top-level HTTP request serves as the entry point into the application server.
Examining performance over time in the Activity workspace About the Activity workspace
70
EJB service requests Dispatched by the application server to Enterprise Java Beans. EJBs typically contain business logic and invoke other EJBs and JDBC calls to a database. EJB requests invoked from outside the JVM are called external EJB service requests, and EJB requests invoked from inside the JVM (e.g., from another EJB) are called EJB invocations. EJB service requests are top-level EJB invocations, that is, the first EJB invocation to occur in a given invocation context. The top-level EJB request serves as the entry point into the application server. Portal service requests In a portal server, the portlet interface typically contains methods such as doView, doEdit, doConfigure, processAction, or doLogin, that have clearly defined tasks and which invoke other Portlets, Beans, or JDBC calls. Portlet requests invoked from outside the JVM are called Portlet service requests, and Portlet requests invoked from inside the JVM (e.g., from another Portlet) are called Portlet invocations. Portlet service requests are top-level Portlet invocations, that is, the first Portlet invocation to occur in a given invocation context which serves as the entry point into the application server. For supported portal servers, Precise for J2EE groups custom type invocations based on the services they provide. Although these groups vary by application server vendor, examples of some of the common invocation types are: PORTAL_GATEWAY: The servlet and set of classes that act as controller servlet. These forward the requests to the appropriate Portlets. PORTAL_AUTHENTICATION: The sets of classes and invocations that provide authentication services for a portal server. PORTAL_CACHE: Invocations that provide caching services. PORTAL: Invocations that provide general portal services.
The Root Activity Type drop-down list lets you control the displayed call trees. The All Threads option is selected by default, and displays all invocations regardless of where they are invoked from. Selecting the HTTP, EJB or Portlet option causes all invocations to be filtered by their root caller's type, respectively. For example, when the HTTP option is selected, all tabs will display data for the trees initiated by an HTTP service request.
About invocations
The Precise for J2EE Collector collects performance data on all instrumented and sampled Java method invocations. Contributor invocations are invocations that contribute to the performance of other higher level invocations. In some reports, contributor invocations are grouped by one of the following types.
HTTP service requests (top level Servlet and JSP invocations) Typically invoke numerous EJBs, JDBC, custom methods, and other HTTP invocations (internally called Servlets and JSPs). HTTP invocations displayed in a Precise for J2EE page must run inside the monitored JVM. HTTP invocations that run remotely are not shown explicitly but are referred to as Work Time. If, for example, the application uses the Java method URL Connection and it is custom instrumented, the remote HTTP invocation will be shown explicitly as a custom invocation. Typically invoke numerous JDBC methods and other EJB methods. EJBs that are invoked from within another EJB service request (internally) are displayed as type EJB, and those EJB calls that run remotely are displayed as type EJBRem. A way to execute SQL queries in a database and to receive the results. A way to invoke SAP transactions from Java.
Examining performance over time in the Activity workspace About Activity workspace tabs
71
Custom
Custom invocations that are not invoked from any other instrumented invocation (they have no parent invocation). Custom threads are not categorized as service requests.
Note: Refer to the Precise Administration Guide to learn how to enable custom instrumentation.
Highlights Hotspots
Examining performance over time in the Activity workspace About Activity workspace tabs
72
Deep Summary Per Caller Deep Summary Per Caller Deep Summary Per Caller
Locks
Exceptions
The table below describes the data displayed in the main graphs (overtime and summarized) in the Highlights tab. Note: A partial data list is shown in the table; additional types (such as: JNDI) are possible. See the Precise Administration Guide.
EJB
JDBC Portlet
Lock
Examining performance over time in the Activity workspace About Activity workspace tabs
73
The table below describes the Findings table columns displayed in the Highlights tab. Context names that are too long to display are automatically shortened using ellipses. Table 4-2 Item
Rank (Default)
Context (Default)
The full name of the invocation. Classifies grouping performance problems. Processing time of the context (invocation) as a percentage out of the selected entitys JVM-related finding, or a specific invocation context. Number of contexts executions.
Invocations
+ (default)
+ (default)
+ (default)
Examining performance over time in the Activity workspace About Activity workspace tabs
74
Table columns in the Hotspots tab Description Deep Summary View Per Caller View
-
The percentage of the contexts service time out of the selected entitys (JVM or invocation) service time. The contexts average service time. The contexts accumulated service times. + (default) + (default)
Avg Service Time (ms) Summed Service Time (ms) Avg CPU Time (ms)
+ (default) +
+ (default)
The average amount of time consumed by the operating system actively processing instructions on behalf of a running method. The CPU time includes time spent locally (work time) plus all CPU time in instrumented calls.
The total amount of time consumed by the operating system actively processing instructions on behalf of a running method. The CPU time includes time spent locally (work time) plus all CPU time in instrumented calls. The context within which a method is invoked. For example, if Method A is invoked from Method B and Method C, the invocation context for the performance metrics collected for Method A is different when Method A is invoked from Method B than when it is invoked from Method C.
Invocation Context
Advice
In Precise for Oracle, an algorithm that is designed to recommend on gathering statistics, creating new indexes, changing existing indexes, and adding or deleting hints to make Oracle's Optimizer choose a better access path and make the statement perform better. Can be activated from any DML (Data Manipulation Language) statement. The type assigned to the monitored method. The contexts accumulated work times.
Type Summed Work Times (ms) Summed CPU Work Times (ms)
+ + (default)
+ + (default)
+ +
The total time spent on everything not directly + accounted for by instrumentation, including the invocation time or CPU time. If you are looking for high CPU consumers per method this is the metric to use. The direct method that called this method. The root method of the invocation tree from which the method was called. + (default) + (default)
+ (default) + (default)
Examining performance over time in the Activity workspace About Activity workspace tabs
75
To open the Hotspots Deep Summary view 1 In the Activity workspace, click the Hotspots tab, and then click Deep Summary (default screen).
The Hotspots - Per Caller view displays Hotspots Summarized by Name and Call Path. The top n hot spots are displayed in the overtime graph. This graph displays the metric by which the table is sorted; sort by a different column and the graph will change accordingly.
Examining performance over time in the Activity workspace About Activity workspace tabs
76
By default (on the JVM level) the Invocations tab displays the top-level invocations (threads) that instrumentation detected for the displayed time range. Threads are named using their top-level invocation class and method names. For portal servers, the invocations are listed by the portlet name. Clicking the portlet name displays the methods it invoked. Measurements are displayed for all top-level invocation types including: HTTP, EJB, portlet, JDBC, JCo, or Custom. Note: In some cases, when instrumentation of a caller method is omitted, the methods invoked by the caller (that is, the callee) are shown in this page as separate top-level invocations. Furthermore, when the caller is instrumented, the invoked methods will no longer be top-level invocations and will be contained within the caller top-level invocation. The Concurrent Active Threads (CATs) measurement indicates how busy the system was during a slice or series (not shown by default, it can be added using the column chooser icon displayed to the right of the table). For example, if two threads are active for the entire display interval, the active threads measurement is two. If one thread is active for half of the display interval, the active threads measurement is 0.5. If an invocation is active across an aggregation interval boundary, the Concurrent Active Threads (CATs) measurement will account for the long running invocation. In contrast, invocation service times are reported only when the invocation completes. When your displayed time range is a time series, the metric displayed in the table is an average across all slices. Each point in the graph is the average value for that slice. When the Root Activity Type drop-down list is used, it is easy to filter invocations for the specific type of the top-level service request. The HTTP, EJB, and Portlet Service Requests views display performance metrics that summarize EJB, HTTP, and portlet service request invocations. These pages provide a good view of dynamically-generated pages used to enter the monitored application. Each service request is identified by its Java class and method name, and is a unique invocation context. A bar or line graph is also displayed to enable you to easily compare performance metrics. For portal servers, the Portal Service Requests page lists the portlet name. Clicking on the portlet name displays the methods it invokes. Click on the hyperlinked invocation name to navigate (drill down) to the invocation details and analyze contributors to the invocation of interest. To open the Invocations tab 1 In the Activity workspace, click the Invocations tab. The Invocations tab displays Method Invocations in Context. The top n methods are displayed in the overtime graph. This graph shows the metric by which the table is sorted; sort by a different column and the graph will change accordingly. The table below describes the data displayed in the Invocations tab. Table 4-4 Item
Chart Legend Color Method Name URI Type Avg Service Time (ms) Invocations Summed Service Times (ms) % Service Time % CPU Time
Examining performance over time in the Activity workspace About Activity workspace tabs
77
Invocations
Color icon showing the color representing the row in the graph. The text of the SQL statement. The ToolTip provides the complete text, especially useful when the text is long and concatenated.
Examining performance over time in the Activity workspace About Activity workspace tabs
78
Possible table columns in the SQL tab Description Deep Summary View
+ (default)
The summed service times that are attributed to invoking JDBC calls. The average service time that is attributed to invoking JDBC calls. Number of times the statement was invoked during the time frame. The method that is directly invoking the statement. The URI of the Root Caller, relevant for HTTP requests as the root activities.
+ (default)
+ (default)
SQL Executions
+ (default)
+ (default)
+ +
Examining performance over time in the Activity workspace About Activity workspace tabs
79
Color icon showing the color representing the row in the graph. The lock identifier. For calculation, see About the Locks tab on page 79. The average time it takes a method to acquire a lock. The number of successful lock acquisitions. The total time it takes a method to acquire a lock. The type of root caller invocation. The displayed invocation types may include: HTTP, EJB, EJB Remote, JDBC, Custom and more. The top level method that started the chain that ultimately invoked the locking method. The method that is directly invoking the locking method.
Avg Lock Time (ms) Lock Acquisitions Summed Lock Time (ms) Root Caller Type
Root Caller
Caller
- (default)
Examining performance over time in the Activity workspace About Activity workspace tabs
80
Color icon showing the color representing the row in the graph. The class name that was thrown. Class and method from which the class was thrown, including the line number in the source code. Number of times that an exception occurred during the selected time frame. The message that was set in the thrown class. The exception cause (if available).
Exception Count
+ (default)
+ (default)
+ (default) +
Examining performance over time in the Activity workspace How the Activity workspace can help you identify performance problems
81
Possible table columns in the Exceptions tab Description Deep Summary View
-
The root of the stack trace. The stack trace of the thrown class The last time that this class was thrown within the time frame. The direct calling method where the exception was thrown.
How the Activity workspace can help you identify performance problems
The Activity workspace enables you to drill down into detailed performance data for the JVMs you are monitoring in order to analyze and isolate performance bottlenecks.
Select a time frame to analyze. In the Activity workspace, select the application context to analyze:
To analyze all methods in the application, select the All Threads option (default) in the Root Activity Type drop-down list.
Examining performance over time in the Activity workspace How the Activity workspace can help you identify performance problems
82
To analyze only HTTP Service Requests, or EJB Service Requests, or Portlet Service Requests, select HTTP, or EJB, or the Portlet option in the Root Activity Type drop-down list. To analyze the invocations under a specific method context, display that method context (in the Activity workspace) by drilling into it in the Invocations or Hotspots tab.
In the Activity workspace, click the Highlights tab (default tab). When you display the Highlights tab, SmarTune analyzes the instrumented Java method invocations under the selected context. SmarTune displays the results of analysis for each contributor category (finding type). These are the Java technologies and their methods that comprise the application time. The method where a finding was detected is displayed as the findings context. The finding type is a hyperlink to more detailed information. Hover over the finding for each of the highest-ranked significant time contributors that show the specific context and are not a JVM related finding. SmarTune displays a description of the finding, advice for its resolution, and recommends the next steps. Click on the finding link to navigate to the Hotspots tab and view the supporting data. The relevant hot spot is displayed together with its measurements, overtime graph, and the underlying contexts in the Per Caller view. In the Activity workspace, click the Hotspots tab, and then click Call Graph to display a visualization of the Java method contributors. The Graph nodes represent instrumented methods; the arrows connecting the nodes indicate the invocation call path. The color of a node indicates the methods contribution toward the SmarTune contexts total time. Red methods have the highest severity; they contribute the most time toward the applications total time. Yellow has a medium severity, and green has the lowest severity; they each contribute progressively less time toward the applications total time.
5 6
3 4
Examining performance over time in the Activity workspace How the Activity workspace can help you identify performance problems
83
4 5 6 7
Follow a specific finding's link to launch the Hotspots tab's Deep Summary view. The display is filtered to contain only relevant hot spots, sorted by their work time percentage out of the total service time. Review specific hot spots contexts in the Hotspots - Per Caller view and select the heaviest contributor or other hot spots of interest. Drill down into the hot spot's context. You can also drill down into any method in its call path (by using a call path display in the ToolTip of the direct caller method). For the selected context, explore its hot spots, findings, or other measurements (such as: top SQL statements, locks, or exceptions).
3 4 5 6
Examining performance over time in the Activity workspace How the Activity workspace can help you identify performance problems
84
To monitor the business transaction in the Dashboard workspace, add the Top Business Transactions portlet to a Dashboard page. See About the Top Business Transactions portlet on page 64. If the Top Business Transactions portlet shows high response time for a business transaction, investigate the root cause by examining the business transaction in the Activity workspace Business tab. To view details of business transaction performance 1 2 3 4 5 Select a time frame to analyze. In the Activity workspace, click the Business tab. The list of all monitored business transactions is displayed. Sort the list according to service time, CPU time, or other metric to be analyzed. Select the business transaction with the highest metric value. In the Activity workspace, click the Invocations tab. The Invocations tab displays the methods included in the business transaction. Continue investigating the heaviest invocations using: Highlights, Hotspots, and other analysis tabs.
Chapter
About Statistics workspace tabs How the Statistics workspace can help you identify performance problems
Findings Counters
The following table shows the list of possible columns to display in the Findings tab. The table below describes the Findings table columns displayed in the Findings tab. Context names that are too long to display are automatically shortened using ellipses. Table 5-1 Item
Rank
Examining application server metrics in the Statistics workspace About Statistics workspace tabs
86
Description
When clicking on the hyperlinked findings type column, its relevant overtime graph is displayed at the bottom. The first findings graph is shown by default. Each findings type has a ToolTip with a findings description, link to the relevant metrics data (which opens the Counters tab filtered to display metrics details), and a link to more help. The more help link displays the contributors (metrics) impact on the applications health, and gives advice to reduce its negative contribution. A chart shows the values and trend of the contributor over the selected time frame.
The Data Source column appears for all categories All other columns are displayed according to monitored counters of that category.
To open the Counters tab 1 In the Workspace Selection bar, click Statistics, and then click the Counters tab. The top n counters are displayed in the overtime graph. This graph displays the metric by which the table is sorted; sort by a different column and the graph will change accordingly. Warning: Application server overhead will increase when the application server collects the metrics and when the Precise for J2EE Collector gathers them. Refer to the application server documentation for further details.
Examining application server metrics in the Statistics workspace How the Statistics workspace can help you identify performance problems
87
How the Statistics workspace can help you identify performance problems
Use the Statistics workspace to investigate metrics relating to application server performance.
4 5 6 7
Chapter
Examining usage and trends in the Memory workspace About the Memory workspace tabs
89
The table below describes the data displayed in the Heap tab. Table 6-1 Item
Rank
Type Description
Type Description
Examining usage and trends in the Memory workspace About the Memory workspace tabs
90
The table below describes the data displayed in the JVM Leak Candidates by Allocation Trace. Table 6-3 Item
Chart Legend Color Allocating Method Object Type Live Object Count Growth Rate (inv/exec)
Appendix
About using custom instrumentation About using the instrumentation configuration utility
Note: Using custom instrumentation requires knowledge of Java language constructs. Refer to an introductory Java language or programming primer for an explanation of Java language concepts.
Note: Unless you have very specific instrumentation needs, consider using the adaptive instrumentation and instrumentation explorer features in the Precise for J2EE user interface, rather than custom instrumentation. Adaptive instrumentation automates custom instrumentation to provide application information most relevant to finding performance problems, but without exceeding overhead levels that you set. Although not intended for massive amounts of custom instrumentation, the instrumentation explorer provides a user-friendly interface for fine-tuning the selected instrumentation settings. For more on adaptive instrumentation and the instrumentation explorer, see the Precise Administration Guide.
92
How you modify your instrumentation configuration depends on what you try to do:
To enable a single existing instrumentation configuration that was not enabled by default, you can enable this configuration by uncommenting the reference to the file in the InstrumenterConfigList.xml file. To change the instrumentation instructions within a specific instrumentation configuration file, for example to instrument a specific method, you would modify the Custom.xml file (or any other instrumenter configuration XML file). In addition, you must verify that this instrumentation configuration file is enabled in the InstrumenterConfigList.xml file.
Note: By default, the custom instrumentation configuration files are located in the instrumenter directory: <i3_root>/products/j2ee/config/instrumenter. All relative paths of referenced configuration files are relative to this directory. You may also copy these files to JVM ID-specific directories to customize them on a per JVM basis. You can use the following special variables to specify the absolute path of these per-JVM configuration files:
${indepth.j2ee.home} expands to <i3_root>/products/j2ee ${indepth.j2ee.server_id} expands to the raw JVM ID ${indepth.j2ee.jvm_id} expands to the JVM ID (with cluster serial number)
For example, if you have copied the Custom.xml file into the <i3_root>/products/j2ee/config/petstore directory, you can reference it with: <config-file> ${indepth.j2ee.home}/config/${indepth.j2ee.server_id}/Custom.xml </config-file>
Remove the XML comments surrounding the file name. For example:
<!-JNDI Uncomment to instrument. --> <config-file> JNDI.xml </config-file>
93
To add your own custom instrumentation configuration file 1 Create a new user-defined XML configuration file, for example UserDefined.xml, in the following way:
<?xml version="1.0" encoding="UTF-8"?> <!-User Defined Instrumenter Configuration File --> <instrumenter-config> <custom-config> <java-classes> <java-class> <class-name></class-name> <methods> <method> <name> </name> </method> </methods> </java-class> </java-classes> </custom-config> </instrumenter-config>
To add the file to the InstrumenterConfigList.xml file, use the following syntax:
<!-User defined instrumenter config file --> <config-file> UserDefined.xml </config-file>
Modify the new XML configuration file to include the interfaces, classes, and methods you want to instrument. See the next section for more information.
Configuring Precise for J2EE instrumentation About using custom instrumentation public void stop() { } public void stop(boolean force) { } } package xmp.wfm.server; public class NonRecoverableTaskAdapter extends AbstractTask { } public class RecoverableTaskAdapter extends AbstractTask implements RecoverableTask { public void start() { } public void start(RecoverableTaskContext context) { } protected void recover(RecoverableTaskContext context) { } public void stop() { } public void stop(boolean force) { } }
94
Instrumentation is applied to methods of abstract and concrete classes that satisfy the following criteria:
The matched class implements, directly or indirectly, the interface that is specified in the <class-name> element. The name of the method matches the name that is specified in one of the <name> elements. The method, including signature, was declared in the matching interface.
Based on these rules, custom-type instrumentation are applied to the following methods:
95
AbstractTask.start(TaskContext) because the method was not declared in the Task interface RecoverableTaskAdapter.start(TaskContext) because the method was not declared in the Taskinterface RecoverableTaskAdapter.recover(RecoverableTaskContext) because the method was not declared in the Task interface
Instrumentation is applied to methods of abstract and concrete classes that satisfy the following criteria:
The matched class implements, directly or indirectly, the interface that is specified in the <class-name> element. The name of the method matches the name that is specified in the <name> element. The method was declared in the matching interface.
AbstractTask.start() AbstractTask.stop(boolean) RecoverableTaskAdapter.start() RecoverableTaskAdapter.stop(boolean) AbstractTask.start(TaskContext) because the method was not declared in the Task interface AbstractTask.stop() because the method does not match the specified signature of (boolean) RecoverableTaskAdapter.start(TaskContext) because the method was not declared in the Taskinterface RecoverableTaskAdapter.recover(RecoverableTaskContext) because the method was not declared in the Task interface RecoverableTaskAdapter.stop() because the method does not match the specified signature of (boolean)
96
When wildcards are used in the <name> element and the matching construct is an interface, instrumentation is applied to methods of abstract and concrete classes that satisfy the following criteria:
The name of the method matches the wildcard pattern that is specified in the <name> element. The signature of the method matches the signature that is specified in the <params> element (if present). Specifying empty <params> </params> elements indicates that methods with zero arguments are matched, as in a signature of (). If <params> </params> is omitted, all signatures are matched. The method is declared in the matched interface.
AbstractTask.start() AbstractTask.stop() RecoverableTaskAdapter.start() RecoverableTaskAdapter.stop() AbstractTask.start(TaskContext) because the method was not declared in the Task interface AbstractTask.stop(boolean) because the method does not match the specified signature of () RecoverableTaskAdapter.start(TaskContext) because the method was not declared in the Task interface RecoverableTaskAdapter.recover(RecoverableTaskContext) because the method name does not match the wildcard pattern RecoverableTaskAdapter.stop(boolean) because the method does not match the specified signature of ()
97
Instrumentation is applied to methods of abstract and concrete classes that satisfy the following criteria:
The name of the method matches the wildcard pattern that is specified in the <name> element. The signature of the method matches the signature that is specified in the <params> element (if present). The method is declared in the matched interface. The matched class has one or more interfaces are the same as or extend the interface that is specified in the <class-name> element.
AbstractTask.start() RecoverableTaskAdapter.start() RecoverableTaskAdapter.start(RecoverableTaskContext) AbstractTask.start(TaskContext) because the method was not declared in the Task interface or in an interface that extends the Task interface +AbstractTask.stop() because the method does not match the specified wildcard pattern of sta* AbstractTask.stop(boolean) because the method does not match the specified wildcard pattern of sta* RecoverableTaskAdapter.recover(RecoverableTaskContext) because the method does not match the specified wildcard pattern of sta* RecoverableTaskAdapter.stop() because the method does not match the specified wildcard pattern of sta* RecoverableTaskAdapter.stop(boolean) because the method does not match the specified wildcard pattern of sta*
Configuring Precise for J2EE instrumentation About using custom instrumentation <java-classes> <java-class> <class-name> xmp.wfm.task.Task </class-name> <methods> <method> <name> sta* </name> <apply-to-implementations>true </apply-to-implementations> </method> </methods> </java-class> </java-classes> </custom-config> </instrumenter-config>
98
Instrumentation is applied to methods of abstract and concrete classes that satisfy the following criteria:
The name of the method matches the wildcard pattern that is specified in the <name> element. The signature of the method matches the signature that is specified in the <params> element (if present). The method is declared in a class that extends the abstract class or implements the interface that is identified in the <class-name> element.
AbstractTask.start() AbstractTask.start(TaskContext) RecoverableTaskAdapter.start() RecoverableTaskAdapter.start(RecoverableTaskContext) AbstractTask.stop() because the method does not match the specified wildcard pattern of sta* AbstractTask.stop(boolean) because the method does not match the specified wildcard pattern of sta* RecoverableTaskAdapter.recover(RecoverableTaskContext) because the method does not match the specified wildcard pattern of sta* RecoverableTaskAdapter.stop() because the method does not match the specified wildcard pattern of sta* RecoverableTaskAdapter.stop(boolean) because the method does not match the specified wildcard pattern of sta*
Configuring Precise for J2EE instrumentation About using custom instrumentation </method> </methods> </java-class> </java-classes> </custom-config> </instrumenter-config>
99
Instrumentation is applied to methods of abstract and concrete classes that satisfy the following criteria:
The matched class extends the class specified in the <class-name> element. The name of the method matches the name that is specified in one of the <name> elements. The method was declared in the matching class.
AbstractTask.start() AbstractTask.start(TaskContext) AbstractTask.stop() AbstractTask.stop(boolean) RecoverableTaskAdapter.start() RecoverableTaskAdapter.start(TaskContext) RecoverableTaskAdapter.stop() RecoverableTaskAdapter.stop(boolean) RecoverableTaskAdapter.recover(RecoverableTaskContext) because the method was not declared in the AbstractTask class
Instrumentation is applied to methods of abstract and concrete classes that satisfy the following criteria:
The matched class extends the interface that is specified in the <class-name> element. The name of the method matches the name that is specified in the <name> element.
100
The method signature matches the types that are specified using the <param> elements. The method was declared in the matching class.
AbstractTask.start() AbstractTask.start(TaskContext) AbstractTask.stop(boolean) RecoverableTaskAdapter.start() RecoverableTaskAdapter.start(TaskContext) RecoverableTaskAdapter.stop(boolean) AbstractTask.stop() because the method does not match the specified signature of (boolean) RecoverableTaskAdapter.recover(RecoverableTaskContext) because the method was not declared in the AbstractTask class RecoverableTaskAdapter.stop() because the method does not match the specified signature of (boolean)
When wildcards are used in the <name> element and the matching construct is a class, instrumentation is applied to methods of abstract and concrete classes that satisfy the following criteria:
The name of the method matches the wildcard pattern that is specified in the <name> element. If the <params> element is present, the signature of the method matches the signature that is specified in the <params> element. Specifying empty <params> </params> indicates that methods with zero arguments are matched, as in a signature of ( ). If <params> </params> is omitted, all signatures are matched. The method is declared in the matched class.
101
AbstractTask.start() AbstractTask.start(TaskContext) AbstractTask.stop() RecoverableTaskAdapter.start() RecoverableTaskAdapter.start(TaskContext) RecoverableTaskAdapter.stop() AbstractTask.stop(boolean) because the method does not match the specified signature of () RecoverableTaskAdapter.recover(RecoverableTaskContext) because the method name does not match the wildcard pattern RecoverableTaskAdapter.stop(boolean) because the method does not match the specified signature of ()
Instrumentation is applied to methods of abstract and concrete classes that satisfy the following criteria:
The name of the method matches the wildcard pattern that is specified in the <name> element. The signature of the method matches the signature that is specified in the <params> element (if present). The method is declared in the matched class. The matched class is the same as or extends the class specified in the <class-name> element.
AbstractTask.start() AbstractTask.start(TaskContext) RecoverableTaskAdapter.start() RecoverableTaskAdapter.start(RecoverableTaskContext) AbstractTask.stop() because the method does not match the specified wildcard pattern of sta* AbstractTask.stop(boolean) because the method does not match the specified wildcard pattern of sta*
102
RecoverableTaskAdapter.recover(RecoverableTaskContext) because the method does not match the specified wildcard pattern of sta* RecoverableTaskAdapter.stop() because the method does not match the specified wildcard pattern of sta* RecoverableTaskAdapter.stop(boolean) because the method does not match the specified wildcard pattern of sta*
The <name> element has a different interpretation from its use in all other cases. When the <name> element is used inside an <all-calls-to-method> element, it must represent a fully-qualified method name. The portion of the <name> after the last dot (.) is considered to be the method name, and the portion of the <name> before the last dot is considered to be the class name. When you use wildcards, it is important to use a wildcard pattern that fits the scheme described. For example, the wildcard pattern *.set* matches all methods whose name starts with set of all classes, and xmp.task.*.* matches all methods in all classes whose name starts with xmp.task. The <invocation-relationship> element can be used instead of the <all-calls-to-method> element to restrict instrumentation to calls to specific methods. This instrumenter configuration file causes instrumentation to be applied to all calls made to println methods in the java.io. package or to run() methods from methods in abstract or concrete classes that implement the AbstractTask interface.
<?xml version='1.0'?> <instrumenter-config> <invocation-relationship> <java-class>
Configuring Precise for J2EE instrumentation About using custom instrumentation <class-name> xmp.task.AbstractTask </class-name> </java-class> <invoked-method> java.io.*.println </invoked-method> <invoked-method> *.run() </invoked-method> </invocation-relationship> </instrumenter-config>
103
The rules that apply to the <java-class> element that is documented in preceding sections are applied when it is used inside the <invocation-relationship> element. The <invoked-method> represents a fully-qualified method name. The portion of the <invoked-method> after the last dot (.) is considered to be the method name, and the portion of the <invoked-method> before the last dot is considered to be the class name. When you use wildcards, it is important to use a wildcard pattern that fits the scheme described. For example, the wildcard pattern *.set* matches all methods whose name starts with set of all classes, and xmp.task.*.* matches all methods in all classes whose name starts with xmp.task. The <invoked-method> may also include a method signature. The method signature should follow these rules:
The method signature must be enclosed in parentheses (() and ()). The method signature must not contain spaces. A comma (,) must separate parameter types in the method signature. The method signature may include wildcards.
About preventing instrumentation for all methods of classes in a package and sub-packages
The <java-classes> element can be used within an <ignore-config> element to prevent instrumentation from being applied to all methods of classes in a package and sub-packages using wildcards in the <class-name>. This instrumenter configuration file prevents instrumentation from being applied to the AbstractTask class:
<?xml version='1.0'?> <instrumenter-config> <custom-config> <java-classes> <java-class> <class-name> xmp.wfm.* </class-name> <methods> <method> <name> * </name> </method> </methods> </java-class> </java-classes> </custom-config> ] <ignore-config> <java-classes> <java-class> <class-name> xmp.wfm.task.* </class-name> </java-class> </java-classes> </ignore-config> </instrumenter-config>
104
The <methods> element can be supplied to prevent instrumentation from being applied to some methods of a class, but not others. This instrumenter configuration file prevents instrumentation from being applied to all stop() methods:
<?xml version'1.0'?> <instrumenter-config> <custom-config> <java-classes> <java-class>
Configuring Precise for J2EE instrumentation About using custom instrumentation <class-name> xmp.wfm.task.Task </class-name> <methods> <method> <name> * </name> </method> </methods> </java-class> </java-classes> </custom-config> <ignore-config> <java-classes> <java-class> <class-name> * </class-name> <methods> <method> <name> stop </name> <params> <params/> </method> </methods> </java-class> </java-classes> </ignore-config> </instrumenter-config>
105
AbstractTask.stop() RecoverableTaskAdapter.stop()
The <all-calls-to-method> element is used within an <ignore-config> element, the <name> element of <method> elements is expected to be a qualified method name. The last dot in the <name> separates the class name from the method name. This is also true if wildcards are used. This instrumenter configuration file prevents instrumentation from being applied to all calls to methods in the java class. <?xml version'1.0'?> <instrumenter-config> <ignore-config> <all-calls-to-method>
106
<methods> <method> <name> java.* </name> </method> </methods> </all-calls-to-method> </ignore-config> </instrumenter-config>
107
Under WebLogic 7.0, EJB skeletons extend the weblogic.rmi.internal.Skeleton class. The Calls to EJB implementations instrumentation feature can be configured to find the skeleton and instrument the call to deposit. As an example, the WebLogic skeleton might look as follows:
public class AccountEJB_bfqop_WKSkel extends Skeleton implements Account { public void init() { /* ... */ } public void invoke() { /* ... */ } public void deposit(float amount) { impl.deposit(amount); } }
In this case, the call from AccountEJB_bfqop_WKSkel.deposit to AccountEJB.deposit is instrumented because the call is to a method with the same name and signature as the caller. Note: init() and invoke() are probably not instrumented unless they call another method with the same name and signature. Instrumentation that is applied by the Calls to EJB implementations instrumentation feature show up in the instrumenter log as FIXED-CALLER-SIDE instrumentation. The EJBImpl.xml file looks like the following example:
<instrumenter-config> <planner-config> <class-name>com.precise.javaperf.instrument.planner. CallsToEJBImplementationPlanner </class-name> <property> <name> skeletonMarkerClass </name> <value> weblogic.ejb20.internal.BaseEJBObject </value> </property> <property> <name> logBeginMethodName </name> <value> logBeginEjbServer </value> </property> <property> <name> logEndMethodName </name> <value> logEndEjbServer </value> </property> <property> <name> invocationType </name> <value> EJBImpl </value> </property> </planner-config> </instrumenter-class>
The <class-name> element identifies the name of the new pluggable instrumentation planner. The following table lists the recognized properties. Table A-1 Recognized properties Multiplicity
Optional
Property Name
logBeginMethodName
Description
Identifies the logger method to call to report calls to EJB business methods. Identifies the logger method to call to report calls to EJB business methods. Identifies how the logger events show up in Precise for J2EE.
logEndMethodName
Optional
invocationType
Optional
108
Table A-1
Property Name
skeletonMarkerClass
Description
Identifies the classes that an EJB skeleton must extend. Only classes that extend a skeleton class or implement a skeleton interface are searched for calls to methods with matching name and signature. Identifies the classes that an EJB skeleton must implement. Only classes that extend a skeleton class or implement a skeleton interface are searched for calls to methods with matching name and signature. Identifies the classes that must be extended by calls with a matching name and signature. Identifies the classes that must be implemented by calls with a matching name and signature.
skeletonMarkerInterface
Any Number
implementationMarkerClass
Any Number
implementationMarkerInterface
Any Number
109
Figure A-1
Instrumenter Configuration
The instrumenter config file path specifies the absolute or relative path to an instrumenter configuration file. Paths are relative to <i3_root>/products/j2ee/config/instrumenter. The following special variables can be used in the instrumenter config file path:
110
${indepth.j2ee.home} expands to <i3_root>/products/j2ee ${indepth.j2ee.server_id} expands to the JVM ID (with no cluster sequence number) ${indepth.j2ee.jvm_id} expands to the JVM ID (with a cluster sequence number)
Ixp.xml
GenericPortlet.xml
WebLogicPortlet.xml
111
CallsFromMethodToMethod.xml LeakSeeker.xml
The following table lists the instrumentation configuration files that are recommended to gather the most information. Table A-3 File name
WebLogicEJB.xml
WebSphereEJB.xml
Precise for J2EE also provides several instrumentation configuration templates, as shown in the following table. You edit and enable the templates and then add them to the InstrumenterConfigList.xml file. Table A-4 File name
Calls.xml EJBImpl.xml Jolt.xml MBeanImpl.xml PeopleSoft.xml SAP61.xml SmartuneInstrumentation.xml
Configuring Precise for J2EE instrumentation About using custom instrumentation <instrumenter-config> <custom-config> </custom-config> <all-calls-to-method> </all-calls-to-method> <all-calls-from-method> </all-calls-from-method> <calls-from-method-to-method> </calls-from-method-to-method> <ignore-config> </ignore-config> </instrumenter-config>
112
See About custom instrumentation configuration on page 112. See About all calls to method instrumentation configuration on page 112. See About all calls from method instrumentation configuration on page 112. See About calls from method to method instrumentation configuration on page 113. See About ignore instrumentation configuration on page 113.
Configuring Precise for J2EE instrumentation About using custom instrumentation </methods> </java-class> </java-classes> </all-calls-from-method>
113
Use the <java-classes> element to prevent instrumentation from being applied to all methods in specifically matched classes or packages or to specifically matched methods. The <java-classes> element has this structure:
<java-classes> <java-class> <!-- occurs 0 or more times --> <class-name> class-or-interface-name </class-name> <methods> <!-- optional --> <method> <!-- occurs 0 or more times --> <name> method-name </name> <params> <!-- optional --> </params> </method> </methods> </java-class> </java-classes>
See About method signature matching on page 115. For each method to be instrumented, the following rules are used to determine if instrumentation should not be applied to the method:
114
If the method is declared in a class whose name matches the specified class or interface name of a <java-class> element, no instrumentation should be applied to the method. If the matched <java-class> includes a <methods> element, the method must also match the specified method name of a <method> element so that no instrumentation is applied to the method. If the matched <method> element includes a <params> element, the method must also match the specified signature so that no instrumentation is applied to the method.
Wildcards are permitted in the class or interface name and method name. See About using the wildcard character * on page 115. Use the <invocation-relationship> element to prevent instrumentation from being applied to specifically matched calls to methods from a specifically matched calling method. The <invocation-relationship> element has the following structure:
<invocation-relationship> <!-- occurs 0 or more times --> <java-class> <class-name> class-or-interface-name </class-name> <methods> <method> <!-- occurs 0 or more times --> <name> method-name </name> <params> <!-- optional --> </params> </method> </methods> </java-class> <invoked-method> <!-- occurs 0 or more times --> qualified-method-name </invoked-method> </invocation-relationship>
See About method signature matching on page 115. For each call to a method to be instrumented, the following rules are used to determine if instrumentation should not be applied to the method:
If the called method is declared in a class whose name matches the specified class or interface name of a <java-class> element, no instrumentation should be applied to the method. If the matched, <java-class> includes a <methods> element, the method must also match the specified method name of a <method> element so that no instrumentation is applied to the method. If the matched <method> element includes a <params> element, the method must also match the specified signature so that no instrumentation is applied to the method.
Use the <all-calls-to-method> element to prevent instrumentation from being applied to specifically matched calls to methods from any calling method. The <all-calls-to-method> element has the following structure:
<all-calls-to-method> <methods> <method> <!-- occurs 0 or more times --> <name> method-name </name> <params> <!-- optional --> </params> </method> </methods> </invocation-relationship>
See About method signature matching on page 115. The <name> element must represent a fully qualified method name. The portion of the <name> element after the last dot (.) is considered to be the method name, and the portion of the <name> element before the last dot is considered to be the class name. When you use wildcards, it is important to use a wildcard pattern that fits the scheme described. For example, the wildcards pattern *.* matches all methods of all classes.
115
The parameter type is the same as the abstract type declarator for the parameter type in Java. For example, the parameter-type for a parameter of type java.lang.String is java.lang.String, and the parameter type for a parameter of type int[][] is int[][]. The following primitive parameter types names are recognized:
The <invoked-method> elements in the <calls-from-method-to-method> element are used to match specific method signatures for specific calls from one method to another. All methods that match the signature are instrumented. Wildcard expressions are not supported and return types are not matched. The <invoked-method> format must be expressed using the same primitive types that were discussed for the <param> element. For example:
<invoked-method> java.lang.Thread.sleep(long) </invoked-method> or <invoked-method> com.acme.shared.comm.Connector.<init> (java.lang.String,int[][]) </invoked-method>
Non-instrumented elements
xmp.task.* *$*
Note: Use wildcard characters only when discovering the methods to instrument. Otherwise, it may result in instrumentation that does not yield meaningful performance metrics but introduces unwanted overhead. Do not implement wildcarded instrumentation in production environments.
Configuring Precise for J2EE instrumentation About using the instrumentation configuration utility
116
Configuring Precise for J2EE instrumentation About using the instrumentation configuration utility
117
Run adaptive instrumentation to obtain a survey data file. If you plan to use the ICU to instrument selected methods, enable conditional instrumentation on the Adaptive Administration page so that the ICU can instrument methods on your JVM during runtime. For details, see the Precise for J2EE Users Guide. If you plan to use the ICU to instrument selected methods, enable the ICU to communicate with the Application Server JVM by enabling IXP Direct Connect mode and configuring the desired port for connections. The ICU always connects via Direct Connect mode. For information on configuring Direct Connect mode, see the Precise for J2EE User's Guide.
You need to make these files available to the ICU. To obtain data files for the ICU 1 Copy the .ser files that are located in the following directory to a directory that is accessible from the host where the ICU runs: <i3_root>/products/j2ee/config/JVMID
Configuring Precise for J2EE instrumentation About using the instrumentation configuration utility
118
To run the ICU 1 Start the ICU by running the following script:
Windows UNIX $<i3_root>/products/j2ee/bin/runHeatSeekerConsole.bat $<i3_root>/products/j2ee/bin/runHeatSeekerConsole.sh
Invocations (INV)
The ICU lets you sort the method list by the following metrics using the Sort By list above the method list:
When the method list is sorted by Work Time/Called By, as shown in the following figure, the methods are arranged in the tree according to their work time. Additionally, the child nodes in the tree represent the callers of a particular method, essentially allowing you to drill up in the method invocation hierarchy. Folder icons mean that a method has callers, while paper icons mean that the method has no callers. Method hierarchy, sorted by work time
Figure A-3
When the method list is sorted by Response Time/Calls To, as shown in the following figure, the methods are arranged in the tree according to their response time values. The child nodes in the tree represent the callees of that method, allowing you to drill down in the invocation hierarchy. Folder icons mean that a method has callees, while paper icons mean that the method has no callees.
Configuring Precise for J2EE instrumentation About using the instrumentation configuration utility
119
Figure A-4
When the method list sorted by Class & Method Name, as shown in the following figure, methods are sorted alphanumerically on the fully qualified class and method name. Drilling down in this view also displays the method callees. Method hierarchy, sorted by class & method name
Figure A-5
Configuring Precise for J2EE instrumentation About using the instrumentation configuration utility
120
To enable or disable instrumentation for a method 1 2 3 In the ICU, in the Host Name and Port text boxes, type the name of the Application Server Runtime Agents host and port. In the method hierarchy, select the method to instrument. On the Task menu, view the available tasks. The ICU determines which tasks in this menu are enabled or disabled based on the context of the selected method:
No tasks available means that the ICU determined that neither callee- nor caller-side logging can be enabled for the selected method. The Enable/Disable Logging for Calls from Selected Method to Callee tasks are available when the selected method can have caller-side logging enabled. The Enable/Disable Logging for Selected Method tasks is available when the selected method can have callee-side logging enabled. Both Enable/Disable Logging for Selected Method and Enable/Disable Logging for Calls from Selected Method to Callee are available when the selected method can have caller- and callee-side logging enabled.
Glossary
<i3_root> abandonment rate action This is the term used in a path for the Precise installation directory. The terms <i3_root> (or i3 root) and Precise root can appear in text too. In Precise for Web, a counter that keeps track of the percentage of users that abandon the loading of the Web page before it completes downloading. An operation that Alerts FocalPoint automatically performs when detecting a warning or critical status for a specific metric. According to the defined action, Alerts FocalPoint opens a message box, sends an email or SNMP trap, or executes a program. The data that is managed directly by Precise for J2EE. As new data is collected, Precise for J2EE saves it in the SQL archive with an active label. When the age of active archive data exceeds the Aging Timespan configuration setting, the data is re-labeled as overflow or deleted, depending on the selection status of the Overflow Enabled item. The central administration console of Precise that facilitates the maintenance, configuration, and management of all installed Precise components, such as monitoring the status of all Precise agents and Performance Warehouse processes, getting license information, starting and stopping the agents, getting log data on agents and events, changing Performance Warehouse settings, and installing patches. See also Performance Warehouse. See also agent. advice In Precise for Oracle, an algorithm that is designed to recommend on gathering statistics, creating new indexes, change existing indexes, and add or delete hints to make Oracle's Optimizer choose a better access path and make the statement perform better. Can be activated from any DML (Data Manipulation Language) statement. A program that runs on a server machine to collect, process, or communicate performance information. The Precise installation consists of multiple agents. Also called a measurement interval. In Precise for J2EE, the smallest unit of data presentation and storage. Represents the period of time over which Precise data is collected and aggregated (summarized). The state of an Alerts metric that has reached a near-critical or critical status. An alert is issued by Alerts, triggering an action and informing of a problem that has occurred or is likely to occur within the area sampled by the specific metric. See also action. Alerts These product provide alerts to problematic conditions before they turn into performance problems, based on predefined metrics and thresholds. Alerts can automatically perform an action, such as displaying a pop-up message, sending an e-mail message or SNMP trap, or running a program. An agent that receives data from the InformPoint agents, stores it, and performs any action that has been user-defined for that specific alert, such as displaying a pop-up message, sending an e-mail message or SNMP trap, or running a program. See also InformPoint. alert type In Alerts, the status of all metrics belonging to a metric group or a monitored instance, indicating the current performance level through colors. See also alert. See also metric. analysis tabs application server metric AppTier In Precise for J2EE, in the Activity workspace, these tabs show Highlights, Invocations, Hotspots, SQL, Locks, Business, and Exceptions. In Precise for J2EE, a metrics that is provided by the application server or by customer code. This can include metrics published by the Java Management Extension (JMX) APIs or vendor-specific APIs, such as IBM's Performance Management Interface (PMI). The abbreviation for an application tier in a Precise environment. An AppTier contains one or more instances of the same technology and purpose. Application tiers do not necessarily correspond to distinct physical server machines: in many cases, the tiers are logical, with one server machine running multiple
AdminPoint
Alerts FocalPoint
Glossary
122
AppTiers or one AppTier spans a cluster of servers. A Precise environment may contain multiple AppTiers on the same technology. For example, you may group J2EE instances (JVMs) into a J2EE Presentation AppTier and a J2EE Business Logic AppTier. Segmenting application service time into the contribution of individual application tiers is helpful in identifying the source of performance problems. Analyzing the performance and behavior of each tier separately is crucial for isolating the root causes of performance problems. archive data The data stored in a Precise for J2EE database, including data that is actively managed by Precise for J2EE (active archive data) and data that is managed by the user (inactive archive data). See also active archive data. See also inactive archive data. browser side collection cabinet call path CAT (concurrent active thread) In Precise for Web, the gathering of performance data from the desktop of the Web application's user through the Web browser agent. In Precise for Oracle, Precise for SQL Server, Precise for DB2, and Precise for Sybase, the highest logical level in the SQL workspace hierarchy. A cabinet contains folders and, within folders, statements. A subset of a stack trace including only those methods that have been instrumented. The average number of concurrently active top-level threads detected by instrumentation. The active threads can include HTTP, EJB, JDBC, or custom invocations. The measurement of CATs indicates how busy the system was during a period of time. The number of simultaneously active threads is rarely a stable integer number. In addition, the application server and multi-threading features impact the concurrence of the application server so that the CAT's value may be larger or smaller than the number of users reported by the load generator. In Precise for Web, a counter that keeps track of the percentage of requests taken from the client cache (http status 304). Within J2EE, a grouping of multiple JVMs, either within a single server or across multiple servers, in such a way that the operation of the group appears to be that of a single JVM with improved performance and reliability. In general, two (or more) servers that work together to balance load or to provide continued operation if one server fails. In Precise for SQL Server and Precise for Sybase, the access plan of a unique group of statements or batches that belong to the same collapsed statement or batch but have different access plans. Can differ due to the constants in the text of the original (not collapsed) statements. See also explained statement. See also collapsed statement. collapsed statement In Precise for Oracle, Precise for SQL Server, Precise for Sybase, and Precise for DB2, a statement whose constants are replaced with parameters. Each collapsed statement can have several access plans, according to the occurrences of its statements. See also collapsed access plan. Collector agent The program that runs on the monitored server to collect performance information. Some technologies allow a single Collector agent to serve multiple instances running on the same server. Other technologies require a dedicated Collector agent per monitored instance. In most cases, it must be installed on the monitored server. Collector agents for SAP, SQL Server, and Sybase may reside on a remote server. See also agent. completion rate Concurrent Active Thread contributor count CPU time critical status In Precise for Web, a counter that keeps track of the percentage of users that completed the loading of a Web page. See CAT (concurrent active thread). An invoked element that contributes to a method's performance. For example, an internally invoked servlet or JSP, EJB call, or JDBC call are contributors to service request response time and CPU time. The number of occurrences observed during a measurement interval. The average amount of time consumed by the operating system actively processing instructions on behalf of a running method. In Alerts, the status represented by a red bullet indicating that the value of the sampled metric has exceeded the near-critical and critical threshold values.
Glossary
123
See also metric. Cross-AppTiers A perspective that provides high-level information about the performance of an environment, including operating system data. Information is always related to all AppTiers in an environment and can help understand how AppTiers interact. See also AppTier. current data customized metric data sample drilldown EJB (Enterprise Java Bean) EJB request EJB service time % EJB skeleton EJB Stub The data collected during the last aggregation interval of the J2EE AppTier Collector agent, displayed in bar graphs. In Alerts, a user-defined metric that measures site-specific parameters. See aggregation interval. Within Precise products and Insight SmartLink, the filtering of analyzed data by clicking a specific entity in the Association area table. A software component architecture for the development and deployment of object-oriented, distributed, enterprise-level applications. EJBs typically contain business logic. An EJB invoked either externally or directly from an externally invoked HTTP request. The percentage of service request response time attributed to executing local or remote EJBs. A server-side entity containing a method that dispatches calls to the actual remote object implementation. A proxy for a remote object that is responsible for forwarding method invocations on remote objects to the server where the actual remote object implementation resides. A client's reference to a remote object, therefore, is actually a reference to a local stub. See EJB (Enterprise Java Bean). The highest Precise logical group. It may contain multiple AppTiers of various technologies that serve an application together. For example, a Payroll Production environment may contain all Web servers, application servers, transaction managers, databases and server machines that serve this application. Alternatively, it may contain any set of instances that form together an administrative group. Since Precise version 8.5, an instance can belong to more than one environment. Let's say a single Oracle database serves two different applications plus the DBA wants to associate this database with a group of other databases under his responsibility regardless of served applications. in this case the Oracle database will be associated to three different Precise environments. See also AppTier. See also instance. ERP extension In Precise for Oracle, Precise for DB2, and Precise for SQL Server, a product extension that provides detailed information on the activities and resource consumption of packaged application components. It correlates the database information, and the packaged application information and lets you see users, transactions, reports and other elements of ERP applications such as Oracle Applications, SAP, PeopleSoft, and Siebel. In Alerts, the occurrence of a sampling or progress. A sampling occurrence occurs every time a metric samples. A progress occurrence occurs when a metric's progress status is changed or when the investigated status reaches the end of the given investigation time. In AdminPoint, all occurrences reported by Precise agents, including informational events, warnings, and errors related to one of the agents. All events are shown in the Events view. See also metric. See also progress. execute time executions explained statement The percentage of time spent executing the application. In Precise for Oracle, Precise for SQL Server and Precise for Sybase, the number of times a SQL statement was executed during the selected time frame. In Precise for Oracle, Precise for SQL Server, Precise for DB2, and Precise for Sybase, a statement whose access path (chosen by the RDBMS Optimizer) is clarified and translated into a visual display. Explained results include information on the objects referenced by the statement and the operations performed on these objects. In Precise for Oracle, a function that proactively specifies a future period during which Oracle activity data is collected and organized for subsequent analysis. Extended collections are an easy means to view collected
event
extended collection
Glossary
124
information, assess application resource consumption, and identify bottlenecks that are inhibiting application performance and end-user productivity. external invocation Federated Precise The activation of a) an HTTP request (Servlet or JSP) from outside of the JVM or from a thread with a different thread identifier, or b) an EJB from an HTTP request, a thread with a different thread identifier as the caller, or from outside of the JVM. Federated Precise is a version of Precise (starting with version 8.5) that can manage multiple Precise installations within unified StartPoint and AdminPoint screens, displaying and managing all environments, instances, and installations. In Precise for Web, a counter that keeps track of the time that it takes from the moment a new Web page is called until the first byte arrives back from the Web server. In Precise for SQL Server, Precise for Oracle, Precise for DB2, and Precise for Sybase, the intermediate logical level in the SQL workspace hierarchy. Folders are grouped into cabinets and contain SQL statements. See also cabinet. Framework Installer The application that facilitates the installation of Precise framework components. It can be invoked from the installation DVD in order to install a new Precise deployment. It can also be invoked from an existing Precise deployment in order to install an additional framework node and attach it to the originating Precise deployment. See also Framework node. Framework node A set of FocalPoint agents that are installed together and manages a set of monitored instances. The performance data of these instances will be loaded into a dedicated Performance Warehouse. A single Precise deployment may contain multiple framework nodes (using a separate Performance Warehouse for each node). An environment cannot span over multiple framework nodes. An automatic process in the Java runtime environment that periodically reclaims memory used by objects that are no longer referenced. The process can impact an application's performance while memory is being reclaimed. Java programmers may initiate garbage collection explicitly. In Precise for Web, the identifier that is used to group other identifiers, such as sites or URLs. In Precise for Oracle, an instruction directed at the Oracle Optimizer that includes considerations for an execution plan. The Oracle Optimizer will build an execution plan based on the hint, ignoring its own set of considerations. A unit that reflects the type and level of activity within the system at different times. By defining the times of the day that are peak and off-peak, or day and night, the performance analysis can be focused on those particular times of the day. If, for example, most performance problems occur within nighttime and weekend batches, it can be useful to focus only on them. A Java Servlet or JSP that is invoked externally. See also external invocation. HTTP service time % The percentage of a service request's service time that is attributed to executing an internally invoked Java Servlet or JSP. See also internal invocation. inactive archive data InformPoint The archive data that does not reside under the active archive label, such as overflow data, and that is not managed by Precise for J2EE. Precise for J2EE will retrieve data from these files if they are classified with the inactive archive label. If this label is set to active, the management rules for active archive apply. In Alerts, an agent that retrieves performance data from all installed Precise products, analyzes it, and sends an alert to Alerts FocalPoint when the predefined thresholds are exceeded. See also agent. Insight The Precise product family that facilitates the process of monitoring and correlating system performance. It consists of Insight. See also Report Manager. See also An agent that communicates with the Listener agents installed on the monitored servers, receives data from the Collector agents, periodically processes and stores this data in Performance Warehouse, and serves UI requests..
garbage collection
grouper hint
hour group
HTTP request
Glossary
125
Insight FocalPoint
An agent that receives performance information from Insight Savvies, which monitor the environment. Insight FocalPoint then correlates, processes, and stores this information in a centralized location. The Insight performance history is stored in the Performance Warehouse database. See also Savvy. See also Performance Warehouse.
instance
A monitored object of specific technology. The following list specifies what constitutes an instance for the various supported technologies: J2EE- a Java Virtual Machine (JVM- a logical name set by the user), Microsoft .NET- a Common Language Runtime (CLR - a logical name set by the user), Oracle Applicationsan Oracle Applications form server, Oracle- an Oracle instance, SAP- a SAP system, SQL Server- an SQL Sybase- a Sybase instance, Tuxedo- a Tuxedo domain, Web- a Web server, WebSphere MQ- an IBM WebSphere Queue Manager, DB2- a DB2 non-partitioned database or a DB2 database partition. During installation, the instance is associated with one AppTier and environment. An Instance can be moved to a different environment or associated with multiple environments without re-installation nor losing historical data. See also environment. See performance counter. In Precise for Oracle, the statistics information stored in Performance Warehouse. It provides insight into database behavior and database trends. The statistics include hit ratio information, redo logs statistics, tablespaces, and data file statistics. In Precise for SQL Server, the part of the Collect Schema Changes process that captures instance definition changes and database option changes and saves them in Performance Warehouse. In Precise for SQL Server and Precise for Sybase, the statistics information stored in Performance Warehouse. It provides insight and enables comparison of SQL Server internal performance counters and database files statistics. The process of inserting fault-tolerant recording hooks in Java byte code, .NET MSIL, HTML pages, or other monitored components, resulting in the capture of performance metrics. In Precise for J2EE, a mechanism that enables collecting performance information when an application is executed. The process involves inserting special fault-tolerant recording hooks into application class files, either in memory (Dynamic Instrumentation) or file-based (Static Instrumentation). See invocation context. The process of invoking a request from an HTTP request (Servlet or JSP) or an EJB. Precise for J2EE displays an internal invocation like any other invocation. A process that summarizes the performance of invoked elements that contribute to a service request's response time measurement. For example, an internally invoked Servlet or JSP, an EJB call or a JDBC call are contributors to a service request's response time and CPU time. The context within which a method is invoked. For example, if Method A is invoked from Method B and Method C, the invocation context for the performance metrics collected for Method A is different when Method A is invoked from Method B than when it is invoked from Method C. See also call path. An architecture that separates presentation details from business logic. This allows J2EE application developers to concentrate on writing the application components that represent the best business solution and leave the rest to the underlying platform. An application component is a self-contained module that is added to, and interfaces with, other application components. Application components include thin-client applications, applets, Servlets, Java ServerPages, and server-side Enterprise JavaBeans. For example, a J2EE application could have an HTML form to prompt the user for data, a Servlet to receive the data from the form and process it, and an Enterprise Bean to store data in a database. A Java object that groups multiple elements into a single unit. Collections are used to store, retrieve, and manipulate aggregate data. Object-oriented programming language and environment, invented and maintained by Sun Microsystems. The language is interpreted, which makes Java programs portable across many different operating systems and hardware platforms. The industry standard for database-independent connectivity between the Java platform and a wide range of databases. The JDBC provides a call-level Application Programming Interface for SQL-based database access.
instance statistics Statistics workspace instance/database changes instance/database statistics perspective instrumentation
invocation context
(Java
Glossary
126
JDBC time % JRE (Java Runtime Environment) JSP (Java Server Page) JVM (Java Virtual Machine)
The percentage of service request response time that is attributed to invoking JDBC calls. As the runtime part of the Java software, the combination of the components that enable the execution of a Java program: a Java virtual machine, the core class libraries, and the files that form the Java platform. An HTML page with special tags for Java scripting. An application server processes the tags and generates a Servlet. An instance of a JRE that executes Java programs. A server-side Java application server is itself a Java program that runs inside a JVM. Servlets, JSPs and EJBs are Java programs (applications) that run within the application server's JVM. Precise for J2EE monitors the JVM running the application server and the server-side Java applications within the application server. The amount of real computer memory that is allocated to the JVM for executing Java programs. In Alerts, a parameter that monitors a very important performance aspect. The status of the Oracle instance (up/down), for example, is crucial for system performance. If the instance is down, this is the first problem that needs to be solved. Marking a metric as key metric ensures that a critical alert raised for this metric receives top priority by the person that is responsible to handle alerts at any time. It can also help determine which alert to handle first in case of multiple alerts. In Alerts, key metrics are always displayed at the top of a metric table when it is sorted by alerts so that they get immediate attention. The agent that facilitates the communication between the various Precise agents across different servers must be installed on every server where collector agents or FocalPoint agents are installed. The Listener agent allows communication with all other agents installed on the monitored server, while only the Precise Listener port is known by other servers. In Precise for SQL Server and Precise for Sybase, the session identifier that represents the credential used to connect to the database. When an ERP extension is installed, the user name of the packaged application's client overrides the login name. For example, when SAP extension is installed, the SAP user name overrides the login name. A session identifier. A machine as sampled, for example, by the Precise for SQL Server Collector agent is the identification of the machine where the client process executes. Machine is also sampled by Precise for Oracle, Precise for DB2 and Precise for Sybase. In Insight terminology Machine is called Client machine. A main framework node is the single point for login and also serves as the Precise FocalPoint for the entire deployment. Number of estimated major garbage collection events that occurred during the last J2EE Collector aggregation interval. A major garbage collection can stop the application while JVM heap memory is being reclaimed. See also garbage collection. Percentage of time spent by the JVM executing major garbage collection events during the displayed interval. See also garbage collection. A Java object that represents a manageable resource. In Precise for J2EE, MBeans, or Managed Beans, are used for application server metrics. See aggregation interval. The interval at which the Precise for J2EE Collector agent gathers JVM heap memory data. All snapshots of the memory logger's data collected according to the memory logger interval are summarized with counters in the current aggregation interval. The memory logger interval's time span is typically a small fraction of the aggregation interval. In Alerts, a query that helps measure performance in the environment. Three types of metrics are available: System metrics relate to the internal resources, operations, and objects of the monitored infrastructure; application metrics reflect the way the applications perform; user-defined metrics can be customized to specifically relate to a site. When a metric's value exceeds one of the defined thresholds, its status changes to near-critical (yellow bullet) or critical (red bullet). See also key metric. In Alerts, a unit that groups metrics that measure related performance aspects. The following metric sets exist: Status: includes metrics that alert to functional problems related to the instance. Performance: includes metrics that alert to performance problems related to the instance.
Listener
login name
machine
metric
metric set
Glossary
127
Load: includes metrics that alert to instance-related load problems that may later cause errors or crashes. Service: includes metrics that alert to instance-related SLA breaches. The metrics in this set are sampled by Insight. Performance Trending: includes metrics that alert to potential future performance problems. The metrics in this set are sampled by Report Manager. Load Trending: includes metrics that alert to potential future load problems. The metrics in this set are sampled by Report Manager. Customized: includes user-defined metrics. Precise Status: includes metrics that alert to the near-critical or critical status of the installed Precise environment. module A session identifier. In Precise for Oracle it contains the value of MODULE column in V$SESSION table. In Precise for DB2 it contains the command name of non-SQL statements or the package name for SQL statements. In Alerts, a status indicating that the value of the sampled metric has exceeded the defined near-critical threshold. A near-critical status is indicated by a yellow bullet. In Precise for Web, a counter that keeps track of the time spent on network activity from the server side perspective. This includes the time to read the request from the network and the network time to send the response back to the client. See Framework node. Note: when creating a new installation from DVD, it would be called "Framework." In the UI screens (columns in tables, choosing a system for a new environment etc), we would call them "Nodes." For example: choose a node for the new environment. When adding a new system within AdminPoint, it would be called a "Framework node". other overflow Represents invocations of a type not specifically defined. See also work time. In Precise for J2EE, the process of moving the oldest active data slice under the overflow label when the age of active archived data exceeds the Aging Timespan value. If overflow is not enabled, the oldest active data slice is removed. An application that is created and/or maintained by a third party and is not custom-built to one's specific needs. The following packaged applications have special treatment by Precise: SAP, Oracle Applications, PeopleSoft, and Siebel. They are harder to modify because the application code is either not available or hard to understand. See also ERP extension. page size page views parent metric In Precise for Web, a counter that keeps track of the amount of data loaded from the server to display the page. In Precise for Web, a counter that keeps track of the number of Web pages viewed at a specific Web site during a selected time period. In Alerts, a joining of several child metrics. Each time a parent metric samples, it gathers data from a set of child metrics and presents it as a single metric query. The individual child metric values are displayed on the Thresholds tab of the Properties dialog box in Alerts. See also submetric. performance counter Performance Warehouse portal server In Precise for SQL Server and Precise for Oracle, a Windows performance counter as reported by the operating system. In Precise for Sybase, a sysmonitors counter collected by Sybase. In Precise for Web, an operating system or a Web server performance counter. The Precise data warehouse of performance and availability data. It can be hosted on an Oracle or SQL Server database. An application server for Web-based applications that commonly provide personalization, single sign-on, and content aggregation from different sources and that host the presentation layer of Information Systems. Aggregation is the action of integrating content from different sources within a Web page. A portal may have sophisticated personalization features to provide customized content to users. Portal pages may have a different set of portlets creating content for different users.
node
packaged application
Glossary
128
portlet
A Java-based Web component, managed by a portlet container, that processes requests and generates dynamic content. Portlets are used by portals as pluggable user interface components that provide a presentation layer to Information Systems. Includes and can refer to the following major product components: Alerts Insight Report Manager Precise for Web Precise for SAP Precise for J2EE Precise for Microsoft .NET Precise for Oracle Precise for DB2 Precise for SQL Server Precise for Sybase See also Insight. See also Alerts See also Report Manager
Precise
Precise deployment Precise FocalPoint Precise FocalPoint agent Precise Proxy agent Precise FocalPoint
An independent Precise system. It contains and manages various agent types and provides centralized monitoring and administration. A Precise deployment may contain multiple framework nodes. One of them is defined as the main framework node and it manages all other nodes of the Precise deployment. See Precise FocalPoint agent. An agent that manages all agents in a single Precise deployment. Additional product FocalPoint agents manage specific technologies and resources. When multiple Framework Nodes are managed by a single Precise deployment, the Precise FocalPoint agent manages all of the agents of the main Framework node, while every other framework node has a Precise Proxy agent to manage all its agents. An agent that communicates with the Listener agents installed on the monitored servers, receives data from the Collector agents, periodically processes and stores this data in Performance Warehouse, and serves UI requests. A session identifier in Precise for Oracle, Precise for DB2, Precise for SQL Server, Precise for Sybase, Insight, and Alerts. A program as sampled, for example, by the Precise for SQL Server Collector agent, is the name of the executable that connects to the database. Applications that do not set the application name have N/A as program. When SAP extension is installed, the SAP transaction overrides the program, and it may change during the application's lifetime. When Siebel extension is installed, the Siebel views override the program, and it may change during the application's lifetime. In Insight, program is the name of an executable as recognized by the operating system. If an executable is invoked from a script (a batch or a shell), the script is displayed as the command entity. In Alerts, program is part of the customized metrics definition and is the name of the executable or stored procedure executed in the database that runs when the metric is sampled. In action definitions, program is the name of the executable that will run if the metric exceeds its threshold. In Alerts, the management state of a metric for which an alert has been raised. The following statuses exist: Open: An alert is raised. Investigated: The alert is taken care of. Closed: The problem has been solved.
program
progress
See Precise Proxy agent A time series consisting of the most recent number of aggregation intervals of a Precise for J2EE Collector agent. When a new data sample is collected, it is placed at the beginning of the recent time series. Old recent series's items are removed from the end. In Precise for SQL Server, a function that uses the Microsoft Index Tuning Wizard to recommend on adding indexes or statistics for a selected statement, batch, or table. Based on the results of this function, the Optimizer will choose a better access plan and make the respective statement or batch perform better. For statements and batches, recommendations are based on the content of the statement or batch. For tables,
recommended index
Glossary
129
recommendations are based on all the statements that are stored in Performance Warehouse, are executed during the selected time period, and have an average duration time greater than the value defined in the registry (where 0 is the default). See also advice. related SQL relative frequency In Precise for Oracle, a generated statement that uses alternative syntax to access the database in different ways and returns the same output as the original statement. Number of contributor invocations per service request execution. For example, if a service request calls three methods each time it is invoked, the Relative Frequency for the method is three invocations per service request execution. Similarly, if a service request calls one method every other time it is invoked (half of the time), the Relative Frequency for the method is 0.5 invocations per service request execution. In Precise for Web, a counter that keeps track of the time that it takes for a Web page to be loaded from the moment the first byte arrives until the Web page is fully loaded or the user interrupts or abandons the loading process. A collection of queries, programming code, and layout settings that Report Manager executes to generate graphical results like tables and charts. Uses historical information to identify problematic conditions, track long-term performance, volume trends and patterns, view availability problems over long periods of time and on different levels, compare the performance of similar systems, correlate between performance metrics of different products, assist in capacity planning, and generate demand-driven, user-defined reports. An agent that examines the Performance Warehouse tables to produce scheduled performance reports. See also Performance Warehouse. In Report Manager, a keyword used in a report. Its value is set during the report execution. A parameter's value can be updated either permanently or for the current execution only. In Report Manager, the attributes that define a specific report, consisting of report parameters and scheduling information. See also report parameter. request request error sampling sampling base sampling period In Precise for Web, a counter that keeps track of the number of HTTP requests sent for a viewed entity. In Precise for Web, a counter that keeps track of the percentage of requests completed with an HTTP error. In Alerts, the process during which a metric queries a Precise product for a specific instance, retrieves values, and calculates the metric's alert level. In Alerts, the start time of a scheduled sampling process (by default Sunday, 00:00 AM). In specific Alerts metrics, the time frame during which statistical data is returned from other Precise products. Such a metric is for example Oracle's General Behavior metric, which returns database behavior for a certain period of time. In Alerts, the frequency of a metric's regular sampling schedule. The sampling rate is measured in minutes. An Insight agent that collects AppTier-specific performance data. A system's ability to withstand load. For example, positive scalability means that the system continues to function properly even when it is called upon to service a larger number of users. In Precise for Oracle and Precise for SQL Server, a process that captures schema changes and saves them in Performance Warehouse. In Precise for SQL Server, instance configuration parameters and database option changes are also captured. A component of Precise Agent Installer that enables adding a small JavaScript script, also known as a Precise for Web browser-side agent, to the Web pages of your Web site. Also called a host machine or server machine. The combination of a computer and associated operating system software that is accessed by multiple clients to perform requested functions and typically returns results to the clients. In Precise for Web, the collecting of performance data from the Web server instance through the Web server agent. In Precise for Web, a counter that keeps track of the service and network time, including the total amount of time the request took to reach the server.
rendering time
Glossary
130
See SLA (Service Level Agreement). A top-level HTTP or EJB request. A service request can originate when a user clicks in a browser or an E-commerce server invokes a remote EJB. Precise for J2EE makes a distinction between service request invocations and other invocations. The first HTTP or EJB invocation within a call path is designated as a service request. The time elapsed from when a request is received by the server to the time a response is sent back to the computer that made that request. The service time is measured on the server side. In Precise for J2EE, the time it takes an invocation to complete execution. In other words, service time is the average length of time between the start time and end time of a Java method execution. For example, the SQL service time is the time it takes the JDBC method executing the SQL statement to be completed. The service time includes CPU and wait time. The service times are reported in the interval in which they complete execution. Though a contributor's average service time may be very small, the contributor may be called many times. As a result, a contributor's overall contribution to performance may be large even though its average service time is low. It is, therefore, a good rule of thumb to also analyze the throughput, weighted throughput, relative frequency, and weighted service time before making performance conclusions on the average service time. A class that is loaded only once and for which the application server uses multithreading to process requests. The servlet generates an HTML page that is sent back to the Web browser. In Precise for Web, a counter that keeps track of the bytes sent and received. A formal definition of an information system's performance goals. Within Precise, an SLA consists of clauses corresponding to various system activities. Once a system's SLA is defined, its SLA compliance can be analyzed, and breaches can be isolated to identify their causes. See aggregation interval. In Insight, a component that provides transactive, correlated information across AppTiers from the user's perspective. Insight SmartLink functions in PeopleSoft and Web applications environments. In Precise for Oracle, Precise for SQL Server, and Precise for J2EE, an algorithm that analyzes performance metrics, identifies and ranks potential problem areas, and provides advice for correcting the problems. An I/O abstraction layer that enables processes to communicate with each other, regardless of whether they are on the same machine. Sockets are bi-directional FIFO pipes that look like regular file I/O to the developer with the abstraction layer handling all of the low-level communication details. The opening page of Precise. It provides a quick overview of the environment status and links to launch any of the Precise products. Also called child metric. In Alerts, the subquery of a parent metric. A child metric gathers its own data and combines it with the data gathered by other child metrics to form the result of the parent metric. Each child metric has its own thresholds and may be enabled or disabled individually. See also parent metric. A container that stores the information collected by the Precise agents and loads it into Performance Warehouse. Summary tables store the same data at different levels of granularity: time slice, hourly, daily, weekly, and monthly. By storing data in multiple summary tables, Precise can present a detailed view and progressively higher-level views of the same data. Summary tables are particularly useful for data aging. A data purging policy can be implemented for each summary table so that detailed data is retained for short-term historical analyses while more summarized data is used for long-term analyses and trending. A technology identifies the monitored object. For example, Oracle, SQL Server, Sybase, and DB2 are different technologies, while all Web servers (such as: Apache, IIS, and WebSphere) are defined as a single Web technology. A single monitored object can be monitored by two different technology's Collector agents. For example, BEA WebLogic server can be monitored by both Precise for Web collector agent and Precise for J2EE Collector agent. The number of average completions per second that are observed during an interval. A range of one or more aggregation intervals. A unit used to break up long sessions into smaller time periods. The length of a time slice is preset and cannot be changed. It represents the maximum time that passes before the data collected can be displayed. For example, if the length of a time slice is 15 minutes, the collection is only updated at 15-minute intervals.
service time
socket
StartPoint submetric
summary table
technology
Glossary
131
The length of a time slice is different for each i product: In Precise for Oracle, Precise for SQL Server and Precise for Sybase, a time slice is 15 minutes. In Precise for J2EE, a time slice is also called a data sample and a slice, the period of time over which data is collected, reported and stored for a JVM. The time slice period is Precise for J2EE's smallest storage unit. A time slice also represents the Precise for J2EE Collector agent's aggregation interval. The aggregation interval is the period from the start time to the end time of a time slice and summarizes all the events that occurred during the interval. In Precise for SAP, a time slice is comprised of 5-minute intervals, meaning that the data is summarized every 5 minutes. See also aggregation interval. Tuner agent In Precise for Oracle, Precise for SQL Server, and Precise for Sybase, a software component that provides a comprehensive database objects browser and a rich set of tuning features. See also agent. URI (Uniform Resource Identifier) URL mapping The relative path to a resource after the location (network node) is found.
In Precise for Web, a function that defines rules that map URLs (Uniform Resource Locators) with dynamic parameters originating from a specific domain to a format that identifies the Web pages and prevents them from having different URLs. A program that receives client requests for Web pages, retrieves the static pages and/or issues a request for dynamic page creation to an application server, and sends the pages to the client. In Precise for Web, a computer that delivers (serves up) Web pages. Every Web server has an IP address and possibly a domain name. The percentage of the total CPU time spent in different contributors. The total CPU time concerns the location displayed in the Navigation path. The percentage of the total response time spent in different contributors. The total response time concerns the location displayed in the Navigation path. For example, if a service request response time is 1 second and it makes two JDBC calls, each taking a quarter of a second, the JDBC Weighted Response time is 50 percent of the service request's response time. The percentage contribution of each displayed item to the total throughput. The total throughput concerns the location displayed in the Navigation path. For example, if a service request calls three Java methods each time it is invoked, the Java method Weighted Throughput is 300 percent of the service request's throughput. Similarly, if a service request calls one Java method every other time that it is executed (half of the time), the weighted throughput for the Java method is 50 percent. The time spent on everything not directly accounted for by instrumentation, including the invocation time or CPU time. In Precise for Web, a counter that keeps track of the type of the Web instance, such as Web, PeopleSoft, SAP, or Siebel. A display unit in Precise products. All workspaces display data from different perspectives. For example, in Precise for Oracle, Precise for SQL Server, and Precise for Sybase, the Current workspace shows information on the sessions currently active in an application, and the Objects workspace displays information on Oracle or SQL Server database objects that can be used to understand relationships and associations between database schema objects.
Web server
weighted throughput
Index
A
Activity workspace 69 identifying performance problems 81 list of tabs 71 Adaptive Instrumentation 35 Adaptive Instrumentation Wizard page 38 Add Statistics to Configuration page 45 adding custom instrumentation configuration file 92 administration pages Business Transactions Administration page 27 FocalPoint Administration page 18 Java Virtual Machine Settings Administration page 15 SmarTune Administration page 20 Statistics Administration page 44 Status Details page 29 System Status page 28 Aging Timespan 19 All JVMs Health portlet 54 All JVMs Threads portlet 54 application server classes in Leak Seeker instrumentation 116 application server metrics 44, 85 applying instrumentation using Calls to EJB instrumentation feature 108 Archive Data Selection page 13 Archive File Selection page 14 Archive Slice Selection page 14 archiving options 19 Copy Instrumentation Wizard page 46 custom instrumentation adding 91, 92 configuration 112 custom instrumenter configuration 93
D
Dashboard workspace identifying performance problems 66 portlets 51 configuring 52 list of 53 time frame 51, 52 data files ICU 117, 118 database configuring 19 disabling instrumentation for method 119 instrumentation using ICU 119 display intervals 12
E
EJB implementation 106 EJB Service Requests 69 enabling additional configuration file 92 instrumentation using ICU 119 instrumentation for method 119 Exception Seeker portlet 55 Exceptions tab 80 extending instrumentation 96, 97, 100, 101 wildcards 97
B
build number and product version 11 Business Transactions creating 28 portlet 64 Business Transactions Administration page 27
C
call from method instrumenting 102 instrumenting 106 to method instrumenting 102 class instrumenting 98 Concurrent Active Threads portlet 55 configuration custom instrumentation 92, 112 custom instrumenter 93 enabling additional file 92 file instrumenter 91 instrumentation 112, 113
F
file configuration instrumenter 110 instrumenter reference 108 instrumenter structure 111 master 109 FocalPoint Administration page 18 functionality ICU 116
G
General Options bar 11 General toolbar 11 graphs 12 Grouped JVMs Health portlet 56 Grouped JVMs Threads portlet 57
Index
133
H
Highlights tab 72 Hotspots tab 73 HTTP Service Requests 69 HTTPS enabling 20
instrumenting 94 invocation context 71 Invocation Type Scalability portlet 57 invocations 70 Invocations tab 75 IXP Direct Connect enabling 17
I
ICU disabling instrumentation 119 enabling instrumentation 119 functionality 116 identifying methods 118 loading data files 118 obtaining data files 117 prerequisites 117 running 117 system requirements 116 using 116 identifying methods ICU 118 ignoring instrumentation configuration 113 implementing calls to EJB 106 in Leak Seeker instrumentation application server classes 116 Inactive Archive label 19 Inactive Archive Path 14 instrumentation 94 Adaptive Instrumentation 34 adding custom configuration file 92 configuring all calls from method 112 calls from method to method 113 copying 46 custom configuration 91, 112 extending 96, 97, 100, 101 feature 106, 108 ignoring configuration 113 modes 16, 33 preventing 103, 104, 105, 106 restricting 95, 99 Instrumentation Configuration Utility see ICU 116 Instrumentation Explorer page 42 instrumenter configuration custom 93 file 110 file reference 108 file structure 111 matching techniques 114 modifying configuration files 91 instrumenting calls from method 102 to EJB business method implementations 106 to method 102 class 98 interfaces 94 methods 94, 98 interface
J
Java Virtual Machine Settings Administration page 15 Java Virtual Machine Settings page 16 JDBC Metrics portlet 57 JVM Health portlet 58 JVM List portlet 53
L
Leak Seeker Metrics portlet 59 Loading Data ... page 15 loading data files ICU 118 Lock Seeker Metrics portlet 59 Locks tab 79 logging in 48
M
Main Area 11 master configuration file 109 matching method signature 115 techniques instrumenter configuration 114 MBeans 45 Memory Garbage Collection workspace 89 Memory Heap workspace 88 Memory LeakSeeker workspace 89 Memory Metrics portlet 59 Memory workspace 88 Method Scalability portlet 60 methods disabling instrumentation 119 enabling instrumentation 119 instrumenting 94, 98 signature matching 115 modifying instrumenter configuration files 91
O
obtaining data files ICU 117 Oracle database switching to 19 Overflow Enabled 19 Overflow label 19
P
Portal Server Metrics portlet 61 portlet 51 prerequisites ICU 117 preventing instrumentation 103, 104, 105, 106
Index
134
R
Recent Items Charted 18 Recent Slices 18 Refresh Enabled? 18 Refresh Interval 18 requirements ICU 116 restricting instrumentation 95, 99 running ICU 117
time series 12 Top Business Transactions portlet 64 Top Instrumented Methods portlet 64 Top Methods by Invocation Type portlet 65
U
Update button 18 user interface administration 18 launching 48 using custom instrumentation 91 ICU 116 wildcard character 115
S
security enabling HTTPS 20 SmarTune Application Summary portlet 63 SmarTune portlet 62 SmarTune workspace administration 20 application summary categories 23 contributor categories 21 SQL statements collected 17 SQL Statements portlet 61 SQL tab 77 Statistics Administration page 44 Statistics portlet 63 Statistics workspace 85, 86 solving performance problems 87 status 28 component 29 Status Details page 28, 29 structure instrumenter configuration file 111 system requirements ICU 116 System Status page 28
V
version product build number 11
W
wildcard 100 character * 115 extending 97 using 96, 100 Work Time 71 Work Times of Invocation Types portlet 66 workspace Memory Garbage Collection 89 Memory Heap 88 Memory Leakseeker 89 Workspace selection bar 10 workspaces Activity 69 Dashboard 50 Memory 88 Statistics 85 structure 9
T
techniques instrumenter configuration 114