Precise™ for J2EE

User’s Guide

Version 8.7

2

Precise for J2EE User’s Guide
Copyright © 2009 Precise Software Solutions, Inc. All rights reserved. Precise for J2EE version 8.7 Document release version 1.0 Precise™, the Precise Logo, Precise i³™, Precise Enterprise™, Precise Indepth™, Precise Insight™, Precise Savvy™, SmarTune™, Performance Warehouse™, Precise Application Service Dashboard™, Precise for Storage Tiering™, Precise for Storage Tiering™ Plus Apps, Precise for Storage™, and Precise Insight Inquire™ are trademarks or registered trademarks of Precise Software Solutions, Inc. or its affiliates in the U.S. and other countries. Other names may be trademarks of their respective owners. The product described in this document is distributed under licenses restricting its use, copying, distribution, and decompilation/reverse engineering. No part of this document may be reproduced in any form by any means without prior written authorization of Precise Software Solutions, Inc. and its licensors, if any. Certain third-party software may be distributed, embedded, or bundled with this product or recommended for use in connection with its installation and use. Such third-party software is separately licensed by its copyright holder. The list that includes the names of the copyright and license agreements can be found in the Release Notes document. THE DOCUMENTATION IS PROVIDED “AS IS” AND ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE DISCLAIMED, EXCEPT TO THE EXTENT THAT SUCH DISCLAIMERS ARE HELD TO BE LEGALLY INVALID. PRECISE SOFTWARE SOLUTIONS, INC. SHALL NOT BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL DAMAGES IN CONNECTION WITH THE FURNISHING, PERFORMANCE, OR USE OF THIS DOCUMENTATION. THE INFORMATION CONTAINED IN THIS DOCUMENTATION IS SUBJECT TO CHANGE WITHOUT NOTICE. The Licensed Software and Documentation are deemed to be commercial computer software as defined in FAR 12.212 and subject to restricted rights as defined in FAR Section 52.227-19 "Commercial Computer Software - Restricted Rights" and DFARS 227.7202, “Rights in Commercial Computer Software or Commercial Computer Software Documentation”, as applicable, and any successor regulations. Any use, modification, reproduction release, performance, display or disclosure of the Licensed Software and Documentation by the U.S. Government shall be solely in accordance with the terms of this Agreement. Precise Software Solutions, Inc. 3 Twin Dolphin Drive Suite 350 Redwood Shores, CA 94065

3

Third-party legal notices
Third-party software may be recommended, distributed, embedded, or bundled with this Precise product. Such third-party software is licensed separately by its copyright holder. All third-party copyrights associated with this product are listed in the accompanying release notes.

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.

4 Document change history Version .Book release Month Year Change description Location .

..............................29 About Monitoring Configuration ...............................................9 About the Workspace selection bar .................................................................................................................................................................21 About the Call Graph threshold options ................28 About the System Status page .....................21 About Findings Application Summary categories ...............11 About the General toolbar ..................................................................................................................................................................................31 About Monitoring Configuration controls .......................................................................27 Creating a business transaction ......................................................................................27 About the Business Transactions Administration options ........................................................30 About Status values ...................................21 About Contributors by Category Page Analysis options ...........................30 About Monitoring Configuration results ................................................12 About the Archive Data Selection page ...................................................................................................................................................................12 About display intervals .....................................................................18 About Layout Options ....................................... message ..............................................................Contents Chapter 1 Precise for J2EE Basics How most workspaces are structured ..............12 About the Association area ........................................................................................................................................................................................................................................................................................19 About Database Options .......................................................................................11 About the Call Path .....................................................16 About the Java Virtual Machine Settings page ...........29 About Monitoring Configuration icons ..............................15 About the Java Virtual Machine Settings Administration options ...........23 About the Business Transactions Administration page ....................................................................................................19 Switching from MySQL to Oracle .................................................................................................................................................................................................................................................................30 About selecting a pattern for editing or viewing matching loaded classes and methods ...............................................................................................................................................................................................................................18 About Archiving Options .......................................................................11 About the General Options bar ......................................................33 .......................................................................................................................31 About the Pattern Manager ......................................................................................20 About the Findings Administration page ..............................................................................................................................................................................................................................................................................................................................................................12 About the Time Frame ............15 About administration pages .................................................................................................................28 About the Status Details page .16 About the FocalPoint Administration page .............................................................................................19 About Security Options ..20 About the Findings Analysis and Graph options ...........................................................................................................31 About Type values ....21 About the Call Graph configuration options ..........................................................................15 About the Monitoring Configuration page .......11 About Main area features .............29 About data collection in Precise for J2EE ..................15 About the Java Virtual Machine Settings Administration page ..................................................................................15 About the Loading data....................32 About Pattern Manager loaded classes and methods results ................................10 Switching to a different workspace ......................................................................................................................................13 Selecting data for analysis ........................................................................................................11 About the Main area ...................................................33 About instrumentation modes ..............................

.48 Chapter 2 Getting an overview of your environment in the Dashboard workspace About the Dashboard workspace .................................................................................................................................................................................................................................................................34 Tips on Adaptive Instrumentation ...........................51 About the environment ...........................................57 About the JVM Health portlet ..................................................................................................................................................67 ...............................................................................................45 About the Copy Instrumentation page ...........................................................................55 About the Exception Seeker portlet ............................................................................................................................................................................................................................................38 Procedures for Adaptive Instrumentation .........................61 About the SQL Statements portlet .................................................................................................57 About the JDBC Metrics portlet ...................................................................................................................................................................................................................................................................46 About JVM heap size for all JDKs ......54 About the Concurrent Active Thread Metrics portlet .45 About the Add Statistics to Configuration page ...........Contents 6 About Adaptive Instrumentation ..............................................................................................................................42 About Expert Configuration options ....................................................................................................................................................................................................66 Identifying a CPU bottleneck ........64 About the Top Methods by Invocation Type portlet ...................................................................................................................................................................61 About the Findings Application Summary portlet ........................................................................................................................................................................................................................59 About the Memory Metrics portlet ...................................................................56 About the Grouped JVMs Threads portlet ...............................................................55 About the Grouped JVMs Health portlet ......................53 About the All JVMs Health portlet ......................................................................................................................................................................................................40 About the Expert Configuration page ..............................................................................................................................................66 How to identify performance problems in the Dashboard workspace ....................................62 Findings Application Summary Categories ..................47 About permanent generation size for Sun JDKs ........64 About the Top Instrumented Methods portlet ..............................................44 About the Statistics Administration options ..............................................63 About the Findings Application Summary portlet .......................47 About increasing collector memory ........63 About the Top Business Transactions portlet ................................................43 About the Statistics Administration page .....................................................51 About the AppTier ............................46 Troubleshooting memory errors and adjusting heap sizes ....................................52 Configuring portlets ..................................................................................60 About the Portal Server Metrics portlet ....59 About the Method Scalability portlet ......................................52 About the Dashboard portlets .......................................................................................................35 About the Adaptive Instrumentation Wizard page .......54 About the All JVMs Threads portlet ...................................................................................................................66 Diagnosing scalability issues ................65 About the Work Times of Invocation Types portlet ...................................................47 How to launch the Precise for J2EE user interface ...........................................................................................58 About the Leak Seeker Metrics portlet .............................53 About the JVM List portlet ..........................................................59 About the Lock Seeker Metrics portlet ...............................................63 About the Statistics portlet ...............................................................57 About the Invocation Type Scalability portlet .......................................................48 Launching Precise for J2EE from Precise StartPoint ...........................................................................................................................................................................................50 About Portlets ..................48 Launching the user interface directly ........................................................................................................................................51 About the time frame ...47 Setting initial system heap size for IBM JDKs .............................................................................................

.....78 About the Single SQL Statement screen ..........................................................88 About the Memory workspace tabs .......................................................................73 About the Hotspots ...................................................................................Call Graph view ...................................................................................................80 About the Locks ...................................88 About the Garbage Collection tab ..............................................................68 Detecting a service backlog .....................................................................................................................89 Appendix A Configuring Precise for J2EE instrumentation .....68 Chapter 3 Examining performance over time in the Activity workspace About the Activity workspace ...........................................................................................................................................................................................................................75 About the Business tab ..80 About the Exceptions ............................................................................................................................................................................................................................Per Caller view ...........................................................83 Chapter 4 Examining application server metrics in the Statistics workspace About Statistics workspace tabs ...........................................................74 About the Hotspots ...................................................................75 About the Invocations tab .............................................................................77 About the SQL tab ......................................................................................86 How the Statistics workspace can help you identify performance problems .....70 About invocations ........................Deep Summary view ........................................................................78 About the Locks tab ..................................72 About the Hotspots tab ............................................................................................................................................................................................................................................................................................75 About the Hotspots ...........................Per Caller view ............................................................... Java class..........................................................................................................79 About the Locks ..................................................................................................... and portlet service requests ..............69 About URI.....................................................................................................87 Chapter 5 Examining usage and trends in the Memory workspace About the Memory workspace ...........................................................................................83 Identifying CPU consumers ....Per Caller view ................81 About the Exceptions ....................................................................................71 About invocation context .....................................................................................................................................Deep Summary view ...............................Per Caller view .....................................69 About HTTP...............................................................................................................................69 About Java virtual machines ............. EJB......................................81 Analyzing Java method contributions to application performance ......86 About the Counters tab ......... and method names .................................83 Viewing business transaction performance for specific application functions ................................................................................89 About the Leak Seeker tab ...............................71 About Activity workspace tabs .......81 Analyzing performance bottlenecks using SmarTune findings .................................................................................................................67 Identifying which tier has a bottleneck ..81 Analyzing application server performance ...................................................71 About the Highlights tab .Contents 7 Identifying a memory bottleneck ...........................................................82 Isolating slow database queries ................................Deep Summary view .........................................................................................78 About the SQL .....................................................................................................................................................................................70 About Work Time .................77 About the SQL ....................................................85 About the Findings tab ................................................................81 How the Activity workspace can help you identify performance problems ................80 About the Exceptions tab .......................................Deep Summary view ............................................87 Investigating database connection pool size ...82 Identifying slow HTTP service requests (Servlets or Java Server pages) ....................................................88 About the Heap tab ..

.118 Enabling or disabling instrumentation for a method ..........................................92 About custom instrumenter configuration ..................................................................................110 About the structure of instrumenter configuration files ..............106 About the Calls to EJB instrumentation feature .........91 Enabling an additional configuration file ..............................................116 About how the ICU works .............................................................................................................................................114 Including application server classes in Leak Seeker instrumentation ..................................116 About prerequisites to using the ICU .............................................................................................................108 About the master configuration file ...................................................92 Adding your own custom instrumentation configuration file ........................................................................................Contents 8 About using custom instrumentation ..............106 About instrumenter configuration file reference ...................................................................116 About using the instrumentation configuration utility ......................................117 About running the ICU ..............................................................................................................118 About identifying methods of interest ..................117 About obtaining data files for the ICU ...................................................... methods.........................................103 About instrumenting calls to EJB business method implementations ......................................................................98 About instrumenting all calls from a method ....................109 About the instrumenter configuration files ...........111 About common instrumenter configuration matching techniques ....................116 About system requirements .........................117 Loading data files for analysis ..........93 About instrumenting interfaces ...........................................................................................................................102 About instrumenting calls to methods ......................................91 About modifying instrumenter configuration files ................................................................................................ and calls to methods .........................................................................................94 About instrumenting classes ...............102 About preventing instrumentation for classes.........................................................................................................................................................................................................................................................119 Glossary Index 121 132 .....................................

most workspaces consist of two different areas. such as tabs and view controls. The various areas are related to each other in that performing an action in one area affects the information displayed in other areas on the page. such as tables. the current workspace displayed contains an upper and a lower area. See “About the Main area” on page 11. At times. and sometimes it merely represents that there is a relationship between the selected entity and the entities displayed in the Association area. When you perform an action on an element in the lower area (in this case the Association area). the information displayed in the upper area (in this case the Main area) changes to reflect the action you requested. the relationship between the entity displayed in the Main area and those displayed in the Association area is that of parent to child. It is possible to click a row and drill down to an additional level below the selected level or use the filter function to determine which information is displayed in the table. or charts. and displays information in various formats. Most Precise for J2EE workspaces contain the following elements: ■ ■ ■ ■ ■ ■ ■ Workspace selection bar General options bar Call path Status bar Analysis tabs Main area Association area . For example.Chapter 2 Precise for J2EE Basics This section includes the following topics: ■ ■ ■ ■ ■ ■ 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 How most workspaces are structured Though each workspace is structured differently. The entities displayed in the Association area are associated with the selected entity or related application displayed in the Main area. See “About the Association area” on page 12. Each row in the table represents an application. Each area can include different control elements. graphs. The lower area (Association area) shows information in a table format. The upper area (Main area) displays general information on the selected entity as well as related applications.

The Workspace Selection bar consists of the following: ■ ■ ■ ■ Dashboard Activity Statistics Memory The table below describes which tasks can be performed in each workspace. The Dashboard workspace is the Precise for J2EE home page. locks and exceptions in the same manner. The Precise for J2EE Dashboard provides support for detailed views of individual application servers as well as top-level summary views of multiple application servers. See “About the Dashboard workspace” on page 50. Click on the corresponding workspace in the Workspace selection bar in order to move between different workspaces.Precise for J2EE Basics How most workspaces are structured ■ 10 Precise icons The figure below shows the common workspace elements. . Activity The Activity workspace enables you to investigate your JVM invocation tree in a deep or shallow manner. and to track SQL execution. See “About the Activity workspace” on page 69. Figure 2-1 Workspace terminology Workspace selection bar Status bar General options bar Analysis tabs Main area Association area Table settings About the Workspace selection bar Precise for J2EE consists of different workspaces. Table 2-1 Workspace Dashboard Precise for J2EE workspaces Description The Precise for J2EE Dashboard is an easy-to-use tool for visualizing the overall health and status of all instrumented application server instances.

The button of the selected workspace is displayed in orange. build number. It consists of: ■ ■ Status – click to view the System Status page Configure – selected by default. About the General toolbar Clicking Settings in the General options bar at the top right of the J2EE user interface displays the General toolbar. When you select a workspace in the workspace selection bar. Opens a Help window. See “About Statistics workspace tabs” on page 85. The Call Path shows your current location within the invocation tree of your application.Precise for J2EE Basics How most workspaces are structured 11 Table 2-1 Workspace Statistics Precise for J2EE workspaces Description The Statistics workspace displays Application Server metrics. and to view the EULA. Click the Precise logo on the right side of the General Options bar to display the Precise for J2EE software product version. Statistics. and Memory workspaces. About the General Options bar The General Options bar is located at the top-right of the Precise for J2EE user interface pages. and Leak Seeker data. Help System-working dots Precise logo About the Call Path The Call Path is located below the Workspace selection bar. garbage collection. the home page for the workspace displays in the main workspace area. For the Activity. The Analysis tabs available at the top level of the Activity workspace display the following: ■ ■ Highlights Hotspots . Indicates that Precise for J2EE is processing a user request. The General toolbar appears just below the Precise logo and the General options bar. When you start your Precise product. Memory The Memory workspace allows you to examine memory usage. and the main workspace area displays the administration pages About the Main area The center of the Precise for J2EE user interface is the main workspace area. To select a workspace ◆ Click a button on the Workspace Selection bar to display information on the selected entity in a different workspace. Switching to a different workspace You can easily switch between the different workspaces using the Workspace Selection bar. the default workspace opens. data displayed in the main area of the user interface is specific to the context shown in the Call Path. See “About the Memory workspace” on page 88. The General Options bar provides the following buttons and links: Settings Displays the general toolbar below the General Options bar and the Precise for J2EE administration pages in the main workspace area.

The timestamps on the data are the time of the Precise for J2EE FocalPoint. called a time series. the Analysis tabs change to enable you to view metrics relevant to the open page. About Main area features The main area may contain graphs. opens the Time Frame dialog box where you can select other time frames. The times displayed are local times on the FocalPoint server where the page was generated. last 8 hours or last day. Each point in the graph represents the total metric value for a time slice included in the time series. tables.Precise for J2EE Basics About display intervals ■ ■ ■ ■ ■ 12 Invocations Business SQL Locks Exceptions As you navigate through Precise for J2EE. The first item in the Time Frame drop-down list is always the currently selected time slice or series. The Time Frame dialog contains the information described in the table below. About bar graphs for a time slice The user interface displays time slice data in bar graphs. For example. contributors of a higher level metric are displayed as bars in the graph. You can change the number of items plotted by selecting or unselecting check boxes located to the right of the graph. About the Time Frame You can change the time frame using the Time Frame drop-down list. The information displayed in this area changes as you select views. The information displayed in the Association area is arranged in a tabular format. Bar graphs summarize one slice of data and generally compare several values of similar type. About line graphs for a time series The user interface displays time series data in line graphs. You can see information for a time slice that belongs to a time series by moving the mouse over the point on the line graph that represents the time slice. or both. The Time Frame drop-down list also allows you to select previous time series such as the last hour. called a time slice. Line graphs summarize many slices of data. Changing the time frame in one workspace changes it in all workspaces. The range of time that the page graphs or tables summarize is displayed in the time frame drop-down box. The length of the aggregation interval and the number of intervals in a series are configured in the FocalPoint Administration page. About the Association area The Association area lists entities that have similar attributes and that are related to the selected entity named in the Workspace heading. Each displayed metric value is an average of observations within the slice. The main area occupies many Precise for J2EE pages. You can display the most recent time slice or series received from the Precise for J2EE Collector or you can display earlier time slices or series. Graph titles contain the units of the values displayed in the graph. with their type and percentage work time displayed by putting the mouse over the area of interest (see the “Workspace terminology” figure). or a range of intervals. in addition to the following buttons: . About display intervals Precise for J2EE displays either a single aggregation interval.. By default. such as time or throughput. modes. Selecting More. and reports and drill down to underlying data. all workspaces display the most recent time series..

Precise for J2EE contains one Active archive folder: ■ Active is the folder containing current data for all monitored JVMs. 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 Enter a number and select a time interval. This option is available if you have selected and saved a time frame. For details on using these scripts. click Archive Chooser. The list of JVMs contains all monitored JVMs for which your role(s) has access. from the drop-down list. 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. By default. JVM Server host name and JVM ID of a monitored JVM. You also use the Archive Data Selection page to choose whether to display data from the Active archive. see the Precise Administration Guide. About the Archive Data Selection page The Archive Data Selection pages enable you to select specific data stored in archive files. Select the name that you gave the time frame. or to select a different inactive archive. you must create your own archive folder using the data export and import scripts. Specify a time frame. Select a specific time frame. the Inactive Archive is Demo. Archive Chooser Opens the Archive Data Selection page where you choose data from the currently selected archive or select a different inactive archive label. Table 2-2 Option Archive Folder Time Frame options Description List of available data folders. then check this box to save the defined time frame with a name of your choosing.Precise for J2EE Basics About display intervals ■ ■ ■ 13 Archive Chooser OK Cancel The table below describes the Time Frame options. To open the Archive Data Selection page 1 In the Time Frame dialog box. The Archive Data Selection page contains a Next button. the currently selected Inactive Archive. 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. See “About Archiving Options” on page 19. By default. in addition to the four radio buttons listed below: 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) . To permanently retain data from a specified time frame. when you saved it. Select the folder from which you wish to display data.

The Slice Count is the number of slices in the archive file. from Precise Insight. click Next and Precise for J2EE automatically loads it into the Analysis Agent. such as Demo. Click the hyperlinked text of the archive file to select it. . Next About the Archive File Selection page When you click the Next button in the Archive Data Selection page. The table below describes the archive data selection options. Each item contains begin and end radio-button selectors. Archived Data Summary pages containing the same information as the JVM Data Summary pages are then generated and displayed. for example. The Archive File name indicates the logical begin time of the 24-hour span of slices stored in the file. enabling you to specify which time slice you want to analyze. For the Active archive. the Archive File Selection page opens. If you want to select an ending slice from the next archive file. About the Archive Slice and Series Selection page If you chose to analyze a single time slice in the Archive Data Selection page. Each archive file represents a 24-hour span of data slices that were previously collected from the displayed JVM and Host. 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 Archive Data Selection page options Description Allows you to load a single time slice from the selected archive and view its data in bar graphs. This page is opened from Precise products such as Precise Insight. to provide an opportunity to select a smaller sub-range of slices from a long time range. This page displays a list of items that represent archive files stored under the active or inactive archive label that you selected in the Archive Data Selection page. the Archive Slice Selection page will be displayed. Click the begin and end radio-buttons to select the beginning and ending of the period to display. Enables you to load archive data from the active archive. The bar chart allows you to easily compare performance of slices contained in the archive files. The active archive contains the most recent data accumulated by Precise for J2EE. Allows you to load all the slices in the archive. The bar chart allows you to easily compare performance of slices. See the Precise Administration Guide for information on exporting and importing archive data. The begin and end may be the same or different slices. If you chose to analyze a time slice. begin and end time of the slice. Opens the Archive File Selection page where you select the file to display from the archive. This page displays a list of items that represent time slices stored in the archive file you selected in the Archive File Selection page. Click the begin and end radio button for one slice or a range of slices and then click the Next button to load the data into the Analysis Agent. and a performance summary of activity. The performance summary shows the performance across all of the slices in the archive file as a value and a bar chart. the metric title and value will change automatically depending on the navigation context when this page was opened.Precise for J2EE Basics About display intervals 14 2 After the data has been selected. To the right of the Archive File name is displayed the number of slices in the file followed by Service Request Average Completions per slice. the Archive Slice and Series Selection page opens when you select the archive file in the Archive File Selection page. Allows you to load archive data from an inactive archive. The metric title and value will change automatically depending on the navigation context when this page was opened. click the change the inactive archive label hyperlink. select the last item in the slice list as the ending slice and click the Next button to display the slices from the next archive file. The performance summary shows the performance of each slice as a value and a bar chart. If there is no data collected for the period. Then type overflow or the name of an inactive archive that you have previously imported. If the data that you want to analyze is not part of the selected Inactive Archive. If you chose to analyze the entire file in the Archive Data Selection page. the aggregation interval. an Archive File will not be displayed. the JVM Data Summary page will be displayed.

and click OK. and time frame. Precise for J2EE generates the page for the selected data. For extended detailed analysis. From the Settings page. If the time frame is not in the drop-down list. See “About the Findings Administration page” on page 20.. To select data to analyze 1 2 3 4 In any workspace. click Settings. To learn how to reduce the loading time... . About the Monitoring Configuration page The Precise for J2EE Collector has its own Monitoring Configuration page which automatically opens to the JVM tab. See “About the FocalPoint Administration page” on page 18. To view the Monitoring Configuration page 1 In the General Options bar. About administration pages The Precise for J2EE user interface contains pages for configuring the user interface and how data is displayed. See “About data collection in Precise for J2EE” on page 29. choose an archive file. Other pages are used to configure how Precise for J2EE collects data. message Precise for J2EE displays the Loading Data. select the JVM (Instance) whose data you want to analyze. message indicates that data for the next page is being loaded into the Analysis Agent from the Precise for J2EE database. To open the Java Virtual Machine Settings Administration page ◆ In the General Options bar. you can click the Monitoring Configuration hyperlink to open and configure any J2EE Collector settings. In the Time Frame dialog box.Precise for J2EE Basics About administration pages 15 Selecting data for analysis The display of the most recent time slice or series is updated periodically as new data is collected. contact Precise Technical Support.. or click Archive Chooser and select archived data. After the data has been loaded. See “About the Business Transactions Administration page” on page 27... choose the time frame to analyze. In the Time Frame drop-down list.. Loading files that are not helpful to the user may slow down the loading process. The Loading Data. select More. message when you click hyperlinked user interface features in Precise for J2EE. About the Loading data. JVM.. Click the Back button of your browser to stop loading data.. See “About the Java Virtual Machine Settings Administration page” on page 15. click Settings. This page also allows you to configure instrumentation and Application Server Metrics for each monitored JVM. About the Java Virtual Machine Settings Administration page The Java Virtual Machine Settings Administration page enables you to modify the configuration of data aggregation and collection for each Precise for J2EE Collector and monitored JVM. it is recommended that you select a previous time frame to analyze so that you are using a static view of the data. See “About the Java Virtual Machine Settings page” on page 16.

About the Java Virtual Machine Settings page The Java Virtual Machine (JVM) Settings page enables you to edit the current settings for the JVM selected in the Java Virtual Machine Settings Administration page. in addition to the options described in the table below. aggregation interval. Statistics Run Adaptive Instrumentation now Opens the Adaptive Instrumentation Wizard page where you configure and run Adaptive Instrumentation. . Run Copy Instrumentation now Opens the Copy Instrumentation Wizard page where you can copy instrumentation configuration files from one JVM to another. See “About the Statistics Administration page” on page 44. Selecting a JVM enables the settings icons used to configure the selected JVM. Open Expert Configuration Opens Expert Configuration where you can manage the instrumentation of the selected JVM at the method level. See “About the Java Virtual Machine Settings page” on page 16.Precise for J2EE Basics About administration pages 16 2 Click the Monitoring Configuration hyperlink to view the Monitoring Configuration dialog. About the Java Virtual Machine Settings Administration options The table below shows the Java Virtual Machine Settings Administration options. The list of JVMs contains the monitored JVMs for your role(s). See “About the Adaptive Instrumentation Wizard page” on page 38. and other JVM-specific options. The Java Virtual Machine Settings page contains OK and Cancel buttons. See “About the Copy Instrumentation page” on page 46. Note: Though not recommended. Table 2-4 Option Collector Java Virtual Machine Settings Administration options Description List of installed Collectors. To open the Java Virtual Machine Settings page 1 In the Java Virtual Machine Settings Administration page. Identifies the name of a JVM monitored by the selected Precise for J2EE Collector. click Settings. See “About custom instrumenter configuration” on page 93. you can also configure instrumentation manually. Opens the Java Virtual Machine page with controls for editing the current JVM-specific settings. See “About Monitoring Configuration” on page 29. Java Virtual Machine Instrumentation Collection & Filtering Opens the Java Virtual Machine page to view or modify start-up settings. See “About the Expert Configuration page” on page 42. Selecting a Collector causes the JVMs served by that Collector to be displayed in the Java Virtual Machine list. Opens the Statistics Administration page with controls for selecting application server metrics to be collected for the specified JVM.

Note: Shorter aggregation intervals cause more data to be transferred to the Precise for J2EE database. Clicking Click here for information about Instrumentation Modes displays information about when to use each mode. See “About instrumentation modes” on page 33. aggregation intervals less than five minutes are not recommended for production environments. When a lot of data is being collected and reported about the monitored application. Objects: Leak Seeker reports the allocation sites with most live objects. and string buffers. Standard mode provides visibility of common J2EE interfaces as well as non-standard Java/J2EE components. Note: After enabling Leak Seeker. This interval comprises one time slice of data. Note: When enabling LeakSeeker. Controls whether Expert Configuration connects directly to the monitored JVM instead of getting its data through the Precise for J2EE Collector. Leak Seeker can collect data on leaking Java objects. String Buffers: Leak Seeker reports allocation sites for string buffers with the most entries. Leak Seeker is not enabled. or String Buffers when you suspect they are the source of the memory leaks. By default. Leak Seeker Track Select the data that Leak Seeker collects. At the end of this interval. Aggregation Interval Controls the time span over which the Precise for J2EE Collector aggregates JVM data. Enabling IXP Direct Connect improves the performance of Expert Configuration. Specifies the port number that Expert Configuration uses to connect to the monitored JVM when IXP Direct Connect is enabled. but with limited instrumentation and flexibility to add additional instrumentation. By default. the port number is 20764. Arrays. Controls the maximum number of top-N SQL statements collected for each JDBC invocation. Collections: Leak Seeker reports allocation sites for the collections with the largest number of objects. the summarized data is sent to the Archive Agent. you may notice slower performance if the aggregation interval is less than five minutes. Table 2-5 Option Instrumentation Mode Java Virtual Machine Settings Description Controls the trade-off between increased application visibility and the increased overhead resulting from higher levels of instrumentation. The size reported is a sum of the sizes of the arrays allocated at that site. The size reported is the sum of all the sizes of the data buffers allocated that site. we recommend that you first enable Leak Seeker Track Objects since collecting this data uses fewer resources (execution time and memory). Available when IXP Expert Configuration Direct Connect is enabled. As a general rule. but any port number can be used as long as that port has been opened.Precise for J2EE Basics About administration pages 17 The table below describes the Java Virtual Machine Settings options. each JVM must be assigned a unique port number. you must restart the JVM. Note: If Expert Configuration Direct Connect is enabled for more than one JVM running on the same machine. Expert Configuration Direct Connect Port . 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. The number of objects tracked is limited and an error message will be displayed when the limit is reached. and string buffers. arrays. Controls the minimum threshold for collecting SQL statements. Only use Leak Seeker Track Collections. excluding collections. arrays. Expert mode provides maximum visibility and flexibility but with higher overhead. and the largest leaking collections. Arrays: Leak Seeker reports allocation sites for the arrays with the most objects. while keeping overhead low. ■ ■ ■ Basic mode provides visibility of common J2EE interfaces. The size reported aggregates the size of all objects contained in the collections allocated at that site.

Controls whether the Dashboard or Activity workspace is the home page for Precise for J2EE. in addition to the information contained in the table below.all data will be collected filter by percent of total response time . The values displayed on this page are the current values of the FocalPoint and are not saved on a per user basis. the Current and Recent pages are refreshed at this interval. Note: You can still select the browser’s Refresh button to refresh page contents. Then click the FocalPoint tab. the automatic page refresh feature for all Current and Recent pages is disabled. the first page displayed when moving to the Activity workspace is the JVM Data Summary page for the JVM chosen in the Dashboard. Refresh Interval Automatic page refresh timer. 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.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. The FocalPoint Administration page contains an Update button. When refresh is enabled. When the Activity workspace is used as the Precise for J2EE home page. click Settings. Each time slice summarizes JVM activity for the aggregation interval specified in the Java Virtual Machine Settings page.Precise for J2EE Basics About administration pages 18 Table 2-5 Option Java Virtual Machine Settings Description Enables the user to define any of the following: ■ ■ Filtering methods no filtering . Alternately. 2 About Layout Options The table below shows Layout Options. the first page displayed in the Activity workspace is the Java Virtual Machine Summary page. display. Table 2-6 Option Refresh Enabled? Layout Options Description Controls whether or not automatic page refresh is enabled in the user interface. If this check box is not selected.collect only execution trees which had an average response time greater than the threshold About the FocalPoint Administration page The FocalPoint Administration page lets you do the following: ■ ■ ■ ■ ■ Configure the user interface Select an inactive archive to analyze Modify the archiving. When the Dashboard is used as the home page. Controls the number of plotted time series line graph items in Recent and Archive series pages. These time slices are stored in the archive for each JVM monitored by the Precise for J2EE Collector. Start Page . ■ filter by average response time . Recent Items Charted Recent Slices Controls the number of time slices plotted in time series graphs. the Refresh button in the General toolbar can be used to enable or disable refresh for a given browser session independent of this configuration. Click Update to save any changes made on this page.

Overflow Enabled Inactive Archive Label Inactive archives. Name of the database. For information on the scripts to create the Oracle schema.Precise for J2EE Basics About administration pages 19 About Archiving Options The table below shows Archiving Options. old active archive data is deleted. and Overflow is disabled (not selected). . The Archive Agent periodically scans the age of data stored in the archive. If data is older than the Aging Timespan. a MySQL database instance is installed as the short-term data repository. By default. enter a new password here. if overflow is enabled. the inactive archive. the data is deleted from the archive. The process to switch from MySQL to Oracle requires that you first run scripts to create a new Oracle schema. Table 2-7 Option Aging Timespan Archiving Options Description Controls the time span. If you have customized the user name. you can create Precise for J2EE database schemas and use Database Options to configure Oracle database information. because storing and displaying large amounts of data may impede the performance of the Precise for J2EE user interface. see the Precise Administration Guide. also known as the database SID. By default. When data is older than this time span. Overflow data is not actively managed by Precise for J2EE. are used to permanently store interesting sets of data. the user is Indepth. By default the password is Indepth. Table 2-8 Option Database Type Host Port User Database Options Description Select the Precise for J2EE short-term data repository. To analyze overflow data. Instead. type overflow. To change the password. see the Precise Administration Guide. To change the inactive archive that is available for analysis. change the Inactive Archive Data label to “overflow” in the Archive Data Selection page. Password that Precise for J2EE uses to connect to the Oracle or MySQL database. add data to the Demo archive folder or create your archive folder using the data export and import scripts. and significant amounts of data may accumulate. Then you use the Precise for J2EE User Interface Settings page to configure the FocalPoint to use the Oracle database. enter the new name here. in hours. Password Database Name Switching from MySQL to Oracle When the Precise for J2EE FocalPoint is installed. old active archive data is labeled as overflow and not deleted. to keep one week of recently collected data. the aging time span should be set to 168 hours = 7 days * 24 hours per day. About Database Options The table below shows Database Options. For example. when you want to retain interesting or critical data. If this check box is clear. of Precise for J2EE Collector data stored in the active archive. See the Precise Administration Guide for information on exporting and importing archive data. or type the name of another inactive archive that you have imported. If you have customized the database name. For details on using these scripts. Demo. such as the Demo archive that is delivered with Precise for J2EE. the old data is either deleted or labeled as overflow and not deleted. If you have Oracle installed. Note: The overflow archive should rarely be enabled. Database host name Database port number User name that Precise for J2EE uses to connect to the Oracle or MySQL database. is selected. enter it here. If this check box is selected.

Restart the Precise for J2EE FocalPoint. or database name. About the Findings Administration page The Findings Administration page allows you to configure the thresholds for Findings analysis and graph display. In the FocalPoint Administration page. Information on the scripts and customization can be found in the Precise Administration Guide. Run the scripts to create the Precise for J2EE schema in the Oracle database. By default. Identical information must be entered in both places. both must be able to communicate using the same protocol. see the Precise Administration Guide. Note: To launch J2EE FocalPoint from Precise or vice-versa. You can also create and install your own self-signed certificate. HTTPS is not enabled. a digital certificate is installed with the Precise for J2EE FocalPoint. you must select HTTPS Enabled. If you update the FocalPoint Administration page with different information. The Findings page contains an Update button. To open the Findings Administration page 1 In the General Options bar.Precise for J2EE Basics About administration pages 20 To switch from MySQL to Oracle 1 Write down the database information for the Oracle database. Then click the Findings tab. When you do this. enter the host name and port number for the Oracle database. select Oracle as the database type. For information on installing your own certificate. You also use the Findings Administration page to select the contributor category and application summary analyses. For more information.bat 2 3 4 About Security Options The Precise for J2EE FocalPoint communicates via HTTP or HTTPS with the Precise for J2EE user interface. In the FocalPoint Administration page. you will not be able to communicate with the FocalPoint. If you have customized the user name. Click Update to save any changes made on this page. The values displayed in this page are the current values of the system. password. To enable HTTPS.sh Windows: <i3_root>\products\j2ee\bin\stopMySQL. then restart the FocalPoint. click Settings. 2 . enter the names in the appropriate text fields. in addition to the information described in the table below. If you wish. Warning: Enter the information exactly as it was entered in the Oracle scripts. see the Precise Frequently Asked Questions. 5 6 7 Click Update. You will enter this information when running the scripts and when updating the database information in the FocalPoint Administration page. (Optional) Stop the MySQL database by running: UNIX: <i3_root>/products/j2ee/bin/stopMySQL. you can also customize the username and password that Precise for J2EE uses to connect to the database. namely HTTP or HTTPS.

Nodes whose values equal or exceed this value are filled red. The default low contribution threshold is 1%. Nodes whose values equal or exceed this value are filled orange.5%. Table 2-11 Option Maximum Disk Cache Size Call Graph configuration options Description Sets the maximum disk space allotted for caching Method Call graphs. Each hour. The default medium contribution threshold is 7. Threshold for identifying nodes as medium contributors. Findings analyzes methods using the first contributor category . Table 2-9 Option High Contribution Red Threshold >= Medium Contribution Orange Threshold >= Low Contribution Yellow Threshold >= Findings Analysis and Graph options Description Threshold for identifying nodes as high contributors. Nodes whose values equal or exceed this value are filled green. The default medium contribution threshold is 7. Threshold for identifying nodes as low contributors. Threshold for identifying nodes as low contributors. By default. Table 2-10 Option High Contribution Red Threshold >= Medium Contribution Yellow Threshold >= Low Contribution Green Threshold >= Very Low Contribution Gray Threshold >= this value Call Graph threshold options Description Threshold for identifying nodes as high contributors.5%.Precise for J2EE Basics About administration pages 21 About the Findings Analysis and Graph options The table below shows the Findings Analysis and Graph options. Method Call Graph Layout Screen Size About Contributors by Category Page Analysis options Precise for J2EE Findings analyzes numerous categories of significant contributors including categories specific to application server vendors and categories applicable to all application servers.1%. if the maximum disk cache size has been exceeded. Nodes whose values equal or exceed this value are filled yellow. Threshold for identifying nodes as medium contributors. The default minimum contribution percentage is 0. See “About the Memory workspace” on page 88. The default high contribution threshold is 15%. Methods matching enabled categories appear in the Activity workspace Findings on the Highlights tab and can be displayed in a SmarTune portlet on the Dashboard. About the Call Graph configuration options The table below shows the Call Graph configuration options. Note: Low Contribution Yellow Threshold >= Hotspots methods are hidden when their contribution is less than this value. Nodes whose values equal or exceed this value are filled yellow. all categories are enabled. The default maximum disk cache is 200 MB. About the Call Graph threshold options The table below shows the Call Graph threshold options. Graph nodes and Hotspots methods are hidden when their contribution is less than this value. Set the height and width in pixels of Method Call graph panels. The default low contribution threshold is 1%. The default high contribution threshold is 15%. Nodes whose values equal or exceed this value are filled red. Precise for J2EE checks the size of the cache and removes the oldest data.

Contribution related to entity bean persistence as measured by the ejbLoad() and ejbStore methods 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 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 EJB Cache Stateful Session EJB Entity EJB The table below explains each Oracle contributor category. Contribution related to entity bean persistence as measured by the ejbLoad() and ejbStore methods of the EJB life cycle. Contributor Category JDBC Connection Pool SQL Access JDBC Access EJB Access . Table 2-14 Oracle contributor categories Description of Findings Analysis Contribution of stateless session beans as measured from the application server's pool. 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. This category measures JDBC API calls for instrumented invocations of type JDBC such as ResultSet processing methods or closing of database connections. Findings analysis does not attempt to apply the category to the method. executeQuery(). If a category is not enabled (not selected). Contribution related to entity bean persistence as measured by the ejbLoad() and ejbStore methods 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. Contributor Category Stateless Session EJB Stateful Session EJB Entity EJB The table below explains contributor categories that apply to all application servers. Contribution of database queries as measured by execute(). 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.Precise for J2EE Basics About administration pages 22 appropriate for that method. 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 database activity outside the scope of SQL Access methods. andexecuteUpdate() methods of the JDBC API. Contribution of stateful session beans from the application server's cache as measured by the ejbActivate() and ejbPassivate() methods of the EJB life cycle. Contributor category Stateless Session EJB Stateful Session EJB Entity EJB The table below explains each WebSphere contributor category.

transaction. Contribution of getSession() time to HTTP service requests.soap.Precise for J2EE Basics About administration pages 23 Table 2-15 General contributor categories Description of Findings Analysis Contribution of naming and directory services as measured by the lookup() method of JNDI.1 application summary categories Description of Findings Analysis Evaluates if Idle threads are available. Identifies excessive time spent in the Garbage Collection activity. Contribution of accessing synchronized code as measured by the instrumentation of synchronized code blocks or methods. Identifies excessive usage of the heap. Application Summary Category Maximum Free Memory Heap Used Memory Garbage Collection Time Concurrent Active Threads The table below explains WebLogic 8. including many for specific application server vendors and versions. .io. and registry implementations. rpc. DOM. Application Summary Category ExecuteQueue Idle Threads Shortage Database Connection Availability Evaluates if Idle Database Connections are available. Table 2-16 Application summary categories Description of Findings Analysis Identifies a downward trend of free heap memory.* implementations. ws. transformers. Contribution of methods that exceed the minimum contribution percentage but which are not analyzed by any other categories. Contribution of JMS activity as measured by the instrumentation of general javax.jms. Table 2-17 WebLogic 8. which can indicate an increasing load on the JVM. If a category is not enabled (not selected). xerces. and xalan. The table below explains application summary categories. Identifies an upward trend of concurrent active threads. Contributor Category JNDI Access HTTP Session Access XML Access JMS Access Java Transaction Access Java IO Access Web Services Access Synchronized Method Access Application Methods About Findings Application Summary categories Findings analyzes numerous application server performance categories. Contribution of Java IO activity as measured by the instrumentation of java.* implementations and vendor specific implementations. The Statistics workspace can be displayed in a Findings Application Summary portlet on the Dashboard.1 application summary categories. Contribution of Java IO activity as measured by the instrumentation of java. Contribution of JMS activity as measured by the instrumentation of javax. Findings does not attempt to analyze the category.* implementations.xml. Contribution of XML activity as measured by the instrumentation of XML parsers.

Evaluates if database connection requests are waiting. Table 2-18 WebLogic 9.1 application summary categories.0 application summary categories Description of Findings Analysis Evaluates if Idle threads are available.Precise for J2EE Basics About administration pages 24 The table below explains WebLogic 9. Evaluates if database connections are leaked. Table 2-19 WebLogic 9. The table below explains WebLogic 9. Evaluates if producer message pending count is greater than zero.2 application summary categories. Application Summary Category ExecuteQueue Idle Threads Shortage Database Connection Availability Waiting for Database Connection Evaluates if Idle Database Connections are available. Evaluates if database connection requests are waiting. Evaluates if session message pending count is greater than zero.2 application summary categories Description of Findings Analysis Evaluates if Idle threads are available.1 application summary categories Description of Findings Analysis Evaluates if Idle threads are available. The table below explains WebLogic 9. Application Summary Category ExecuteQueue Idle Threads Shortage Database Connection Availability Waiting for Database Connection Leaked Database Connections JMS Consumer Messages Pending JMS Producer Messages Pending Evaluates if Idle Database Connections are available. Application Summary Category ExecuteQueue Idle Threads Shortage Database Connection Availability Waiting for Database Connection Leaked Database Connections JMS Server Messages Pending JMS Session Messages Pending Evaluates if Idle Database Connections are available.0 application summary categories. . Evaluates if database connection requests are waiting. Table 2-20 WebLogic 9. Evaluates if server message pending count is greater than zero. Evaluates if consumer message pending count is greater than zero. Evaluates if database connections are leaked.

Evaluates if server message pending count is greater than zero.0 application summary categories Description of Findings Analysis Evaluates if maximum available threads are in use. Application Summary Category Thread Pool Maximum Threads in Use . The table below explains WebSphere 5.2 application summary categories Description of Findings Analysis Evaluates if database connections are leaked.1 application summary categories Description of Findings Analysis Evaluates if maximum available threads are in use. Application Summary Category Leaked Database Connections JMS Server Messages Pending JMS Session Messages Pending Evaluates if server message pending count is greater than zero. The table below explains WebSphere 5. Application Summary Category ExecuteQueue Idle Threads Shortage Database Connection Availability Waiting for Database Connection Leaked Database Connections JMS Server Messages Pending JMS Session Messages Pending Evaluates if Idle Database Connections are available. Table 2-23 WebSphere 5. Application Summary Category Thread Pool Maximum Threads in Use Database Connection Pool Maximum Connections in Use Waiting for Database Connection Evaluates if maximum available connections are in use. Table 2-21 WebLogic 10. Table 2-22 WebSphere 5.0 application summary categories. Evaluates if session message pending count is greater than zero. Evaluates if database connections are leaked. Evaluates if database connection requests are waiting.0 application summary categories.0 application summary categories Description of Findings Analysis Evaluates if Idle threads are available.1 application summary categories. Evaluates if database connection requests are waiting. The table below explains WebLogic 10. Evaluates if session message pending count is greater than zero.Precise for J2EE Basics About administration pages 25 Table 2-20 WebLogic 9.

Application Summary Category Application Thread Pool Availability . Table 2-25 WebSphere 6.0 application summary categories. Table 2-26 Oracle 10.1.1 application summary categories. Application Summary Category Thread Pool Maximum Threads in Use Database Connection Pool Maximum Connections in Use Evaluates if maximum available connections are in use.Precise for J2EE Basics About administration pages 26 Table 2-23 WebSphere 5. Table 2-28 SAP 6.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.1.2 application summary categories. Table 2-24 WebSphere 6. Application Summary Category Database Connection Pool Maximum Connections in Use The table below explains WebSphere 6. Table 2-27 Oracle 10.4 application summary categories Description of Findings Analysis Evaluates Application Thread Pool size.3 application summary categories Description of Findings Analysis Evaluates the JCAConnectionPool for opened JCA connections that were obtained from the pool and never closed. Application Summary Category JDBC Connection Leak The table below explains Oracle 10.1.1. Application Summary Category JCA Connection Leak The table below explains SAP 6. Application Summary Category Thread Pool Maximum Threads in Use Database Connection Pool Maximum Connections in Use Evaluates if maximum available connections are in use.4 application summary categories.1 application summary categories Description of Findings Analysis Evaluates if maximum available threads are in use. The table below explains WebSphere 6.0 application summary categories Description of Findings Analysis Evaluates if maximum available threads are in use.3 application summary categories. The table below explains Oracle 10.1 application summary categories Description of Findings Analysis Evaluates if maximum available connections are in use.

Waiting Tasks Queue Overflow System Thread Pool Availability Managed Connection Pool Availability Evaluates System Thread Pool Size. even though you see that the methods are included in the business transaction. This is a result of changes in instrumentation made by Adaptive Instrumentation or Over-Instrumentation Protection. and add contexts for the business transaction. Note: At times. Opens the Create New Business Transaction page with the method calls included in the selected business transaction. As a result. Note: Delete Selected removes the business transaction from all JVMs. Create New View/Modify Delete Deletes the selected business transaction. You use the Business Transactions Administration page to create or modify business transactions. if Adaptive Instrumentation was run after the business transaction was created.Precise for J2EE Basics About administration pages 27 Table 2-28 SAP 6. or delete. Evaluates Managed Connection Pool Size. To remove the business transaction from specific JVMs. About the Business Transactions Administration page Business transactions are named groups of HTTP or EJB service requests that Precise for J2EE has already identified as service time contributors. you may notice that data on a business transaction changes or disappears. the business transaction will not display data or the data displayed may be incomplete. For example. Setting up a business transaction allows you to display aggregated data for the group of methods in the Dashboard and Activity workspaces. Application Summary Category Application Thread Pool Waiting Tasks Application Thread Pool Evaluates Application Thread Pool size. click Settings. Table 2-29 Option Current Business Transactions Business Transactions Administration options Description Lists business transactions that have been created. You can name a new business transaction. The Business Transactions Administration page contains the options shown in the table below. use View Selected. You can add or remove method calls from the business transaction and assign or remove the business transaction to all or selected JVMs.4 application summary categories Description of Findings Analysis Evaluates Thread Pool size. Opens the Create New Business Transaction page. even though the methods appear to be part of the business transaction. To open the Business Transactions Administration page ◆ In the General Options bar. . select the JVM for which it will be configured. About the Business Transactions Administration options The table below shows the Business Transactions Administration options. Adaptive Instrumentation may have disabled instrumentation for methods that were included in the business transaction in order to meet the overhead budget. You can select a business transaction from the list to view. edit. Then click the BusinessTransactions tab.

or use the wildcard character. so that method names and parameters will be displayed when searching for method calls to include in the business transaction. search results may contain the same class and method multiple times. click Select All. To invert current check box selections. To create the Business Transaction for a specific JVM. click Save. Active and Status headings are shown for each component. In addition. you will need to turn on parameter capture in Precise for J2EE. click Invert. you should include all identical classes and methods of interest in the business transaction. this page enables you to access the Administration page for each component by clicking the component’s hyperlinked text or by clicking Configure in the General toolbar. In some cases. The Host:Port. Only HTTP or EJB service requests can be assigned to a business transaction. Click Add Context(s) to add method calls to the business transaction. See the Precise Administration Guide for information on configuring Precise for J2EE to use parameter capture. if your application uses a Model View Controller (MVC). In the Business Transaction name field.Precise for J2EE Basics About the System Status page 28 Creating a business transaction Creating a business transaction requires familiarity with your application's top-level methods. To create a business transaction 1 2 3 In the Business Transactions Administration page. The System Status page displays the overall status of each Precise for J2EE component. click Create New. In addition. 4 5 6 7 8 9 10 11 About the System Status page When you click Settings. *. Click All JVMs. This occurs because the application calls the class and method from different threads. enter a name for the business transaction. The System Status page displays the host name and port number used by each Precise for J2EE component to the right of the component name. then select the JVM in the list. To select all of the check boxes. click Add. In the list of search results. In this situation. methods must be uniquely assigned to business transactions. In addition. The System Status page uses the following activity and status icons: The component is Active and responds when the user interface tries to communicate with it using the displayed host name and port number The user interface does not receive an expected response when communicating with the component The component is running normally and no problems have been detected. click None. In the Create New Business Transaction page. the General Toolbar displays the Status link to open the System Status page. but Precise for J2EE cannot distinguish the top-level entry point. then click Search. Select the JVM(s) where the business transaction will be available. check the box(es) beside the methods you want to include in the business transaction. Severity = Normal . To add the methods to the business transaction. Search returns methods running on at least one selected JVM that match the search criteria. and then Status in the General Options bar of any Precise for J2EE page. if you want the business transaction to be available on all JVMs. To unselect all of the check boxes. It also enables you to access detailed status information for each component by clicking the Details hyperlinked text to the right of the status indicator of each component. See “About data collection in Precise for J2EE” on page 29. click Selected JVMs. so a given method can belong to only one business transaction. Search for the method calls by entering the exact class or method name.

To shorten the loading time. Archive Agent. contact Precise Technical Support. and other categories that affect application server performance. exceptions. The layout of the page is the same for all components. Immediate user intervention is recommended. . and Precise for J2EE Collector) has its own Status Details page. About data collection in Precise for J2EE Default Precise for J2EE instrumentation collects data on Java entities. Each message contains a status indicator. At the top of the screen. To open the Status Details page 1 2 In the General Options bar. User intervention is recommended. In the System Status page.Precise for J2EE Basics About data collection in Precise for J2EE 29 The component has encountered a problem. For more details. click the Details hyperlink to the right of the status indicator for an Precise for J2EE component. click Settings. the user can list specific class names to be ignored during loading. Note: When there are no pending changes. the selected JVM name appears and its last updated start time (date and time). the list in the table displays “actual” monitoring status of classes and methods in the JVM. the list in the table displays “estimated” status of classes and methods in the JVM. About Monitoring Configuration Monitoring Configuration in Precise for J2EE enables the user to easily view and edit JVM instrumentation definitions that influence application monitoring. Severity = High About the Status Details page Each Precise for J2EE component (user interface. JVM Loaded Classes display (in parenthesis) the total number of known classes that were loaded in the JVM based on the last updated time. memory usage. Precise for J2EE also allows you to visualize and customize data collection using one of the following features: ■ ■ ■ ■ ■ ■ ■ ■ 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. and a description of the problem. Last Updated on (start time) displays the date and time when the classes were last updated. the source or value of the message. Analysis Agent. Monitoring Configuration displays the impact of the definitions on the actual instrumentation status of the application methods. and then Status to open the System Status page. If pending changes exist. Severity = Moderate The component has encountered a serious problem that has impacted the collection or archiving of data. locks.

Click the refresh icon to retrieve currently loaded classes and methods from the JVM while updating the table and the “Last updated on” time. In addition to selecting a view option. this error icon (both at the top of the screen and in a popup message) displays if there is a parsing error in the custom.shows all loaded default classes and associated methods (no filtering by status) Configured (Monitored & Blocked) . See “About Monitoring Configuration icons” on page 30. About Monitoring Configuration results The table displays the results (actual instrumentation status) for the selected viewing option. this special warning icon (both at the top of the screen and in a popup message) displays if there exist pending changes. 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 . along with the total number of classes.Precise for J2EE Basics About data collection in Precise for J2EE 30 About Monitoring Configuration icons On the Monitoring Configuration page appears a number of icons. 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. Click the Clear (X) icon to clear any searched pattern name. pending.shows only <blank> and pending statuses that can be retrieved Pending . The table displays results based on the selected viewing option and the search criteria. the user can also apply search criteria. When extracted. or begin typing a pattern name into the appropriate field. Appears next to the searching fields. There are also options available for search (filtering) patterns: ■ ■ Package/Class pattern Method pattern Click the Search (spyglass) icon to search and select an already existing pattern name.xml file. monitored (partial). Clicking this icon clears the search fields and shows unfiltered results in the Loaded Classes and Methods table. When the user clicks Save. Table 2-30 Icon Search Monitoring Configuration icons Description Appears next to the searching fields. etc) Not Configured . By default. Paging icons are available at the lower right side of the table. the first row in the table is always selected (shown in gray). Clicking this icon activates the search in the Loaded Classes and Methods table. The classes in the results table are collapsed and can be extracted by clicking the plus icon.shows only pending statuses ■ ■ The selected view is applied directly by clicking on one of the above relevant viewing options. the table displays the following results: ■ ■ Class (the class name) Method (the method name) . the members that apply to the filter and search criteria will be shown. When the user clicks Save. The result table shows classes in pages of 100 classes.shows all statuses except for <blank> that are retrieved (for example: classes and methods including monitored. or simply delete the pattern name field content. If “All Classes and Methods” was the selected viewing option.

User defined types can be added when defining classes/methods to be monitored. it means that the method is instrumented. an error icon and message will appear. About Type values The type is used to categorize classes and methods as meaningful parts of the monitored application. For a method. Class names are shortened for screen display and method names are displayed without a signature. or (when no specific definition exists) as a combination of all of its methods’ types. The Class will have a pending status if it has at least one pending method. About Monitoring Configuration controls Monitoring Configuration enables the user to easily view and edit monitoring status of the loaded classes or methods. it means that all of its loaded methods are instrumented. For a class. how much time is spent in EJBs or in JDBC methods).Precise for J2EE Basics About data collection in Precise for J2EE ■ ■ ■ 31 Status (See “About Status values” on page 31. About Status values Status can have any of the values shown below in the table. or via the Manage Patterns screen. If a class is expanded. it means that only some of the signatures are instrumented. it means that all of its loaded methods are either ignored (exists at least once) or not instrumented (exists at least once). Methods invoking JDBC calls will appear with an indicator in the Notes column as “Calls JDBC methods”. It covers a broad spectrum of use cases. Table 2-31 Name Monitored Available Status values Description For a class. EJB and others. it means that it is ignored. it means that all of its loaded methods are not instrumented (but not ignored). The type of methods is either defined by the user. serving both novice and experienced users. it means that it is not instrumented (not ignored).) The types are the foundation for displaying service time breakdown into its components in the Precise for J2EE User Interface (for example. Blocked For a class. Predefined types can contain HTTP. Use Monitoring Configuration to monitor the status of classes and methods directly. it means that only some of its loaded methods are instrumented. by default methods are sorted alphabetically. Monitored (partial) For a class. . For a method. Class names are sorted in alphabetical order. <Blank> Pending Relevant for classes or methods after a change was performed and the JVM was not restarted. it means that all of its loaded methods are ignored.) Type Notes (additional information for a specific class) Note: JDBC methods will not appear in the loaded methods list. (If no type is defined. or by the product’s predefined definitions. Blocked (partial) For a class. For a method. In the case of an error while reading (parsing) Monitoring Configuration. For a method. The type of classes can be defined by the user or by the product’s predefined definitions. the Custom default type is used.

. If the Monitor button is enabled. After selecting a search pattern. or Cancel to close the screen without saving changes. the user can monitor a selected row in the table according to class or method status and view the class and method results. Click Save to save your changes. Note: Restart JVM after saving your changes. Click Manage Patterns to edit or view the matching classes or methods. About the Pattern Manager Use the Pattern Manager to manage monitoring patterns to view or edit types and matching classes. Click Add Pattern (above the table) to create a new pattern name to the table. Click Monitor. Click Save to save your changes. and methods. or delete) types. edit. At the top of the screen. click to select one or more loaded classes or methods to stop monitoring. Note: Restart JVM after saving your changes. To exclude (ignore) a loaded class (classes) or methods 1 2 3 In the table. To monitor one or more loaded classes or methods 1 2 3 In the table. Click Exclude. assign a type to the pattern in the opened pop-up message. classes. Use Monitor Search Results to create and monitor patterns.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. Note: User-Defined classes can be edited (to add. Click Save to save your changes. click Add Pattern. After clicking the monitor search result. and restart has not yet been performed. Click Stop Monitor. The user can exclude a selected row in the table according to class or method status. Click on the + icon in the table to open and view all members of a selected class. To add a class or method pattern 1 For a new class pattern. Note: Restart JVM after saving your changes. click Monitor Search Results to monitor the search criteria pattern. click to select one or more loaded classes or methods for monitoring. or Cancel to close the screen without saving changes. or Cancel to close the screen without saving changes. To stop monitoring a loaded class (classes) or methods 1 2 3 In the table. the selected JVM name appears and the its “Last JVM start time” (date and time). The Monitoring Patterns table displays configured patterns (classes and methods. and their assigned types). The user can stop monitoring a selected row in the table according to class or method status. click to select one or more loaded classes or methods to exclude.

and Expert. To provide users with maximum flexibility in balancing visibility versus overhead. 3 4 About Pattern Manager loaded classes and methods results The table (lower pane) displays the results (actual instrumentation status) for the selected classes or methods that match the selected definition row (upper pane). Click on the + icon in the table to open and view all members of a selected class. Begin typing the method name and the Pattern Manager will automatically display current methods which start with the same matching letters. The table displays the following results: ■ ■ ■ ■ ■ Class (the class name) Method (the method name) Status (See “About Status values” on page 31. The three modes differ in the following ways: ■ ■ ■ ■ 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 . For a selected class pattern. in case it will be deployed later to the JVM) at the right of a name in the list. The probes can then process user requests for dynamic modification of the instrumentation set. in case it will be deployed later to the JVM) at the right of a method name that does not appear in the list.) Type (the assigned type. You select the instrumentation mode in the Java Virtual Machine Settings page. The JVM “Loaded Classes and Methods” displays (in parenthesis) the total number of classes that were loaded. Also displayed is the date and time when the classes were “Last updated”. Precise for J2EE supports three modes of instrumentation: Basic. Select the appropriate class name from the list. or (for example. Click the Refresh icon to refresh the screen and update all viewed data. “custom” by default) Notes (additional information for a specific class) About instrumentation modes Precise for J2EE allows users to set and modify instrumentation on the fly without the need to restart monitored applications. To provide this unique flexibility. Precise for J2EE installs smart probes in application components as they are loaded into memory. This state-of-the-art technology comes at the cost of additional overhead to running applications. click the blank field in the Method Pattern column for the selected class row. Standard. Select the appropriate method name from the list or (for example.Precise for J2EE Basics About data collection in Precise for J2EE 33 2 Begin typing the class name and the Pattern Manager will automatically display current classes which start with the same matching letters.

However. EJBs. Then Adaptive Instrumentation analyzes the data collection results. Precise for J2EE applies a reduced set of its probes that provides limited flexibility. . You need to make frequent changes to the instrumentation set without restarting the application server. add the components that you need to monitor. You need maximum flexibility in fine-tuning the instrumentation set to provide the best visibility for a given overhead budget. You are not interested in monitoring other components or alternatively. To monitor other Java/J2EE components (such as home-grown applications). You can use Adaptive Instrumentation in this mode to discover root causes of performance problems in non-standard Java/J2EE components. as Precise for J2EE's probes are fully deployed to provide maximum flexibility. You are also willing to restart the application servers when you make this type of modification. the cost of instrumenting additional components is higher than in Basic mode. you manually modify instrumentation configuration files. You can also use Expert Configuration to enable or disable instrumentation of specific components. as needed.) while keeping the overhead at the minimum. This is the default mode. As with the Basic mode. and then restart the application server. 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 are mainly interested in monitoring service requests and key J2EE interfaces. to keep the overhead low. the initial overhead is the highest. Servlets. You prefer to rely on Adaptive Instrumentation to automatically find the best instrumentation set rather than manually configure the instrumentation. The initial overhead is relatively low in this mode. to generate a custom instrumentation configuration. You can use Adaptive Instrumentation in this mode to tune instrumentation for service requests and common J2EE interfaces. You control the amount of overhead that the configuration may impose on your application’s performance by giving Adaptive Instrumentation an instrumentation “budget”. however. common J2EE interfaces are covered out of the box. without restarting the monitored application servers. while a higher budget trades off performance for additional instrumentation and more information about your application. Use this mode if: ■ ■ ■ Instrumentation mode Basic You need to keep the overhead at the absolute minimum in exchange for reduced visibility. The figure below shows the Adaptive Instrumentation workflow. etc. you can manually identify these components and define them in the configuration files. Adaptive Instrumentation surveys application activity during a load. Expert This mode provides maximum visibility and flexibility with a higher overhead. In this mode. Use this mode if: ■ ■ ■ You need to get maximum visibility and are willing to accept a higher initial overhead. A low budget results in less instrumentation and a lower overhead. Standard This mode provides visibility of standard J2EE interfaces as well as of non-standard Java/J2EE components.Precise for J2EE Basics About data collection in Precise for J2EE 34 The table below describes each instrumentation mode. but in Expert mode. known as survey data. Table 2-32 Instrumentation modes Description This mode provides visibility of common J2EE interfaces (JSPs. you can use Adaptive Instrumentation to automatically uncover additional contributors to performance. About Adaptive Instrumentation Adaptive Instrumentation in Precise for J2EE automates custom instrumentation to provide application information most relevant to root cause analysis of performance problems.

you probably need to execute Adaptive Instrumentation more than once. See “Procedures for Adaptive Instrumentation” on page 40. To avoid instrumentation inside hot spots. You simply run Adaptive Instrumentation and then restart the monitored JVM. you run Adaptive Instrumentation again to collect data on application activity. To get the most from Adaptive Instrumentation. A good example of a hot spot is a set of methods inside a parser that are invoked more than 10 million times over a few minutes. Instrumenting inside application hot spots will likely cause high overhead. The calibration removes the effects of hot spot monitoring overhead by ignoring highly invoked methods. you run Adaptive Instrumentation twice. You must restart the JVM after the calibration phase or the calibration results will not be applied. while you keep the following tips in mind. The first time. Byte-code instrumentation is a powerful technology. Note: There is no control in the Precise for J2EE User Interface to select the two data collection phases. After the calibration phase. Be sure that the application activity during data collection includes any highly invoked methods. especially when an application hot spot is instrumented. Adaptive Instrumentation collects data as a survey of the application's activity.Precise for J2EE Basics About data collection in Precise for J2EE 35 Figure 2-2 Adaptive Instrumentation workflow Tips on Adaptive Instrumentation Adaptive Instrumentation is a powerful tool for gathering the data required for root-cause analysis of application performance problems. This data collection measures the application from as normal an overhead level as possible because the hot spots were . Then you run Adaptive Instrumentation again. See “About the Adaptive Instrumentation Wizard page” on page 38. but it must be used judiciously since it adds a tiny bit of processing to each instrumented method call. The second time. About calibration of Adaptive Instrumentation Precise for J2EE uses byte-code instrumentation technologies to measure all Java method invocations from almost any calling context. Adaptive Instrumentation collects data for calibration purposes. An application hot spot is one or more methods invoked millions or billions of times in a short span of time. These processing additions can add up to higher than expected overhead.

This policy instruments the remaining long paths that were not found by the Longest Service Time Path policy. Discovers and instruments Java methods that contribute the most to the application work time. May also disable default instrumentation if the budget setting in the Adaptive Instrumentation Wizard page is set low enough. as it is by default. and Adaptive Instrumentation gains full control over the enabling of instrumentation throughout the application. Precise for J2EE ignores any default and custom instrumentation. Adaptive Instrumentation then applies a set of policies to each type of data. create two new Adaptive Survey Data Collections and restart the JVM after each data collection.policy. As each policy is applied.javaperf. The Adaptive Instrumentation policies use the data that is collected to decide what to instrument. About Adaptive Instrumentation policies Adaptive Instrumentation determines which methods to instrument by dividing the activity recorded within the collected survey data into two categories. service requests and threads. Instruments additional Servlet. You can track the application of each policy in the Adaptive Instrumentation Status page of the Adaptive Instrumentation Wizard page. edit the PRECISE_J2EE_HOME/config/HeatseekerPolicyConfiguration. JSP. Adaptive Instrumentation will reduce the amount of existing instrumentation.precise. About the data collection period The most critical part of Adaptive Instrumentation is the data collection period. When you restart following the activity phase. Discovers additional entry points into the other Threads area and instruments the Java methods they call. this policy uses the available overhead budget first for existing instrumentation at the expense of other instrumentation that would be suggested by other policies. Adaptive Instrumentation first applies the Retain and Ignore Existing Instrumentation policy to the survey data in order to select the methods to instrument. any remaining or new hot spots are ignored. and EJB methods that were not detected by the first policy.heatseeker. you may need to perform several new activity survey data collections because elimination of one hot spot may cause another hot spot to surface. Therefore. or if the overhead budget setting is lower than the overhead imposed by the existing instrumentation. Discovers and ignores all instrumentation in Java application areas with highly invoked methods that would otherwise exceed the budget. and their call paths.IgnoreInstrumentation and change the <enabled> element from true to false. When you first begin to monitor a Java application. Adaptive Instrumentation may reduce the number of methods instrumented in Expert Configuration. other policies may not be applied. Depending on the budget setting. A JVM restart is required to load this policy’s changes to instrumentation for improved visibility or lower overhead. Adaptive Instrumentation continues applying policies and selecting methods to instrument until the instrumentation exceeds the budget in each area. . so that the Survey Calibration benefits are incorporated into your instrumentation. Discovers and instruments the single longest running Java method call path.Precise for J2EE Basics About data collection in Precise for J2EE 36 excluded by the calibration. Optionally. Service Requests Work Time Longest Service time Path Root Contexts All Longest Service Time Paths Survey Calibration About your current instrumentation Adaptive Instrumentation works with the instrumentation currently present in the monitored application. Depending on the amount of existing instrumentation and the overhead budget you set.xml file. When existing instrumentation is retained. To disable this policy. In some cases. you can disable the Retain and Ignore Existing Instrumentation policy. In this case. The following policies are built into Adaptive Instrumentation: Retain and Ignore Existing Instrumentation Detects and retains pre-existing (default) instrumentation. you must ensure that the data collection includes as much representative application activity as possible but excludes startup activities. Again ensure that the application activity during data collection includes any highly invoked methods. Adaptive Instrumentation selects methods to instrument. Discovers and instruments the longest service time call paths and sub-paths. Find the <policy> element with a <class-name> of com.

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. the data collection period should include enough time to warm up. application pages are initialized. In addition. The increase in application service time is caused by monitoring overhead inside hot spots. or wait until your workload has exercised all the paths in the application. Low levels of overhead are usually required for high volume production environments. About JVM startup resources Adaptive Instrumentation data collection may lengthen the JVM’s startup time. For example. the underlying Java classes are loaded. or when the remaining method invocations occur so frequently that they cannot be instrumented safely. You can recognize this condition by examining the Survey Policy results in the Adaptive Instrumentation Wizard page. make sure that you run at least one iteration of an application functionality test. During this warm-up period. 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. then some application hot spots may be instrumented. since Adaptive Instrumentation only analyzes the activity during the data collection. the application structure. the Survey Calibration policy will stop ignoring methods that were previously ignored. Factors such as the analysis goal. you should run multiple calibration phases with an application JVM restart between each new data collection. if some application activity is inadvertently excluded from the data collection because the data collection duration was too short. examine the performance data and adjust the overhead budget as needed. For these activities. Usually. where an overhead budget of 1—3% is typically sufficient for low overhead and good performance detail. A higher overhead budget does not necessarily result in an increase in the count of instrumented methods. To find an acceptable balance of performance data and overhead. You can then apply the new setting without collecting additional data or restarting the monitored JVM. if the workload or application structure changes. Typically. and caches are created and filled. However. which include—but are not limited to—invocation frequency and contribution to application work time. If portions of the workload are not exercised. . The activity mix should also be similar to that of the target system. Those newly instrumented methods will not actually be instrumented and visible in the Precise for J2EE User Interface until after the monitored JVM is restarted. this is the case when no additional methods exist. In some cases. run Adaptive Instrumentation initially with a low overhead budget. In addition. the generated instrumentation does not include the missed workload. an overhead budget of 5—15% is typical. and the workload determine what you consider an acceptable amount of overhead and level of information detail. 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. you should use Basic mode after Adaptive Instrumentation has generated and saved a set of suitable instrumentation results and when the workload and application is not expected to change in the near future. After you have collected a set of Adaptive Instrumentation data. Higher levels of detail and overhead are often tolerated during performance testing and development. The test itself must include all application activity to be analyzed. When determining the methods to instrument. further increasing the overhead budget does not result in additional instrumentation. 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 37 Before you start Adaptive Instrumentation data collection. run. About overhead budget You usually define the final overhead budget after evaluating and comparing the differences of several different overhead budget settings. you can disable survey instrumentation and survey data collection by selecting Basic instrumentation mode in the Java Virtual Machine Settings page. In cases of high initial overhead. To decrease the memory and CPU resources that the JVM uses during startup. Adaptive Instrumentation policies consider a number of factors. you may need to lengthen the data collection phase because the application may take longer to execute its tasks. as the budget is raised. The data collection duration should be long enough for the application workload or load test to execute all application call paths. See “Using Adaptive Instrumentation with a stable application or workload” on page 42. At some point. such as a load test. and cool down a load test.

Disabling Adaptive Instrumentation will remove Adaptive Instrumentation results and data collection capabilities from the JVM's configuration. but it may not be interesting if important code is custom code. The table below shows the settings that control the execution of Adaptive Instrumentation. before you start the JVM to complete the installation. then Basic instrumentation mode should be used in those environments. Adaptive Instrumentation analyzes the usage patterns identified during the data collection duration. increase the overhead budget. Based on this setting. See “Using Adaptive Instrumentation for a new or changed application or workload” on page 40. 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. The Adaptive Instrumentation Wizard page opens. You may select Basic instrumentation mode from the Settings page following the Post-Installation tasks of the AppTier. If this is the case. Standard and Expert modes inject survey and conditional instrumentation into every method. Then use Copy Instrumentation to move the instrumentation to the production system.Precise for J2EE Basics About data collection in Precise for J2EE 38 About monitoring overhead and instrumentation modes The Java Virtual Machine Settings dialog allows you to adjust the instrumentation mode. . You run Adaptive Instrumentation for the Collector and JVM selected in the Java Virtual Machine Settings Administration page. An overhead of zero disables all instrumentation. In production environments. restarting the JVM may not be possible. About the Adaptive Instrumentation Wizard page The Adaptive Instrumentation Wizard page contains the settings for Adaptive Instrumentation. Note: Make sure to apply a representative load on the application at the time Adaptive Instrumentation is executing the data collection. we recommend that you run Adaptive Instrumentation in your staging or test environment and verify that the performance visibility and overhead are acceptable. See “About the Java Virtual Machine Settings page” on page 16. that you must re-start the JVM to realize the low overhead produced by the calibration. Basic instrumentation mode limits instrumentation to a few well known APIs. Always redeploy the application either before or after running Adaptive Instrumentation. however. Table 2-33 Option Enable Adaptive Instrumentation Adaptive Instrumentation controls Description Checking this box enables Adaptive Instrumentation and allows you to select other Adaptive Instrumentation execution settings. If you want to reduce Java method details. The high overhead is temporary and may be reduced by Adaptive Instrumentation calibration. The more representative these patterns are the more effective Adaptive Instrumentation will be. About the Adaptive Instrumentation Execution settings Adaptive Instrumentation settings apply to the JVM ID that appears near the top of the Adaptive Instrumentation Wizard page. If you want Precise for J2EE to collect additional Java method details. The trade off for the high visibility into performance in Standard and Expert modes is higher overhead. See “Tips on Adaptive Instrumentation” on page 35. yet instrument the code of interest. Adaptive Instrumentation runs in all instrumentation modes. Adaptive Instrumentation constrains the amount of generated instrumentation and the corresponding overhead. Recall. 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. click Run Adaptive Instrumentation now. To open the Adaptive Instrumentation Wizard 1 In the Expert Configuration page or in the Java Virtual Machine Settings Administration page. lower the overhead budget. To limit the restart risk to production systems.

Leaving this box unchecked. you can set the survey data collection duration using the Adaptive Instrumentation Data Collection Duration control. Table 2-34 Step 1 2 3 4 5 6 7 Next steps in the Adaptive Instrumentation Wizard Description Begin data collection. Apply Changes from Expert Configuration About the Adaptive Instrumentation progress When the Adaptive Instrumentation Wizard runs. During this time. Adaptive Instrumentation requires the collection of survey data. Applied changes will override the overhead budget setting. such as Work Time Policy. Displayed at the beginning of the Adaptive Instrumentation analysis. If no survey data has been collected previously. Complete Adaptive Instrumentation. The table below describes the next steps in the Adaptive Instrumentation Wizard. When this box is checked. enables the reuse of survey data previously collected for Adaptive Instrumentation. Displayed when Precise for J2EE collects and saves the beginning or ending survey data. End data collection. Apply results to the running JVM. Checking this box instructs Adaptive Instrumentation to apply changes made in Expert Configuration when running Adaptive Instrumentation. Run Adaptive Instrumentation analysis. Loading the data files may take a few minutes. This status specifies the name of the policy being applied. depending on the speed of the Agent machine and the complexity of the analyzed application. The table below shows the Adaptive Instrumentation Wizard messages. Enable Adaptive Instrumentation results to be loaded at startup. The task bar indicates the current stage of execution. During this time you should be running a load test. This message indicates that the collection of survey data or the Adaptive Instrumentation analysis has begun. Displayed when Precise for J2EE runs instrumentation policies on the survey data. the application should be exercised by user activity or a load test representative of the target runtime environment. Wait between beginning and end of data collection. the Wizard displays the Adaptive Instrumentation Status page. The activity that occurs during this period is analyzed by Adaptive Instrumentation and used by the policies to select methods to instrument. Click Next in the Adaptive Administration wizard to continue. Note: If you select this option. Status Message Starting Adaptive Collecting Data Now Loading Data Files Policy Name .Precise for J2EE Basics About data collection in Precise for J2EE 39 Table 2-33 Option Adaptive Instrumentation controls Description Checking this box instructs Adaptive Instrumentation to collect new survey data and overwrite the previous survey data. Steps 1—3 comprise survey data collection and are omitted if new survey data is not being collected. Precise for J2EE does not collect new survey data and runs the Adaptive Instrumentation policies on the last set of data collected. Collect new Survey Data Adaptive Instrumentation Survey Data Collection Duration The number in this drop-down list defines the duration of the Adaptive Instrumentation data collection. Table 2-35 Adaptive Instrumentation Wizard messages Description Displayed when you click Next.

use the Overhead Budget text box to specify the desired level of relative overhead available for instrumentation. Using Adaptive Instrumentation for a new or changed application or workload Use the following procedure if you are running Adaptive Instrumentation for the first time on a monitored application. See “Tips on Adaptive Instrumentation” on page 35. This procedure asks you to run Adaptive Instrumentation twice to apply the results of the Survey Calibration policy. 4 5 .Precise for J2EE Basics About data collection in Precise for J2EE 40 Table 2-35 Adaptive Instrumentation Wizard messages Description Indicates the count of additional methods instrumented by the running policy and the area of the application where these methods were found. Be sure to select a sufficiently long duration. See “About the Adaptive Instrumentation Wizard page” on page 38. Heatseeker. When the remaining budget is insufficient to continue. or after a monitored application has been modified. select Enable Adaptive Instrumentation. Adaptive Instrumentation collects survey data about your application. A JVM restart is required to load this policy’s changes. In the Adaptive Instrumentation Wizard page. Adaptive Instrumentation saves the instrumentation configuration and applies it to the JVM. In most cases the Survey Calibration policy discovers and ignores some instrumentation in Java application areas with highly invoked methods that would otherwise exceed the budget. Displayed when Precise for J2EE overwrites the configuration file. Displayed when Precise for J2EE applies the new instrumentation results to the JVM using Conditional Instrumentation. In the Adaptive Instrumentation Wizard page. The monitored JVM activity that occurs within the Data Collection Duration will be analyzed by Adaptive Instrumentation. applies the policies to this data. If no survey data has been collected previously. Enter the overhead as a floating point number greater than or equal to zero. Adaptive Instrumentation requires the collection of survey data. In this case. Indicates the accumulated total number of methods instrumented by the policies for all application areas. Finally. Methods can be found in the Service Request area or the Threads area. Shows the number of methods of each types that are instrumented. with new Adaptive Instrumentation results. Indicates the percentage of the overhead budget for the specified application area that remains after the current policy has completed. and configures instrumentation that is in keeping with your overhead budget. Displayed when the remaining budget is insufficient to continue the instrumentation in the specified application area. Select the Adaptive Instrumentation Data Collection Duration from the drop-down list. To run Adaptive Instrumentation for a new or changed application or workload 1 2 3 In the Java Virtual Machine Settings page. click Run Adaptive Instrumentation now. the policies stop the instrumentation of methods in this area. the policies stop the instrumentation of more methods in the specified application area. Status Message Instrumented n Methods Budget Remaining is n% Budget Exhausted Total Instrumented Method Count Saving Startup Configuration Applying Adaptive Instrumentation Procedures for Adaptive Instrumentation How you use Adaptive Instrumentation depends on whether the application you are monitoring is recently deployed or modified or whether the application has been deployed for some time and is stable. When you execute this procedure. Verify that Collect New Survey Data is checked. See “Tips on Adaptive Instrumentation” on page 35.xml.

Use the Overhead Budget text box to specify the desired level of relative overhead available for instrumentation. restart the monitored JVM. After running Adaptive Instrumentation data collection two or more times. When you see the message Done. Running Adaptive Instrumentation twice is especially important if the Survey Calibration policy status indicates that changes were identified. restart the application load test or wait until the workload is exercising the application. To adjust Adaptive Instrumentation overhead 1 2 3 4 5 In the Adaptive Instrumentation Wizard page. then allow Adaptive Instrumentation to finish. 6 7 8 . If the application activity does not finish within the Data Collection Duration. Beware that time series summary metrics are misleading when instrumentation is applied by Adaptive Instrumentation or Expert Configuration during the displayed period. Click Next. If the Survey Calibration policy status indicates that changes were identified. select Enable Adaptive Instrumentation. In the Adaptive Instrumentation Progress page. click Next. When you see the message Done. restart the application load test or wait until the workload is exercising the application. This step is a pre-test to exclude the application startup effects from skewing the survey data. such as a load test. Enter the overhead as a floating point number greater than or equal to zero. Adaptive Instrumentation saves the new configuration and applies it to the JVM. Note that applied changes will override the overhead budget setting. Repeat Step 2 to Step 11 to find additional hot spots. Beware that time series summary metrics are misleading when the displayed time frame includes the period in which conditional instrumentation was applied by Adaptive Instrumentation or Expert Configuration. In the Adaptive Instrumentation Wizard page. especially if methods were ignored to lower overhead. This procedure adjusts the Overhead Budget setting in the Adaptive Administration page without re-collecting data. or wait until the workload has exercised all paths in the application. Adaptive Instrumentation applies the policies to the previously collected survey data to generate an instrumentation configuration that is in keeping with your new overhead budget. In the Adaptive Instrumentation Wizard page. 7 8 9 10 11 12 13 Adjusting Adaptive Instrumentation overhead Use this procedure if you have previously run Adaptive Instrumentation and you have not modified the application code or workload. Start the main application load test or wait until the workload is exercising the application and the activity you want to analyze begins. then plan to restart the monitored JVM as soon as possible. Select the Apply Changes from Expert Configuration if you want to apply instrumentation changes previously selected with Expert Configuration. In the Adaptive Instrumentation Progress page. 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. 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. restart the monitored JVM. When you run this procedure.Precise for J2EE Basics About data collection in Precise for J2EE 41 6 Run at least one iteration of an application functionality test as a ClassLoader primer. Allow two aggregation intervals and then view data in the user interface pages to evaluate whether the instrumentation has improved your understanding of the application’s performance. and re-run this procedure until the application activity can all be measured during one data collection duration. The lower overhead will be engaged only after the monitored JVM is restarted. Repeat this procedure to further adjust the overhead. Allow two aggregation intervals to pass and then view data in the user interface Activity pages to evaluate whether the instrumentation has improved your understanding of the application’s performance. monitor the progress of Adaptive Instrumentation. clear the Collect New Survey Data check box.

Precise for J2EE Basics About data collection in Precise for J2EE

42

Using Adaptive Instrumentation with a stable application or workload
Use this procedure when you have previously used Adaptive Instrumentation to generate and save a satisfactory instrumentation configuration using Standard or Expert Instrumentation modes and the application and workload are not expected to change. This procedure changes the instrumentation mode to Basic. In Basic mode, the instrumentation configuration file that Adaptive Instrumentation created will continue to provide performance information about your application, but the JVM will use fewer memory and CPU resources. See “Adjusting Adaptive Instrumentation overhead” on page 41. To use Adaptive Instrumentation with a stable application or workload 1 2 3 In the Adaptive Instrumentation Wizard, check Enable Adaptive Instrumentation. In the Java Virtual Machine Settings page, select Instrumentation Mode: Basic and click OK. Restart the monitored application.

Re-enabling Adaptive Instrumentation
Adaptive Instrumentation is enabled by default when Precise for J2EE is installed. If it is later disabled, follow this procedure to re-enable it. To re-enable Adaptive Instrumentation 1 In the Adaptive Instrumentation Wizard, check Enable Adaptive Instrumentation. Verify that prior survey data was collected, and that the desired overhead budget has been entered. If survey data was previously collected, the date of the collection is displayed next to Collect New Survey Data. Run Adaptive Instrumentation if survey data has not been collected or is out of date. See “Using Adaptive Instrumentation for a new or changed application or workload” on page 40. Change the overhead budget if necessary to adjust the Adaptive Instrumentation overhead budget that will be used during analysis. See “Adjusting Adaptive Instrumentation overhead” on page 41. Restart the monitored application if you made changes.

2 3

4

About the Expert Configuration page
Expert Configuration allows you to view the methods running in the JVM that Precise for J2EE monitors and whether they are currently instrumented. Using Expert Configuration, you can examine the context surrounding methods with high response or work times and select methods for additional instrumentation in order to fine-tune Precise for J2EE instrumentation. The methods that appear in Expert Configuration depend on the instrumentation mode set for the JVM in the Java Virtual Machine Settings page. To open the Expert Configuration page 1 In the Java Virtual Machine Settings Administration page, click Expert Configuration. By default, the Precise for J2EE Collector obtains information for Expert Configuration from information stored in the Collector about the monitored JVMs. To improve the performance of Expert Configuration, you can enable Direct Connect in the Java Virtual Machine Settings page, so that Expert Configuration connects directly to the monitored JVM. See “About the Java Virtual Machine Settings page” on page 16.

Precise for J2EE Basics About data collection in Precise for J2EE

43

About Expert Configuration options
The table below shows Expert Configuration options. Table 2-36 Option
View Drop-down List

Expert Configuration options Description
Expert Configuration has the following four views of the methods running in the JVM:

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

Table 2-36 Option
Method Table

Expert Configuration options Description
The method table shows the methods in the JVM using the view and filtering you selected. By default, methods in the table are sorted by name, but clicking an underlined column heading causes them to be sorted by corresponding values.

Name—name 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 instrumentation—checking 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 Type—such as HTTP, custom, and more. Cumulative Invocation Count—total number of times the method was called. Cumulative Service Time—total 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 Time—total execution time across all invocations for this context for the method, that cannot be attributed to other instrumented methods called from this context. Set By—icon 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 Data—update 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 Data—deletes 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 Changes—enable 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 Instrumentation—run 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 Instrumentation—runs 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.

About the Statistics Administration page
The Statistics Administration page enables you to modify Application Server Metrics data collection options for the JVM selected in the Java Virtual Machine Settings Administration page.

MBeans are managed beans that expose application server metrics. These are required to set up a connection with the Application Server in order to collect Application Server metrics. To Open the Add Statistics to Configuration page 1 2 Open the Statistics Administration page. Java Virtual Machine Identifies the name of the JVM monitored by the Precise for J2EE Collector. click OK. Opens the Add Statistics to Configuration page from which users explore the J2EE application server’s MBeans to select additional statistics for monitoring in Precise for J2EE. About the Statistics Administration options The table below describes the Statistics Administration options. The check box for each metric permits collection of individual metrics. To open the Statistics Administration page 1 2 In the Java Virtual Machine Settings Administration page. you must enable its collection in the Statistics Administration page. Values displayed in this page are the current values in the system. Properties Application Server Metrics Table Add Statistics About the Add Statistics to Configuration page The Add Statistics to Configuration page allows you to explore additional MBeans provided by the J2EE application server which can be added to the list of application server metrics which Precise for J2EE can collect. Warning: Application server overhead will increase when the application server collects these metrics and when the Precise for J2EE Collector gathers them. Lists the groups of Application Server Metrics collected by the Precise for J2EE Collector and names and describes each metric. Select MBeans in the Add Statistics to Configuration page to add them to the list of application server metrics that Precise for J2EE can collect. click Statistics.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. To actually start collection of the metric. In the Statistics Administration page. The MBeans in the Add Statistics to Configuration page are the subset of the application server’s MBeans which Precise for J2EE can display. . then click Apply Changes. Refer to the application server documentation for further details. The configuration values on this page apply to the specified JVM. the Application Server Metrics collection is disabled. The properties that are required depend upon the vendor and version of the application server. Enable Statistics Collection Controls whether or not Precise for J2EE collects Application Server Metrics from the Java Virtual Machine. the Application Server Metrics collection is enabled. To save any changes that you make on this page. Contains fields for Username and Password. The application server metrics collection occurs at the interval value defined in the Precise for J2EE Collector Aggregation Interval. click Add Statistics to open the Add Statistics to Configuration Web page dialog. If this check box is selected. Precise for J2EE displays only MBeans whose information is numeric metrics. The Statistics Administration page opens. Table 2-37 Option Collector Statistics Administration options Description Identifies the currently selected Collector. If this check box is cleared. Refer to the application server documentation for further details.

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.management. In some cases. to automatically copy instrumentation configuration files from one JVM in the cluster to others. or may crash with a HotSpot JVM error. The Copy Instrumentation page opens. Click OK in the Copy Instrumentation page to open the Copy Instrumentation Progress page. Troubleshooting memory errors and adjusting heap sizes If the available memory is running low inside the monitored JVM. the JVM may throw OutOfMemory errors. About the Copy Instrumentation page In order to address scalability and availability requirements in your environment. The following types may occur: ■ ■ ■ ■ ■ Group Type PASS_THRU: Precise for J2EE sends the metric value directly to the FocalPoint. Java Virtual Machines may be deployed in clusters. click Run Copy Instrumentation now. ABSOLUTE_COUNT: Reserved for future use. This may happen when Adaptive Data Collection is occurring while the monitored JVM is in Expert or Standard instrumentation modes because classes are being heavily instrumented. MEAN: For WebSphere application servers only. accessed from Expert Configuration or Java Virtual Machine Settings Administration pages. Note: Only a subset of the copied instrumentation is enabled immediately when copying instrumentation between JVMs that are set to different instrumentation modes. like Adaptive Instrumentation Survey Calibration results. BSH: Reserved for future use. Warning: After copying instrumentation. the copied instrumentation will take effect immediately. After copy instrumentation completes. In order to maximize the use of Precise for J2EE in clustered configurations. Expanding it shows the metrics that it exposes. the JVM starts and operates fine but later runs out of . Select the node and metrics to make available as statistics in Precise for J2EE. To open the Copy Instrumentation page 1 2 From the Java Virtual Machine Settings Administration page. J2EE_STAT: Directs Precise for J2EE to report metrics using the javax.j2ee. Selection for how Precise for J2EE will handle the metric. you should plan to restart the target JVMs as soon as possible. Use type J2EE_STAT only with Oracle 10g and JBoss application servers which implement this standard.statistics interface which implements JSR 77 for J2EE management. and the space the classes consume increases. If the target JVMs are running. Table 2-38 Option Name Add statistics to configuration options Description Each root node in the tree is an MBean.Precise for J2EE Basics About data collection in Precise for J2EE 46 About the Add Statistics to Configuration Page options The table below describes the Add Statistics to Configuration page options. DELTA: Precise for J2EE subtracts the previous metric value from the current value and sends the difference to the FocalPoint. or on its host. Depending on the configuration of the target JVM prior to copying. Some instrumentation. Category of statistics in which the metric will be displayed in the Statistics workspace. closely monitor the instrumentation overhead on the target JVM. ■ Description Information about the MBean provided by the application server vendor. only takes effect at startup. Precise for J2EE reports the average value for the metric over the time period. you can use the Copy Instrumentation Wizard.

see Sensible sanitation -. Setting initial system heap size for IBM JDKs Use the -Xinitsh* parameter to set the initial system heap size for IBM JRE where * is the size followed by K or M.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. Typically memory related problems may be solved by allocating more memory to the monitored JVM. About increasing collector memory In addition to increasing the JVM memory. do the following: 1 2 3 Edit the <I4J2EE_HOME>\bin\psje_j2c_init. Server Location . To increase the collector memory.com. For additional information on IBM's settings. Navigate to the console location appropriate for your server.sun. and run Adaptive Analysis again. If your monitored JVM experiences stability or memory issues. see Java™ HotSpot VM Options at http://java. In some cases. you might need to increase the collector memory as well. About permanent generation size for Sun JDKs Use the -XX:MaxPermSize=*M parameter to set the permanent generation size. such as -Xmx1024M or -Xmx512M. if you use Adaptive Instrumentation. where * is the generation size in megabytes. and the JVM crashes with or without a Hotspot JVM error. then you can surmise that the memory should be doubled. there is no way to predict the memory requirement except empirically. such as -Xinitsh256K. where * is the maximum heap size in megabytes. It is not uncommon to double the previous heap size when using Adaptive Instrumentation. Change the following option to a larger size: <option>-Xmx512m</option> Restart the collector. such as -XX:MaxPermSize=128M or -XX:MaxPermSize=256M. In many environments. you might even need to double (or more) the JVM memory. The amount of JVM memory increase that is required can vary dramatically from application to application. After you adjust these memory settings you will need to restart the monitored JVM for the new settings to take effect. depending on a number of factors. look carefully since it is easy to miss the error if alot of output is sent to the console. including the number of classes loaded by the application in the JVM.xml file. if the JVM runs out of memory half way through startup. 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. 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. To insert the —Xinitsh parameter using the WebSphere Administrative Console 1 2 Stop the application to be monitored. At the time of this writing. The actual memory error produced depends on the state of the JVM at the time the memory is exhausted.com. set the monitored JVM to use the Basic Instrumentation Mode because that mode uses the least amount of JVM memory and system resources. Part 3 at http://www.ibm. For additional information on Sun's Java Virtual Machine settings. In the worst case. About JVM heap size for all JDKs Use the -Xmx*M parameter to set the JVM heap size. For example.Understanding the IBM Java Garbage Collector. The defaults are 128K on 32-bit architectures and 8M on 64-bit architectures. In the best case scenario. you will see OutOfMemory errors in the command window or stdout/stderr log for the monitored JVM. no error message is visible.

See “How to launch the Precise for J2EE user interface” on page 48. Note: Make sure that the Precise user interface and J2EE are using the same hypertext transfer protocol. the port number is 20790. Click Login. Specify your authorized role name and password.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. By default. The syntax of the Precise for J2EE URL address is: http://<server machine>:<port>/ where <server machine> refers to the Precise FocalPoint server and <port> refers to the port number that the User Interface communicates on. Note: Since the Precise for J2EE user interface uses standard HTML pages. both the role name and password are admin. By default. Launching Precise for J2EE from Precise StartPoint The Precise user interface is a server-side Java application that listens on a network port for HTML page requests. The syntax of the Precise URL address is: http://<server machine>:<port>/ where <server machine> refers to the Precise FocalPoint server and <port> refers to the port number that the FocalPoint communicates on. whether secure (HTTPS) or non-secure (HTTP). This is the Precise home page. The Precise login page opens. the port number is 20761. You can access the Precise for J2EE user interface using Internet Explorer browser. Note: The Precise FocalPoint and Precise for J2EE FocalPoint must be started before they can be accessed. For more information on role names. version 7 or 8. Launching the user interface directly The Precise for J2EE user interface is a server-side Java application that listens on a network port for HTML page requests. By default. see the Precise Administration Guide. See “Launching the user interface directly” on page 48. On the StartPoint page. you may return to a screen you were previously viewing by book marking the page or sending the link via email. The StartPoint page opens.Precise for J2EE Basics How to launch the Precise for J2EE user interface 48 WebSphere 5. See the Precise Administration Guide to learn how to start Precise and Precise for components. How to launch the Precise for J2EE user interface You can launch the Precise for J2EE user interface from Precise StartPoint or directly from a browser. .x 3 4 Add the parameter into the text edit field. click the Precise for J2EE button located on the right side and open the Activity workspace. Click Apply. To access the Precise for J2EE user interface using Precise StartPoint 1 2 3 4 Type the URL address of the StartPoint user interface into the Address bar of your browser and press Enter. The login page provides secure access to Precise and to your specific product.

2 3 . See “About the FocalPoint Administration page” on page 18. you may see a security alert dialog box asking you to accept the certificate. You can also choose to install the certificate for use in future browser sessions. you will be redirected to the Precise Login page. Click OK to open the Dashboard workspace. the certificate will remain valid for the entire browser session. Once you accept. If your Precise environment uses SiteMinder or other single sign-on authentication and your current session has not been authenticated. If HTTPS is enabled for communication between the Precise for J2EE user interface and Precise for J2EE FocalPoint. specify your authorized role name and password. 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. See the Precise Administration Guide to learn how to start Precise for components. This is the Precise for J2EE home page. In the Precise for J2EE Login page.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.

Chapter 3 Getting an overview of your environment in the Dashboard workspace This section includes the following topics: ■ ■ ■ About the Dashboard workspace About the Dashboard portlets How to identify performance problems in the Dashboard workspace About the Dashboard workspace The Precise for J2EE Dashboard workspace is a web page portal for visualizing the overall health and status of all instrumented application server instances using data collected through application instrumentation. users can display the view of the application server most relevant to their roles and organization. . Composed of user-configurable tabs and data modules. called portlets. The figure below shows a typical Dashboard workspace. See “How most workspaces are structured” on page 9. the Precise for J2EE Dashboard workspace provides support for detailed views of individual application servers as well as top-level summary views of multiple application servers. By personalizing the Dashboard workspace.

See “About the Dashboard portlets” on page 53. About the environment The environment for data displayed in the Dashboard workspace is selected using the Environment selector in the Dashboard. The data in the All JVMs Health and All JVMs Threads portlets summarize data for all monitored JVMs in the JVM List. The time frame set in the Dashboard is also the time frame for the Activity and Statistics workspaces. By default.Getting an overview of your environment in the Dashboard workspace About the Dashboard workspace 51 Figure 3-1 Time frame Typical Dashboard workspace Environment AppTier Portlet Portlet preferences About Portlets Portlets are the data modules containing Precise for J2EE metrics that make up the Dashboard workspace. the time frame is set to the last hour. See “About display intervals” on page 12. data for that time frame will be displayed in the Dashboard. or you can select the JVM in the portlet itself. If the time frame is set in another workspace. . About the time frame The time frame for data displayed in the Dashboard workspace is selected using the Time Frame selector in the Dashboard. The data in all other portlets are for the JVM currently selected in the JVM List. 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).

Getting an overview of your environment in the Dashboard workspace About the Dashboard workspace 52 About the AppTier In the Dashboard workspace. You can also configure the metrics that are displayed in the portlet as well as how the data is displayed. you can select the JVM for which data is displayed. Chart. Change the portlet’s title by entering a new title in the Displayed title field. The figure below shows a typical Portlet Preferences page. Choose Table. while Detail results in one row per data point. Figure 3-2 Portlet Preferences To configure a portlet 1 2 3 Click on the portlet’s Edit Preferences icon. The JVM List portlet only allows you to change the portlet’s displayed title and the JVM List Portlet height. Configuring portlets For many portlets. is selected using the AppTier selector. the AppTier for data displayed in this workspace. These metrics serve as column headings for the table. Only numeric metrics can be displayed in a chart or by using traffic light icons. additional metrics are available to be configured. You can choose Summary or Detail to select how the portlet will display data. Table If you choose Table. or Traffic Light to select how the portlet will display the data. . Summary results in one row per metric.

Clicking a column header causes the data displayed in the table to be sorted by the selected column. About the Dashboard portlets The following is an alphabetical list of the portlets that are available in the Dashboard workspace: All JVMs Health All JVMs Threads Concurrent Active Thread Metrics Exception Seeker Grouped JVMs Health Grouped JVMs Threads Invocation Type Scalability JDBC Metrics JVM Health JVM List Leak Seeker Metrics Lock Seeker Metrics Memory Metrics Method Scalability Portal Server Metrics SQL Statements Findings Methods Invocations Findings Application Summary Statistics Top Business Transactions Top Instrumented Methods Top Methods by Invocation Type Work Times of Invocation Types About the JVM List portlet The JVM List portlet provides a list of the JVMs that the logged on user is authorized to view. Select No Legend to hide the legend. or displayed next to the Traffic Light icon. Chart height—Height of chart in pixels when portlet is viewed normally (not maximized).25.5. yellow. the following options can be configured: ■ ■ ■ ■ ■ ■ ■ Chart type—Type of chart and number of axes per chart. or to the right or left of the chart. according to the roles definitions. The metric value is compared to a user-configurable threshold to determine which icon to display. and the default for red icons is 0. Chart legend position—Location of chart legend above. Chart width—Width of chart in pixels when portlet is viewed normally (not maximized). the threshold for yellow icons in all portlets is 0. or green icon for each metric the portlet is displaying. By default. 4 5 6 7 Select the metrics that you want to see in the portlet. The JVM List portlet displays the following information: Find: JVM Name Status CPU (%) Find Next Heap (%) Filter Avail (%) . Click the portlet’s Leave Edit Preferences icon. Traffic Light Traffic Light uses a red. Chart legend maximum length—Maximum number of characters to appear in the chart legend for each metric. below. Maximized chart height—Height of chart in pixels when portlet is maximized. Multiple axes allows more than one metric to be plotted on a single graph. For a legend of unlimited length. You can also choose to see the actual metric value as a ToolTip. Maximized chart width—Width of chart in pixels when portlet is maximized. select the parameters. Click Save Changes. You can customize the threshold by selecting the comparison method and entering a new value in the threshold text fields. enter -1.Getting an overview of your environment in the Dashboard workspace About the Dashboard portlets 53 Chart If you choose Chart. If the portlet has configurable parameters.

See note above. . JVM Name Server hostname and JVM ID of the monitored JVM. 40%. 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. Average CPU percentage used during a time period. Average percent of the JVM heap in use. Scheduled system downtime entered into the Precise FocalPoint. A major garbage collection in Precise for J2EE reclaims more than a configurable percentage of the Java heap. chart. or traffic light formats using the metrics selected from the table below. Average amount of JVM heap space used during a time period. Throughput %CPU %Heap %Available %Planned Downtime Avg Heap Size Major GC Count Total GC Count About the All JVMs Threads portlet The All JVMs Threads portlet provides thread metrics for all JVMs that the logged on user is authorized to view. The service time measures server-side Java method completion. The number of method completions per second. The total number of garbage collections (major and minor) that occurred during the specified time. The All JVMs Health Metrics portlet displays the following information: Data values are displayed in table. Planned downtime does not negatively impact availability calculations. This portlet helps you compare the load on the JVMs. See note above. Table 3-1 Metric Service Time All JVMs Health metrics Description Average time in milliseconds for the displayed time frame that elapsed from when a request is sent to a server to the time a response for that request is generated. Average amount of available Java heap space over a time period. Clicking the JVM Name field selects this JVM and transfers data to the Activity workspace. The average size of the Java heap space over a time period. See note above.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. Status About the All JVMs Health portlet The All JVMs Health portlet provides summary metrics across all JVMs that the logged on user is authorized to view. according to the roles definitions. The number of major garbage collections that occurred during the specified time. Average percent of the time frame that the selected JVM was available. The averages displayed are averages over the last time slice analyzed. The table below shows the metrics that are available when displaying the All JVMs Health data. according to the roles definitions. CPU (%) Heap (%) Avail (%) Average percent of CPU time this JVM consumed. by default.

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. Thread metrics can help pinpoint performance problems since a large number of concurrent threads relative to the number of CPUs could slow performance. The number of threads that are active longer than a configurable amount of time. Table 3-2 Metric Concurrent Active Threads Long Running Threads All JVMs Threads metrics Description Number of top-level threads running simultaneously. Table 3-4 Metric Exception Stack Trace Message Thrown Class Exception Seeker Description The full stack trace of the thrown class. About the Exception Seeker portlet The Exception Seeker portlet displays the following information: Select JVM Current selected JVM from JVM List (drop-down list) Data values are displayed using the metrics selected from the table below. Table 3-3 Metric Concurrent Active Threads Long Running Threads Concurrent Active Threads Metrics Description Number of top-level threads running simultaneously. The table below shows the metrics that are available when displaying the Exception Seeker data.Getting an overview of your environment in the Dashboard workspace About the Dashboard portlets 55 The All JVMs Threads portlet displays the following information: Select JVM Current selected JVM from JVM List (drop-down list) Data values are displayed in table. The class name that was thrown. chart. The message that was set in the thrown class. About the Concurrent Active Thread Metrics portlet The Concurrent Active Thread Metrics portlet provides metrics on long-running and concurrent active threads for an instrumented JVM. The table below shows the metrics that are available when displaying the Concurrent Active Thread Metrics data. The number of threads that are active longer than a configurable amount of time. . chart. or traffic light formats using the metrics selected from the table below. This data gives an indication of how busy the system is and helps you to determine whether an application is misusing Java threads or if there are threads that are running over a long period of time. The Concurrent Active Thread Metrics portlet displays the following information: Select JVM Current selected JVM from JVM List (drop-down list) Data values are displayed in table.

The total number of garbage collections (major and minor) that occurred during the specified time. A major garbage collection in Precise for J2EE reclaims more than a configurable percentage of the Java heap. by default. You can include JVMs in the group using a semi-colon delimited list of regular expressions. Average amount of available heap space over a time period. in AdminPoint. The Grouped JVMs Health portlet displays the following information: Data values are displayed in table. 40%. Planned downtime does not negatively impact availability calculations.Getting an overview of your environment in the Dashboard workspace About the Dashboard portlets 56 Table 3-4 Metric Exception Seeker Description Number of times the exception occurred during the selected time frame. The class and method from which the class was thrown. Number of times the exception occurred during the selected time frame. The amount of time in percent consumed by the operating system actively processing instructions on behalf of a running method. chart. Exception Count Location Count Cause Stack Trace Root Last Exception Time About the Grouped JVMs Health portlet The Grouped JVMs Health portlet provides average metrics for a subset of JVMs in the current JVM list. entering ClusterNode* in the JVMs in Group field in the portlet preferences screen will include all JVMs whose IDs begin with ClusterNode in the group. The average size of the Java heap space over a time period. Throughput CPU (%) Heap (%) Available (%) Planned Downtime (%) Avg Heap Size Major GC Count Total GC Count . For example. Average amount of JVM heap space used during a time period. This parameter is not shown by default. You also use options in the Portlet Preferences page to display only the group metrics or metrics for both the group and individual JVMs. The exception cause (if available). The table below shows the metrics that are available when displaying the Grouped JVMs Health portlet as a chart. You use the portlet's Portlet Preferences page to set up the group and select the metrics to display. The root of the stack trace. Scheduled system downtime. The number of method completions per second. according to the settings in the Planned Downtime dialog for the J2EE technology. Table 3-5 Metric Service Time Grouped JVMs Health metrics Description Average time in milliseconds for the displayed time frame that elapsed from when a request is sent to a server to the time a response for that request is generated. The number of major garbage collections that occurred during the specified time. The service time measures server-side Java method completion. or traffic light formats using the metrics selected from the table below. The last time this class was thrown within the time frame (the last time the exception occurred). it can be enabled in the portlet settings.

or traffic light formats using the metrics selected from the table below. Table 3-7 Metric Service Time Invocation Type Scalability metrics Description The elapsed total time in seconds for completed service requests of the selected invocation type. The table below contains the metrics that are available when displaying the Invocation Type Scalability data. Table 3-6 Metric Concurrent Active Threads Long Running Threads Grouped JVMs Threads Description Number of top-level threads running simultaneously. if you enter ClusterNode. The total service time per execution over a period of time. Total CPU time per slice for the displayed item. chart. The Grouped JVMs Threads portlet displays the following information: Data values are displayed in table. Executions Service Time/Execution Throughput CPU Time CPU Time/Execution About the JDBC Metrics portlet The JDBC Metrics portlet provides metrics for the JDBC invocation type. These metrics help you determine if database activity is affecting application performance. You use the portlet's Portlet Preferences page to set up the group and select the metrics to display. This data helps you determine which invocation type may be affecting application performance. This metric measures when the request arrived at the server until the time a response to that request was sent from the server. About the Invocation Type Scalability portlet The Invocation Type Scalability portlet provides summary metrics about a specific invocation type. The number of threads that are active longer than a configurable amount of time. The number of method completions per second. This portlet helps you assess the load on JVMs in a named group. For example. you will include all JVMs whose IDs begin with ClusterNode. You can include JVMs in the group using a semi-colon delimited list of regular expressions. .Getting an overview of your environment in the Dashboard workspace About the Dashboard portlets 57 About the Grouped JVMs Threads portlet The Grouped JVMs Threads portlet provides average thread metrics for a subset of JVMs in the current JVM list.* in the group. The number of times a method was executed.* in the JVMs in Group field in the portlet's Portlet Preferences page. You use the portlet's Portlet Preferences page to choose the invocation type to monitor. You also use options in the Portlet Preferences page to display only the group metrics or metrics for both the group and individual JVMs. chart. This is the Average Service Time. The table below shows the metrics that are available when displaying the Grouped JVMs Threads portlet as a chart. or traffic light formats using the metrics selected from the table below. Average CPU time per slice for the displayed item. The Invocation Type Scalability portlet displays the following information: Select JVM Current selected JVM from JVM List (drop-down list) Data values are displayed in table.

by default. chart. The average work time per execution over a period of time. This is the Average Service Time. The service time is measured on the client side.) to execute. Performance contributions not directly accounted for with instrumentation. Average amount of available Java heap space over a time period. Throughput %CPU %Heap %Available %Planned Downtime Avg Heap Size Major GC Count Total GC Count . etc. Table 3-9 Metric Service Time JVM Health metrics Description Average time in milliseconds that elapsed from when a request is sent to a server to the time a response for that request is received. The number of major garbage collections that occurred during the specified time. in seconds that it took all instrumented JDBC methods of the specified type (updates. Average CPU percentage used during a time period. in other words the time that is not spent calling other instrumented methods. The table below shows the metrics that are available when displaying the JDBC data. The number of times a JDBC method was executed. The number of method completions per second. Work Time Executions Service Time/Execution Work Time/Execution Throughput About the JVM Health portlet The JVM Health portlet provides summary metrics for the selected JVM. 40%. The number of JDBC method completions per second.Getting an overview of your environment in the Dashboard workspace About the Dashboard portlets 58 The JDBC Metrics portlet displays the following information: Select JVM Current selected JVM from JVM List (drop-down list) Data values are displayed in table. The total service time per execution over a period of time. A major garbage collection in Precise for J2EE reclaims more than a configurable percentage of the Java heap. or traffic light formats using the metrics selected from the table below. Work time is unaccounted for time. The table below shows the metrics that are available when displaying the JVM Health data. queries. Average amount of JVM heap space used during a time period. Scheduled system downtime entered into the Precise FocalPoint. The average size of the Java heap space over a time period. chart. The total number of garbage collections (major and minor) that occurred during the specified time. or traffic light formats using the metrics selected from the table below. Table 3-8 Metric Service Time JDBC metrics Description The total time. Planned downtime does not negatively impact availability calculations. The JVM Health portlet displays the following information: Select JVM Current selected JVM from JVM List (drop-down list) Data values are displayed in table.

Best linear approximation of the growth of the collection size over time. or traffic light formats using the metrics selected from the table below. or string buffers with the largest number of elements or largest trend line from this list. collections. Table 3-10 Metric Object Count Leak Seeker metrics Description Total number of objects. in all live collections. arrays. or string buffers to display. The Leak Seeker portlet displays the following information: Select JVM Current selected JVM from JVM List (drop-down list) Data values are displayed in table. You use the portlet's Portlet Preferences page to configure the metrics for display. About the Memory Metrics portlet The Memory Metrics portlet provides memory information for instrumented JVMs. or elements. chart. . arrays. or string buffers. The Leak Seeker Metrics portlet displays the objects. The table below shows the metrics that are available when displaying Leak Seeker Metrics. collections. or traffic light formats using the metrics selected from the table below. arrays. Object Count Trend line Object Count Growth Rate (Objects per Minute) About the Lock Seeker Metrics portlet The Lock Seeker Metrics portlet provides metrics for lock acquisition time. chart. Total time spent acquiring locks in a given method during the specified time frame. See “About the Java Virtual Machine Settings page” on page 16. This portlet helps you determine rapidly if the monitored application is experiencing memory issues. arrays. You use the portlet's Portlet Preferences page to configure the number of objects. collections. The Lock Seeker Metrics portlet displays the following information: Select JVM Current selected JVM from JVM List (drop-down list) Data values are displayed in table. Table 3-11 Metric Lock Acquisitions Lock Acquisition Time Average Lock Acquisition Time Lock Seeker Metrics Description Number of lock acquisitions that were made in a given method during the specified time frame. or string buffers allocated at a particular site. You must configure the monitored JVM to collect Leak Seeker metrics to display these metrics in the Leak Seeker Metrics portlet. The table below shows the metrics that are available when displaying Lock Seeker Metrics as a chart.Getting an overview of your environment in the Dashboard workspace About the Dashboard portlets 59 About the Leak Seeker Metrics portlet The Leak Seeker Metrics portlet provides Leak Seeker metrics on Java objects. You can also select how the list is sorted. Rate of growth of the collection over time. The average amount of time spent per lock acquisition within a given method during the specified time frame.

or traffic light formats using the metrics selected from the table below. The maximum free Java heap space over a period of time The minimum Java heap used over a period of time. The total number of garbage collections (major and minor) that occurred during the specified time. . 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 Memory Metrics Description The average size of the Java heap space over a time period. The table below shows the metrics that are available when displaying the Method Scalability data. It is useful in cases where a known business process entry point method could be set up to track the scalability. The table below shows the metrics that are available when displaying the Memory Metrics as a chart. in seconds. 40%. The maximum Java heap size over a period of time. The Method Scalability portlet displays the following information: Select JVM Current selected JVM from JVM List (drop-down list) Data values are displayed in table. or traffic light formats using the metrics selected from the table below. by default. The minimum free Java heap space over a period of time. A major garbage collection in Precise for J2EE reclaims more than a configurable percentage of the Java heap. chart. The minimum Java heap size over a period of time. Only completions within the displayed time frame are displayed. The number of major garbage collections that occurred during the specified time. You use the portlet's Portlet Preferences page to configure the class and method to display. Table 3-13 Metric Service Time Method Scalability metrics Description The total time. chart.Getting an overview of your environment in the Dashboard workspace About the Dashboard portlets 60 The Memory Metrics portlet displays the following information: Select JVM Current selected JVM from JVM List (drop-down list) Data values are displayed in table. The average heap used over a period of time. Major GC Time Major GC Freed Total GC Count Total GC Freed About the Method Scalability portlet The Method Scalability portlet provides data on the behavior of a specific method. that it took the selected method to execute. The maximum Java heap used over a period of time. The amount (in MB) of Java heap memory that has been freed or released during a major garbage collection. The total amount (in MB) of unreferenced Java objects that have been freed/released during major/minor garbage collections. The average free heap (heap available for use) over a period of time. The total amount of time spent executing major garbage collections.

You use the portlet's Portlet Preferences page to configure the number of SQL statements to display. This portlet helps you identify rapidly which SQL statements are contributing to poor performance. The number of times the invocation type was executed. Performance contributions not directly accounted for with instrumentation.Getting an overview of your environment in the Dashboard workspace About the Dashboard portlets 61 Table 3-13 Metric Executions Method Scalability metrics Description The number of times the selected method was executed. You use the portlet's Portlet Preferences page to select the portlet invocation type to graph and how many invocations for that portlet the graph will show. from when a request was sent to a server until the time a response to that request was sent. This is the Average Service Time. in other words the time that is not spent calling other instrumented methods. Average CPU time per slice for the displayed item. Work time is unaccounted for time. The work time per execution over a period of time. You can use this portlet to spot performance problems in the portal server and its portlets. The total service time per execution over a period of time. chart. Total CPU time per slice for the displayed item. This is the Average Service Time. The SQL Statements portlet displays the following information: Select JVM Current selected JVM from JVM List (drop-down list) Data values are displayed in table. . or traffic light formats using the metrics selected from the table below. The portal and portlet invocations that are available for monitoring with this portlet depend on the monitored portal server's vendor and version. The Portal Server Metrics portlet displays the following information: Select JVM Current selected JVM from JVM List (drop-down list) Data values are displayed in table. The number of completions of the selected method per second. The table below shows the metrics that are available when displaying the Portal Server Metrics data. if the monitored JVM is a portal server. This is the Average Work Time. chart. Work Time Executions Service Time/Execution Work Time/Execution Throughput CPU Time CPU Time/Execution About the SQL Statements portlet The SQL Statements portlet displays service times for SQL statements. Table 3-14 Metric Service Time Portal Server Metrics Description The total time. or traffic light formats using the metrics selected from the table below. Average CPU time per slice for the displayed item. Service Time/Execution Throughput CPU Time CPU Time/Execution About the Portal Server Metrics portlet The Portal Server Metrics portlet provides metrics for the portal server and its portlets that are monitored by Precise for J2EE. The total service time per execution over a period of time. The number of invocations per second. Total CPU time per slice for the displayed item. that it took the selected invocation type to execute. in seconds.

The table below shows the parameters that can be configured for the Findings Application Summary portlet. See “About the Findings Administration page” on page 20. The total time. type. The SQL statement executed in the monitored JVM. the Findings Application Summary portlet displays data for the Category with Highest Rank for All Service requests. The SQL Unique ID is mainly used for diagnostic or troubleshooting purposes. that it took for the displayed SQL statement to execute. the portlet indicates that no contributors were found. You select the category. When you click the method name in the portlet. the Activity workspace Hotspots tab opens. in milliseconds. An internal ID used to track an SQL statement in Precise for J2EE. The list includes all Findings method categories listed below. and measurement.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. If there are no significant contributors for the category or type configured. you must configure the contributor category in the Findings Administration page as well as in the portlet's Portlet Preferences page. Table 3-15 Metric Start Time End Time SQL Unique ID SQL Statements metrics Description The start time of the time frame in which the SQL statement was monitored. and set severity thresholds and indicators for the portlet to display in the portlet's Portlet Preferences page. The end time of the time frame in which the SQL statement was monitored. The Findings – Category With the Highest Contribution for All Service Requests portlet displays the following information: Select JVM Current selected JVM from JVM List (drop-down list) Table headings with the metrics selected from the table below are displayed. By default. . SQL Statement Service time About the Findings Application Summary portlet The Findings Application Summary portlet uses a stoplight display to quickly indicate the severity of method contributors to application performance. Table 3-16 Parameter Measurement Findings Application Summary portlet metrics Description Selects one of the following metrics to display about the contributor: ■ ■ ■ ■ Service Time Work Time CPU Time CPU Work Time Type Selects one of the following types of service requests to display: ■ ■ ■ ■ ■ All Service Requests All Threads EJB Service Requests HTTP Service Requests Portal Service Requests Category Selects the category of contributor to display. For the Findings Application Summary portlet to display other method data.

All application contributor categories are displayed in the portlet. See “About the Findings Administration page” on page 20. The contributors are shown below. ExecuteQueue Idle Threads Shortage Concurrent Active Threads Garbage Collection Time Heap Used Memory JMS Server Messages Pending JMS Session Messages Pending Maximum Free Memory Database Connection Availability Leaked Database Connections Waiting For Database Connection About the Statistics portlet The Statistics portlet displays the value of statistics (application server metrics) collected from an instrumented JVM. you can configure the Statistics . the Statistics portlet can display the Heat Seeker statistic. you can display these statistics in the Statistics portlet. By default. The portlet has no editable preferences. This portlet has no configurable parameters. For the statistic that you select. However. If Precise for J2EE is reporting other Application Server Metrics in the Statistics workspace. The Findings Application Summary portlet contains a drop-down list that enables you to select a JVM. for the portlet to display the data. you must configure the contributor category in the Findings Administration page.Getting an overview of your environment in the Dashboard workspace About the Dashboard portlets 63 Findings Application Summary Categories Category With the Highest Rank WEBLOGIC Stateless Session EJB WEBLOGIC Stateful Session EJB WEBLOGIC Entity EJB WEBSPHERE EJB Cache WEBSPHERE Stateful Session EJB WEBSPHERE Entity EJB ORACLE Stateless Session EJB ORACLE Stateful Session EJB ORACLE Entry EJB JDBC Connection Pool SQL Acess JDBC Access EJB Access JNDI Access HTTP Access XML Access JMS Access Java Transaction Access Java IO Access Web Services Access Synchonized Access Application Methods About the Findings Application Summary portlet The Findings Application Summary portlet uses a stoplight display to quickly indicate the severity of application contributor categories to application performance. if this statistic is enabled in the Statistics Administration page. Contributors are displayed in the Findings Application Summary next to the Severity of each contributor.

Average CPU time per slice for the displayed item. This is the Average Service Time. Service Time/Execution The total service time per execution over a period of time. chart. In order to display data for business transactions. You use the portlet's Portlet Preferences page to choose the number of methods to display and whether the portlet will sort the selected methods by service time or work time. 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. The Top Business Transactions portlet displays the following information: Select JVM Current selected JVM from JVM List (drop-down list) Data values are displayed in table. About the Top Instrumented Methods portlet The Top Instrumented Methods portlet displays metrics for the methods with the top response or work times. you must configure at least one business transaction to display data in the Top Business Transactions portlet. chart. You use the portlet's Portlet Preferences page to choose the number of business transactions to display and how the portlet will sort the business transactions. This portlet helps you to rapidly identify methods for further investigation in the Activity workspace. or traffic light formats. Table 3-17 Metric Service Time Executions Top Business Transactions metrics Description Average elapsed time in seconds for completed service requests that are part of the business transaction.Getting an overview of your environment in the Dashboard workspace About the Dashboard portlets 64 portlet to show specific metrics. About the Top Business Transactions portlet The Top Business Transactions portlet displays metrics for the business transactions that have the highest response or work times. The table below contains the metrics that are available when displaying the Top Business Transactions data. . The number of times the method with the longest service times was executed. Throughput CPU Time CPU TIme/Execution The total number of method completions for the methods that are part of the business transaction. The Top Instrumented Methods portlet displays the following information: Select JVM Current selected JVM from JVM List (drop-down list) Data values are displayed in table. chart. See “About the Business Transactions Administration page” on page 27. This portlet helps you to quickly assess how users are experiencing key areas of your application. Total CPU time for the methods that are part of the business transaction. or traffic light formats using the metrics selected from the table below. or traffic light formats using the metrics selected from the table below.

Average CPU time per slice for the displayed item. The total service time per execution over a period of time. or traffic light formats using the metrics selected from the table below. in seconds. Table 3-18 Metric Service time Top Instrumented Methods metrics Description The total time. The number of method completions per second. Table 3-19 Metric Service time Top Methods by Invocation Type metrics Description The total time. The total service time per execution over a period of time. from when a request was sent to a server until the time a response to that request was sent. from when a request was sent to a server until the time a response to that request was sent. Performance contributions not directly accounted for with instrumentation. in other words the time that is not spent calling other instrumented methods. You use the portlet's Portlet Preferences page to select the invocation type and whether the portlet will sort the selected methods by service time or work time. The number of times the method with the longest service times for that invocation type was executed. Performance contributions not directly accounted for with instrumentation. The work time per execution over a period of time. This portlet helps you rapidly identify methods for further investigation in the Activity workspace. that it took the methods with the longest service times to execute. chart. The table below shows the metrics that are available when displaying the Top Methods by Invocation Type data. in seconds. The number of method completions per second. Average CPU time per slice for the displayed item. that it took the methods with the longest service times of that execution type to execute. Total CPU time per slice for the displayed item. Work Time Executions Service Time/Execution Work Time/Execution Throughput CPU Time CPU Time/Execution . Work time is unaccounted for time. Work time is unaccounted for time. in other words the time that is not spent calling other instrumented methods. This is the Average Work Time. This is the Average Service Time. Total CPU time per slice for the displayed item. Work Time Executions Service Time/Execution Work Time/Execution Throughput CPU Time CPU Time/Execution About the Top Methods by Invocation Type portlet The Top Methods by Invocation Type portlet lists methods that have the largest response or work times for a given invocation type. The work time per execution over a period of time. This is the Average Work Time. This is the Average Service Time. The Top Methods by Invocation portlet displays the following information: Select JVM Current selected JVM from JVM List (drop-down list) Data values are displayed in table.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. The number of times the method with the longest service times was executed.

The number of times methods of the invocation type were executed. Work time is unaccounted for time. In the Dashboard JVMs List portlet. Information on this JVM displays in other Dashboard portlets. in seconds. chart. The class name must include the full package name instrumented and displayed by Precise for J2EE. that the methods did not spend in instrumented contributors. that it took the methods with the longest service times for the displayed invocation type to execute. click Edit Preferences. from when a request was sent to a server until the time a response to that request was sent. The total time. Diagnosing scalability issues You can use the Dashboard workspace to check the scalability of your system. Table 3-20 Metric Work time Work Times of Invocation Types metrics Description The total time. To locate scalability bottlenecks 1 2 3 4 In the Precise for J2EE user interface. This is the Performance contribution not directly accounted for with instrumentation. or traffic light formats using the metrics selected from the table below. The combined class and method name text has to match class and method . Statistics.Getting an overview of your environment in the Dashboard workspace How to identify performance problems in the Dashboard workspace 66 About the Work Times of Invocation Types portlet The Work Times of Invocation Types portlet lists the work times broken down by invocation type. in seconds. The Dashboard portlets show many aspects of the health of monitored JVMs. If the Method Scalability portlet is not already displayed. You enter the class and methods separately. The work time per execution over a period of time. In the Method Scalability portlet. use Add Portlet to display it. or Memory workspaces where you locate more specific data and fully analyze the problem. The Work Times of Invocation portlet displays the following information: Select JVM Current selected JVM from JVM List (drop-down list) Data values are displayed in table. Service time Executions Work time per execution Service time per execution CPU Time CPU Time/Execution How to identify performance problems in the Dashboard workspace The Dashboard workspace enables you to quickly view the health and key performance data for the JVMs you are monitoring. This port helps you rapidly identify the invocation type (HTTP or custom) that has the highest work times. enter a method related to the critical business process that you are monitoring. This is the Average Service Time. click Dashboard to open the Dashboard workspace. This is the Average Work Time. In the Portlet Preferences page Class Name to Report and Method Name to Report fields. Total CPU time per slice for the displayed item. Average CPU time per slice for the displayed item. in other words the time that is not spent calling other instrumented methods. click a JVM you are monitoring. The total service time per execution over a period of time. The table below shows the metrics that are available when displaying Work Times of Invocation Types data. You can use the Dashboard to identify likely causes of performance problems before switching to the Activity.

high %CPU may contribute to a poor end-user experience. click %CPU to sort the JVMs by their %CPU usage.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. use Add Portlet to display it. indicates a possible CPU bottleneck. look at the service times for the method. This portlet helps you assess the end-user experience during high CPU usage. over 85%. click %Heap to sort the JVMs by their %Heap usage. Information on this JVM displays in other Dashboard portlets. Compare the portlet graphs to the JVM %CPU graph in the JVM Health portlet. for example. look at the CPU and Heap Usage graph. This portlet helps you assess the end-user experience during high CPU usage. but when entering the class and method names in the Portlet Preferences page omit the period. the JVM may be operating normally for the environment and load. 5 6 Save and close the Portlet Preferences page. use Add Portlet to display it. look at the CPU usage. During peak loads. To identify a JVM whose CPU resources are a constraint 1 2 In the Precise for J2EE user interface. In the JVM Health portlet. Then wait until the GUI is updated with data for the next time slice. click Dashboard to open the Dashboard workspace. click Portlet Preferences to configure the portlet for the invocation type. For all types of methods. you can use the Activity and Statistics workspaces to get a deeper understanding of the problem. In the Dashboard JVMs List portlet. In the Dashboard Method Scalability portlet. For methods of type JDBC. 3 4 5 Identifying a memory bottleneck You can use the Dashboard workspace to identify and locate memory bottlenecks. use Add Portlet to display it. If the Invocation Type Scalability portlet is not already displayed. use the Statistics workspace to look at database connection pools. use the Hotspots tab in the Activity workspace to assist with the analysis. To identify a JVM whose memory resources are a constraint 1 2 In the Precise for J2EE user interface. A JVM with high %Heap usage may be doing excessive garbage collections. 3 4 5 6 . further investigate the method’s behavior in the Statistics workspace (if Application Server Metrics are configured) by examining the EJB pool and cache sizes. Then configure the portlet for the invocation type. Consistently high %CPU usage. Inspect the JVMs' %Heap and click a JVM that you consider to have high %Heap usage. click Dashboard to open the Dashboard workspace. ■ ■ Identifying a CPU bottleneck You can use the Dashboard workspace to identify CPU bottlenecks and assess the end-user experience during high CPU usage. Is the request Throughput low or decreasing and is the request Service Time high or increasing during the same period that the %CPU is high? If the answer is 'no' then the high %CPU is not correlated to an end-user problem. In the Invocation Type Scalability portlet. In other cases. the system may be operating at a peak load. A good rule of thumb is to have about 20% of your CPU reserved to absorb a peak load. ■ If the method is an EJB type. In the JVM Health portlet. Information on this JVM displays in other Dashboard portlets. If the answer is 'yes' then you may have a CPU bottleneck that is contributing to a poor end-user experience and you should ask a developer or architect whether the CPU usage and end-user experience are normal for the load. If the JVM Health portlet is not already displayed. use Add Portlet to display it. If the Invocation Type Scalability portlet is not already displayed. If the JVM Health portlet is not already displayed. If the method has high service times. In the Dashboard JVM List portlet. In other cases. Inspect the JVMs' %CPU and click a JVM that you consider to have high %CPU usage.

If so. HTTP or JDBC. If the Work Time of Invocation Types portlet is not already displayed. High response times. for example. 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'. click Dashboard to open the Dashboard workspace. examine the kinds of activities. If the Memory Metrics portlet is not already displayed. Use these portlets to identify the JVMs that appear to be heavily loaded. high CPU. The All JVMs Threads portlet shows threads for all monitored JVMs simultaneously. and Total GC Freed metrics. that are consuming the largest amounts of time in that JVM. If the Work Time for Invocation Type portlet is not displayed. Total GC Count. In the Memory Metrics portlet. use Add Portlet to display them. If the All JVMs Health and All JVMs Threads portlets are not already displayed. and end-user experience are normal for the load. Average Heap Used. Long-running threads are determined by a default setting in the Precise for J2EE Collector to be those threads active for more than 60 seconds (this default can be overridden with a command-line argument to the collector). click Edit Preferences. use Add Portlet to display it. Analyze these metrics to understand how busy the system is reclaiming memory and whether the end-user experience is suffering as a result. In the Portlet Preferences page. In the Work Time of Invocation Types portlet. or high thread counts are all potential indicators of a heavily loaded JVM.Getting an overview of your environment in the Dashboard workspace How to identify performance problems in the Dashboard workspace 68 7 Compare the portlet graphs to the JVM %Heap in the JVM Health portlet. then the high %Heap is not correlated to an end-user problem. In the All JVMs Threads portlet. A consistent number of long-running threads may indicate the normal presence of the running of background services. Detecting a service backlog A large number of active or long-running threads suggests a possible service backlog and scalability issue. Major CG Count. click Portlet Preferences to configure the portlet to show Average Heap Size. If the All JVMs Threads portlet is not displayed. If the answer is 'yes' then a memory bottleneck may be contributing to a poor end-user experience. configure the All JVMs Threads portlet to show Concurrent Active and Long Running Threads. click Dashboard to open the Dashboard workspace. use Add Portlet to display it. click a JVM to investigate. garbage collection time. use Add Portlet to display it. 5 . Note the invocation type having the highest work time. Numerous and increasing concurrent active threads indicate that there may be service delays as each thread waits to be serviced. These invocations may be responsible for the backlog and should be further analyzed in the Activity workspace. To view the number of active threads 1 2 3 4 In the Precise for J2EE user interface. This portlet helps you assess the end-user impact of garbage collections. To identify which tier is contributing to poor JVM health 1 2 3 4 5 6 In the Precise for J2EE user interface. In the Monitored JVMs List portlet. use Add Portlet to display it. GC Freed. In other cases. investigate tuning the JVM memory settings. the system may be operating normally and you should ask a developer or architect whether the Heap usage. 8 9 10 Identifying which tier has a bottleneck You can use the Dashboard workspace to locate the tier in which a bottleneck occurs. Numerous or fluctuating numbers of long-running threads indicate that threads are waiting or are busy for a long period of time and may indicate a service bottleneck.

from another Servlet or JSP) are called HTTP invocations. EJB. the first HTTP invocation to occur in a given invocation context. These pages form the Activity workspace. that is. and Portlet service requests that the Precise for J2EE Collector collects: ■ ■ ■ ■ ■ Service time CPU time Throughput URIs Other Invocations. The top-level HTTP request serves as the entry point into the application server. Java Servlets and JSPs usually contain presentation logic and invoke business logic in EJBs. and portlet service requests The following are among the wide variety of performance data on HTTP. EJB. forwards this data to the Archive Agent.g.Chapter 4 Examining performance over time in the Activity workspace This section includes the following topics: ■ ■ ■ About the Activity workspace About Activity workspace tabs How the Activity workspace can help you identify performance problems About the Activity workspace The Precise for J2EE Collector agent collects. HTTP service requests are top-level HTTP invocations. at the expiration of the aggregation interval. HTTP requests invoked from outside the JVM are called external HTTP service requests and requests invoked from inside the JVM (e. and summarizes data on specific data entities and. correlates. HTTP service requests . either displayed as direct contributors or as Work Time Dispatched by the application server to Java Servlets and JSPs.. About Java virtual machines The Precise for J2EE Collector collects the following performance data from one or more Java Virtual Machines running on an application server: ■ Concurrent active thread processing levels About HTTP. The Archive Agent stores this data to enable the user interface to publish Web pages containing performance reports.

In some reports. For example.. About URI. and method names Java Servlets. Although these groups vary by application server vendor. from another EJB) are called EJB invocations. examples of some of the common invocation types are: PORTAL_GATEWAY: The servlet and set of classes that act as controller servlet. PORTAL: Invocations that provide general portal services. PORTAL_CACHE: Invocations that provide caching services. and Portlet requests invoked from inside the JVM (e. doEdit. processAction. Beans. respectively. or JDBC calls. and other HTTP invocations (internally called Servlets and JSPs). Portlet requests invoked from outside the JVM are called Portlet service requests.. Precise for J2EE groups custom type invocations based on the services they provide. the portlet interface typically contains methods such as doView. top level invocations) by displaying their URIs. Java class. PORTAL_AUTHENTICATION: The sets of classes and invocations that provide authentication services for a portal server. A way to execute SQL queries in a database and to receive the results. the application uses the Java method URL Connection and it is custom instrumented. Portlet service requests are top-level Portlet invocations. Since many URIs may be bound to a Java class by the application server. Precise for J2EE also identifies service requests (i. About invocations The Precise for J2EE Collector collects performance data on all instrumented and sampled Java method invocations. These forward the requests to the appropriate Portlets. The top-level EJB request serves as the entry point into the application server.e. JSPs. EJB or Portlet option causes all invocations to be filtered by their root caller's type.. EJBs that are invoked from within another EJB service request (internally) are displayed as type EJB. all tabs will display data for the trees initiated by an HTTP service request. The Java byte-code is organized into Java classes and methods. and those EJB calls that run remotely are displayed as type EJBRem. Typically invoke numerous JDBC methods and other EJB methods. the first Portlet invocation to occur in a given invocation context which serves as the entry point into the application server. EJB service requests are top-level EJB invocations. Selecting the HTTP. If. the first EJB invocation to occur in a given invocation context. from another Portlet) are called Portlet invocations. JDBC. The All Threads option is selected by default.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. Precise for J2EE displays the first URI it detects. For supported portal servers. that is. or doLogin. for example. EJBs typically contain business logic and invoke other EJBs and JDBC calls to a database. Precise for J2EE identifies invocations by displaying their class and method names. EJB service requests JBDC invocations JCo invocations . and EJB requests are resolved by the application server into executable Java byte-code. Contributor invocations are invocations that contribute to the performance of other higher level invocations. The Root Activity Type drop-down list lets you control the displayed call trees. HTTP invocations that run remotely are not shown explicitly but are referred to as “Work Time”. Portal service requests In a portal server. A way to invoke SAP transactions from Java. that have clearly defined tasks and which invoke other Portlets. doConfigure. when the HTTP option is selected. and displays all invocations regardless of where they are invoked from. HTTP invocations displayed in a Precise for J2EE page must run inside the monitored JVM. and EJB requests invoked from inside the JVM (e. that is. EJB requests invoked from outside the JVM are called external EJB service requests. custom methods. HTTP service requests (top level Servlet and JSP invocations) Typically invoke numerous EJBs.g. the remote HTTP invocation will be shown explicitly as a custom invocation. contributor invocations are grouped by one of the following types.g.

if there are two contexts used to invoke an EJB service request. performance metrics unique to each EJB invocation will be displayed in each of the contexts. you can spot a specific slow hot spot. An invocation context is a sequence of Java invocations. Note: Refer to the Precise Administration Guide to learn how to enable custom instrumentation. The navigation between Deep Summary and Per Caller (detailed) views is based on a filtering mechanism. Custom threads are not categorized as service requests. this changes the selected entity of the Activity workspace and all tabs data now refers to the newly selected entity. The selected entity name is shown in the title (to the left of the tabs display). A subset of Work Time is Lock Time. it is reflected in the Call Path near the Time Frame display. Whenever you wish to focus on an entity in the Deep Summary view (which is by definition an aggregated entity). when a specific method is selected. In addition. a call path of instrumented methods that identifies a unique location within the instrumented application. or clear the path to return to the JVM level. About invocation context Precise for J2EE displays performance metrics for every unique invocation context. Furthermore. when viewing Hotspots Deep Summary view on the JVM level. The SQL tab provides a Deep Summary view of all statements invoked somewhere under the selected method. You can then select a specific context and drill into it. For example. Lock Seeker tracks the time that a thread takes to acquire a lock. Reporting Lock Time as a component of Work Time enables Work Time to be a more accurate view of what is contributing to an application's performance.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). you can click on its hyperlinked text which will bring you to the Per Caller view with an activated filter. you can drill into a specific context of the hot spot by clicking on it. The tabs data is always adjusted to the context. the EJB name will be displayed twice (once for each context) in the EJB service request page. For example. You can display the invocation's context by clicking on the "Call Path" drop-down list on the top left corner of the workspace. which is collected by the Lock Seeker feature. For example. if there is more than one context used to invoke an EJB. When in the Per Caller view. including raw method instructions. About Work Time Precise for J2EE displays some performance metrics as Work Time for performance contributions that are not explicitly accounted for with application instrumentation. You can click it to navigate to the Per Caller view and see all of its underlying contexts. now the selected entity is the method (context) and not the entire JVM (all tabs show data in context of the selected method). The following analysis tabs are displayed in the Activity workspace: ■ ■ Highlights Hotspots . along with a detailed view showing all statements with their caller contexts. but provides both a deep and a shallow view into the underlying call tree. You can also click on any entry in the Call Path to navigate to its context (will become selected entity). The context is used by Precise for J2EE to differentiate the same Java invocations called from multiple locations. The filter will show the different contexts of that specific aggregated entity only. giving an idea of how much time lock acquisition contributes to a method's performance. the Highlights tab shows its service time deep breakdown into predefined components and displays Findings of the problems detected in the method's underlying call tree. About Activity workspace tabs An important concept while viewing Activity tab data is that all tabs display data in context of a selected entity (either JVM or specific method).

Examining performance over time in the Activity workspace About Activity workspace tabs ■ ■ ■ 72 Deep Summary Per Caller Call Graph ■ ■ ■ Invocations Business SQL ■ ■ Deep Summary Per Caller Deep Summary Per Caller Deep Summary Per Caller ■ Locks ■ ■ ■ Exceptions ■ ■ About the Highlights tab The Highlights tab in the Activity workspace displays service time deep breakdown into invocation types (such as: HTTP.). and Root Activity Type). etc. additional types (such as: JNDI) are possible. Service Times (Summed) Breakdown HTTP EJB JDBC Portlet Lock . Locks. Deep aggregation of the work time of all JDBC calls under a selected context. Findings are integrated into the performance data views to provide a better guidance and quicker problem resolution. click the Highlights tab (default tab). This view reveals performance problems of the entire call tree underlying beneath the specific context. To open the Highlights tab 1 2 Select the required parameters in the Status bar (Time Frame. Table 4-1 Item Data in the Service Times Breakdown graphs Description The total service time of the selected JVM or invocation broken into its components by deeply summarizing work times of each invocation type (such as: HTTP. Deep aggregation of the work time of all Portlet service requests and invocations under a selected context. Deep aggregation of the locking time under a selected context. etc. Note: A partial data list is shown in the table. Instance. JDBC. Deep aggregation of the work time of all EJB service requests and invocations under a selected context. JDBC. EJB.) of the selected entity (JVM or method) along with in context Findings. All findings are shown in context. See the Precise Administration Guide. locks. In the Activity workspace. The table below describes the data displayed in the main graphs (overtime and summarized) in the Highlights tab. Deep aggregation of the work time of all HTTP service requests and invocations under a selected context. EJB. meaning that for each selected method the findings table will show problems detected in that method or in its descendants.

Deep aggregation of work time of all invocations of the user defined type under a selected context. green . average service time. You can re-sort the list of methods by clicking on the column headings. (Work Time measurements include a call's work time. For JVM related findings (statistics). User Defined type The table below describes the Findings table columns displayed in the Highlights tab.) The Hotspots tab provides a “flat” view of the contributing methods from the entire sub call tree. the HotSpots tab lists the methods in descending order from those with the greatest time percentage to those with the least percentage of the selected measure. rank is based on the deviation from predefined thresholds. Processing time of the context (invocation) as a percentage out of the selected entity's (JVM or invocation) service time. or a specific invocation context. The following table shows the list of possible columns to display in the Hotspots table (different views display different columns): Table 4-3 Item Table columns in the Hotspots tab Description Deep Summary View + (default) - Per Caller View + (default) - Call Graph View + (default) + (default) Method Name Findings Category Work Time (%) The full name of the invocation. it can be either a JVM-related finding or a specific invocation context. Deep aggregation of the work time of all JCo invocations under a selected context. The percentage for a method includes the method’s time everywhere it is executed within the current context (throughout the underlying methods call tree). when Service Time and CPU Time are the selected measurements. Table 4-2 Item Rank (Default) Findings table columns in the Highlights tab Description The severity of a finding in terms of acuteness to application performance (red . Invocations + (default) + (default) + (default) . total number of invocations. By default. Number of context’s executions. This view provides direct shortcuts into the tree’s deeper slow invocations by quickly displaying them (rather than drilling into each and every method in the call path via the Invocations tab). Context (Default) Work Time (%) (Default) About the Hotspots tab The HotSpots tab displays instrumented methods ranked by the percent of their contribution to the performance of the current context. Location where a performance problem occurred. Processing time of the context (invocation) as a percentage out of the selected entity’s JVM-related finding. the HotSpots tab displays the method's aggregate contribution percentage of the selected metric. yellow medium. This view (together with Highlights) is very useful for pinpointing problems and reducing the time to resolution. Classifies grouping performance problems.Examining performance over time in the Activity workspace About Activity workspace tabs 73 Table 4-1 Item Custom JCo Data in the Service Times Breakdown graphs Description Deep aggregation of work time for all custom invocations under a selected context. excluding recursion. For each method. average CPU time. For a method-related findings rank is based on the work time contribution in terms of % out of total service time.high. Context names that are too long to display are automatically shortened using ellipses.low). and CPU Bound percentage (ratio of the CPU time to the service time).

Examining performance over time in the Activity workspace About Activity workspace tabs 74 Table 4-3 Item Table columns in the Hotspots tab Description Deep Summary View Per Caller View - Call Graph View + (default) Service Time (%) The percentage of the context’s service time out of the selected entity’s (JVM or invocation) service time. creating new indexes. and then focus on their underlying contexts by using the Hotspots . The CPU time includes time spent locally (work time) plus all CPU time in instrumented calls. if Method A is invoked from Method B and Method C. It is advised to first locate the heaviest hot spots of interest in this view. The root method of the invocation tree from which the method was called. The context’s average service time. The context’s accumulated service times. The CPU time includes time spent locally (work time) plus all CPU time in instrumented calls. Can be activated from any DML (Data Manipulation Language) statement. 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. + (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. including the invocation time or CPU time. + + - Summed CPU Times (ms) The total amount of time consumed by the operating system actively processing instructions on behalf of a running method. + + + Invocation Context - + - Advice In Precise for Oracle. changing existing indexes. For example. The context’s accumulated work times. If you are looking for high CPU consumers per method this is the metric to use. an algorithm that is designed to recommend on gathering statistics. + (default) + (default) + + Caller Root Caller - + (default) + (default) About the Hotspots . The type assigned to the monitored method.Deep Summary view provides a comprehensive insight into the different existing hot spots without repeating them for each context. and adding or deleting hints to make Oracle's Optimizer choose a better access path and make the statement perform better.Per Caller view. The context within which a method is invoked. - - - Type Summed Work Times (ms) Summed CPU Work Times (ms) + + (default) + + (default) + + The total time spent on everything not directly + accounted for by instrumentation.Deep Summary view The Hotspots . The direct method that called this method. .

there will be several rows displayed for it (one per call path). updates the position of the box outline in the Full View panel.Call Graph view The Hotspots .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. click on the "method name hyperlink" . About the Hotspots . click the Hotspots tab. its ToolTip will show the distinct call path that invoked it. and click on the specific row in the Deep Summary View table.. and it is a hot spot. sort by a different column and the graph will change accordingly. Arrows connecting the nodes represent the call path relationship between methods. click the Hotspots tab. Alternatively. and then click Deep Summary (default screen). The box outline represents the portion of the Call Graph that is displayed in the Focus View. medium. This graph displays the metric by which the table is sorted. See “About the Findings Administration page” on page 20. or into its caller context. low.Call Graph view provides a visual representation of the application’s instrumented method calls for the selected time frame and context.Call Graph view is divided into two panels: Full View and Focus View. Clicking on a node in the Focus View filters the hotspots table to contain a selected method only (with all its contexts). You can adjust the Focus View by clicking in the Full View. provides a small-scale view of the entire Call Graph that was analyzed. The Hotspots . and then click Per Caller. Or in the Activity workspace. at the right of the Call Graph view. Panning in the Focus View. you can continue its investigation by following provided launches. The top n hot spots are displayed in the overtime graph. or clicking a method's color icon column in the hotspots table row. at the center of the Call Graph tab. In other words. The Hotspots .Per Caller view displays all hot spots with their separate contexts. To view all separate contexts of a specific aggregated hot spot.Per Caller view displays Hotspots Summarized by Name and Call Path. About the Invocations tab The Invocations tab displays the method invocations in context.the “Per Caller” view opens showing only relevant contexts (by using a filter). together with a complete hotspots list (table).Per Caller view 1 2 In the Activity workspace. The colors of the nodes and the percentage labels on the arrows indicate the method’s contribution to the SmarTune context’s time. About the Focus View panel The Focus View panel. and then click Call Graph. . Once a particular hot spot of interest is identified. To open the Hotspots – Call Graph view 1 In the Activity workspace. Even though the method name will be the same. You can either launch into the hot spot’s context. or very low are set in the Findings Administration page. if a method was called from different call paths in the invocations tree. The Hotspots – Call Graph view displays hotspots Call Graph. About the Full View panel The Full View panel. click the Hotspots tab. you can access "Per Caller" view directly by not filtering out any hot spots To open the Hotspots . About the Hotspots . Clicking in the Full View panel positions the box outline and selects an area of the Call Graph for display in the Focus View panel. provides a large-scale view of the portion of the Call Graph within the box outline in the Full View panel. Thresholds for identifying a method’s contribution as: high.Per Caller view The Hotspots . or by using the eight pan controls. Nodes in the Call Graph represent methods in the current SmarTune context.

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. If an invocation is active across an aggregation interval boundary. EJB. and Portlet Service Requests views display performance metrics that summarize EJB. click the Invocations tab. the invoked methods will no longer be top-level invocations and will be contained within the caller top-level invocation. the active threads measurement is two. the active threads measurement is 0. This graph shows the metric by which the table is sorted. A bar or line graph is also displayed to enable you to easily compare performance metrics. Displayed when “All Threads” is selected in the Root Activity Type combo box only. When the Root Activity Type drop-down list is used. EJB. The percentage of the method’s CPU time from the method which called it. HTTP. For portal servers. Clicking the portlet name displays the methods it invoked. Note: In some cases. JDBC. when instrumentation of a caller method is omitted. Each point in the graph is the average value for that slice. the callee) are shown in this page as separate top-level invocations. Clicking on the portlet name displays the methods it invokes. The Invocations tab displays Method Invocations in Context. and is a unique invocation context. The context’s accumulated service times. If one thread is active for half of the display interval. or Custom. The percentage of the method’s service time from the method which called it. For example. Number of context’s executions. the Concurrent Active Threads (CATs) measurement will account for the long running invocation. JCo. When your displayed time range is a time series. Displayed when HTTP is selected in the Root Activity Type combo box only. In contrast. invocation service times are reported only when the invocation completes. Click on the hyperlinked invocation name to navigate (drill down) to the invocation details and analyze contributors to the invocation of interest.5. The top n methods are displayed in the overtime graph. . These pages provide a good view of dynamically-generated pages used to enter the monitored application. it is easy to filter invocations for the specific type of the top-level service request. the metric displayed in the table is an average across all slices. Each service request is identified by its Java class and method name. it can be added using the column chooser icon displayed to the right of the table). sort by a different column and the graph will change accordingly. The full name of the invocation. Threads are named using their top-level invocation class and method names. Measurements are displayed for all top-level invocation types including: HTTP. Table 4-4 Item Chart Legend Color Method Name URI Type Avg Service Time (ms) Invocations Summed Service Times (ms) % Service Time % CPU Time Default table columns in the Invocations tab Description Color icon showing the color representing the row in the graph. the invocations are listed by the portlet name. The Concurrent Active Threads (CATs) measurement indicates how busy the system was during a slice or series (not shown by default. To open the Invocations tab 1 In the Activity workspace. the Portal Service Requests page lists the portlet name. For portal servers. portlet. Furthermore. The table below describes the data displayed in the Invocations tab. the methods invoked by the caller (that is. if two threads are active for the entire display interval. The HTTP. when the caller is instrumented. and portlet service request invocations. The context’s average service time.

Invocations About the SQL tab The SQL tab displays a list of the top SQL statements with their JDBC times and executions. The ToolTip provides the complete text. A ToolTip on the SQL text column provides a complete call path to the method that invoked this statement. you can click on the text’s hyperlink to access the Per Caller view. The context’s maximum service time. at least one business transaction must be created for the selected JVM. This is a result of changes in instrumentation made by Adaptive Instrumentation or Over-Instrumentation Protection. Table 4-5 Item Business Transaction Avg Service Time (ms) Max Service Time (ms) Avg CPU Time (ms) Default table columns in the Business tab Description The user defined name that identifies a business transaction. If you find a problematic SQL statement. you may notice that data on a business transaction changes or disappears. The text of the SQL statement.Examining performance over time in the Activity workspace About Activity workspace tabs 77 About the Business tab The Business tab contains aggregated data for the methods included in business transactions that contributed to response time during the current time frame. you can also print the text of the page. and ask him to optimize its performance. Table 4-6 Item Possible table columns in the SQL tab Description Deep Summary View + (default) + (default) Per Caller View + (default) + (default) Chart Legend Color SQL Text Color icon showing the color representing the row in the graph. In order to display data for business transactions. or the data displayed may be incomplete. Clicking a business transaction in the Business tab displays the methods that were included in the business transaction (by launching to the Invocations tab). Note: At times. click the Business tab. The context’s average service time. The table below describes the table columns displayed in the Business tab. Once you identify a statement that you wish to analyze. See “About the Business Transactions Administration page” on page 27. For example. especially useful when the text is long and concatenated. if Adaptive Instrumentation was run after the business transaction was created. The following table shows the list of possible columns to display in the SQL tab table (different views display different columns). The tab is divided into Deep Summary and Per Caller views. in order to meet the overhead budget. To open the Business tab 1 In the Activity workspace. . As a result. take it to your DBA. The average amount of time in milliseconds consumed by the operating system actively processing instructions on behalf of a running method. the business transaction will not display data. Adaptive Instrumentation may have disabled instrumentation for methods that were included in the business transaction. Number of context’s executions. The Per Caller view will be filtered to show all that statement’s appearances (contexts). An overtime graph shows the top statements for a selected measurement.

or launch its caller or root caller context for reviewing all statements and additional information in that context. This graph shows the metric by which the table is sorted. number of executions. About the Single SQL Statement screen If Precise for any DB product (Oracle. along with the JDBC time overtime graph. full text and more. and then click Per Caller. SQL Server. The average service time that is attributed to invoking JDBC calls. Since many of the statements are invoked from the same JDBC methods. This launching capability allows the DBA to quickly find the SQL statement. relevant for HTTP requests as the root activities. DB2) is installed.Deep Summary view The SQL . a root caller is also displayed to provide a more complete context.Per Caller view The SQL . This view provides a top-down overview of the statements executed somewhere along the call tree. the Single SQL Statement view is displayed. The SQL – Deep Summary view displays SQLs Summarized by Statement. click the SQL tab. . once you drill into a single SQL statement. To open the SQL . and then click Deep Summary. To open the SQL . you will see an Precise launch button on the upper right part of the screen.Deep Summary view shows statements aggregated by their SQL text (not depending on any specific invocation context). About the SQL . You can either drill to focus on the single SQL statement. The URI of the Root Caller. Number of times the statement was invoked during the time frame. and tune its performance. Whenever the SQL text hyperlink is clicked in the Per Caller view. sort by a different column and the graph will change accordingly.Per Caller view provides a more detailed statements list showing statements aggregated both by text and caller method. This graph shows the metric by which the table is sorted.Per Caller view 1 In the Activity workspace. click the SQL tab.Examining performance over time in the Activity workspace About Activity workspace tabs 78 Table 4-6 Item Possible table columns in the SQL tab Description Deep Summary View + (default) Per Caller View + (default) Summed JDBC Times (ms) The summed service times that are attributed to invoking JDBC calls.Deep Summary view 1 In the Activity workspace. The SQL – Per Caller view displays SQL Statements Grouped by Statement and Caller. The method that is directly invoking the statement. such as: JDBC time. The top n SQL statements are displayed in the overtime graph. This view displays statement details. below the selected JVM or method. The top n SQL statements are displayed in the overtime graph. Avg JDBC Time (ms) + (default) + (default) SQL Executions + (default) + (default) Root Caller URI - + + About the SQL . Sybase. sort by a different column and the graph will change accordingly. analyze it. Click the button to open that Precise for product in the context of the displayed SQL statement.

the Locks tab shows the average lock acquisition time. see “About the Locks tab” on page 79. ) } The tab is divided into Deep Summary and Per Caller views.. you can click on its name hyperlink to access the Per Caller view.. For example: Public void foo(){ //run some code. The top level method that started the chain that ultimately invoked the locking method. The following table shows the list of possible columns to display in the Locks tab table (different views display different columns). EJB. Table 4-7 Item Table columns in the Locks tab Description Deep Summary View + (default) + (default) Per Caller View + (default) + (default) Chart Legend Color Data Source Color icon showing the color representing the row in the graph.(default) . in order to enable the developer to distinguish between the two lock events. The lock identifier.. In that case. For each context. The Per Caller view will be filtered to show all of that lock’s appearances (contexts). The “lock” identifier is calculated at runtime. Once you identify a lock you wish to analyze. The total time it takes a method to acquire a lock. JDBC. For calculation. It is possible to use the same object more than once during the same method. the number of locks acquired. The displayed invocation types may include: HTTP... // and then we need to have another synchronized block.. It is based on the object name that is being locked (synchronized). Precise for J2EE adds an index for each of the lock events. Avg Lock Time (ms) Lock Acquisitions Summed Lock Time (ms) Root Caller Type + (default) + (default) + (default) - + (default) + (default) + (default) + Root Caller - + Caller - . Synchronized (myLockObject){// will be labeled as myLockObject+0 //run some synchronized code. locking the same object as before Synchronized (myLockObject){// will be labeled as myLockObject+1 // run some more synchronized code. The average time it takes a method to acquire a lock. The type of root caller invocation. EJB Remote. Custom and more. and the total lock time. The method that is directly invoking the locking method.Examining performance over time in the Activity workspace About Activity workspace tabs 79 About the Locks tab The Locks tab shows the methods that have the longest average lock acquisition time across the application for the given time frame and context... ) //run some more code. The number of successful lock acquisitions.

Examining performance over time in the Activity workspace About Activity workspace tabs 80 About the Locks . regarding configuring exception seeker options. See Precise Administration Guide.Deep Summary view shows locks aggregated by their name (not depending on any specific invocation context). To open the Locks . In addition.Per Caller view provides a more detailed list. Number of times that an exception occurred during the selected time frame. The top n locks are displayed in the overtime graph. The top n locks are displayed in the overtime graph. Once you identify an exception you wish to analyze. This graph shows the metric by which the table is sorted. Precise for J2EE displays both deep and shallow views of exceptions thrown from the current context (usually JVM or method). About the Locks . The Locks – Deep Summary view displays Locking Methods Summarized by Name. and then click Per Caller. The exceptions can be seen in the Activity workspace under the Exceptions tab. Exception Count + (default) + (default) Exception Message Exception Cause - + (default) + . This graph displays the metric by which the table is sorted. The exception cause (if available). To open the Locks . The tab is divided into Deep Summary and Per Caller views. based on the instrumentation configuration (switched off by default) and filtering criteria. sort by a different column and the graph will change accordingly. showing locks aggregated both by text and caller method.Deep Summary view 1 In the Activity workspace.Per Caller view The Locks .Deep Summary view The Locks . The Per Caller view will be filtered to show all exceptions. The message that was set in the thrown class. You can launch to any method in the call path. click the Locks tab. The class name that was thrown. sort by a different column and the graph will change accordingly. you can click on its name hyperlink to access the Per Caller view. and then click Deep Summary. Appendix A. A ToolTip on the data source column provides a complete call path to the method that invoked this lock. Table 4-8 Item Possible table columns in the Exceptions tab Description Deep Summary View + (default) + (default) - Per Caller View + (default) + (default) + (default) Chart Legend Color Thrown Class Location Color icon showing the color representing the row in the graph. You can launch the lock's caller method for reviewing all locks and additional information in that context. This view provides a top-down overview of the locks acquired somewhere along the call tree below the selected JVM or method. The following table shows the list of possible columns to display in the exceptions table (different views display different columns). The Locks – Per Caller view displays Locks Summarized By Caller and Context.Per Caller view 1 In the Activity workspace. The Exceptions tab displays an exceptions summary table along with an overtime graph. including the line number in the source code. About the Exceptions tab Precise for J2EE catches exceptions during a time slice. the caller column provides a ToolTip showing the complete call path into that method. click the Locks tab. Class and method from which the class was thrown.

This graph shows the metric by which the table is sorted. The Exceptions . In the Activity workspace. The stack trace of the thrown class The last time that this class was thrown within the time frame. click the Exceptions tab. caller column provides a ToolTip showing the complete call path into that method. is analyzed.Per Caller view 1 In the Activity workspace. You can launch to any method in the call path. so that only the path beneath and your current location. To analyze Java method contributions 1 2 ■ Select a time frame to analyze. known as the context. About the Exceptions . click the Exceptions tab. In addition. The top n exceptions are displayed in the overtime graph. About the Exceptions . and then click Deep Summary. SmarTune’s analysis is context sensitive. You can launch the caller method’s context to continue investigation. To open the Exceptions – Deep Summary view 1 In the Activity workspace. 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.Per Caller view displays all aggregated exception classes thrown from somewhere in the current context’s sub call tree.Examining performance over time in the Activity workspace How the Activity workspace can help you identify performance problems 81 Table 4-8 Item Possible table columns in the Exceptions tab Description Deep Summary View - Per Caller View + (default) + + (default) + (default) Stack Trace Root Stack Trace Last Detected On Caller The root of the stack trace. The Exceptions – Deep Summary view displays Exceptions Summarized By Class. The direct calling method where the exception was thrown.Deep Summary view The Exceptions . Analyzing performance bottlenecks using SmarTune findings Use SmarTune to perform a more comprehensive identification of significant contributors and hot spots. but detailed per their thrown class. and then click Per Caller. sort by a different column and the graph will change accordingly.Per Caller view displays Exceptions Summarized by Class and Stack Trace Root. 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.Per Caller view The Exceptions . Analyzing Java method contributions to application performance SmarTune findings display the results of the analysis of Java method contributions to application performance.Deep Summary view displays all aggregated exception classes thrown from somewhere in the current context’s sub call tree. To open the Exceptions . .

The relevant hot spot is displayed together with its measurements. The Graph nodes represent instrumented methods. the arrows connecting the nodes indicate the invocation call path. or “EJB”. click the Highlights tab (default tab). such as: excessive garbage collection time. Yellow has a medium severity. and recommends the next steps. The finding type is a hyperlink to more detailed information. These are the Java technologies and their methods that comprise the application time. The color of a node indicates the method’s contribution toward the SmarTune context’s total time. or the “Portlet” option in the Root Activity Type drop-down list. To analyze the performance of your Servlets or Java Server Pages 1 2 3 Select a time frame to analyze. click the Highlights tab (default tab). In the Activity workspace. In the Activity workspace. labeled as “JVM related finding”. or select the HTTP entry in the Root Activity Type drop-down list. Red methods have the highest severity. and green has the lowest severity. In the Findings list. The finding type is a hyperlink to more detailed information. When you display the Highlights tab. SmarTune analyzes the instrumented Java method invocations under the selected context. focus on severe problems and review their contexts. To analyze application server performance 1 2 Select a time frame to analyze. To analyze the invocations under a specific method context. The long service time may be caused by a number of contributing factors. To identify contributors to slow service requests. exhausted database connections. select “HTTP”. then you should investigate the root cause of the long service time. advice for its resolution. or limited execute thread pools. click the Hotspots tab. or EJB Service Requests. When you display the Highlights tab. display that method context (in the Activity workspace) by drilling into it in the Invocations or Hotspots tab. Click on the finding link to navigate to the Hotspots tab and view the supporting data. Application summary categories are specific to each monitored JVM. they each contribute progressively less time toward the application’s total time. Hover over the finding for each of the highest-ranked significant findings. The method where a finding was detected is displayed as the finding’s context. In the Activity workspace. such as: poorly performing SQL or third party libraries. click Highlights to view the Highlights for the selected JVM. SmarTune displays a description of the finding. or Portlet Service Requests. advice for its resolution.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. Click on the finding link to navigate to the Statistics tab and view the supporting data. SmarTune displays a description of the finding. overtime graph. Using the service time breakdown graphs. choose a time period where the service time is poor. verify whether the HTTP invocations appear to be a significant contributor to the JVM service time. The relevant statistics counter is displayed together with its overtime graph. . they contribute the most time toward the application’s total time. Problematic performance contributors are listed at the top with the highest (red) severity. 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”. 4 5 6 Analyzing application server performance Use SmarTune application summary categories to better understand application server performance issues. 3 In the Activity workspace. SmarTune displays the results of analysis for each contributor category (finding type). the application server’s Java Management Extensions (JMX). SmarTune analyzes the instrumented JVM. and recommends the next steps. and the underlying contexts in the Per Caller view. 3 4 Identifying slow HTTP service requests (Servlets or Java Server pages) If the Dashboard workspace’s Invocation Type Scalability portlet identifies high HTTP Service Time. You can either continue viewing all threads data. and then click Call Graph to display a visualization of the Java method contributors. and displays the results by topic (finding type).

and Exceptions tabs. click on the launch button (on the upper right part of the screen) to proceed with a deeper investigation of the statement. click the Invocations tab. To view all invocation contexts of a specific statement. click the SQL tab. findings. In this business transaction. In the Activity workspace. Sort the Invocations list by the CPU time percentage used by each thread. launch the Per Caller view from the statement's row. displaying all statements invoked from across the application. If an Precise product for the relevant database is installed. By default All Threads are shown. the view opens filtering only relevant statements. Isolating slow database queries If the Dashboard workspace's JDBC Metrics portlet identifies JDBC Time. 3 4 5 6 Identifying CPU consumers If the Dashboard workspace's All JVMs Health portlet identifies high CPU Time for a JVM. Review specific hot spots contexts in the Hotspots . Sometimes the CPU time is consumed by a few poorly performing methods. To analyze the performance of your SQL statements for a time slice or series 1 2 Select a time frame to analyze. explore its hot spots. Investigate the top SQL statements list. In the Activity workspace. For the selected context. Drill down into the invocation with the highest percentage (or other measurement). Locks. To analyze the CPU time of your methods for a time slice or series 1 2 3 4 5 Select a time frame to analyze. you can view other data for the selected invocation using: Highlights. See “About the Business Transactions Administration page” on page 27. you can create a business transaction to monitor application submission. To view the full text.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. All different contexts of the same statement are aggregated to provide a high level breakdown of the top-heaviest statements. then you should investigate the root consumer of the CPU time. Drill down into the specific statement to view more details. For example. or exceptions). use the icon to the right of the table that enables adding columns to the list. Hotspots. you would include all the methods that the application calls when a student submits an application. 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). . In addition. or other measurements (such as: top SQL statements. to see its contributors ranked by their percentage contribution to the caller's CPU time. Drill down into the hot spot's context. in an application that accepts student admissions applications. The display is filtered to contain only relevant hot spots. Use the Business Transactions administration page to create business transactions. then you should investigate the root cause of the long JDBC Time. Sometimes the long service time is caused by one or more poorly performing SQL statements. If additional CPU measurements are required.Per Caller view and select the heaviest contributor or other hot spots of interest. use the ToolTip on the SQL Text column. Viewing business transaction performance for specific application functions Business Transactions allows you to group methods that perform specific application functions and monitor them as a single entity. sorted by their work time percentage out of the total service time. The Deep Summary view opens. locks. SQL.

The Invocations tab displays the methods included in the business transaction. Hotspots. add the Top Business Transactions portlet to a Dashboard page. The list of all monitored business transactions is displayed. click the Invocations tab. or other metric to be analyzed. To view details of business transaction performance 1 2 3 4 5 Select a time frame to analyze. . CPU time. See “About the Top Business Transactions portlet” on page 64. Sort the list according to service time. and other analysis tabs. Continue investigating the heaviest invocations using: Highlights. In the Activity workspace. If the Top Business Transactions portlet shows high response time for a business transaction. In the Activity workspace.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. Select the business transaction with the highest metric value. investigate the root cause by examining the business transaction in the Activity workspace Business tab. click the Business tab.

active connections. EJB Pools and Caches.Chapter 5 Examining application server metrics in the Statistics workspace This section includes the following topics: ■ ■ About Statistics workspace tabs How the Statistics workspace can help you identify performance problems About Statistics workspace tabs The Precise for J2EE Collector collects performance metrics provided by WebSphere.low). See the Precise Installation Guide for information on post-installation tasks for each J2EE application server. These application server metrics are displayed in the Statistics workspace. and Threads. The application servers collect the metrics and provide an interface for the Precise for J2EE Collector to obtain them. and other application servers. the Database Connection Pool group includes many metrics describing a Database Connection Pool such as maximum capacity. The table below describes the Findings table columns displayed in the Findings tab. The following analysis tabs are displayed in the Statistics workspace: ■ ■ Findings Counters The following table shows the list of possible columns to display in the Findings tab. For JVM related findings (statistics). Note: Application Server Metrics must be enabled using the post-installation tasks that appear in the Precise Agent Installer after installing the Precise for J2EE AppTier. and so on. WebLogic. green . Context names that are too long to display are automatically shortened using ellipses. yellow medium. These metrics provide an important source of performance data for Database Connection Pools. Precise for J2EE identifies a set of similar metrics using a Group Name. the Precise for J2EE Collector may log into the administrative server of the monitored JVM to gather the metrics or obtain the metrics in other ways. Sessions. Depending on the application server. A method-related findings rank is based on the work time contribution in terms of % out of total service time. For example. . Table 5-1 Item Rank Default Findings table columns in the Findings tab Description The severity of a finding in terms of acuteness to application performance (red .high. rank is based on the deviation from predefined thresholds.

statistics data collection must be enabled in the Statistics Administration page.. and then click the Counters tab. To open the Findings tab 1 In the Workspace Selection bar. Each column in the table displays a specific counter (metric) which was defined to be collected under the selected category. About the Findings tab The Statistics . See “About the Statistics Administration page” on page 44. . Metrics collection state is unknown.Findings tab analyzes the entire application for the selected time frame. sort by a different column and the graph will change accordingly. click Statistics. About the Counters tab The Application Server Counters tab displays a list of measurements that are applicable to the metric category selected in the Categories drop-down list (near the Instance drop-down list). Each findings type has a ToolTip with a finding’s description. as well as for other application server-specific JMX-based metrics. Description When clicking on the hyperlinked finding’s type column. click Statistics. This graph displays the metric by which the table is sorted. and gives advice to reduce its negative contribution. To open the Counters tab 1 In the Workspace Selection bar. The table displaying the measurements list has the following structure: ■ ■ The Data Source column appears for all categories All other columns are displayed according to monitored counters of that category. Statistics findings categories are derived from the counters (metrics) that fall to meet best practices thresholds. and then click the Findings tab. The “more help” link displays the contributor’s (metric’s) impact on the application’s health. Metrics collection state is disabled. The top n counters are displayed in the overtime graph. sorted in descending order by its value. link to the relevant metric’s data (which opens the Counters tab filtered to display metric’s details). The first findings graph is shown by default.Examining application server metrics in the Statistics workspace About Statistics workspace tabs 86 Table 5-1 Item Type Default Findings table columns in the Findings tab Description Finding a category for classifying and grouping performance problems. and a link to “more help”. A chart shows the values and trend of the contributor over the selected time frame. In order for Application Summary pages to show server-specific JMX-based metrics. A short explanation of the finding. to show trends in the overall application’s health. Warning: Application server overhead will increase when the application server collects the metrics and when the Precise for J2EE Collector gathers them. The following icons indicate the status of the metrics collected: Metrics collection state is enabled. Each item in the list is a specific application component or resource instance (data source). its relevant overtime graph is displayed at the bottom. Refer to the application server documentation for further details. Green check marks and red icons give a quick visual indication of metrics to the application’s health for all application servers.

In the Findings tab. or in the Counters tab. view the JDBC Metrics and SQL Statements portlets. you may have a problem with the JVM’s database connections. explore the metrics category that relates to JDBC connections (to display the individual metrics of that type). Use the Statistics workspace to investigate this problem. SmarTune displays advice to increase the DB Connection Pool Size. Click on the “more help” hyperlink for the contributor. notice that SmarTune has found a JDBC Connection Pool Service Time contributor. In the Dashboard workspace. Investigating database connection pool size When the Dashboard JDBC Metrics portlet shows high database connection times (while the SQL Statements portlet shows consistently low query service times). click Statistics to open the Statistics workspace. If application server metrics have been enabled for the JVM. explore findings. 3 4 5 6 7 . Selecting the JVM displays information for the JVM in other Dashboard portlets. suggest that the JVM’s connection pool size may be too small. In the Workspace Selection bar. but consistent performance for the SQL Statements. In the Findings tab. you will see SmarTune Findings and categories of metrics. select a JVM that you are monitoring. The groups and names of the metrics displayed depend on the application server vendor and version. Adjust your application and wait until the JDBC methods are again called to verify that the problem is fixed.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. Service time spikes for the JDBC Metrics. Note the total number of connections that you have. To investigate database connection pool size 1 2 In the Dashboard workspace JVM List portlet.

as well as allocating methods). See “About the Java Virtual Machine Settings Administration page” on page 15. total allocated and used for the measurement interval are shown below the graphs. or string buffers. Each finding type has a ToolTip with the finding’s description and a link to “more help”. arrays. In addition. To open the Heap tab 1 In the Workspace Selector bar. About the Memory workspace tabs The following analysis tabs are displayed in the Memory workspace: ■ ■ ■ Heap Garbage Collection LeakSeeker About the Heap tab The Heap tab displays memory usage graphs along with relevant SmarTune findings. the minimum size. A chart shows the values and trend of the contributor over the selected time frame. Note that “green” findings are also shown to indicate that memory usage is normal.Chapter 6 Examining usage and trends in the Memory workspace This section includes the following topics: ■ ■ About the Memory workspace About the Memory workspace tabs About the Memory workspace The Memory workspace displays two performance tabs by default: JVM Heap Memory and Garbage Collection. Additional graphs and charts show Leak Seeker data (number of live objects or size and trend of collections. The findings warn about memory related problems. The overtime and the summary graphs display memory size data broken into used and free memory components (both in absolute measurements and percentage). click Memory. . Both finding type’s hyperlinked text and “more help” link show the finding’s impact on an application’s health and gives advice to reduce its negative contribution (if applicable). and then click the Heap tab. The Leak Seeker data will also be displayed (under the Leak Seeker tab) if the monitored JVM has been configured in the Java Virtual Machine Settings page to collect Leak Seeker data. maximum size of heap memory.

Table 6-2 Item Rank Default columns in the Garbage Collection tab Description The severity of a finding in terms of acuteness to application performance (red . The overtime and summary graphs display the percentage of the current measurement interval’s time spent collecting garbage. yellow medium. A method-related findings rank is based on the work time contribution in terms of % out of total service time. or its growth rate (according to the sorting column). A chart shows the values and trend of the contributor over the selected time frame. A short explanation of the finding. Type Description About the Leak Seeker tab The Leak Seeker tab displays details about the top 64 allocation sites with the largest total live allocated objects in the selected time frame. For the top n allocating methods. For JVM related findings (statistics). Each finding type has a ToolTip with the finding’s description and a link to “more help”. and then click the Garbage Collection tab. yellow medium. and then click the LeakSeeker tab. Note that “green” findings are also shown to indicate that memory usage is normal. A method-related findings rank is based on the work time contribution in terms of % out of total service time. Negative trends can be identified using these charts by detecting memory leaking locations. The stack trace displays the invocations leading backwards from the allocation site to the application’s initial invocation. Finding a category for classifying and grouping performance problems. To open the LeakSeeker tab 1 In the Workspace Selector bar.low). rank is based on the deviation from predefined thresholds.low). The number of major collections observed and the total amount of memory collected by major collections are displayed below the graphs. click Memory. Both finding type’s hyperlinked text and “more help” link show the finding’s impact on an application’s health and gives advice to reduce its negative contribution (if applicable). To open the Garbage Collection tab 1 In the Workspace Selector bar. For JVM related findings (statistics).high. Each allocating method displays the collection’s stack trace in its ToolTip. The findings war about garbage collection related problems. green . click Memory. . Table 6-1 Item Rank Default table columns in the Heap tab Description The severity of a finding in terms of acuteness to application performance (red .high. The table below describes the data displayed in the Garbage Collection tab. A short explanation of the finding. Type Description About the Garbage Collection tab The Garbage Collection tab displays garbage collection time graphs along with relevant SmarTune findings.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. the chart shows the approximate number of live objects in the collection. rank is based on the deviation from predefined thresholds. green . Finding a category for classifying and grouping performance problems.

Array. or String Buffer.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. The Object. Rate of growth of the number of objects over time (objects/minutes). The method name where the object was allocated. Number of objects currently allocated by the allocating method. Collection. . Table 6-3 Item Chart Legend Color Allocating Method Object Type Live Object Count Growth Rate (inv/exec) Default columns in the JVM Leak candidates table Description Color icon showing the color representing the row in the graph.

To target your application with finer granularity. About modifying instrumenter configuration files Instrumentation instructions are contained in a series of XML files that can be found in the Precise for J2EE agent installation on the host where the monitored JVM runs.Appendix A Configuring Precise for J2EE instrumentation This section includes the following topics: ■ ■ About using custom instrumentation About using the instrumentation configuration utility About using custom instrumentation Precise for J2EE provides default and recommended instrumentation configuration via Monitoring Configuration. consider using the adaptive instrumentation and instrumentation explorer features in the Precise for J2EE user interface. For more on adaptive instrumentation and the instrumentation explorer. Note: Unless you have very specific instrumentation needs. Note: Using custom instrumentation requires knowledge of Java language constructs. you can create custom instrumentation configurations. Although not intended for massive amounts of custom instrumentation. See “About instrumenter configuration file reference” on page 108. See “About Monitoring Configuration” on page 29. rather than custom instrumentation. It also lets you exclude classes that are monitored by default. . Custom instrumentation lets you manually instrument classes that are not included in the default Precise for J2EE monitored classes. Note: There are some minor variations to code format between using Monitoring Configuration or performing custom instrumentation manually. Adaptive instrumentation automates custom instrumentation to provide application information most relevant to finding performance problems. which also exists in each monitored JVM’s configuration directory. To use custom instrumentation. but without exceeding overhead levels that you set. you must edit the appropriate instrumentation configuration file and be sure that the edited file is uncommented in the InstrumenterConfigList. Refer to an introductory Java language or programming primer for an explanation of Java language concepts. The InstrumenterConfigList. Nevertheless these minor variations are acceptable. the configuration file that Precise for J2EE uses to keep track of your instrumentation configurations. references the instrumentation configuration files.xml file. see the Precise Administration Guide.xml file. the instrumentation explorer provides a user-friendly interface for fine-tuning the selected instrumentation settings.

■ Note: By default.xml file (or any other instrumenter configuration XML file). to enable the JNDI custom instrumentation file. . In addition.xml </config-file> Adding your own custom instrumentation configuration file The following procedure describes how you can add your own custom instrumentation configuration file.xml file in the JVM ID-specific configuration directory for your application server (<i3_root>/products/j2ee/config/JVMID/).xml file into the <i3_root>/products/j2ee/config/petstore directory. you would modify the Custom. To change the instrumentation instructions within a specific instrumentation configuration file.xml file.j2ee. You can use the following special variables to specify the absolute path of these per-JVM configuration files: ■ ■ ■ ${indepth. you can enable this configuration by uncommenting the reference to the file in the InstrumenterConfigList.j2ee. --> <config-file> JNDI.jvm_id} expands to the JVM ID (with cluster serial number) For example.home}/config/${indepth.xml file. You may also copy these files to JVM ID-specific directories to customize them on a per JVM basis. --> <!-<config-file> JNDI. In the InstrumenterConfigList. you must verify that this instrumentation configuration file is enabled in the InstrumenterConfigList. All relative paths of referenced configuration files are relative to this directory. locate the XML block that defines the file you want to enable. For example.Configuring Precise for J2EE instrumentation About using custom instrumentation 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.home} expands to <i3_root>/products/j2ee ${indepth.xml file.xml </config-file> --> 3 Remove the XML comments surrounding the file name. the custom instrumentation configuration files are located in the instrumenter directory: <i3_root>/products/j2ee/config/instrumenter. locate the following section: <!-JNDI Uncomment to instrument. To enable an additional configuration file 1 2 Open the InstrumenterConfigList.j2ee.server_id} expands to the raw JVM ID ${indepth. you can reference it with: <config-file> ${indepth.xml </config-file> Enabling an additional configuration file The following procedure describes how you can enable an additional configuration file.j2ee. For example: <!-JNDI Uncomment to instrument. if you have copied the Custom.server_id}/Custom.j2ee. for example to instrument a specific method.

and methods.Configuring Precise for J2EE instrumentation About using custom instrumentation 93 To add your own custom instrumentation configuration file 1 Create a new user-defined XML configuration file.wfm. Sub-elements of <instrumenter-config> also allow you to target the behavior of methods so that you can instrument all calls to a method as well as all calls the method makes.task. classes.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> 2 To add the file to the InstrumenterConfigList. Precise for J2EE instrumentation also takes advantage of the inheritance properties of the Java language. in the following way: <?xml version="1.xml. public void stop(). allowing you to instrument all classes that extend a common subclass or interface. public interface Task { public void start(). or calls from a specific method to another specific method. See the next section for more information. classes. In addition. public void stop(boolean force). About custom instrumenter configuration Precise for J2EE allows you great flexibility in instrumenting Java applications. Refer to an introductory Java language or programming primer for an explanation of Java language concepts. } public interface RecoverableTask extends Task { public void start(RecoverableTaskContext context). you can instrument all classes in a package or all methods in a class using the wildcard character.xml file. for example. You can instrument specifically named packages. use the following syntax: <!-User defined instrumenter config file --> <config-file> UserDefined. Note: Using custom instrumentation requires knowledge of Java language structures. } public abstract class AbstractTask implements Task { public void start() { } protected void start(TaskContext taskContext) { } . for example UserDefined.xml </config-file> 3 Modify the new XML configuration file to include the interfaces. interfaces. and methods you want to instrument. The Workflow Framework example is based on the following classes and interfaces: package xmp. The Workflow Framework example is used to illustrate how instrumentation is applied to Java language constructs.

the interface that is specified in the <class-name> element.Task </class-name> <methods> <method> <name> start </name> </method> <method> <name> stop </name> </method> </methods> </java-class> </java-classes> </custom-config> </instrumenter-config> Instrumentation is applied to methods of abstract and concrete classes that satisfy the following criteria: ■ ■ ■ The matched class implements.server. including signature. The method. was declared in the matching interface.stop() RecoverableTaskAdapter. The name of the method matches the name that is specified in one of the <name> elements. instrumentation is not applied to the following methods: . <?xml version='1.wfm.0'?> <instrumenter-config> <custom-config> <java-classes> <java-class> <class-name> xmp.task.stop(boolean) RecoverableTaskAdapter. directly or indirectly.stop() AbstractTask.stop(boolean) However. This instrumenter configuration file causes instrumentation to be applied to the start and stop methods of abstract and concrete classes that implement the Task interface.Configuring Precise for J2EE instrumentation About using custom instrumentation public void stop() { } public void stop(boolean force) { } } package xmp. custom-type instrumentation are applied to the following methods: ■ ■ ■ ■ ■ ■ AbstractTask.start() AbstractTask.wfm. About instrumenting methods in implementations of an interface The <custom-config> element can be used to cause instrumentation to be applied to methods of abstract and concrete classes that implement an interface. Based on these rules. 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 About instrumenting interfaces Instrumentation can be applied to methods in abstract and concrete classes that implement specific interfaces.start() RecoverableTaskAdapter.

instrumentation is not applied to the following methods: ■ ■ ■ ■ ■ See “About method signature matching” on page 115.start() RecoverableTaskAdapter.recover(RecoverableTaskContext) because the method was not declared in the Task interface RecoverableTaskAdapter.stop(boolean) AbstractTask.Task </class-name> <methods> <method> <name> start </name> </method> <method> <name> stop </name> <params> <param> boolean </param> </params> </method> </methods> </java-class> </java-classes> </custom-config> </instrumenter-config> Instrumentation is applied to methods of abstract and concrete classes that satisfy the following criteria: ■ ■ ■ The matched class implements. <?xml version='1.task. Based on these rules.stop() because the method does not match the specified signature of (boolean) RecoverableTaskAdapter.stop(boolean) RecoverableTaskAdapter. This instrumenter configuration file causes instrumentation to be applied to the start and stop(boolean) methods of abstract and concrete classes that implement the Task interface. .wfm.start(TaskContext) because the method was not declared in the Task interface AbstractTask.Configuring Precise for J2EE instrumentation About using custom instrumentation ■ ■ 95 AbstractTask.start() AbstractTask. See “About method signature matching” on page 115. The name of the method matches the name that is specified in the <name> element.recover(RecoverableTaskContext) because the method was not declared in the Task interface ■ About restricting instrumentation to methods that match a signature The <params> element can be included within a <method> element to restrict instrumentation to a method that is based on a signature.start(TaskContext) because the method was not declared in the Task interface RecoverableTaskAdapter.stop() because the method does not match the specified signature of (boolean) However. custom-type instrumentation is applied to the following methods: ■ ■ ■ ■ AbstractTask. directly or indirectly.start(TaskContext) because the method was not declared in the Taskinterface RecoverableTaskAdapter. the interface that is specified in the <class-name> element. The method was declared in the matching interface.start(TaskContext) because the method was not declared in the Taskinterface RecoverableTaskAdapter.0'?> <instrumenter-config> <custom-config> <java-classes> <java-class> <class-name> xmp.

<?xml version='1.task. See “About using the wildcard character *” on page 115. 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 <params> </params> is omitted. instrumentation is not applied to the following methods: ■ ■ ■ ■ ■ .start(TaskContext) because the method was not declared in the Task interface RecoverableTaskAdapter. It is not possible to use wildcards to cause instrumentation to be applied to all abstract or concrete class's that implement interface's that match a wildcard pattern.stop(boolean) because the method does not match the specified signature of () RecoverableTaskAdapter. The signature of the method matches the signature that is specified in the <params> element (if present). This instrumenter configuration file causes instrumentation to be applied to the start() and stop() methods of abstract and concrete classes that implement the Task interface.stop() AbstractTask.start() RecoverableTaskAdapter.wfm.start() AbstractTask.Configuring Precise for J2EE instrumentation About using custom instrumentation 96 About extending instrumentation to interfaces matching a wildcard Inheritance is not considered when wildcards are used with <class-name> element. The method is declared in the matched interface.start(TaskContext) because the method was not declared in the Task interface AbstractTask.Task </class-name> <methods> <method> <name> s* </name> <params> <params/> </method> </methods> </java-class> </java-classes> </custom-config> </instrumenter-config> When wildcards are used in the <name> element and the matching construct is an interface. all signatures are matched. wildcards can be used to apply instrumentation to all abstract or concrete classes whose names match the wildcard pattern that is specified in the <class-name> element. ■ Based on these rules. as in a signature of ().stop(boolean) because the method does not match the specified signature of () However.recover(RecoverableTaskContext) because the method name does not match the wildcard pattern RecoverableTaskAdapter. Specifying empty <params> </params> elements indicates that methods with zero arguments are matched. About extending instrumentation to methods that match a wildcard Wildcards can be used in the <name> element. However.stop() RecoverableTaskAdapter. custom-type instrumentation is applied to the following methods: ■ ■ ■ ■ AbstractTask.0'?> <instrumenter-config> <custom-config> <java-classes> <java-class> <class-name> xmp.

The signature of the method matches the signature that is specified in the <params> element (if present). instrumentation is restricted to methods that are declared in the matching interface.stop() because the method does not match the specified wildcard pattern of sta* AbstractTask.start() RecoverableTaskAdapter. instrumentation is not applied to the following methods: ■ ■ ■ ■ ■ ■ About extending wildcards to apply to methods that are declared in implementations By default. The <apply-to-implementations> element can be used to extend instrumentation to apply to methods that are declared in abstract and concrete classes that implement the matching interface. This instrumenter configuration file causes instrumentation to be applied to the start methods of abstract and concrete classes that implement the Task interface. The method is declared in the matched interface.0'?> <instrumenter-config> <custom-config> . The matched class has one or more interfaces are the same as or extend the interface that is specified in the <class-name> element.start(RecoverableTaskContext) AbstractTask. The <apply-to-subtypes> element can be used to extend instrumentation to apply to methods that are declared in extending interfaces. <?xml version='1.Task </class-name> <methods> <method> <name> sta* </name> <apply-to-subtypes>true</apply-to-subtypes> </method> </methods> </java-class> </java-classes> </custom-config> </instrumenter-config> 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. <?xml version='1.wfm.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* RecoverableTaskAdapter.start() RecoverableTaskAdapter. custom-type instrumentation is applied to the following methods: ■ ■ ■ AbstractTask. instrumentation is restricted to methods that are declared in the matching interface. This instrumenter configuration file causes instrumentation to be applied to the start methods of abstract and concrete classes that implement the Task interface or an interface that extends the Task interface.0'?> <instrumenter-config> <custom-config> <java-classes> <java-class> <class-name> xmp.Configuring Precise for J2EE instrumentation About using custom instrumentation 97 About extending instrumentation to methods that are declared in extending interfaces By default.stop(boolean) because the method does not match the specified wildcard pattern of sta* However. Based on these rules.task.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.

start(RecoverableTaskContext) AbstractTask. custom-type instrumentation is applied to the following methods: ■ ■ ■ ■ AbstractTask. <?xml version='1.0'?> <instrumenter-config> <custom-config> <java-classes> <java-class> <class-name> xmp.AbstractTask </class-name> <methods> <method> <name> start </name> </method> <method> <name> stop </name> .stop(boolean) because the method does not match the specified wildcard pattern of sta* RecoverableTaskAdapter.task.wfm. This instrumenter configuration file causes instrumentation to be applied to the start and stop methods of abstract and concrete classes that extend the AbstractTask class.start() RecoverableTaskAdapter.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.recover(RecoverableTaskContext) because the method does not match the specified wildcard pattern of sta* RecoverableTaskAdapter. The signature of the method matches the signature that is specified in the <params> element (if present).stop(boolean) because the method does not match the specified wildcard pattern of sta* However. About instrumenting methods in abstract and concrete classes The <custom-config> element can be used to cause instrumentation to be applied to methods of abstract and concrete classes.wfm.Configuring Precise for J2EE instrumentation About using custom instrumentation <java-classes> <java-class> <class-name> xmp.stop() because the method does not match the specified wildcard pattern of sta* AbstractTask.stop() because the method does not match the specified wildcard pattern of sta* RecoverableTaskAdapter.task. The method is declared in a class that extends the abstract class or implements the interface that is identified in the <class-name> element. Based on these rules.start() AbstractTask.start(TaskContext) RecoverableTaskAdapter. instrumentation is not applied to the following methods: ■ ■ ■ ■ ■ About instrumenting classes Instrumentation can be applied to methods in abstract and concrete classes.

custom-type instrumentation is applied to the following methods: ■ ■ ■ ■ ■ ■ ■ ■ AbstractTask. <?xml version='1. The name of the method matches the name that is specified in the <name> element.stop(boolean) RecoverableTaskAdapter. .start(TaskContext) AbstractTask. Based on these rules.wfm. The name of the method matches the name that is specified in one of the <name> elements.0'?> <instrumenter-config> <custom-config> <java-classes> <java-class> <class-name> xmp.start(TaskContext) RecoverableTaskAdapter.AbstractTask </class-name> <methods> <method> <name> start </name> </method> <method> <name> stop </name> <params> <param> boolean </param> </params> </method> </methods> </java-class> </java-classes> </custom-config> </instrumenter-config> 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.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.stop() RecoverableTaskAdapter. This instrumenter configuration file causes instrumentation to be applied to the start and stop(boolean) methods of abstract and concrete classes that extend the AbstractTask class.recover(RecoverableTaskContext) because the method was not declared in the AbstractTask class However. instrumentation is not applied to the following methods: ■ About restricting instrumentation to methods that match a signature The <params> element can be included within a <method> element to restrict instrumentation to a method that is based on signature.start() AbstractTask.stop(boolean) RecoverableTaskAdapter.start() RecoverableTaskAdapter.task.stop() AbstractTask. The method was declared in the matching class.

However.start() AbstractTask. See “About using the wildcard character *” on page 115. Based on these rules. About extending instrumentation to methods that match a wildcard Wildcards can be used in the <name> element. It is not possible to use wildcards to cause instrumentation to be applied to all abstract or concrete classes that extend classes that match a wildcard pattern.AbstractTask </class-name> <methods> <method> <name> s* </name> <params> <params/> </method> </methods> </java-class> </java-classes> </custom-config> </instrumenter-config> When wildcards are used in the <name> element and the matching construct is a class. The method was declared in the matching class. all signatures are matched. the signature of the method matches the signature that is specified in the <params> element. If the <params> element is present.stop(boolean) AbstractTask. 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.recover(RecoverableTaskContext) because the method was not declared in the AbstractTask class RecoverableTaskAdapter. This instrumenter configuration file causes instrumentation to be applied to the start() and stop() methods of abstract and concrete classes that extend the AbstractTask class.0'?> <instrumenter-config> <custom-config> <java-classes> <java-class> <class-name> xmp. Specifying empty <params> </params> indicates that methods with zero arguments are matched. The method is declared in the matched class.stop(boolean) RecoverableTaskAdapter. custom-type instrumentation is applied to the following methods: ■ ■ ■ ■ ■ ■ AbstractTask.stop() because the method does not match the specified signature of (boolean) However.start(TaskContext) AbstractTask.stop() because the method does not match the specified signature of (boolean) RecoverableTaskAdapter. If <params> </params> is omitted.start(TaskContext) RecoverableTaskAdapter. About extending instrumentation to classes matching a wildcard Inheritance is not considered when wildcards are used with a <class-name> element.task.Configuring Precise for J2EE instrumentation About using custom instrumentation ■ ■ 100 The method signature matches the types that are specified using the <param> elements.wfm. instrumentation is not applied to the following methods: ■ ■ ■ See “About method signature matching” on page 115. as in a signature of ( ). ■ . <?xml version='1. wildcards can be used to apply instrumentation to all abstract or concrete classes whose names match the wildcard pattern that is specified in the <class-name> element.start() RecoverableTaskAdapter.

This instrumenter configuration file causes instrumentation to be applied to the start methods of abstract and concrete classes that extend the AbstractTask class or a class that extends the AbstractTask class. The method is declared in the matched class. custom-type instrumentation is applied to the following methods: ■ ■ ■ ■ ■ ■ AbstractTask.stop(boolean) because the method does not match the specified signature of () However.0'?> <instrumenter-config> <custom-config> <java-classes> <java-class> <class-name> xmp.start() AbstractTask.start() RecoverableTaskAdapter.Configuring Precise for J2EE instrumentation About using custom instrumentation 101 Based on these rules.recover(RecoverableTaskContext) because the method name does not match the wildcard pattern RecoverableTaskAdapter.stop(boolean) because the method does not match the specified wildcard pattern of sta* However. instrumentation is not applied to the following methods: ■ ■ .stop() RecoverableTaskAdapter. custom-type instrumentation is applied to the following methods: ■ ■ ■ ■ AbstractTask.AbstractTask </class-name> <methods> <method> <name> sta* </name> <apply-to-subtypes>true</apply-to-subtypes> </method> </methods> </java-class> </java-classes> </custom-config> </instrumenter-config> 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).stop() because the method does not match the specified wildcard pattern of sta* AbstractTask. instrumentation is not applied to the following methods: ■ ■ ■ About extending instrumentation to methods that are declared in extending classes By default. The matched class is the same as or extends the class specified in the <class-name> element. instrumentation is restricted to methods that are declared in the matching class.stop() AbstractTask.start() RecoverableTaskAdapter. <?xml version='1.start(TaskContext) RecoverableTaskAdapter.start() AbstractTask.start(TaskContext) AbstractTask.task.stop(boolean) because the method does not match the specified signature of () RecoverableTaskAdapter. Based on these rules.start(TaskContext) RecoverableTaskAdapter.start(RecoverableTaskContext) AbstractTask. The <apply-to-subtypes> element can be used to extend instrumentation to apply to methods that are declared in extending classes.wfm.

Configuring Precise for J2EE instrumentation About using custom instrumentation ■ 102 RecoverableTaskAdapter.stop(boolean) because the method does not match the specified wildcard pattern of sta* ■ ■ About instrumenting all calls from a method Instrumentation can be applied to all calls from methods that match criteria specified in a <java-classes> element. and xmp.task.println </name> </method> <method> <name> *.io.”) is considered to be the method name.0'?> <instrumenter-config> <all-calls-from-method> <java-classes> ] .io.io. When you use wildcards. package or to run() methods from methods in abstract or concrete classes that implement the AbstractTask interface. and the portion of the <name> before the last dot is considered to be the class name. <?xml version='1. </java-classes> </all-calls-from-method> </instrumenter-config> The rules that apply to the <java-classes> element that is documented in preceding sections are applied when it is used inside the <all-calls-from-method> element.. When the <name> element is used inside an <all-calls-to-method> element. The portion of the <name> after the last dot (“. For example.0'?> <instrumenter-config> <invocation-relationship> <java-class> . About instrumenting calls to methods The <all-calls-to-method> element can be used to apply instrumentation to all calls to specific methods. it must represent a fully-qualified method name. This instrumenter configuration file causes instrumentation to be applied to all calls from the methods that match the <java-classes> element..stop() because the method does not match the specified wildcard pattern of sta* RecoverableTaskAdapter.*.run </name> <params> <params/> </method> </methods> </all-calls-to-method> </instrumenter-config> The <name> element has a different interpretation from its use in all other cases. it is important to use a wildcard pattern that fits the scheme described. This instrumenter configuration file causes instrumentation to be applied to all calls made to println methods in the java. The <invocation-relationship> element can be used instead of the <all-calls-to-method> element to restrict instrumentation to calls to specific methods. the wildcard pattern *. This instrumenter configuration file causes instrumentation to be applied to all calls made to println methods in the java. package or to run () methods.recover(RecoverableTaskContext) because the method does not match the specified wildcard pattern of sta* RecoverableTaskAdapter.task.set* matches all methods whose name starts with set of all classes. <?xml version='1.0'?> <instrumenter-config> <all-calls-to-method> <methods> <method> <name> java.*. <?xml version='1.* matches all methods in all classes whose name starts with xmp.

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 classes, methods, and calls to methods
Instrumentation can be prevented for specific packages and sub-packages, classes, methods, or calls to methods. The <ignore-config> element in instrumenter configuration files is used to illustrate how to prevent instrumentation from being applied to specific packages and sub-packages, classes, method, or calls to methods. See “About instrumenter configuration file reference” on page 108. As with the <custom-config>, <all-calls-from-method>, <all-calls-to-method>, and <calls-from-method-to-method> elements, the <ignore-config> element can be placed in its own instrumenter configuration file. The examples should be considered to imply that the <ignore-config> element must be included in an instrumenter configuration file that contains other instrumentation directives.

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>

Based on these rules, instrumentation is not applied to the following methods:

Configuring Precise for J2EE instrumentation About using custom instrumentation
■ ■ ■ ■

104

AbstractTask.start() AbstractTask.start(TaskContext) AbstractTask.stop() AbstractTask.stop(boolean)

However, instrumentation is still applied to the following methods:
■ ■ ■

RecoverableTaskAdapter.start() RecoverableTaskAdapter.stop() RecoverableTaskAdapter.stop(boolean)

About preventing instrumentation for methods of a class
The <java-classes> element can be used within an <ignore-config> element to prevent instrumentation from being applied to some or all methods of abstract or concrete classes, or to all methods of a class in a specific package and its sub-packages. 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.task.AbstractTask </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.AbstractTask </class-name> </java-class> </java-classes> </ignore-config> </instrumenter-config>

Based on this configuration, instrumentation is not applied to the following methods:
■ ■ ■ ■

AbstractTask.start() AbstractTask.start(TaskContext) AbstractTask.stop() AbstractTask.stop(boolean)

However, instrumentation is applied to the following methods:
■ ■ ■

RecoverableTaskAdapter.start() RecoverableTaskAdapter.stop() RecoverableTaskAdapter.stop(boolean)

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

Based on this configuration, instrumentation is not applied to the following methods:
■ ■

AbstractTask.stop() RecoverableTaskAdapter.stop()

However, instrumentation is applied to the following methods:
■ ■ ■ ■

AbstractTask.start() AbstractTask.stop(boolean) RecoverableTaskAdapter.start() RecoverableTaskAdapter.stop(boolean)

About preventing instrumentation for calls from a method
The <all-calls-to-method> element can be used within an <ignore-config> element to prevent instrumentation from being applied to all calls to specific methods. This instrumenter configuration file prevents instrumentation from being applied to all calls to Java runtime classes (java.*) methods.
<?xml version'1.0'?> <instrumenter-config> <ignore-config> <all-calls-to-method> <methods> <method> <name> java.*.* </name> </method> </methods> </all-calls-to-method> </ignore-config> </instrumenter-config>

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>

it is difficult to instrument the business methods of an EJB implementation without first identifying the remote interfaces and then manually instrumenting the methods. Because there is no direct relationship between an EJB implementation and the remote interface. consider these application classes: public interface Account extends EJBObject { public void deposit(float amount). } } .*. As an example. <?xml version='1. About the Calls to EJB instrumentation feature The “Calls to EJB implementations” instrumentation feature adds a configurable extension to the instrumenter to allow calls to EJB implementations to be instrumented. The marker classes and interfaces are expected to identify the EJB skeletons. the “Calls to EJB implementations” instrumentation feature searches for classes that match certain marker classes or interfaces or name patterns. caller-side instrumentation is applied to any calls from a method that makes a call to another method of the same name and signature. When the feature is enabled.*) methods that take an int[] parameter from the stop() methods in the xmp.0'?> <instrumenter-config> <ignore-config> <invocation-relationship> <java-class> <class-name> xmp.* </class-name> <methods> <method> <name> stop </name> <params> <params/> </method> </methods> </java-class> <invoked-method> java. If a class matches.*(int[]) </invoked-method> </invocation-relationship> </ignore-config> </instrumenter-config> About instrumenting calls to EJB business method implementations The J2EE specification does not require that an EJB implementation implement the remote interface directly.Configuring Precise for J2EE instrumentation About using custom instrumentation 106 <methods> <method> <name> java.* </name> </method> </methods> </all-calls-to-method> </ignore-config> </instrumenter-config> About preventing instrumentation for calls to a method The <invocation-relationship> element can be used within an <ignore-config> element to prevent instrumentation from being applied to calls to specific methods from specific calling methods. } public class AccountEJB implements SessionBean { public void deposit(float amount) updateAccount(getCurrentBalance() + amount).wfm package and sub-packages.wfm. Application servers typically generate a skeleton that implements the remote interface directly and delegates calls to the EJB implementation. This instrumenter configuration file prevents instrumentation from being applied to all calls to Java runtime classes (java.

deposit to AccountEJB.ejb20. EJB skeletons extend the weblogic. As an example.” The following table lists the recognized properties. Identifies how the logger events show up in Precise for J2EE. */ } public void deposit(float amount) { impl.internal. CallsToEJBImplementationPlanner </class-name> <property> <name> skeletonMarkerClass </name> <value> weblogic. logEndMethodName Optional invocationType Optional .. Instrumentation that is applied by the “Calls to EJB implementations” instrumentation feature show up in the instrumenter log as FIXED-CALLER-SIDE instrumentation.0. the call from AccountEJB_bfqop_WKSkel. Identifies the logger method to call to report calls to EJB business methods.deposit(amount).xml file looks like the following example: <instrumenter-config> <planner-config> <class-name>com.. Table A-1 Recognized properties Multiplicity Optional Property Name logBeginMethodName Description Identifies the logger method to call to report calls to EJB business methods. the WebLogic skeleton might look as follows: public class AccountEJB_bfqop_WKSkel extends Skeleton implements Account { public void init() { /* .planner.rmi.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 “Calls to EJB implementations” instrumentation feature can be configured to find the skeleton and instrument the call to deposit.precise. } } In this case.instrument.javaperf.deposit is instrumented because the call is to a method with the same name and signature as the caller. */ } public void invoke() { /* . Note: init() and invoke() are probably not instrumented unless they call another method with the same name and signature..Configuring Precise for J2EE instrumentation About using custom instrumentation 107 Under WebLogic 7.Skeleton class.internal.. The EJBImpl.

.xml file to the InstrumenterConfigList. skeletonMarkerInterface Any Number implementationMarkerClass Any Number implementationMarkerInterface Any Number Applying instrumentation using the "Calls to EJB" instrumentation feature The following procedure describes how to apply instrumentation using the "Calls to EJB" instrumentation feature. About the instrumenter configuration files. To apply instrumentation using the “Calls to EJB” instrumentation feature 1 Add the EJBImpl. Identifies the classes that must be extended by calls with a matching name and signature.xml </config-file> </instrumenter-config-list> 2 Restart the application server. Only classes that extend a skeleton class or implement a skeleton interface are searched for calls to methods with matching name and signature. and About common instrumenter configuration matching techniques.Configuring Precise for J2EE instrumentation About using custom instrumentation 108 Table A-1 Recognized properties Multiplicity Any Number 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.xml file: <instrumenter-config-list> <config-file> EJBImpl. About the structure of instrumenter configuration files. Identifies the classes that must be implemented by calls with a matching name and signature. Identifies the classes that an EJB skeleton must implement. About instrumenter configuration file reference The purpose and schema of the various files that configure instrumentation for a monitored JVM is described in About the master configuration file.

The master configuration file can be found under the JVM-specific config directory for a monitored JVM. InstrumenterConfigList.xml. contains references to instrumenter configuration files that contain specific rules that are used to determine where and how to apply instrumentation to a monitored JVM.Configuring Precise for J2EE instrumentation About using custom instrumentation 109 Figure A-1 Instrumenter Configuration About the master configuration file Instrumentation for each monitored JVM is configured from a master configuration file. Paths are relative to <i3_root>/products/j2ee/config/instrumenter.0'?> <instrumenter-config-list> ] <config-file> <!-. The master configuration file.occurs 0 or more times --> instrumenter-config-file-path </config-file> </instrumenter-config-list> The instrumenter config file path specifies the absolute or relative path to an instrumenter configuration file. The master configuration file has the following structure: <?xml version='1. The following special variables can be used in the instrumenter config file path: .

xml WebLogicJSP. There are several default instrumenter configuration files in the <i3_root>/products/j2ee/config/instrumenter directory.xml Planners. Table A-2 File name Logger.xml SurveyConditional. Instrumentation Explorer applied changes that are loaded at startup. Detects the portal and portlet configurations that implement javax. This file is regenerated when adaptive instrumentation policies are run.xml EJB. as shown in the following table.GenericPortlet. Instruments the detected portlets. Default “ignored” instrumentation configuration Default “caller-side” JDBC instrumentation configuration Over-instrumentation protection instrumentation configuration Default instrumentation configuration that Precise for Web uses.xml Heatseeker.Configuring Precise for J2EE instrumentation About using custom instrumentation ■ ■ ■ 110 ${indepth. and those that are recommended to gather the most information. Default BEA WebLogic Portlet-specific instrumentation configuration.xml WebSphereJSP.xml file.xml IndepthWeb.j2ee.xml CallsToJDBC. The instrumentation configuration files listed in the following tables are enabled by default in the InstrumenterConfigList.jvm_id} expands to the JVM ID (with a cluster sequence number) About the instrumenter configuration files Instrumenter configuration files contain specific rules that are used to determine where and how to apply instrumentation.xml WebLogicPortal. Default Generic Portlet-specific instrumentation configuration.xml Survey. Default JSP instrumentation configuration Default (BEA WebLogic™-specific) JSP instrumentation configuration Default (IBM® WebSphere®-specific) JSP instrumentation configuration Default BEA WebLogic Portal-specific instrumentation configuration. Instruments the portlet lifecycle and action methods. Handles instrumentation of EJB stubs.j2ee. This file is populated when Precise for Web is installed.xml file indicate the files that are required for Precise for J2EE. Comments that are placed above the references to these files in the InstrumenterConfigList.portlet. Adaptive survey instrumentation configuration Adaptive conditional instrumentation configuration Adaptive synchronization instrumentation Default Java Servlet instrumentation configuration Default Generic Portal-specific instrumentation configuration. Ixp.xml OverInstrumentationProtection. Default EJB instrumentation configuration.xml Ignore.xml SurveySynchronization.xml WebLogicPortlet.xml Required instrumentation configuration files Description Product configuration Controls the order in which instrumentation is applied Adaptive instrumentation analysis results that are loaded at startup.xml GenericPortlet.xml GenericPortal.server_id} expands to the JVM ID (with no cluster sequence number) ${indepth.j2ee.xml Servlet. This file is populated when an application server portal version is selected in Precise Framework Installer.xml JSP.home} expands to <i3_root>/products/j2ee ${indepth. This file is populated when an application server portal version is selected in Precise Framework Installer. This file is regenerated when you click the Instrumentation Explorer Apply Changes button. Detects the portal and portlet configuration.xml .

Table A-4 File name Calls.1 instrumentation Optional SmarTune instrumentation for servlet include and session analysis About the structure of instrumenter configuration files The instrumenter configuration files have the following general structure: <?xml version='1.xml JMS. Configuration for Leak Seeker instrumentation TACPeopleSoft.xml JNDI.xml CallsFromMethodToMethod.xml XML.xml MessageDrivenEJB. You should use this file as an example and edit this file.xml SmartuneInstrumentation.xml JTA.Configuring Precise for J2EE instrumentation About using custom instrumentation 111 Table A-2 File name Required instrumentation configuration files Description Insight SmartLink for PeopleSoft instrumentation configuration Insight SmartLink for Web applications instrumentation configuration Contains an example instrumentation only.xml file.xml SAP61.xml The following table lists the instrumentation configuration files that are recommended to gather the most information.xml Precise for J2EE also provides several instrumentation configuration templates. as shown in the following table.xml TACWebApps.xml MBeanImpl.xml LeakSeeker.xml Recommended instrumentation configuration files Description Handles BEA WebLogic-specific EJB “lifecycle operation” instrumentation Handles IBM WebSphere-specific EJB “lifecycle operation” instrumentation Handles Oracle-specific EJB “lifecycle operation” instrumentation Default JNDI instrumentation configuration Default JDBC DataSource instrumentation configuration Default EJB implementation instrumentation Default Java Transaction instrumentation Default Message-Driven EJB instrumentation Default Java Messaging Service instrumentation Default XML and XSL instrumentation WebSphereEJB. You edit and enable the templates and then add them to the InstrumenterConfigList.xml Jolt.0'?> . You must edit this file.xml EJBImpl.xml OracleEJB. Contains an example instrumentation only.xml Instrumentation configuration templates Description Template for configuring all calls to and all calls from methods Sample EJB implementation instrumentation Sample Jolt instrumentation Sample MBean implementation instrumentation Old PeopleSoft instrumentation SAP 6.xml DataSource. Table A-3 File name WebLogicEJB.xml EJBBean.xml PeopleSoft.xml Custom.

See “About calls from method to method instrumentation configuration” on page 113.optional --> capture-parameter </capture-param-index> </method> </methods> </java-class> </java-classes> </custom-config> About all calls to method instrumentation configuration The <all-calls-to-method> element has the following structure: <all-calls-to-method> <methods> <method> <!-.occurs 0 or more times --> <class-name> class-or-interface-name </class-name> <methods> <method> <!-.optional --> <param> <!-.occurs 0 or more times --> parameter-type </param> </params> </method> </methods> </all-calls-to-method> About all calls from method instrumentation configuration The <all-calls-from-method> element has this structure: <all-calls-from-method> <java-classes> <java-class> <!-.occurs 0 or more times --> <name> method-name </name> <params> <!-.occurs 0 or more times --> parameter-type </param> </params> <capture-param-index> <!-. About custom instrumentation configuration The <custom-config> element has the following structure: <custom-config> <java-classes> <java-class> <!-. See “About all calls to method instrumentation configuration” on page 112.optional --> <param> <!-.occurs 0 or more times --> <class-name> class-or-interface-name </class-name> <methods> <method> <!-.optional --> <param> <!-.occurs 0 or more times --> <name> method-name </name> <params> <!-.occurs 0 or more times --> parameter-type </param> </params> </method> .occurs 0 or more times --> <name> method-name </name> <params> <!-. See “About all calls from method instrumentation configuration” on page 112.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 ignore instrumentation configuration” on page 113.

optional --> <method> <!-.Purpose and structure described below.occurs 0 or more times --> <name> method-name </name> <params> <!-.occurs 0 or more times --> <name> method-name </name> <params> <!-.optional --> <param> <!-.Purpose and structure described below.optional --> </params> </method> </methods> </java-class> </java-classes> See “About method signature matching” on page 115. --> </invocation-relationship> <all-calls-to-method> <!-. --> </java-classes> <invocation-relationship> <!-.Purpose and structure described below.occurs 0 or more times --> <class-name> class-or-interface-name </class-name> <methods> <!-.optional --> <!-. or to specifically matched calls to methods. the following rules are used to determine if instrumentation should not be applied to the method: .occurs 0 or more times --> parameter-type </param> </params> </method> </methods> </java-class> <invoked-method> <!-.Configuring Precise for J2EE instrumentation About using custom instrumentation </methods> </java-class> </java-classes> </all-calls-from-method> 113 About calls from method to method instrumentation configuration The <calls-from-method-to-method> element has this structure: <calls-from-method-to-method> <invocation-relationship> <!-.occurs 0 or more times --> invoked-method-name </invoked-method> </invocation-relationship> </calls-from-method-to-method> See “About method signature matching” on page 115. About ignore instrumentation configuration Use the <ignore-config> element to configure rules that are used to determine when to prevent instrumentation from being applied to all methods in specifically matched classes or packages. The <ignore-config> element has this structure: <ignore-config> <java-classes> <!-.occurs 0 or more times --> <java-class> <class-name> class-or-interface-name </class-name> <methods> <method> <!-. For each method to be instrumented. The <java-classes> element has this structure: <java-classes> <java-class> <!-. to specifically matched methods.optional --> <!-.occurs 0 or more times --> <!-. --> </all-calls-to-method> </instrumenter-config> 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.

Configuring Precise for J2EE instrumentation About using custom instrumentation ■ 114 If the method is declared in a class whose name matches the specified class or interface name of a <java-class> element.occurs 0 or more times --> <java-class> <class-name> class-or-interface-name </class-name> <methods> <method> <!-. For each call to a method to be instrumented.”) is considered to be the method name.occurs 0 or more times --> qualified-method-name </invoked-method> </invocation-relationship> See “About method signature matching” on page 115.occurs 0 or more times --> <name> method-name </name> <params> <!-. the wildcards pattern *.occurs 0 or more times --> <name> method-name </name> <params> <!-. Use the <invocation-relationship> element to prevent instrumentation from being applied to specifically matched calls to methods from a specifically matched calling method. . ■ ■ Wildcards are permitted in the class or interface name and method name. the method must also match the specified method name of a <method> element so that no instrumentation is applied to the method.* matches all methods of all classes. The portion of the <name> element after the last dot (“. If the matched <method> element includes a <params> element. no instrumentation should be applied to the method. If the matched <method> element includes a <params> element.optional --> </params> </method> </methods> </java-class> <invoked-method> <!-. ■ Use the <all-calls-to-method> element to prevent instrumentation from being applied to specifically matched calls to methods from any calling method. See “About using the wildcard character *” on page 115. If the matched. no instrumentation should be applied to the method. the method must also match the specified signature so that no instrumentation is applied to the method. it is important to use a wildcard pattern that fits the scheme described. The <name> element must represent a fully qualified method name.optional --> </params> </method> </methods> </invocation-relationship> See “About method signature matching” on page 115. The <invocation-relationship> element has the following structure: <invocation-relationship> <!-. the method must also match the specified signature so that no instrumentation is applied to the method. About common instrumenter configuration matching techniques Common instrumenter configuration matching techniques are method signature matching and using the wildcard character *. For example. The <all-calls-to-method> element has the following structure: <all-calls-to-method> <methods> <method> <!-. If the matched <java-class> includes a <methods> element. <java-class> includes a <methods> element. 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. and the portion of the <name> element before the last dot is considered to be the class name. the method must also match the specified method name of a <method> element so that no instrumentation is applied to the method. When you use wildcards.

AbstractTask$1 xmp.init&gt.server.sleep(long) </invoked-method> or <invoked-method> com.server.AbstractTask xmp.Main xmp.String is java.task. methods.comm. Otherwise.task.server. and the parameter type for a parameter of type int[][] is int[][].AbstractTask xmp. .int[][]) </invoked-method> About using the wildcard character * In addition to using specific names to reference items such as classes. for instrumentation.util.acme.task.optional --> <param> <!-.util.String.Main xmp. The following table illustrates how the wildcard character can be used.TaskUtilities Non-instrumented elements xmp.task.util. interfaces.AbstractTask xmp.lang. Do not implement wildcarded instrumentation in production environments. and methods.TaskUtilities xmp. For example: <invoked-method> java. All methods that match the signature are instrumented.String. or packages within the scope of the instruction.lang. The <invoked-method> format must be expressed using the same primitive types that were discussed for the <param> element.shared.task.occurs 0 or more times --> parameter-type </param> </params> The parameter type is the same as the abstract type declarator for the parameter type in Java. Table A-5 Wildcard * Usage of wildcard character * Instrumented elements xmp.task.&lt. it may result in instrumentation that does not yield meaningful performance metrics but introduces unwanted overhead.task. you can also use the wildcard character * to instruct Precise for J2EE to instrument all classes.lang.TaskUtilities xmp.task.task. The <params> element has the following structure: <params> <!-.Configuring Precise for J2EE instrumentation About using custom instrumentation 115 About method signature matching The <params> element configures rules that are used to match method signatures for processing by the instrumenter. the parameter-type for a parameter of type java.Thread.* *$* Note: Use wildcard characters only when discovering the methods to instrument.task.AbstractTask$1 xmp. The following primitive parameter types names are recognized: ■ ■ ■ ■ ■ ■ ■ ■ ■ boolean byte char double float int long short void 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.lang.AbstractTask$1 xmp.Connector. (java.Main xmp. Wildcard expressions are not supported and return types are not matched. For example.

the JVM Runtime Agent on the Application Server that Precise for J2EE monitors is bound to a port on the application server to listen for instructions from the ICU. The second type that is known as Caller-side logging. The ICU user interface also lets you enable instrumentation for methods that are selected from these data files. the following lines cause Leak Seeker to collect information for WebLogic application server classes. To enable instrumentation. About system requirements The ICU is a Java/Swing application that is delivered with Precise for J2EE FocalPoint. Note: The data files that the ICU analyzes can be quite large after they are loaded into the ICU. The instrumentation that the ICU injects allows two types of performance data to be reported from the instrumented methods.. is inside a particular method and measures the method from beginning to end. Performance information that is gathered from the instrumentation that the ICU injected appears in the charts and graphs of Precise for J2EE. For example.xml file. In special circumstances. see the relevant section in the Precise for J2EE User’s Guide. Warning: Instrumenting application server classes may increase excessively the startup time as well as the running time of the application. The ICU also lets you enable or disable instrumentation on individual methods.Configuring Precise for J2EE instrumentation About using the instrumentation configuration utility 116 Including application server classes in Leak Seeker instrumentation To obtain information on collections and arrays with the most elements. . Comment out the lines for the application server whose classes you want to instrument. <!--leakseeker-if-package>weblogic</leakseeker-if-package> 2 About using the instrumentation configuration utility Precise for J2EE ships with the Instrumentation Configuration Utility (ICU). provided the computer is not running in headless mode. is used to measure one specific call to a method from inside another method.. To include Leak Seeker instrumentation for application server classes 1 In the JVMID/LeakSeeker. to identify WebLogic application server classes to instrument. About how the ICU works The ICU provides a user interface for analyzing the survey data files collected by adaptive instrumentation. a tool that is used to analyze the data files collected by adaptive instrumentation. you must have an acceptable DISPLAY setting. How to use the ICU to obtain and analyze these data files and selectively enable or disable instrumentation on individual methods has been described. When you select a specific method in the ICU to instrument. The ICU runs on any of the supported Precise for J2EE platforms. For example. <!--leakseeker-if-package>com.bea and weblogic. Leak Seeker instruments all user application classes but. When you run the ICU from a remote UNIX environment. you may want Leak Seeker to collect information on application server classes as well. you would search for lines beginning with com. so running them on a computer with at least 512MB RAM is recommended.bea</leakseeker-if-package> . known as Callee-side logging. The first. by default. the ICU contacts the Application Server Runtime Agent to request that the specific method be instrumented or to request performance data for an instrumented method. For information on adaptive instrumentation. find the application server class prefix for the application server classes that you want to instrument. excludes application server classes. Callee-side logging is used whenever the method is invoked.

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 About running the ICU Starting the ICU requires that you run a script. after the ICU has been loaded. enable conditional instrumentation on the Adaptive Administration page so that the ICU can instrument methods on your JVM during runtime.Configuring Precise for J2EE instrumentation About using the instrumentation configuration utility 117 About prerequisites to using the ICU Before you can use the ICU to inspect the survey data files and to select specific methods and enable instrumentation for them. see the Precise for J2EE User’s Guide. two . If you plan to use the ICU to instrument selected methods. The ICU always connects via Direct Connect mode. For details. Figure A-2 Initial ICU screen . If you plan to use the ICU to instrument selected methods. you need to perform the following steps: ■ ■ Run adaptive instrumentation to obtain a survey data file. For information on configuring Direct Connect mode.ser survey_01_19_2004_10_21_02_end. ■ About obtaining data files for the ICU When adaptive instrumentation data is collected. enable the ICU to communicate with the Application Server JVM by enabling IXP Direct Connect mode and configuring the desired port for connections.ser files are placed in the directory on the server with the Collector agent where your JVM is running.ser You need to make these files available to the ICU. as shown in the following figure. the initial console screen appears. see the Precise for J2EE User's Guide. For example: survey_01_19_2004_07_21_02_begin. To obtain data files for the ICU 1 Copy the .

the methods are arranged in the tree according to their response time values. essentially allowing you to “drill up” in the method invocation hierarchy. select the slice file that you want to load (the *_begin. Additionally. With each method. The child nodes in the tree represent the callees of that method.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. About identifying methods of interest The method hierarchy shows all the methods that were invoked during the data collection interval. Method hierarchy. as shown in the following figure. for the method across all invocations during the collection interval represents the total count of method invocations during the data collection interval.ser file) and click Load.ser file) and click Load. On the Slice menu. the child nodes in the tree represent the callers of a particular method. select Load End Slice. as shown in the following figure. To load data files for analysis 1 2 3 4 On the Slice menu. but you do not see any data until an end slice is loaded. In the Load Begin HeatSeeker Sample dialog box.sh Loading data files for analysis To analyze data for analysis. in milliseconds. while “paper” icons mean that the method has no callers. three metrics are displayed: Work Time (WT) Response Time (RT) represents the total work time. “Folder” icons mean that a method has callees.bat $<i3_root>/products/j2ee/bin/runHeatSeekerConsole. The order in which the slices are loaded does not matter. for the method during the collection interval represents the average response time. In the Load End HeatSeeker Sample dialog box. select Load Begin Slice. The method tree is populated with all methods that were invoked during the slice collection period. select the slice file that you want to load (the _end. the methods are arranged in the tree according to their work time. 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. in milliseconds. “Folder” icons mean that a method has callers. while “paper” icons mean that the method has no callees. allowing you to drill down in the invocation hierarchy. . sorted by work time Figure A-3 ■ When the method list is sorted by Response Time/Calls To. you must load the slice files that contain the data.

sorted by class & method name Figure A-5 Enabling or disabling instrumentation for a method You can enable or disable instrumentation per method. methods are sorted alphanumerically on the fully qualified class and method name. as shown in the following figure. . sorted by response time ■ When the method list sorted by Class & Method Name. Method hierarchy. Drilling down in this view also displays the method callees.Configuring Precise for J2EE instrumentation About using the instrumentation configuration utility 119 Figure A-4 Method hierarchy.

select the method to instrument. view the available tasks. in the Host Name and Port text boxes. 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. On the Task menu. 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. ■ .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.nor caller-side logging can be enabled for the selected method. type the name of the Application Server Runtime Agent’s host and port. The Enable/Disable Logging for Selected Method tasks is available when the selected method can have callee-side logging enabled. In the method hierarchy. The Enable/Disable Logging for Calls from Selected Method to Callee tasks are available when the selected method can have caller-side logging enabled.and callee-side logging enabled.

and add or delete hints to make Oracle's Optimizer choose a better access path and make the statement perform better. Alerts These product provide alerts to problematic conditions before they turn into performance problems. Represents the period of time over which Precise data is collected and aggregated (summarized). the tiers are logical. Invocations. and Exceptions. Precise for J2EE saves it in the SQL archive with an active label. and performs any action that has been user-defined for that specific alert. The Precise installation consists of multiple agents. or communicate performance information. Alerts can automatically perform an action. such as displaying a pop-up message. Also called a measurement interval. See also InformPoint. See also alert. and management of all installed Precise components. sending an e-mail message or SNMP trap. An AppTier contains one or more instances of the same technology and purpose. According to the defined action. triggering an action and informing of a problem that has occurred or is likely to occur within the area sampled by the specific metric. these tabs show Highlights. The state of an Alerts metric that has reached a near-critical or critical status. or executes a program. stores it. such as monitoring the status of all Precise agents and Performance Warehouse processes. Hotspots. alert type In Alerts. changing Performance Warehouse settings. Application tiers do not necessarily correspond to distinct physical server machines: in many cases. getting log data on agents and events. or running a program. An agent that receives data from the InformPoint agents. such as IBM's Performance Management Interface (PMI). indicating the current performance level through colors. sends an email or SNMP trap. In Precise for J2EE. The central administration console of Precise that facilitates the maintenance. See also metric. This can include metrics published by the Java Management Extension (JMX) APIs or vendor-specific APIs. The abbreviation for an application tier in a Precise environment. advice In Precise for Oracle. the status of all metrics belonging to a metric group or a monitored instance. such as displaying a pop-up message. configuration. SQL. process. starting and stopping the agents. Can be activated from any DML (Data Manipulation Language) statement. See also Performance Warehouse. When the age of active archive data exceeds the Aging Timespan configuration setting. based on predefined metrics and thresholds. with one server machine running multiple active archive data AdminPoint agent aggregation interval alert Alerts FocalPoint . or running a program. In Precise for J2EE. a counter that keeps track of the percentage of users that abandon the loading of the Web page before it completes downloading. Business. An alert is issued by Alerts. a metrics that is provided by the application server or by customer code. In Precise for Web. Alerts FocalPoint opens a message box. change existing indexes. the data is re-labeled as overflow or deleted. and installing patches. creating new indexes. in the Activity workspace. sending an e-mail message or SNMP trap. analysis tabs application server metric AppTier In Precise for J2EE. A program that runs on a server machine to collect. As new data is collected. See also action. See also agent. Locks. depending on the selection status of the Overflow Enabled item. The terms <i3_root> (or i3 root) and Precise root can appear in text too. getting license information. the smallest unit of data presentation and storage. The data that is managed directly by Precise for J2EE. An operation that Alerts FocalPoint automatically performs when detecting a warning or critical status for a specific metric.Glossary <i3_root> abandonment rate action This is the term used in a path for the Precise installation directory. an algorithm that is designed to recommend on gathering statistics.

an internally invoked servlet or JSP. completion rate Concurrent Active Thread contributor count CPU time critical status In Precise for Web. Precise for SQL Server. In general. The measurement of CATs indicates how busy the system was during a period of time. 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. See also explained statement. The active threads can include HTTP. the status represented by a red bullet indicating that the value of the sampled metric has exceeded the near-critical and critical threshold values. Each collapsed statement can have several access plans. client cache cluster collapsed access plan . collapsed statement In Precise for Oracle. 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. including data that is actively managed by Precise for J2EE (active archive data) and data that is managed by the user (inactive archive data). Precise for SQL Server. Precise for DB2. For example. The number of simultaneously active threads is rarely a stable integer number. either within a single server or across multiple servers. browser side collection cabinet call path CAT (concurrent active thread) In Precise for Web. See also collapsed statement. a counter that keeps track of the percentage of requests taken from the client cache (http status 304). Other technologies require a dedicated Collector agent per monitored instance. and Precise for DB2. in such a way that the operation of the group appears to be that of a single JVM with improved performance and reliability. and Sybase may reside on a remote server. In Precise for SQL Server and Precise for Sybase. JDBC. a grouping of multiple JVMs. a counter that keeps track of the percentage of users that completed the loading of a Web page. two (or more) servers that work together to balance load or to provide continued operation if one server fails. Segmenting application service time into the contribution of individual application tiers is helpful in identifying the source of performance problems. Collector agent The program that runs on the monitored server to collect performance information. Within J2EE. EJB. For example. the gathering of performance data from the desktop of the Web application's user through the Web browser agent. A Precise environment may contain multiple AppTiers on the same technology. statements. In Precise for Oracle. In addition. See also active archive data. SQL Server. the highest logical level in the SQL workspace hierarchy. Can differ due to the constants in the text of the original (not collapsed) statements. See also agent. In most cases. The number of occurrences observed during a measurement interval. Some technologies allow a single Collector agent to serve multiple instances running on the same server. within folders. In Precise for Web. An invoked element that contributes to a method's performance. See also inactive archive data. and Precise for Sybase. Collector agents for SAP. archive data The data stored in a Precise for J2EE database. The average amount of time consumed by the operating system actively processing instructions on behalf of a running method. 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. or JDBC call are contributors to service request response time and CPU time. Precise for Sybase. Analyzing the performance and behavior of each tier separately is crucial for isolating the root causes of performance problems. EJB call. A cabinet contains folders and.Glossary 122 AppTiers or one AppTier spans a cluster of servers. See also collapsed access plan. In Alerts. or custom invocations. you may group J2EE instances (JVMs) into a J2EE Presentation AppTier and a J2EE Business Logic AppTier. a statement whose constants are replaced with parameters. it must be installed on the monitored server. See CAT (concurrent active thread). according to the occurrences of its statements.

execute time executions explained statement The percentage of time spent executing the application. it may contain any set of instances that form together an administrative group. A client's reference to a remote object. See also progress. SAP. An EJB invoked either externally or directly from an externally invoked HTTP request. A sampling occurrence occurs every time a metric samples. a product extension that provides detailed information on the activities and resource consumption of packaged application components. a Payroll Production environment may contain all Web servers.5. all occurrences reported by Precise agents. Explained results include information on the objects referenced by the statement and the operations performed on these objects. the occurrence of a sampling or progress. including operating system data. the filtering of analyzed data by clicking a specific entity in the Association area table. enterprise-level applications. Within Precise products and Insight SmartLink. PeopleSoft. Precise for DB2. a function that proactively specifies a future period during which Oracle activity data is collected and organized for subsequent analysis. 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 statement whose access path (chosen by the RDBMS Optimizer) is clarified and translated into a visual display. ERP extension In Precise for Oracle. warnings. In Alerts. A software component architecture for the development and deployment of object-oriented. Precise for SQL Server and Precise for Sybase. In Precise for Oracle. and errors related to one of the agents. It may contain multiple AppTiers of various technologies that serve an application together. transaction managers. Alternatively. Information is always related to all AppTiers in an environment and can help understand how AppTiers interact. See aggregation interval. In Precise for Oracle. and Siebel.Glossary 123 See also metric. the number of times a SQL statement was executed during the selected time frame. See EJB (Enterprise Java Bean). and the packaged application information and lets you see users. Since Precise version 8. application servers. displayed in bar graphs. 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. distributed. See also AppTier. Precise for DB2. including informational events. databases and server machines that serve this application. See also instance. The percentage of service request response time attributed to executing local or remote EJBs. EJBs typically contain business logic. Precise for SQL Server. 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 Precise for Oracle. For example. in this case the Oracle database will be associated to three different Precise environments. and Precise for Sybase. A server-side entity containing a method that dispatches calls to the actual remote object implementation. a user-defined metric that measures site-specific parameters. See also AppTier. Extended collections are an easy means to view collected Enterprise Java Bean environment event extended collection . Cross-AppTiers A perspective that provides high-level information about the performance of an environment. an instance can belong to more than one environment. therefore. and Precise for SQL Server. The highest Precise logical group. All events are shown in the Events view. 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. See also metric. transactions. In AdminPoint. reports and other elements of ERP applications such as Oracle Applications. is actually a reference to a local stub. In Alerts. It correlates the database information.

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..

first byte time folder

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

instrumentation context internal invocation invocation

invocation context

J2EE 2 Platform, Enterprise Edition)

(Java™

Java Collection Java™

JDBC (Java Database Connectivity)

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.

JVM Heap Memory key metric

Listener

login name

machine

Main framework node major collection count

major garbage collection time

MBean measurement interval memory logger interval

metric

metric set

an operating system or a Web server performance counter. An application server for Web-based applications that commonly provide personalization. a joining of several child metrics. An application that is created and/or maintained by a third party and is not custom-built to one's specific needs. single sign-on. PeopleSoft. a Windows performance counter as reported by the operating system. Oracle Applications." In the UI screens (columns in tables. In Precise for Web. a counter that keeps track of the time spent on network activity from the server side perspective. A near-critical status is indicated by a yellow bullet. In Precise for Web. In Precise for Sybase. performance counter Performance Warehouse portal server In Precise for SQL Server and Precise for Oracle." For example: choose a node for the new environment. 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. near-critical status network time node packaged application . In Alerts. In Precise for Web. Load Trending: includes metrics that alert to potential future load problems. we would call them "Nodes. a status indicating that the value of the sampled metric has exceeded the defined near-critical threshold.Glossary 127 Load: includes metrics that alert to instance-related load problems that may later cause errors or crashes. other overflow Represents invocations of a type not specifically defined. it would be called "Framework. The Precise data warehouse of performance and availability data. The metrics in this set are sampled by Report Manager. the oldest active data slice is removed. Each time a parent metric samples. See also ERP extension. Service: includes metrics that alert to instance-related SLA breaches. In Precise for J2EE. When adding a new system within AdminPoint. See also work time. It can be hosted on an Oracle or SQL Server database. a counter that keeps track of the amount of data loaded from the server to display the page. In Alerts. The following packaged applications have special treatment by Precise: SAP. a counter that keeps track of the number of Web pages viewed at a specific Web site during a selected time period. This includes the time to read the request from the network and the network time to send the response back to the client. In Precise for Oracle it contains the value of MODULE column in V$SESSION table. Customized: includes user-defined metrics. Precise Status: includes metrics that alert to the near-critical or critical status of the installed Precise environment. Aggregation is the action of integrating content from different sources within a Web page. In Precise for DB2 it contains the command name of non-SQL statements or the package name for SQL statements. The individual child metric values are displayed on the Thresholds tab of the Properties dialog box in Alerts. it would be called a "Framework node". Performance Trending: includes metrics that alert to potential future performance problems. If overflow is not enabled. See also submetric. They are harder to modify because the application code is either not available or hard to understand. a sysmonitors counter collected by Sybase. module A session identifier. and Siebel. The metrics in this set are sampled by Insight. choosing a system for a new environment etc). it gathers data from a set of child metrics and presents it as a single metric query. 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. and content aggregation from different sources and that host the presentation layer of Information Systems. page size page views parent metric In Precise for Web. The metrics in this set are sampled by Report Manager. See Framework node. Note: when creating a new installation from DVD.

Precise for DB2. In action definitions. the Siebel views override the program. 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. receives data from the Collector agents. Based on the results of this function. for example. In Insight. program is the name of an executable as recognized by the operating system. Applications that do not set the application name have N/A as program. In Precise for SQL Server. When multiple Framework Nodes are managed by a single Precise deployment. and Alerts. program is the name of the executable that will run if the metric exceeds its threshold. It contains and manages various agent types and provides centralized monitoring and administration. recommended index . the Optimizer will choose a better access plan and make the respective statement or batch perform better. If an executable is invoked from a script (a batch or a shell). In Alerts. Investigated: The alert is taken care of. See also Alerts See also Report Manager Precise Precise deployment Precise FocalPoint Precise FocalPoint agent Precise Proxy agent Precise FocalPoint An independent Precise system. Portlets are used by portals as pluggable user interface components that provide a presentation layer to Information Systems. The following statuses exist: Open: An alert is raised. periodically processes and stores this data in Performance Warehouse. For tables. or table. batch. An agent that manages all agents in a single Precise deployment. the script is displayed as the command entity. it is placed at the beginning of the recent time series. One of them is defined as the main framework node and it manages all other nodes of the Precise deployment. that processes requests and generates dynamic content. When a new data sample is collected.Glossary 128 portlet A Java-based Web component.NET Precise for Oracle Precise for DB2 Precise for SQL Server Precise for Sybase See also Insight. managed by a portlet container. A Precise deployment may contain multiple framework nodes. When Siebel extension is installed. is the name of the executable that connects to the database. In Alerts. Precise for Sybase. A session identifier in Precise for Oracle. An agent that communicates with the Listener agents installed on the monitored servers. Old recent series's items are removed from the end. by the Precise for SQL Server Collector agent. and it may change during the application's lifetime. the management state of a metric for which an alert has been raised. When SAP extension is installed. Precise for SQL Server. program progress Proxy FocalPoint recent data See Precise Proxy agent A time series consisting of the most recent number of aggregation intervals of a Precise for J2EE Collector agent. a function that uses the Microsoft Index Tuning Wizard to recommend on adding indexes or statistics for a selected statement. For statements and batches. A program as sampled. and serves UI requests. recommendations are based on the content of the statement or batch. 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. Additional product FocalPoint agents manage specific technologies and resources. and it may change during the application's lifetime. the SAP transaction overrides the program. Closed: The problem has been solved. 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 . Insight. See Precise FocalPoint agent.

consisting of report parameters and scheduling information. instance configuration parameters and database option changes are also captured. The sampling rate is measured in minutes. including the total amount of time the request took to reach the server. retrieves values. In Precise for Web. 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. the start time of a scheduled sampling process (by default Sunday. 00:00 AM).5 invocations per service request execution. See also report parameter. In Report Manager. A component of Precise Agent Installer that enables adding a small JavaScript script. a counter that keeps track of the service and network time. the Relative Frequency for the method is 0. In Alerts. A collection of queries. In Alerts. the time frame during which statistical data is returned from other Precise products. the collecting of performance data from the Web server instance through the Web server agent. if a service request calls three methods each time it is invoked. For example. also known as a Precise for Web browser-side agent. are executed during the selected time period. view availability problems over long periods of time and on different levels. volume trends and patterns. the frequency of a metric's regular sampling schedule. Number of contributor invocations per service request execution. A parameter's value can be updated either permanently or for the current execution only. In specific Alerts metrics. See also advice. related SQL relative frequency In Precise for Oracle. and layout settings that Report Manager executes to generate graphical results like tables and charts. compare the performance of similar systems. and generate demand-driven. See also Performance Warehouse. In Report Manager.Glossary 129 recommendations are based on all the statements that are stored in Performance Warehouse. a generated statement that uses alternative syntax to access the database in different ways and returns the same output as the original statement. which returns database behavior for a certain period of time. Also called a host machine or server machine. track long-term performance. In Precise for Web. a counter that keeps track of the percentage of requests completed with an HTTP error. programming code. a keyword used in a report. In Precise for Web. and have an average duration time greater than the value defined in the registry (where 0 is the default). if a service request calls one method every other time it is invoked (half of the time). correlate between performance metrics of different products. positive scalability means that the system continues to function properly even when it is called upon to service a larger number of users. An Insight agent that collects AppTier-specific performance data. For example. the Relative Frequency for the method is three invocations per service request execution. the process during which a metric queries a Precise product for a specific instance. Its value is set during the report execution. 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. In Precise for Oracle and Precise for SQL Server. request request error sampling sampling base sampling period In Precise for Web. assist in capacity planning. and calculates the metric's alert level. to the Web pages of your Web site. A system's ability to withstand load. In Precise for Web. An agent that examines the Performance Warehouse tables to produce scheduled performance reports. In Precise for SQL Server. Uses historical information to identify problematic conditions. Similarly. In Alerts. user-defined reports. a process that captures schema changes and saves them in Performance Warehouse. rendering time report Report Manager Report Manager FocalPoint report parameter report property sampling rate Savvy scalability schema changes Script Installer server server-side collection service + network time . a counter that keeps track of the number of HTTP requests sent for a viewed entity. Such a metric is for example Oracle's General Behavior metric. the attributes that define a specific report.

For example. Each child metric has its own thresholds and may be enabled or disabled individually. Precise for SQL Server. and WebSphere) are defined as a single Web technology. service time servlet size SLA (Service Level Agreement) slice SmartLink SmarTune socket StartPoint submetric summary table technology throughput time series time slice . A unit used to break up long sessions into smaller time periods. The length of a time slice is preset and cannot be changed. the time it takes an invocation to complete execution. and DB2 are different technologies. The servlet generates an HTML page that is sent back to the Web browser. A single monitored object can be monitored by two different technology's Collector agents. daily. A range of one or more aggregation intervals. 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 service time includes CPU and wait time. Summary tables are particularly useful for data aging. and weighted service time before making performance conclusions on the average service time. A container that stores the information collected by the Precise agents and loads it into Performance Warehouse. A top-level HTTP or EJB request. See aggregation interval. the subquery of a parent metric. See also parent metric. It provides a quick overview of the environment status and links to launch any of the Precise products. BEA WebLogic server can be monitored by both Precise for Web collector agent and Precise for J2EE Collector agent. therefore. a component that provides transactive. identifies and ranks potential problem areas. 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. Once a system's SLA is defined. while all Web servers (such as: Apache. the contributor may be called many times. In Insight. hourly. Precise can present a detailed view and progressively higher-level views of the same data. As a result. A service request can originate when a user clicks in a browser or an E-commerce server invokes a remote EJB. SQL Server. The service time is measured on the server side. and monthly. Also called child metric. In other words. The first HTTP or EJB invocation within a call path is designated as a service request. Precise for J2EE makes a distinction between service request invocations and other invocations. An I/O abstraction layer that enables processes to communicate with each other. and breaches can be isolated to identify their causes. In Precise for J2EE. A class that is loaded only once and for which the application server uses multithreading to process requests. Summary tables store the same data at different levels of granularity: time slice. its SLA compliance can be analyzed. an SLA consists of clauses corresponding to various system activities. if the length of a time slice is 15 minutes. service time is the average length of time between the start time and end time of a Java method execution. By storing data in multiple summary tables.Glossary 130 Service Level Agreement service request See SLA (Service Level Agreement). 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. It is. weighted throughput. Within Precise. A technology identifies the monitored object. correlated information across AppTiers from the user's perspective. regardless of whether they are on the same machine. For example. Sybase. For example. Insight SmartLink functions in PeopleSoft and Web applications environments. A formal definition of an information system's performance goals. the collection is only updated at 15-minute intervals. In Alerts. an algorithm that analyzes performance metrics. the SQL service time is the time it takes the JDBC method executing the SQL statement to be completed. a counter that keeps track of the bytes sent and received. The number of average completions per second that are observed during an interval. The opening page of Precise. The service times are reported in the interval in which they complete execution. a good rule of thumb to also analyze the throughput. and Precise for J2EE. Oracle. a contributor's overall contribution to performance may be large even though its average service time is low. For example. and provides advice for correcting the problems. Though a contributor's average service time may be very small. relative frequency. It represents the maximum time that passes before the data collected can be displayed. In Precise for Oracle. weekly. IIS. 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. In Precise for Web.

the JDBC Weighted Response time is 50 percent of the service request's response time. 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. See also aggregation interval. Tuner agent In Precise for Oracle. or Siebel. The total CPU time concerns the location displayed in the Navigation path. For example. a software component that provides a comprehensive database objects browser and a rich set of tuning features. The total response time concerns the location displayed in the Navigation path. Similarly. 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. and sends the pages to the client. a time slice is also called a data sample and a slice. a time slice is comprised of 5-minute intervals. such as Web. For example. in Precise for Oracle. the Java method Weighted Throughput is 300 percent of the service request's throughput. A program that receives client requests for Web pages. URI (Uniform Resource Identifier) URL mapping The relative path to a resource after the location (network node) is found.Glossary 131 The length of a time slice is different for each i product: In Precise for Oracle. each taking a quarter of a second. In Precise for J2EE. Web server weighted CPU time weighted response time weighted throughput work time work type workspace . if a service request response time is 1 second and it makes two JDBC calls. reported and stored for a JVM. a computer that delivers (serves up) Web pages. A display unit in Precise products. the period of time over which data is collected. In Precise for Web. retrieves the static pages and/or issues a request for dynamic page creation to an application server. A time slice also represents the Precise for J2EE Collector agent's aggregation interval. The percentage contribution of each displayed item to the total throughput. and Precise for Sybase. 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. the Current workspace shows information on the sessions currently active in an application. SAP. The total throughput concerns the location displayed in the Navigation path. The time spent on everything not directly accounted for by instrumentation. In Precise for Web. the weighted throughput for the Java method is 50 percent. meaning that the data is summarized every 5 minutes. and Precise for Sybase. The time slice period is Precise for J2EE's smallest storage unit. In Precise for SAP. For example. All workspaces display data from different perspectives. if a service request calls three Java methods each time it is invoked. The percentage of the total response time spent in different contributors. In Precise for Web. a counter that keeps track of the type of the Web instance. The percentage of the total CPU time spent in different contributors. including the invocation time or CPU time. a time slice is 15 minutes. See also agent. PeopleSoft. Precise for SQL Server and Precise for Sybase. Precise for SQL Server. if a service request calls one Java method every other time that it is executed (half of the time). Every Web server has an IP address and possibly a domain name. Precise for SQL Server.

52 data files ICU 117. 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 . 112 custom instrumenter 93 enabling additional file 92 file instrumenter 91 instrumentation 112. 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.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. 92 configuration 112 custom instrumenter configuration 93 D Dashboard workspace identifying performance problems 66 portlets 51 configuring 52 list of 53 time frame 51. 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. 97. 100. 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.

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. 97. 106 . 101 feature 106. 112 extending 96. 105. 33 preventing 103. 104. 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. 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 . 106 restricting 95. 104.. 105.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. 108 ignoring configuration 113 modes 16.. 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. 100.

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. 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. 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 .Index 134 R Recent Items Charted 18 Recent Slices 18 Refresh Enabled? 18 Refresh Interval 18 requirements ICU 116 restricting instrumentation 95.

Sign up to vote on this title
UsefulNot useful