Quest Software 5.0 PerformaSure User’s Guide

Quest Software 5.0 PerformaSure User’s Guide
Add to My manuals

Below you will find brief information for PerformaSure 5.0. PerformaSure is designed to help you diagnose and solve performance issues. With AutoCapture, it even allows you to launch a session automatically when a problem has been detected by Foglight. PerformaSure enables performance investigation teams to plan ways to correct performance problems in pre-production Java EE environments and can also be used once an application is deployed to ensure that planned capacity goals are met.

advertisement

Assistant Bot

Need help? Our chatbot has already read the manual and is ready to assist you. Feel free to ask any questions about the device, but providing details will make the conversation more productive.

PerformaSure 5.0 User's Guide | Manualzz

TM

PerformaSure

User’s Guide

Version 5.0

Java EE performance diagnosis

World Headquarters

5 Polaris Way

Aliso Viejo, CA 92656 www.quest.com

email: [email protected]

June 04, 2009 Part No: PerformaSure50

© 2009 Quest Software, Inc. ALL RIGHTS RESERVED.

This guide contains proprietary information protected by copyright. The software described in this guide is furnished under a software license or nondisclosure agreement. This software may be used or copied only in accordance with the terms of the applicable agreement. No part of this guide may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying and recording for any purpose other than the purchaser's personal use without the written permission of Quest Software, Inc.

If you have any questions regarding your potential use of this material, contact:

Quest Software World Headquarters

LEGAL Dept

5 Polaris Way

Aliso Viejo, CA 92656 www.quest.com

email: [email protected]

Refer to our Web site for regional and international office information.

Trademarks

Quest, Quest Software, the Quest Software logo, Aelita, Akonix, AppAssure, Benchmark Factory, Big Brother, ChangeAuditor, DataFactory,

DeployDirector, ERDisk, Foglight, Funnel Web, GPOAdmin, iToken, I/Watch, Imceda, InLook, IntelliProfile, InTrust, Invirtus, IT Dad,

I/Watch, JClass, Jint, JProbe, LeccoTech, LiteSpeed, LiveReorg, MessageStats, NBSpool, NetBase, Npulse, NetPro, PassGo, PerformaSure,

Quest Central, SharePlex, Sitraka, SmartAlarm, Spotlight, SQL LiteSpeed, SQL Navigator, SQL Watch, SQLab, Stat, StealthCollect, Tag and

Follow, Toad, T.O.A.D., Toad World, vAMP, vAnalyzer, vAutomator, vControl, vConverter, vDupe, vEssentials, vFoglight, vMigrator, vOptimizer Pro, vPackager, vRanger, vRanger Pro, vReplicator, vSpotlight, vToad, Vintela, Virtual DBA, VizionCore, Vizioncore vAutomation Suite, Vizioncore vEssentials, Xaffire, and XRT are trademarks and registered trademarks of Quest Software, Inc in the United

States of America and other countries. Other trademarks and registered trademarks used in this guide are property of their respective owners.

Third-Party Contributions

See “

Appendix E—License Credits and Trademarks in the User’s Guide for a list of third-party products included in PerformaSure

.

Disclaimer

The information in this document is provided in connection with Quest products. No license, express or implied, by estoppel or otherwise, to any intellectual property right is granted by this document or in connection with the sale of Quest products. EXCEPT AS SET FORTH IN

QUEST'S TERMS AND CONDITIONS AS SPECIFIED IN THE LICENSE AGREEMENT FOR THIS PRODUCT, QUEST

ASSUMES NO LIABILITY WHATSOEVER AND DISCLAIMS ANY EXPRESS, IMPLIED OR STATUTORY WARRANTY

RELATING TO ITS PRODUCTS INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTY OF MERCHANTABILITY,

FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT. IN NO EVENT SHALL QUEST BE LIABLE FOR ANY

DIRECT, INDIRECT, CONSEQUENTIAL, PUNITIVE, SPECIAL OR INCIDENTAL DAMAGES (INCLUDING, WITHOUT

LIMITATION, DAMAGES FOR LOSS OF PROFITS, BUSINESS INTERRUPTION OR LOSS OF INFORMATION) ARISING OUT

OF THE USE OR INABILITY TO USE THIS DOCUMENT, EVEN IF QUEST HAS BEEN ADVISED OF THE POSSIBILITY OF

SUCH DAMAGES. Quest makes no representations or warranties with respect to the accuracy or completeness of the contents of this document and reserves the right to make changes to specifications and product descriptions at any time without notice. Quest does not make any commitment to update the information contained in this document.

User’s Guide

June 04, 2009

Version 5.0

2

Contents

Preface ....................................................................... 13

About this Guide...........................................................................................13

Assumptions ............................................................................................14

Conventions Used in this Guide ...........................................................14

Related Documentation ...............................................................................16

Release Notes ..........................................................................................16

PerformaSure Installation and Configuration Guide ..........................16

About Quest Software, Inc. .........................................................................17

Contacting Quest Software ....................................................................17

Contacting Quest Support .....................................................................17

Suggested Reading........................................................................................18

Part I: Structure and Workflow

Chapter 1 Introducing PerformaSure ................................................. 21

Introducing PerformaSure ...........................................................................21

Key PerformaSure Concepts and Terms..............................................22

Background: Distributed Systems .........................................................23

Using PerformaSure .....................................................................................25

What Does PerformaSure Do? ..............................................................25

What Approach Does PerformaSure Take?.........................................27

How Does PerformaSure Fit In

With Your Infrastructure and Tools?......................................................27

What Do PerformaSure Browsers Do?.................................................28

How does PerformaSure Define a Service Request? ..........................28

How does PerformaSure Show a Service Request? ............................29

Who Uses PerformaSure? ......................................................................29

3

The Components of PerformaSure.............................................................30

PerformaSure Agents..............................................................................30

PerformaSure Nexus ..............................................................................33

PerformaSure Workstation ....................................................................35

Security ....................................................................................................36

Interaction with Foglight..............................................................................37

Interaction with Spotlight ............................................................................37

Interaction with Load-Testing Tools ..........................................................38

Chapter 2 Starting PerformaSure ......................................................39

Installing and Configuring PerformaSure ..................................................40

Integrating PerformaSure in Your Environment.................................40

Running PerformaSure ................................................................................41

Running the Nexus.................................................................................41

Using nexusctl...........................................................................................46

Running Agents ......................................................................................48

Running the Workstation.......................................................................56

Starting PerformaSure FAQ ........................................................................64

Chapter 3 Recording a Session ........................................................65

Recording Levels..........................................................................................65

Component or Full Detail? ....................................................................66

Component-Level Instrumentation ......................................................66

Full Detail Recording Level...................................................................69

Including and Excluding Classes ................................................................70

Choosing Classes for Instrumentation..................................................71

How the Nexus Categorizes Service Requests ..........................................73

Complete Requests.................................................................................73

Incomplete Requests ..............................................................................73

Fragmented Requests .............................................................................74

Load Levels ...................................................................................................75

Service Request Sampling......................................................................76

4 PerformaSure: User’s Guide

Service Request Separation....................................................................77

Service Request Filtering........................................................................84

Session Acquisition.......................................................................................86

Tag and Follow .......................................................................................86

Session Time Slice Size ..........................................................................86

Acquiring a Session ......................................................................................88

Configuration Overview ........................................................................88

Load Testing............................................................................................92

Collecting Your First Session.................................................................92

Recording a Session FAQ............................................................................94

Chapter 4 Analyzing Sessions.......................................................... 95

Methodology .................................................................................................95

General Guidelines for Analyzing a Session ........................................96

Navigating the Project Window ..................................................................97

Selecting Another Project or Session ....................................................97

Customizing the Project Window .........................................................97

Using the Browsers .................................................................................... 101

Customizing the Browsers................................................................... 102

Using the Time Control Panel............................................................ 102

Filtering Data in the Browsers ............................................................ 107

Using the Request Time Browser....................................................... 107

Using the SQL Browser....................................................................... 115

Using the Request Tree Browser........................................................ 119

Using the Metrics Browser.................................................................. 129

Using the Thresholds Browser............................................................ 132

Integration with the Quest Software Suite for Further Analysis ................................................................................... 134

JProbe Integration................................................................................ 134

Spotlight Integration ............................................................................ 137

Analyzing Sessions FAQ........................................................................... 138

5

Chapter 5 Isolating Performance Problems........................................ 141

A Strategy for Finding Performance Problems .......................................141

Part II: The PerformaSureWorkstation

Chapter 6 PerformaSure Workstation ............................................... 145

Starting the Workstation ............................................................................146

Logging In .............................................................................................146

Defining Nexus Instances ....................................................................148

Navigating the Startup Window..........................................................150

Changing a Password ...........................................................................154

User Management ................................................................................154

Session Management............................................................................164

Chapter 7 PerformaSure Projects ................................................... 171

New Project Wizard ...................................................................................171

New Project Wizard—Summary ..........................................................172

New Project Wizard—Full Detail .........................................................174

The Project Window ..................................................................................178

Menus and Toolbar—Summary ...........................................................179

Menus and Toolbar—Full Detail..........................................................182

The Session Label.................................................................................189

Browsers Area .......................................................................................190

PerformaSure Projects FAQ ......................................................................193

Chapter 8 Recording Control Window and Nexusctl................................................................ 195

Recording Control Window......................................................................197

Recording Control Window—Summary.............................................197

Recording Control Window—Full Detail............................................198

Recording Settings Dialog .........................................................................202

Recording Settings Dialog—Summary ................................................203

6 PerformaSure: User’s Guide

Recording Settings Dialog—Full Detail .............................................. 206

Advanced Sampling Dialog...................................................................... 221

Advanced Sampling Dialog—Summary ............................................. 221

Advanced Sampling Dialog—Full Detail............................................ 222

Recording with nexusctl ........................................................................... 225

nexusctl—Summary .............................................................................. 226

nexusctl—Full Detail............................................................................. 229

Equivalent Recording Control Options .................................................. 241

Chapter 9 Edit Options Dialog.........................................................247

Chapter 10 Time Control Panel.........................................................253

Components in the Time Control Panel ................................................. 253

Timeline................................................................................................ 253

Zonar ..................................................................................................... 254

Data Availability Indicator ................................................................. 254

More Zone Detail................................................................................. 254

Less Zone Detail................................................................................... 255

Timeline Labels.................................................................................... 255

Related Controls ........................................................................................ 256

Sightline ................................................................................................ 256

Link Browsers to Use Same Zone/Break Link Between Browsers . 257

Query Progress Bar and Cancel Query Button ................................ 257

Chapter 11 Live Data Updates ..........................................................259

Chapter 12 Agent Information ..........................................................261

Chapter 13 Request Time Browser.....................................................265

Request Time Browser .............................................................................. 266

Request Time Browser Modes ........................................................... 267

Menus and Toolbar—Summary .......................................................... 267

Menus and Toolbar—Full Detail......................................................... 270

7

Time Control Panel ..............................................................................277

Request Time Browser Control Pane—Summary ..............................277

Request Time Browser Control Pane—Full Detail.............................278

Request Time Browser Graph Pane—Summary ................................283

Request Time Browser Graph Pane—Full Detail ...............................284

Request Time Browser Detail Pane ....................................................290

Request Time Browser FAQ .....................................................................294

Chapter 14 SQL Browser ................................................................ 295

SQL Browser...............................................................................................295

Menus and Toolbar—Summary ...........................................................297

Menus and Toolbar—Full Detail..........................................................300

Time Control Panel ..............................................................................305

SQL Browser Control Pane—Summary..............................................305

SQL Browser Control Pane—Full Detail.............................................306

SQL Browser Graph Pane—Summary ................................................308

SQL Browser Graph Pane—Full Detail...............................................309

SQL Browser Detail Pane ....................................................................314

SQL Browser FAQ.....................................................................................318

Chapter 15 Request Tree Browser .................................................... 319

Request Tree Browser................................................................................319

Saving Browser Settings .......................................................................320

Menus and Toolbar—Summary ...........................................................321

Menus and Toolbar—Full Detail..........................................................325

Time Control Panel ..............................................................................337

Request Tree Browser Graph Pane—Summary .................................338

Request Tree Browser Graph Pane—Full Detail ................................341

Request Tree Browser Detail Pane .....................................................362

Creating a JProbe Launcher File.........................................................368

Request Tree Browser FAQ ......................................................................369

8 PerformaSure: User’s Guide

Chapter 16 Metrics Browser ............................................................371

Metrics Browser ......................................................................................... 371

Metric Types ........................................................................................ 372

Menus and Toolbar—Summary .......................................................... 373

Menus and Toolbar—Full Detail......................................................... 376

Time Control Panel ............................................................................. 380

Metrics Browser Navigation Pane...................................................... 381

Metrics Browser Graph Pane—Summary........................................... 382

Metrics Browser Graph Pane—Full Detail ......................................... 384

Metrics Browser FAQ ............................................................................... 390

Chapter 17 Thresholds Browser........................................................391

Thresholds Browser................................................................................... 391

Menus and Toolbar—Summary .......................................................... 393

Menus and Toolbar—Full Detail......................................................... 396

Time Control Panel ............................................................................. 401

Thresholds Browser Graph Pane—Summary .................................... 401

Thresholds Browser Graph Pane—Full Detail ................................... 402

Thresholds Browser Detail Pane ........................................................ 405

Threshold Editor........................................................................................ 408

Using the Threshold Editor ................................................................ 408

Setting Thresholds ............................................................................... 410

Thresholds Browser FAQ ......................................................................... 410

Chapter 18 PerformaSure Reports .....................................................411

PerformaSure Reports............................................................................... 411

Generated Reports............................................................................... 412

Request Time Report .......................................................................... 418

SQL Report .......................................................................................... 418

Request Tree Report ........................................................................... 419

Metric Report ....................................................................................... 420

Threshold Report................................................................................. 421

9

PerformaSure Reports FAQ ......................................................................421

Part III: Reference Appendices

Appendix A—Configuring PerformaSure............................... 425

The Configuration File Hierarchy ............................................................425

Configuring Agents ....................................................................................425

The Parameters in agent.config..............................................................426

Configuring the Nexus...............................................................................430

The Parameters in nexus.config .............................................................430

Configuration Lookup Sequence ..............................................................436

Logging........................................................................................................437

The Parameters in log.config .................................................................437

Instrumentation ..........................................................................................443

Application Methods in Full Detail ....................................................445

Component Instrumentation ...............................................................445

The Parameters in instrumentation.config .............................................452

Configuration FAQ ....................................................................................461

Appendix B—Metrics in PerformaSure ................................ 463

The Metric Hierarchy ................................................................................464

Request Metrics ....................................................................................464

SQL Statement Metrics ........................................................................468

Application Metrics ..............................................................................469

Application Server Metrics ..................................................................470

Machine Metrics ...................................................................................475

Metrics in PerformaSure FAQ ..................................................................476

Appendix C—Lexicon ..................................................... 477

Appendix D—Regular Expressions...................................... 489

How Regular Expressions are Scanned ...................................................492

10 PerformaSure: User’s Guide

Typical Regular Expression Patterns ................................................. 493

Using Regular Expressions in PerformaSure .................................... 496

Appendix E—License Credits and Trademarks ........................499

License Credits........................................................................................... 499

ANTLR ................................................................................................. 499

Apache Commons, BCEL .................................................................. 500

JDOM ................................................................................................... 502

libpcap................................................................................................... 503 my_getopt ............................................................................................. 503

WinPcap................................................................................................ 504

Xerces.................................................................................................... 504

Trademarks ................................................................................................ 505

Index .........................................................................507

11

12 PerformaSure: User’s Guide

Preface

It’s a good bet that you are reading this User’s Guide because you are responsible for a Java™ Platform, Enterprise Edition application that must live up to its design standards regarding throughput. Although tracking down the source of Java EE performance problems isn’t easy, Quest Software offers a comprehensive performance assurance solution to help you achieve end-user response-time goals while minimizing hardware and infrastructure costs. When thousands of users are depending on your application, performance is mission critical.

This manual is all about PerformaSure. Integration, quality assurance, preproduction, and production teams use PerformaSure to track service requests

through your application. (See “ How does PerformaSure Define a Service

Request?

” on page 28.) You’ll be able to track service requests through every

machine that participated in servicing them, seeing how much time on average was spent in each. Perhaps more importantly, you’ll be able to measure round trip service request times and see a request tree of all the methods involved. With

PerformaSure you have a performance analysis tool that collects information on the native platform, the Java runtime environment, and application servers that host the Java EE application. You can even monitor and drill right into the Java code for your applications using our companion products in the Performance

Management and Application Assurance suites, Foglight

®

Monitoring for J2EE

Applications and JProbe

®

.

About this Guide

This guide presents instructions for using PerformaSure in your pre-production or production environment.

13

Assumptions

This manual assumes that you have some experience with the Java programming language. Before proceeding with this manual, you should have a basic understanding of object-oriented programming and Java programming concepts

(such as classes, methods, and packages) and elements of Java EE technology as well as of the supported application servers listed in the Installation and

Configuration Guide

Conventions Used in this Guide

Typewriter

Font

Italic Text

Bold

Bold Italic

<value>

• Java language source code and examples of file contents

• PerformaSure and Java classes, objects, methods, properties, constants, and events

• HTML documents, tags, and attributes

• Commands that you enter on the screen

• Pathnames, filenames, URLs, and programs. Example pathnames are provided in Unix path/name format.

• Names of the components, such as browsers, dialogs, and windows in PerformaSure, and to emphasize important words

• Figure and table titles

• The names of other documents referenced in this manual, such as Java in a Nutshell

• Keyboard key names, clickable objects, and menu references. In general, any user action with mouse or keyboard

• First mention of a key term or component

• A variable whose value you are required to supply. For example, <performasure_home> is the PerformaSure home directory.

14 PerformaSure: User’s Guide

Symbols

Caution:

Alerts you to some pitfall that may catch you unaware. Topics introduced by this symbol suggest ways of avoiding the problem, or ways of working around some unwanted but unavoidable condition.

Example:

Introduces a suggested course of action for using PerformaSure.

Important:

Introduces material of special importance.

Tip:

Anticipates some action that you may want to take and suggests a direction you might take to accomplish it.

Troubleshooting:

Suggests a corrective action if you encounter the problem described.

Preface 15

Related Documentation

Release Notes

The Release Notes file is in HTML format, and is called

PerformaSure_ReleaseNotes.html. It includes information about new features in

PerformaSure 5.0 and about supported platforms and servers, notes about

PerformaSure, and late-breaking news about issues that occurred just as the product was being shipped. Consult this document first because it may contain modifications to some procedures described in this manual or in the

PerformaSure Installation and Configuration Guide.

PerformaSure Installation and Configuration Guide

The Installation and Configuration Guide contains information about setting up and configuring PerformaSure to work with your application servers. All installation and configuration procedures are covered in the Installation and Configuration

Guide.

Not included in PerformaSure manuals:

Database-specific issues, such as setting up your database software, caching, resource pooling, and designing efficient database tables. Consult your database vendor’s manuals for these topics.

Setting up and configuring your application server software. However, additional instructions for configuring the servers to work with PerformaSure are provided.

Internal efficiency issues in Java and EJB environments.

16 PerformaSure: User’s Guide

About Quest Software, Inc.

Quest Software, Inc., a leading enterprise systems management vendor, delivers innovative products that help organizations get more performance and productivity from their applications, databases, Windows infrastructure and virtual environments. Through a deep expertise in IT operations and a continued focus on what works best, Quest helps more than 100,000 customers worldwide meet higher expectations for enterprise IT. Quest provides customers with client management as well as server and desktop virtualization solutions through its subsidiaries, ScriptLogic and Vizioncore.

Quest Software can be found in offices around the globe and at

www.quest.com

.

Contacting Quest Software

Email

Mail

Web site [email protected]

Quest Software, Inc.

World Headquarters

5 Polaris Way

Aliso Viejo, CA 92656

USA

www.quest.com

Refer to our web site for regional and international office information.

Contacting Quest Support

Quest Support is available to customers who have a trial version of a Quest product or who have purchased a commercial version and have a valid maintenance contract. Quest Support provides around the clock coverage with

SupportLink, our web self-service. Visit SupportLink at: http://support.quest.com

.

From SupportLink, you can do the following:

Quickly find thousands of solutions (Knowledgebase articles/documents).

Download patches and upgrades.

Seek help from a Support engineer.

Preface 17

■ Log and update your case, and check its status.

View the Global Support Guide for a detailed explanation of support programs, online services, contact information, and policy and procedures.

The guide is available at:

http://support.quest.com/pdfs/Global Support

Guide.pdf

.

Suggested Reading

Java EE Patterns: http://developer.java.sun.com/developer/technicalArticles/J2EE/patterns/

Java EE Articles: http://developer.java.sun.com/developer/technicalArticles/ebeans/

EJB Tutorial: http://developer.java.sun.com/developer/onlineTraining/Beans/EJBTutorial/index.html

18 PerformaSure: User’s Guide

Part

Structure and

Workflow

I

Chapter 1

Introducing PerformaSure

Many Java EE system developers and production specialists need a Java EE analysis tool because their application is not meeting specific performance requirements. PerformaSure is designed to help you diagnose and solve performance issues. With AutoCapture, it even allows you to launch a session automatically when a problem has been detected by Foglight

®

.

PerformaSure enables performance investigation teams to plan ways to correct performance problems in pre-production Java EE environments and can also be used once an application is deployed to ensure that planned capacity goals are met. The rich user interface and reporting mechanism for PerformaSure present data in a format that allows you to correlate the timing and request-based information with your defined business cases.

This chapter introduces you to the PerformaSure environment and provides information that will help you start working within the PerformaSure environment comfortably and efficiently.

Introducing PerformaSure

This section provides basic information about terminology related to

PerformaSure and its components. For a more detailed discussion about how

PerformaSure works, see “ Using PerformaSure ” on page 25.

21

Key PerformaSure Concepts and Terms

This section contains a short list of terms used to describe concepts and

components specific to PerformaSure. See “ Appendix C—Lexicon ” on page 477

for a more complete list of terms relating to load testing and performance analysis.

Term Definition

Browser

PerformaSure

Agent

PerformaSure

Nexus

The data collected in a session can be examined using a PerformaSure browser. PerformaSure has numerous browsers, each of which are designed to help you isolate different types of performance problems.

The software that instruments the platform or the server. These software sensors collect low-level events, do some preliminary processing, and send data to the Nexus over a TCP/IP connection.

In this manual, “Agent” is used as a synonym for “PerformaSure

Agent.”

The central data-organizing component of PerformaSure.

• Agents connect through TCP/IP to the PerformaSure Nexus to report their data

• The Nexus filters, organizes, and stores the grouped information so that it can respond to queries from a PerformaSure Workstation.

In this manual, “Nexus” is used as a synonym for “PerformaSure

Nexus.”

PerformaSure

Workstation

A PerformaSure Workstation is a controller for initiating data collection. It is also a GUI-based viewer for the data collected by

PerformaSure Agents and organized by the PerformaSure Nexus. It permits the data to be viewed from various perspectives. In this manual, “Workstation” is used as a synonym for “PerformaSure

Workstation.” service request Quest Software’s Tag and Follow

technology defines a service request as anything that enters the Agent-instrumented system, like a

HTTP-based request, an RMI call, a JMS call, a direct method call, or a defined interface. This gives you the ability to track an average request as it progresses through the various containers in your distributed application.

session A session refers to the performance data that is collected by

PerformaSure, which is stored in a session file.

Tag and Follow

Quest Software’s Tag and Follow technology instruments the Java EE environment so that service requests can be tracked from inception to completion.

time slice The granularity of data-collection. As data is collected, it is lumped into ‘buckets’ whose duration is set by the time slice parameter. The shorter the time slice, the finer the resolution will be. The increase in accuracy comes with a price: the size of the data file and the load on the machines in the test environment will be higher.

22 PerformaSure: User’s Guide

Background: Distributed Systems

Large business applications are usually spread across distributed systems. Such systems may consist of a hardware or software load-balancer front end that forwards requests to a Web tier consisting of one or more HTTP servers. If the request is for a servlet or a JSP, it is processed in the application server’s servlet container. The servlets and JSPs will likely call EJBs (collectively called the middle tier), which in turn retrieve data from a back-end database. In many cases the application servers are clustered, which means that there are many possible execution paths through the system.

Figure 1

Figure 1 A typical 3-tier system configuration

As you drill down into the operation of your system, you are likely to require accurate information about many aspects of system performance, such as:

Request times: the time that requests spend in various containers. The ability that PerformaSure possesses to track a request through a distributed application helps you focus on the parts of the application that contribute most to performance loss from the end-user’s perspective.

Network traffic: the number of bytes transferred between machines.

Measurement of the traffic between machines may alert you to an excessive amount of data transfer, some of which may be unnecessary.

Introducing PerformaSure 23

Operating system metrics: includes CPU utilization, physical memory use, page faults, processor queue length, and virtual memory use.

Java Virtual Machine (JVM) metrics: heap information.

Application server metrics: among many others, these include

• Servlet/JSP metrics: response times, number of Servlet/JSP instances

• RMI invocations

• EJB metrics

• JDBC metrics

• JMS bytes transferred

PerformaSure can measure all the quantities listed above and allows you to make sense out of the collected data. This helps you to isolate the parts of your application that are contributing to overly-long processing times.

Figure 2

24 PerformaSure: User’s Guide

Figure 2 A 3-tier system instrumented with PerformaSure

Using PerformaSure

What Does PerformaSure Do?

PerformaSure will help you to isolate performance problems in your transactional

Java EE e-business systems. Low-level, system-wide performance data that doesn’t focus on end-user response times isn’t enough; too much raw data has to be sifted, checked, backtracked, and sifted again. PerformaSure is efficient because it relates system performance metrics to service requests, which directly affect how end-users perceive responsiveness. PerformaSure has tools for viewing request snapshots for critical time periods and provides supporting metrics for solving performance problems quickly.

Because you can relate performance data to use-case scenarios, PerformaSure helps you achieve planned capacity by finding the major contributors to the system degradation that your customers experience. Even better, it provides you with hard data to document how system bottlenecks occur, so your development team knows exactly where to focus its efforts.

You can use PerformaSure to measure a configurable number of performance metrics:

■ Operational metrics. This group includes statistics on how the operating system is performing, how many resources the Java virtual machine requires, and resource usage by the application server.

Network traffic metrics. Here, you can determine the number of bytes transferred between machines in your system.

The time that requests and SQL statements spend in each machine in your system.

The call tree for a service request. Quest Software’s unique Tag and Follow technology is used to track the request-response cycle through a complete sequence of calls from the moment of a service request’s generation by a

URL, RMI call (RMI request), through data retrieval, and back to the enduser.

Introducing PerformaSure 25

Figure 3

26 PerformaSure: User’s Guide

Figure 3 Reconstruction of the true execution path using Tag and Follow technology

PerformaSure takes performance data and breaks it down by request so that you can look at this data piece by piece within a ‘unit of work.’ It organizes system performance data so that you can improve performance for a specific kind of request or solve a specific type of performance problem. PerformaSure uses Tag and Follow technology to mark service requests and to track them through your system.

PerformaSure can be used by production specialists, QA teams, and network administrators and their staff to:

■ Investigate the average behavior of a system’s activity organized by requests:

PerformaSure collects, correlates, and unifies data from any number of distributed servers using Tag and Follow technology.

Use browsers to find the context in which a problem occurred.

See a request decomposition for critical time periods and view the associated metrics. PerformaSure provides a high-level view of actual service requests, as well as the ability to drill down to the offending system component. It also monitors request times and helps you track down non-responsive requests.

■ Perform time correlation: PerformaSure allows you to isolate problems that occur at a specific time or over a specific time period. PerformaSure shows you the data that you need for the critical time periods and lets you browse the time periods leading up to the problem.

Measure load balancing across application servers.

Measure EJB performance.

Track Servlet and JSP response times.

Drill down to the level of method invocations and display them in a Request

Tree.

Measure and display network activity as server clusters interact with one another.

What Approach Does PerformaSure Take?

PerformaSure instruments the business logic level of your n-tier application, including the ability to track database calls. PerformaSure lets you:

Isolate the service request that is taking too long

Find the time period when the slowdown happens

Analyze the service request and identify the tier where the problem is located

Identify the component, which might be a Java class, the network, the database, the application server, or the underlying hardware

Call in the functional expert, knowing that the problem has been isolated.

How Does PerformaSure Fit In

With Your Infrastructure and Tools?

PerformaSure works with your existing infrastructure and tools; it is designed specifically to integrate with industry-leading tools and infrastructure, including

Benchmark Factory

®

, Foglight

®

, Spotlight

®

, Oracle

®

Application Server,

Apache Tomcat, JBoss

®

Application Server, Oracle WebLogic Server

, IBM

WebSphere Application Server

, and the Quest JProbe

®

product line. As well, it is designed to work with most load-testing tools, including custom implementations, but in this case there is no integrated mechanism for launching a load test.

When you deploy your application, the component instrumentation mode for

PerformaSure and the sampling capabilities that PerformaSure has keep overhead down while providing monitoring capability.

Introducing PerformaSure 27

What Do PerformaSure Browsers Do?

A PerformaSure project may have a number of browsers, each capable of providing insight into your system’s performance.

Request Time Browser: Enables you to view the response times that requests spend in various containers. Use this browser to check for such things as excessive times spent in JDBC calls.

SQL Browser: Helps you identify global database problems by taking a highlevel view of the SQL statements used in your Java EE application. Use this browser to investigate the overall performance of SQL statements used in your application in comparison to the overall response time of all SQL statements in the system.

Request Tree Browser: Provides a detailed call tree for each type of service request. Use this browser to view the caller-callee relationships among method invocations and to see performance information on a per-method basis. Both the time spent in the method itself and in all of its children are reported as well as other information.

Metrics Browser: Displays performance metrics. All metrics are time-correlated to show you the metrics as they occurred. Metrics are the primary diagnostic measurements of system performance; they provide critical insight into the problem.

Thresholds Browser: Provides an overview of your system’s behavior, showing metric charts and threshold violations. By definition, a problem is a time period during which a metric lies outside the minimum or maximum thresholds that have been set for it. The Thresholds browser shows the times during which the metric’s thresholds were exceeded.

How does PerformaSure Define a Service Request?

PerformaSure instruments application servers. The end-user sends application

HTTP requests, RMI, or JMS calls, as a starting point of a request for a service.

These initiate a chain of events, probably invoking numerous EJB methods and database calls, before returning a result in the form of an HTML page.

PerformaSure defines the entire related chain of events as a service request, or simply as a request. Because many end-users may be sending the same, or very similar, requests to your application almost simultaneously, PerformaSure reports aggregated information for each request type.

28 PerformaSure: User’s Guide

How does PerformaSure Show a Service Request?

PerformaSure breaks request timing down by tier for actual end-user request types, allowing you to isolate problems quickly with the Request Tree browser, which shows logical execution paths and timings.

The time control functionality in PerformaSure lets you isolate any period of time, allowing you to refine your view of service requests and their constituent events. Use the Zonar to find the time period where a problem occurred. See

“ Time Control Panel ” on page 253 for more information about the Zonar. If you

wish, all other views can be displayed for the same selected time interval, allowing you to focus on symptoms leading up to big problems.

Who Uses PerformaSure?

Lead architects, QA professionals, load testers, database administrators, production performance engineers, integration engineers, and functional testers all benefit from the ability that PerformaSure has to provide snapshots of the average behavior of the system.

Lead architects and developers can:

View application architecture on a per-request basis

View all method-level timing and determine the relationship to end-user response times

■ Use integration with JProbe to drill down to the Java code line.

Database administrators can:

Identify slow SQL statements or inefficient ResultSet processing

Count database calls to see if caching would be more efficient

Determine when poor database performance is due to inefficiencies within the

EJB application

Application server and system administrators can:

Tune application server resources

Tune operating system parameters

Uncover situations where hardware limitations are the root to the problem

Reduce unnecessary hardware costs by finding key inefficiencies and by getting the most out of the infrastructure currently in place.

Quality assurance teams can:

Introducing PerformaSure 29

Use existing load tools with PerformaSure to provide in-depth Tag and Follow data

Identify pre-production problems early

Ensure production readiness by shortening the Detect—Diagnose—Repair cycle.

Production performance engineers can:

Use component instrumentation to capture the overall system behavior

Adjust the sampling rate for PerformaSure to control the overhead it places on the application while still collecting enough data to detect trouble spots

Select requests of special interest for increased attention

Use the AutoCapture feature of PerformaSure to automatically capture a session when Foglight

®

detects a suspicious event.

PerformaSure projects and reports encapsulate the troubleshooting process in sharable resources, allowing all groups within the performance and production teams to work together to resolve problems.

The Components of PerformaSure

PerformaSure Agents

What is an Agent?

PerformaSure Agents are the performance data collection objects in the

PerformaSure architecture. They attach themselves to application servers, and they collect metrics from the host operating systems, Java virtual machines, and servers. For complete coverage, System Agents can be placed on the Web Server machines, the database machine and on the machines hosting your load generator.

30 PerformaSure: User’s Guide

What does an Agent do?

An Agent collects performance information from individual application servers, and their host operating systems and passes this data to the Nexus. At the application level, Service Request Agents use byte-code instrumentation to

measure method-level performance information. At the server level, Agents monitor the Java EE application server metrics through vendor-provided interfaces. At the Java virtual machine level, Agents monitor various JVM metrics; at the operating system level, they monitor platform-level metrics.

Types of Agents

There are two main types of Agents:

System Agents, which measure operating system and network metrics, and

Service Request Agents, which track service request information and instrument application servers.

PerformaSure also features the X-Agent, which can be used to instrument standalone Java applications and Java application servers other than the application servers supported by PerformaSure. See “

X-Agent ” below for details.

Some Agents run inside an application’s Java virtual machine ( JVM), others run as separate processes in their own JVM. When the Agent monitors data for an application running inside a JVM, the Agent runs inside that same JVM. When the application is native, the Agent runs as a separate process. There is only one

Agent per JVM and one Agent per monitored application on a given machine.

Specifically, if there is more than one monitored application server running on a given machine, there will be an Agent attached to each of those application servers, and hence there will be two or more Agents running on that machine.

Agents are instantiated from command files or shell scripts, usually as part of launching the server itself. See the Installation and Configuration Guide for details.

X-Agent

If you are not using one of the application servers supported by PerformaSure, the X-Agent enables you to use PerformaSure to collect performance information about your application server. The X-Agent is a ‘generic’ PerformaSure Agent that provides the flexibility to instrument any Java class using Quest Software’s unique Tag and Follow technology. Although the X-Agent does not provide all of the functionality of standard PerformaSure Agents it does collect:

OS-level metrics such as disk, CPU, and physical memory

Data from the JVM such as heap, Servlets, EJBs, method detail, and thirdparty classes

The X-Agent needs to be configured by Quest Consulting. For more information about customizing the X-Agent and modifying the startup sequence of the application server or standalone Java application that you want to instrument, contact your Quest sales representative. See the Release Notes file (relnotes.html) for the Quest X-Agent support policy.

Introducing PerformaSure 31

32 PerformaSure: User’s Guide

What Do Agents Do?

Use Tag and Follow technology to track service requests

Application server metric collection

JVM metric collection

Network traffic metric collection

Operating system metric collection

How Do They Do It?

Byte code instrumentation

Quest Software has considerable experience with byte code instrumentation, beginning with our JProbe suite of products. The developers of PerformaSure have continued the practice by providing instrumentation hooks for application servers. Taking this approach enables you to monitor operation details that would otherwise be invisible.

Tag and Follow technology

Merely timing methods does not provide the full picture. A method that takes a very long time to complete may be called only once, or may be part of a rarelyinvoked function. It’s important to know the context in which the method executes, how many times it gets called, and what objects it calls. Tag and Follow technology functions by instrumenting application servers. This technology facilitates the detailed views furnished by the browsers in a PerformaSure

Workstation, which give you a true picture of your application’s operation.

Operating system APIs and Application Server Metric Interfaces

The rich APIs provided by operating systems allow PerformaSure to collect all the data it needs. Similar APIs are made available by application servers, and

these are used by PerformaSure to collect metric data. See “ Appendix B—Metrics in PerformaSure ” on page 463 for the kinds of metrics that can be collected in this

way.

Which JVM do Agents Use?

Important: Application Server Agents use the same Java Virtual Machine

( JVM) as the application server they are monitoring; you do not need to make any JVM changes. This means that

PerformaSure will be monitoring the same environment that your production system uses.

Since Agents perform various instrumentation tasks, they need the close cooperation of the underlying JVM and Java Runtime Environment ( JRE). When you install an Agent on a target machine using the installer, the JVM/JRE needed by that Agent is installed as well. See the Installation and Configuration Guide for more information on ensuring that the correct JRE is installed.

In most environments, the fact that PerformaSure installs its own virtual machine along with its Agents should be transparent to you. In most cases, you do not need to set any configurable parameters.

PerformaSure Nexus

A running PerformaSure application may have multiple System and Service

Request Agents and one or more Workstations but only one PerformaSure Nexus.

What is the Nexus?

The PerformaSure Nexus is the hub of the PerformaSure architecture. The Nexus is essential to the data management and presentation facilities of PerformaSure.

Its major functions are to collect information from all communicating Agents, process this information, and reply to any PerformaSure Workstation queries. In effect, the Nexus plays three roles in the PerformaSure environment: it is the central manager, the data-store component, and the analysis engine that responds to queries from the Workstation.

The Nexus reconstructs the full application-level execution path by organizing the collected data into service requests using Tag and Follow technology. It receives data collected from the Agents, then combines and converts Agent-based event information into a cohesive information set—the service requests in a session—that can be queried and presented graphically by a PerformaSure

Workstation.

Introducing PerformaSure 33

34 PerformaSure: User’s Guide

The Nexus’ central analytical engine correlates data sent from multiple Agents, restores and preserves the temporal order of events across all servers, and provides other basic analysis of the data.

Data collection mode

The Nexus has two modes of operation, data collection and data analysis. In data collection mode, the Workstation is used to start and stop recording a new session. You have the option of starting to record a session before you start your application, but you may choose to have the application in operation before you begin to record data. It all depends on the scenario that you want to investigate.

Tip: It is preferable to collect data first and analyze it later. Running the

Nexus in data collection and data analysis mode simultaneously may cause an unacceptable load on your system, especially when analyzing large sessions.

Figure 4

Data analysis mode

In data analysis mode, the Nexus communicates with one or more Workstations.

Session Storage

The data-store component of the Nexus collects data sent from the Agents and stores it. It also constructs replies to queries sent by Workstations. The data-store compresses the data and saves it to disk.

Nexus Performance

The Nexus is designed to handle a fairly intense volume of data. However, at times, it may be sent much more data than usual. To handle this potentially overwhelming amount of data, it informs the PerformaSure Agents exactly how much data it can accept. This may result in some requests being excluded from

monitoring. See “ Load Levels ” on page 75 for information about service request

sampling as well as strategies for reducing overhead. See “ Recording Levels ” on page 65 for information about the component detail and full detail recording

levels for PerformaSure.

The Nexus Console

As shown in Figure 4, a console contains log messages associated with an active

Nexus. Messages are categorized according to their severity. A description of the

message types is given in “ Log Levels ” on page 442.

Figure 5

Figure 4 Messages in the Nexus console

PerformaSure Workstation

The Workstation connects to the Nexus to retrieve information for analysis. You can run as many Workstations as you are licensed for, allowing various team members to record and analyze sessions.

The Workstation is primarily a presentation tool, although you can use it to start and stop sessions and perform other management functions. The Workstation’s functions include:

Managing users (with the required permissions)

Managing PerformaSure Projects

Initiating a session and collecting data

Choosing which session to view

Setting thresholds for metric data

Using the browsers to track down performance problems

Generating reports in CSV, PDF, or XML format

Exporting a JProbe

®

launcher file

■ Launching Spotlight

®

in Quest Central. See

Interaction with Spotlight below

for details.

Introducing PerformaSure 35

Security

For more information about the Workstation, please see Section II of the User’s

Guide.

User Management

PerformaSure includes two default users, user and admin. Initially, new users can

only be added using the admin account. See “ User Management ” on page 154 for

information about permissions and roles, adding new users, removing registered users, and changing user information (such as the role that has been assigned to a user).

Figure 6

36 PerformaSure: User’s Guide

Figure 5 The tabs in the Workstation’s User Management window

Once users have been authenticated, they may use only the components and controls for which they have the required permissions (through the role that they

have been assigned). See “ Default Users ” on page 156 and “

Default Roles ” on page 158 for information about default users and roles included with

PerformaSure. See “ Selecting Permissions ” on page 160 for information about the

actions that each permission enables a user to perform.

Note: Any user whose role includes the Stop Recording permission may terminate a session, even one begun by someone else. If you do stop a session, that information is logged along with your user name.

Network Security

Administrators concerned about network-layer security should block the port used by the PerformaSure Nexus from the outside network.

Interaction with Foglight

You can configure an action in Foglight

®

that automatically starts a PerformaSure session when a threshold violation is detected. For more information, please see the Foglight

®

Getting Started Guide for your cartridge.

Interaction with Spotlight

There are several ways to launch Spotlight

®

in Quest Central from PerformaSure:

You can launch Spotlight

®

in Quest Central from the Tools menu of the

Project window or any browser (Tools > Performance Diagnostics) or from the toolbar of any browser.

You can also launch Spotlight

®

in Quest Central by selecting a JDBC node in the Request Tree browser or a SQL statement in the detail pane of the SQL browser, right-clicking on that node or statement, and choosing Performance

Diagnostics > Spotlight

®

in Quest Central from the context menu.

Note: Selecting the Spotlight

®

in Quest Central menu item launches the version of Spotlight

®

that is included with Quest Central. You must have

Quest Central installed to launch Spotlight

®

from PerformaSure.

Introducing PerformaSure 37

Interaction with Load-Testing Tools

PerformaSure has been created to work well with load-testing tools. Load-testing tools can be used to provide a model of system behavior and performance by emulating users on your system. Since PerformaSure measures loads but doesn’t generate any, it relies on you to stress the system in the way that you choose.

PerformaSure complements load simulators, collecting request-based data for later analysis: a load-testing tool generates a load (black box) and PerformaSure gives you a detailed breakdown (white box) on all the parts of the system—down to the EJB method, Servlet method, network traffic metric, or database query time. By investigating the average and maximum times for these requests you can determine whether your system is behaving suspiciously.

38 PerformaSure: User’s Guide

Chapter 2

Starting PerformaSure

A full account of installing and configuring PerformaSure for its supported environments is given in the Installation and Configuration Guide. This chapter contains a brief overview of the general procedure.

By following the steps outlined in the Installation and Configuration Guide, in this

chapter, and in the next two chapters (Recording a Session and Analyzing

Sessions), you will be:

1.

Installing PerformaSure on each target machine using the PerformaSure

Installer, which allows you to choose which specific components should be installed.

2.

Editing your server’s initialization file so that PerformaSure starts when the server is started. Sample scripts are provided for this purpose.

3.

Editing the file <performasure_home>/config/agent.config to specify the location of the PerformaSure Nexus.

4.

Starting the PerformaSure Nexus.

5.

Starting the application server or servers.

6.

Starting a PerformaSure Workstation. Beginning to collect data and—if you are using a load testing tool—using it to apply a test scenario.

7.

Setting up Projects and analyzing the performance data that you have collected in the PerformaSure browsers.

39

Installing and Configuring PerformaSure

You’ll find detailed installation and configuration instructions in the Installation

and Configuration Guide. Consult it for information on:

■ Supported platforms. PerformaSure instruments a variety of application servers. The complete list of supported servers and supported operating systems is found in the Installation and Configuration Guide’s.

Installing PerformaSure. You install PerformaSure on every machine that hosts a server that you want to instrument.

Configuring PerformaSure. Because PerformaSure works with different servers and different operating systems, it needs to be integrated with your environment.

After installing PerformaSure and configuring your servers to work with it, you are ready to measure your system’s performance.

The User’s Guide (this manual) assumes that you have already installed

PerformaSure and integrated it with your environment. This manual describes the general organization of PerformaSure, and it contains information on more advanced configuration issues as well as describing the details of the rich user interface.

Integrating PerformaSure in Your Environment

Because PerformaSure works so closely with your application servers, they need to be launched using startup scripts that contain PerformaSure modifications.

Ensure that your startup scripts have been modified as described in the Installation

and Configuration Guide before running PerformaSure.

40 PerformaSure: User’s Guide

Running PerformaSure

Running the Nexus

The Nexus can be run as a program, as a daemon, or as a service. See “ Starting the Nexus ” on page 42 for details.

Since the Agents and Workstations need to communicate with the Nexus, it should normally be started first.

Important: The first time that you start PerformaSure, you must start the

Nexus first. Agents need to access the Nexus to configure their initial settings, which they write to state files. See the Installation

and Configuration Guide for details.

Caution: Do not adjust the system clock while the Nexus is running. Doing so can invalidate timing information between all Agents and the

Nexus. Request times reported by the Workstation will be invalidated.

Note: If you run the Nexus on a multi-CPU machine, the number of processing threads is automatically adjusted for you.

Configuring the Nexus

Configuration options can be set for the Nexus through the file

<performasure_home>/config/nexus.config. For example, you can:

Specify a location for the sessions directory other than the default.

Change the default settings for the port that the Nexus uses to communicate with the Agents, the Workstations, and nexusctl.

■ Turn the Nexus System Agent on to benchmark Nexus performance.

See “ Configuring the Nexus ” on page 430 for more information.

Starting PerformaSure 41

42 PerformaSure: User’s Guide

Starting the Nexus

You can start the Nexus by opening a Unix shell or DOS command window, navigating to the bin subdirectory of the PerformaSure home directory, and invoking the Unix or Windows filename ( nexus.sh

or nexus.exe

).

To launch the Nexus console, click the Nexus icon in the PerformaSure program group in the Start menu (Windows) or use the installed link (Linux or Solaris).

Note: The Nexus will not start if another Nexus from the same version of

PerformaSure is already running.

The Nexus can also be run as a daemon on Unix or Linux, as a Windows service,

or in the background on Windows. See “ Starting the Nexus from a script ” and

“ Running the Nexus as a daemon ” below and “ Running the Nexus as a service ” on page 43 for details.

Passing JVM options to the Nexus

Any option that you can provide to a Java 1.6 (or later) VM can be passed to the

Nexus when you start it from the command line by invoking the filename nexus.[exe|sh] from the bin directory or by issuing the command nexusctl start from the scripts directory.

You can also pass JVM options to the Nexus when it is started as a service; see

“ Starting the Nexus service with command-line parameters ” on page 44 for

details.

Starting the Nexus from a script

You can create a script to automatically launch the Nexus. PerformaSure also provides two scripts:

nexusctl is a utility script that can be used to launch the Nexus in the background on Windows or as a daemon on Unix or Linux. It is located in the

<performasure_home>/scripts directory. See “ Using nexusctl ” on page 46 for a

description of the parameters in nexusctl.

Note: A similar mechanism can be used by Foglight

®

to start a

PerformaSure session when it detects a threshold violation. For more information, please see the Foglight

®

Getting Started Guide for your cartridge.

quest-nexus-daemon.suse.sh is sample script that launches the Nexus as a daemon. This script is specific to SuSE Linux, but can be used as a template.

It is located in the <performasure_home>/scripts/unsupported directory.

Running the Nexus as a daemon

You can run the Nexus as a daemon on a Unix or Linux system. When you start the Nexus as a daemon, it will continue running when the user who started it logs out.

There are two ways to start the Nexus daemon from the command line:

■ Navigate to the <performasure_home>/bin directory and enter the following command: nexus daemon

■ Navigate to the <performasure_home>/scripts directory and enter the following command: nexusctl start

These commands start the Nexus and switch it into daemon mode. Control is then returned to the console, and the Nexus continues running in the background.

Troubleshooting: Only a user with the required permission can stop the

Nexus; see “ Shutdown Nexus ” on page 163 for details. However, no

additional permission checks are performed when a user attempts to stop the Nexus daemon. This means that, for example, a non-root user who has the default role Power User assigned to their PerformaSure user account will be able to stop a Nexus daemon started by a root user.

To prevent this from happening, use the controls in the User

Management window’s Edit Role dialog to modify the permissions included in the roles assigned to non-root users.

Running the Nexus as a service

You can install and run the Nexus as a Windows service. If you did not install the

Nexus as a service when you installed PerformaSure, then you can install it manually by opening a DOS command window, navigating to the

<performasure_home>\bin directory and entering the following command: nexus install-service

By default, this service’s startup type is set to automatic: it will start (or restart) when you reboot the machine on which it was installed and will continue to run when you log out.

Go to the Control Panel and use Services to view or configure the properties of the

PerformaSure Nexus service or to manually start or stop this service.

Starting PerformaSure 43

Starting the Nexus service with command-line parameters

You can include command-line parameters like -X , -D , -ea , -esa , -da , and -dsa when you start the Nexus service. The two ways to modify the Nexus service to run with command-line parameters are described below.

To add start parameters temporarily through Services:

1.

Install the Nexus service. See the Installation and Configuration Guide for details.

2.

Open Services. Select PerformaSure Nexus from the list of services and then select Action > Properties or right-click the service and select Properties.

The Properties dialog opens.

3.

Add the parameters to the Start Parameters text field and click OK.

Important: When you add start parameters through the Properties dialog in

Services, the PerformaSure Nexus service will run with those parameters the first time that you start the service only. These changes are not saved when you close the dialog. To make permanent changes, modify the ImagePath registry entry for the service by following the instructions below.

To add start parameters permanently by modifying the ImagePath entry:

1.

Open the Windows Registry Editor.

2.

Go to the following registry key:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PerformaSureNexus

3.

Open the ImagePath property.

4.

Add the startup parameters at the end of the current value. For example:

"C:\PerformaSure5.0\bin\Nexus.exe" start-service -Xms768m -Xmx768m

-Dquest.debug=1

44 PerformaSure: User’s Guide

Confirming that the Nexus Has Started

To confirm that the Nexus has started:

Look for the Nexus started message that the Nexus writes to the console or to the Unix shell or DOS command window in which you started the Nexus.

Look for the Nexus started message in the Nexus log file. By default, this file is created in the logs subdirectory of the PerformaSure home directory.

If you don’t see this message, check your installation to ensure all files are present.

Stopping the Nexus

The Nexus can be shut down by any user with the required permissions.

Permissions are set in the Workstation’s User Management window. See “ Managing

Roles ” on page 158 for details.

Depending on the mode in which you started the Nexus and the platform on which it is running, there may be several ways to stop the Nexus.

To stop the Nexus program or daemon:

1.

Open a DOS command window (to stop the Nexus program) or a Unix shell

(to stop the Nexus program or daemon).

2.

Navigate to the bin subdirectory of the PerformaSure home directory.

3.

Issue the following command: nexus stop

Note: On Unix or Linux systems, the same command ( nexus stop ) is used to stop a Nexus running as a program or as a daemon.

To stop the Nexus program from the Windows Start menu:

■ Click the Nexus Stop icon in the PerformaSure program group.

To stop and remove the Nexus service:

1.

Open a DOS command window.

2.

Navigate to <performasure_home>\bin.

3.

Issue the following command: nexus remove-service

To stop the Nexus service:

1.

Access the Services administrative tool from the Control Panel.

2.

Select the PerformaSure Nexus service from the list.

3.

Click the Stop Service button in the toolbar or right-click on the service and select Stop from the context menu that appears.

To stop the Nexus daemon or a Nexus running in the background on Windows:

1.

Open a DOS command window or a Unix shell.

2.

Navigate to the scripts subdirectory of the PerformaSure home directory.

Starting PerformaSure 45

3.

Issue the following command: nexusctl stop

Troubleshooting: If there is no valid license file for PerformaSure installed, the nexusctl stop command will fail. This is because nexusctl needs to connect to the Nexus in order to shut it down. If there is no valid license file, the Nexus will not accept connections.

Using nexusctl

The command-line utility nexusctl allows you to perform various actions, such as starting or stopping the Nexus, displaying a list of connections to the Nexus, and starting and stopping session recording.

Tip: By embedding a call to nexusctl.sh or nexusctl.cmd in a command file within a cron job or in Task Scheduler, you can cause PerformaSure to collect session data automatically at some scheduled time.

To control its mode of operation, nexusctl accepts a number of command options.

The options for nexusctl are listed below.

Note: In this section, no distinction is made between the Windows and Unix versions of this script (nexusctl.cmd and nexusctl.sh).

Note: Java 1.6 is required to run nexusctl.

Basic options

■ nexusctl start Starts the Nexus in the background (Windows) or as a daemon (Unix or Linux systems).

• You can specify -X or -D parameters.

Example usage: nexusctl start -Xms768m -Xmx768m -Dquest.debug=1 nexusctl stop Properly shuts down the Nexus. The three optional parameters for nexusctl stop

are described in “ Optional parameters for nexusctl stop, show-connections, show-connections-xml, and reset-agent-list ” on page 47.

46 PerformaSure: User’s Guide

Nexus version options

■ nexusctl version Retrieves the version number of the Nexus in the form of a string, such as 5.0

. There are four optional parameters for nexusctl version :

-user Your PerformaSure login username.

-pwd Your PerformaSure login password (if you have set one—otherwise omit this parameter).

-r NEXUSURI Retrieves the version number of a remote Nexus or a local

Nexus that does not use the default port. For example: nexusctl version -r your.remote.host.com:42705

-b Retrieves the build number of a local Nexus in the form of a string, such as PAS_430-20060304-0506 .

Recording options

See “ Recording Options ” on page 229 for a list of nexusctl’s recording options.

Showing connections to the Nexus

■ nexusctl show-connections Shows all connections to the Nexus. This command lists all connected users (for example, nexusctl or the Workstations) and PerformaSure Agents in tabular form in the shell or DOS command window. The tables in which the enabled and disabled Agents are listed include entries indicating whether the Agents are connected or disconnected.

nexusctl show-connections-xml Shows all connections to the Nexus. This command lists all connected users (for example, nexusctl or the Workstations) and all known, connected, included, and excluded PerformaSure Agents in

XML format in the shell or DOS command window.

The three optional parameters for nexusctl show-connections and nexusctl show-connections-xml

are described in “ Optional parameters for nexusctl stop, show-connections, show-connections-xml, and reset-agent-list ” on page 47.

Resetting the Agent List

■ nexusctl reset-agent-list Resets the list of Agents. This command removes the entries for Agents that have been disconnected from the showconnections list so that only currently connected Agents are listed. The three optional parameters for nexusctl reset-agent-list are described below.

Optional parameters for nexusctl stop, show-connections, show-connections-xml, and reset-agent-list

■ -user Your PerformaSure login username.

Starting PerformaSure 47

-pwd Your PerformaSure login password (if you have set one—otherwise omit this parameter).

-r Sets the connection URI for the Nexus when it is on a different machine than the one on which the nexusctl script is located or for a local Nexus that does not use the default port.

Important: The nexusctl script must not be moved from the directory in which it was installed.

Example usages: nexusctl stop -user lisa -pwd oboe789 -r your.remote.host.com:42705 nexusctl show-connections -user lisa -pwd oboe789 -r your.remote.host.com:42705 nexusctl reset-agent-list -user lisa -pwd oboe789 -r your.remote.host.com:42705

Running Agents

48 PerformaSure: User’s Guide

Agents run either within an application server or on their own. When running in an application server, the Agent is started first, then it is responsible for starting

the application server; see “ Agent Startup ” on page 51.

System Agents

System Agents collect operating system and network traffic metrics. System

Agents must therefore be run by a user that has sufficient permissions on system resources, including read/write permissions on the network devices for that machine. See the Installation and Configuration Guide for instructions on setting permissions on the supported platforms.

When a Service Request Agent for an application server starts, it connects to the

Nexus. Once the connection is established, the Service Request Agent starts the

System Agent only if both CanLaunchSystemAgent = true in

<performasure_home>/config/agent.config, and it is instructed to do so by the Nexus.

If there is no Service Request Agent installed on the machine (the Nexus machine, RDBMS servers, load testing machines), or if the Service Request

Agent is not running with appropriate user permissions, the System Agent must be started manually.

Note: On AIX, ensure that the fileset bos.net.tcp.server is installed. The package is available on the AIX install disks and is required by PerformaSure to capture network traffic.

Starting a System Agent manually

To run System Agents on servers where the Service Request Agent runs as a user that does not have proper permissions to collect operating system and network metrics, or on database machines and other machines that ordinarily don’t run

Service Request Agents:

■ Start the Agent on each machine using systemagent in the bin directory of your

PerformaSure installation or from installed shortcuts for the System Agent for your platform, then start the Service Request Agent. If there is already a

System Agent running on the host machine, a separate Agent will not be launched. The Service Request Agent will not attempt to start another System

Agent if you have started one manually. If you are starting the System Agent manually because the Service Request Agent does not have the proper permissions, set CanLaunchSystemAgent = false in

<performasure_home>/config/agent.config to prevent the Service Request Agent from attempting to restart the System Agent if it stops for some reason.

Important: On AIX, System Agents must be run as root. This is because only the root account can have access to the network devices and to the operating system metrics. If you attempt to run a

System Agent without root permissions, it will quit with an error message and no CPU or Network metrics will be collected.

Running a System Agent as a daemon

You can run a System Agent as a daemon on a Unix or Linux system. When you start a System Agent as a daemon, it will continue running when the user who started it logs out.

To start a System Agent daemon from the command line, navigate to the

<performasure_home>/bin directory and enter the following command: systemagent daemon

This command starts the System Agent and switches it into daemon mode.

Control is then returned to the console, and the System Agent continues running in the background.

Running a System Agent as a service

You can install and run a System Agent as a Windows service. See the Installation

and Configuration Guide for installation instructions and for information about adding or removing the System Agent service after you have installed

Starting PerformaSure 49

PerformaSure. By default, this service’s startup type is set to automatic: it will start

(or restart) when you reboot the machine on which it was installed and will continue to run when you log out.

Go to the Control Panel and use Services to configure or view the properties of the

Systemagent service or to manually start or stop this service.

Starting the System Agent service with command-line parameters

You can include command-line parameters like -X , -D , -ea , -esa , -da , and -dsa when you run the PerformaSure Systemagent service. The two ways to modify the service to run with command-line parameters are described below.

To add start parameters temporarily through Services:

1.

Install the System Agent service. See the Installation and Configuration Guide for details.

2.

Open Services. Select PerformaSure Systemagent from the list of services and then select Action > Properties or right-click the service and select Properties.

The Properties dialog opens.

3.

Add the parameters to the Start Parameters text field and click OK.

Important: When you add start parameters through the Properties dialog in

Services, the PerformaSure Systemagent service will run with those parameters the first time that you start the service only. These changes are not saved when you close the dialog. To make permanent changes, modify the ImagePath registry entry for the service by following the instructions below.

To add start parameters permanently by modifying the ImagePath entry:

1.

Install the System Agent service. See the Installation and Configuration Guide for details.

2.

Modify the ImagePath registry entry by appending parameters to the value.

For example:

"C:\PerformaSure5.0\bin\Systemagent.exe" start-service -Xms768m

-Xmx768m -Dquest.debug=1

50 PerformaSure: User’s Guide

Service Request Agents

Service Request Agents track service request information within your Java EE architecture. The notion of a service request as a unit of work is extended in

PerformaSure to include entities (Servlets, JSPs, RMIs) that enter the system and make their way through other tiers to finally return results.

The following Service Request Agents are included with PerformaSure:

WebLogic Server Agent

WebSphere Server Agent

Oracle Application Server Agent

JBoss Agent

Tomcat Agent

Service Request Agents run when the server they are monitoring starts. By default, when a Service Request Agent starts, it also attempts to start a System

Agent in a separate process on that machine if it is instructed to do so by the

Nexus. If there is already a System Agent running, a second Agent will not be started. To disable the launching of a System Agent, set the value of

CanLaunchSystemAgent configuration option to false in the

<performasure_home>/config/agent.config file.

See “ Agent Startup ” below for more information about how Service Request

Agents are launched.

Agent Startup

1.

Agents are launched in a variety of ways. System and Service Request Agents usually are started in the following ways:

• Using a custom startup script for JBoss, which automatically starts a JBoss

Service Request Agent.

• Using a custom startup script for Tomcat, which automatically starts a

Tomcat Service Request Agent.

• An Oracle Application Server Service Request Agent is launched by Oracle

Enterprise Manager after you have integrated Oracle 10g with

PerformaSure.

• Using a custom startup script for WebLogic, which automatically starts a

WebLogic Service Request Agent.

• A WebSphere Application Server Service Request Agent is launched when you start a WebSphere server that has been manually integrated with

PerformaSure.

• On your load simulator or RDBMS machines, the stand-alone System

Agents are started using an executable—systemagent (Unix) or systemagent.exe

(Windows)—on each machine that requires instrumentation.

• A System Agent is not started automatically on the machine that hosts the

Nexus. You have to edit LaunchNexusSystemAgent in

<performasure_home>/config/nexus.config to enable a System Agent on the

Nexus machine. See the note in nexus.config for instructions.

• All application server machines require System Agents; the Nexus will automatically tell the Service Request Agents on each of these machines to

Starting PerformaSure 51

52 PerformaSure: User’s Guide start a System Agent. It is recommended that you place System Agents on your web server machines and load generator machine as well.

Important: System Agents are the only Agents responsible for collecting operating system metrics and network metrics. The Nexus ensures that a single System Agent is started on each machine where Service Request Agents (Application Server Agents) exist and where a System Agent is required. If multiple System

Agents are started on a single machine, the Nexus ensures that duplicate System Agents are shut down.

For debugging or other situations, Application Server Agents can be configured to ignore the Nexus’ command to start a

System Agent. See the Installation and Configuration Guide.

2.

The Agent loads the file <performasure_home>/config/agent.config, which includes information on how to connect to the Nexus. You may need to edit

agent.config to set the location of the Nexus in your environment.

3.

The Agent sends an authentication request to the Nexus. If there is an authentication problem, an error message is written to the Nexus and Agent consoles and to the log files. Consult the error messages in the Nexus log file and in the Agent log files to see what went wrong. By default, these files are located in <performasure_home>/logs.

If the Agent cannot connect to the Nexus, it retries the connection periodically. The pause between retries is set in NexusRetryInterval in the

agent.config file. A disconnected Agent has no performance impact.

Important: The PerformaSure Preinstrumentor Agent also attempts to connect to the Nexus to load its configuration settings from

<performasure_home>/config/client/instrumentation.config and from the appropriate configuration file in

<performasure_home>/config/client/agent-type. However, if its initial attempt to connect to the Nexus fails, it will not retry the connection, but will use cached or default configuration files.

The locations of these files are described in Step 3 and Step 4 of

“ Configuration Lookup Sequence ” on page 436.

4.

The Nexus checks the license number for the Agent and responds with the message, “ Authentication approved ”.

5.

The Agent sends a message indicating that it acknowledges the Nexus’ authentication approval.

6.

The Agent asks the Nexus to send the configuration file appropriate for the type of Agent (for example, the WebLogic 8.1 Agent requests

<performasure_home>/config/client/agent-type/weblogic-81.config) and waits for a reply.

7.

The Nexus searches the files in <performasure_home>/config/client for a match and sends the result to the Agent. The Agent saves the result locally in

<performasure_home>/state/<userID>/config-cache. This file contains a list of plug-ins that determine how the Agent collects performance data, which should not be changed.

8.

The Agent asks the Nexus to send the file

<performasure_home>/config/client/instrumentation.config, which determines how

Java applications are instrumented. The Agent also saves this locally in

<performasure_home>/state/<userID>/config-cache.

Note: If, when it starts, an Agent cannot connect to the Nexus, it tries to load these two configuration files from

<performasure_home>/state/<userID>/config-cache. If these files cannot be loaded from <performasure_home>/state/<userID>/config-cache, the Agent finally tries to load them locally from <performasure_home>/config/client. If the Nexus becomes available later on, the Agent does not reload these two files because some properties can only be set at startup time. If these two configuration files have been changed on the Nexus, the Agent must be restarted and be able to connect to the Nexus for it to be properly configured.

Caution: The <performasure_home>/state directory does not contain any user-editable files. Do not edit any of the files in the /state directory or in any of its subdirectories.

See “ Configuration Lookup Sequence ” on page 436 for more information.

Agent Initialization

When an Agent is initialized, it attempts to communicate with the Nexus. If it is successful, as part of its registration process it sends information to the Nexus about which type of Agent it is. The Agent sends a string identifying itself to the

Nexus that contains, for example, AgentType='weblogic. ApplicationVersion='8.1'.”

The Nexus scans the files in <performasure_home>/config/config/client/agent-type/ for a match to this information. Using the same example, the Nexus would match this information with <performasure_home>/config/client/agent-type/weblogic-81.config.

Naming Agents

Each Agent is given a unique default name. This is the case even when there are multiple instances of an application server running simultaneously on the same

Starting PerformaSure 53

machine, and therefore multiple Agents. You can change an Agent’s name by using the AgentName element in <performasure_home>/config/agent.config.

Important: If two or more Agents anywhere within the monitored environment have the same name, the Nexus will not prevent

Agents with duplicated names from connecting. However, it will append numeric identifiers to duplicated Agent names.

Confirming that an Agent Has Started

From the Workstation: see “ To ensure that the desired Agents are operating—Workstation instructions: ” below for instructions.

Using nexusctl: see “ To ensure that the desired Agents are operating—nexusctl instructions: ” below for instructions.

In the log messages: look at the Agent machine’s console or in the Agent’s log file for a message indicating that a connection to the Nexus has been established. By default, the log file is created in the logs subdirectory of the

PerformaSure home directory on the Agent machine.

Agent startup procedures are different for different servers, but since the

Agent starts before the server, once the server confirms that it is running, the

Agent should also be running.

Viewing Agent Status Information

You can view the status of PerformaSure Agents (enabled or disabled, connected or disconnected) and information about Agents (ID, name, and type) in the

Workstation’s Recording Control window or by issuing the nexusctl command showconnections .

Tip: Verify the status of Agents before you start recording a session, since you cannot change which Agents are enabled or disabled while session recording is in progress.

54 PerformaSure: User’s Guide

Note: By default, Agents that connect to the Nexus for the first time during recording are enabled.

To ensure that the desired Agents are operating—Workstation instructions:

1.

Before you start recording, open the Recording Control window and check the list of Agents.

2.

Ensure that a check mark ( ) appears in the Enabled column and that the

State column lists Connected in the row corresponding to each desired Agent.

If you would like to enable or disable certain Agents:

1.

Click on the Configure... button in the Recording Control window. The

Recording Settings dialog opens.

2.

Select the recording settings configuration that you would like to use from the

Settings drop-down menu, or create a new configuration. See “ Configuring

Recording Settings ” on page 207 for details.

3.

Select the Agents tab.

4.

Use the controls in this tab to enable or disable specific Agents. See “ Agents

Tab ” on page 220 for details.

5.

Click Apply to save the selections in this tab as part of the recording settings configuration.

To ensure that the desired Agents are operating—nexusctl instructions:

Open a Unix shell or DOS command window, navigate to the

<PerformaSure_home>/scripts directory, and issue the command: nexusctl.[cmd|sh] show-connections

If you would like to enable or disable certain Agents, use the -ae or -ad parameter with the nexusctl command start-recording

. See “ Agent

Parameters ” on page 231 for details.

Tip: If you have PerformaSure installed on several servers in a cluster, use the Recording Setting dialog or nexusctl view the status of Agents and enable or disable certain Agents. By doing so, you can collect performance information selectively.

Stopping Agents

Service Request Agents

After integrating PerformaSure with your application servers, Service Request

Agents are started automatically when the servers are started. They are stopped when the servers are stopped.

Note that you do not have to stop an Agent (and its associated application server)

if you do not want it to record data. See “ To ensure that the desired Agents are operating—Workstation instructions:

” and “ To ensure that the desired Agents are operating—nexusctl instructions: ” on page 55 for information about enabling or

disabling specific Agents. An Agent that has been disabled remains connected to

Starting PerformaSure 55

the Nexus, but does not collect any data. It will be re-enabled at the end of the session.

System Agents

There are different ways to stop a System Agent, depending on the mode in which it is running.

Note: A System Agent that was started by a Service Request Agent is stopped automatically when the Service Request Agent is stopped.

To stop a manually-started System Agent:

Type Ctrl-C in its console window to stop a manually-started System Agent running in a console.

To stop the System Agent daemon:

1.

Open a Unix shell.

2.

Navigate to the bin subdirectory of the PerformaSure home directory.

3.

Issue the following command: systemagent stop

To stop the System Agent service:

1.

Access the Services administrative tool from the Control Panel.

2.

Select the PerformaSure System Agent service from the list.

3.

Click the Stop Service button in the toolbar or right-click on the service and select Stop from the context menu that appears.

Running the Workstation

56 PerformaSure: User’s Guide

The Workstation: Your Window on PerformaSure

The Workstation performs two distinct functions. It permits you to record new sessions and it is your view on the data that has been collected during any one of these performance tests. A test run may have taken minutes, hours, or even days.

Once you have amassed this data, you must sift through it to find signs of a performance bottleneck or perhaps many performance bottlenecks. The job of

PerformaSure is to help you track them down with the aid of the GUI-based analysis tools.

The principal views are a Project window and a series of problem investigation windows called browsers that help you to analyze the behavior of your system.

The names of the PerformaSure browsers are: Metrics, Request Time, Request

Tree, SQL and Thresholds. You can have multiple versions of all of these browsers open simultaneously. For more details about these browsers and their features,

see “ Using the Browsers ” on page 101.

As you become a practiced user of PerformaSure, you will create Projects and configure them based on your experience. Initially, you can use one of the default

Projects and begin your search with the Request Time browser, then from there progress to the other browsers as you search for problem areas in your distributed application.

You will almost always use the Workstation to invoke the functionality of

PerformaSure. The exceptions to this general rule are:

■ Installing and configuring PerformaSure, which must be done before being able to use the Workstation. See the Installation and Configuration Guide for detailed instructions.

Setting properties in <performasure_home>/config/nexus.config, an operation that requires restarting the Nexus and its Agents.

Using nexusctl.cmd or nexusctl.sh to perform tasks like starting the Nexus in the background (on Windows) or as a daemon (on Unix or Linux systems), retrieving the build and version number of the Nexus, and showing

connections to the Nexus. See “ Using nexusctl ” on page 46 for details.

Using the Workstation

The tasks that you can perform in the Workstation include:

Defining the location of the Nexus that you are about to use. See “ Define

Nexus Dialog—Quick Start ” on page 62 for more information.

Logging in to PerformaSure, so you can have access to the rest of its functions.

See “ Logging In—Quick Start ” on page 58 for instructions on how to log in.

Managing your account or that of other users (if you have the required

permissions). See “ User Management ” on page 154 for details.

Recording a session. See “ Recording a Session ” on page 65 for more

information.

Viewing the status of a session. See “ Status, Elapsed Time, and Duration ” on page 200 for details.

Opening an existing session to begin an investigation, using the Project window to organize your work, and using the browsers to find problem areas

in your application. See “ Analyzing Sessions ” on page 95 for more

information.

Starting PerformaSure 57

■ Launching Spotlight

®

for Quest Central. See “ Spotlight Integration ” on page

137 for more information.

Starting the Workstation

The recommended way of starting the Workstation is by clicking its icon in the

PerformaSure Start menu group (Windows) or by using the installed link (Linux or Solaris).

Logging In—Quick Start

There are three windows in the startup sequence.

1. PerformaSure Workstation Splash Screen

When you launch PerformaSure, a Splash screen appears. A progress meter indicates that the application is loading.

Figure 7

58 PerformaSure: User’s Guide

Figure 6 The splash screen for the PerformaSure Workstation

2. PerformaSure Login Window

To run the Workstation, you must first successfully log in using the password assigned to you by your system administrator. If you do not specify a password,

PerformaSure will assume that an empty password is associated with your

username. Passwords are sent to the Nexus in encrypted format for user authentication.

Important: The user name admin and the password admin can initially be used to log in to the Workstation with administrator privileges and add additional user accounts through the User Management window. Quest Software recommends that you promptly change the password for the admin account to something other

than its installed value. See “ Changing a Password ” on page 154

for more information.

When you log in to the Workstation, you also need to choose the location of the

Nexus that you would like to use for this session.

Figure 8

Figure 7 Login window for the Workstation

Enter your user name and password in the User Name and Password fields, then use the Nexus drop-down menu to select a Nexus instance, or click on the Define...

button to create or modify an instance that does not appear in the list. See “ Define

Nexus Dialog—Quick Start ” on page 62 for more information.

Once you have entered all the information, click Login. If you click Exit, you

will close PerformaSure. See “ Login Errors ” on page 147 for a description of login

errors that you might encounter.

Note: You can only add user names to the login database if you have the required permissions.

3. Startup Window

Navigating the PerformaSure Workstation Startup window is the last step in the startup sequence. From this window, select the button that corresponds to your needs.

Starting PerformaSure 59

Figure 9

Figure 8 PerformaSure Startup window showing the Tools menu choices

Important: Depending on the permissions that are included in the role you have been assigned, certain options may not be available from

the Startup window. See “ User Management ” on page 154 for

information about roles and permissions.

Record New Session

Select this radio button and click OK to open the Recording Control window. See

“ Recording Control Window ” on page 197 for details about the fields and

controls available in this window and for information about using the Recording

Settings dialog and the Advanced Sampling dialog.

Open Recent Project

Recent Projects are listed in the text area directly below the Open Recent

Project button. Select this button and a recent Project and then click OK to open a Project from the most-recently-used list.

Open Existing Project

Select the Open Existing Project button and then click OK to display the Open file chooser.

60 PerformaSure: User’s Guide

Open Session in New Project

Select the Open Session in New Project button and then click OK to launch the New Project Wizard. Opening a session in a new Project causes a session file to be read. The following alert appears while the session file is being scanned:

Figure 10

Figure 9 This alert appears while the session file is loading

The Project window appears once you have opened a Project by following one of

these steps. The general form of a PerformaSure Project is shown in Figure 10.

See “ The Project Window ” on page 178 for more details.

Figure 11

Figure 10 The Project window

The main part of the project window is described in “ Browsers Area ” on page

190.

Tools menu

The Tools menu is located at the bottom of the Startup window (see Figure 8).

This menu contains the following options:

Session Management... Opens a dialog where you can edit, or delete a

session. See “ Session Management ” on page 164 for details.

Change Password... Opens a dialog where users can change their own

passwords. See “ Changing a Password ” on page 154 for details.

Starting PerformaSure 61

User Management... Opens a window where you can create and modify user roles, add new users, and assign passwords and roles to users. Initially, only

the admin user has access to this menu option. See “ User Management ” on page 154 for more information about the User Management window.

To exit PerformaSure without selecting any of these options, click Exit. To log out of the Workstation and return to the Login window, click Logout. For more

information about selecting a session or an existing project, see “ Open Session in

New Project

” on page 151 and “ Open Existing Project ” on page 152.

Define Nexus Dialog—Quick Start

The Define Nexus dialog allows you to edit, add, or remove a Nexus instance from your PerformaSure Project. You can access it by clicking Define in the Login

window (Figure 8). See “ Defining Nexus Instances ” on page 148 for more details.

Figure 12

Figure 11 The Define Nexus dialog

Edit Nexus dialog

The Edit Nexus dialog is launched when you click Edit... in the Define Nexus dialog. It allows you to change the properties of an existing Nexus instance.

Figure 13

62 PerformaSure: User’s Guide

Figure 12 The Edit Nexus dialog

The fields that you can edit in this dialog are listed below.

Alias

Contains the display name of the Nexus you are editing. This is the name by which the Nexus is known in the Define Nexus dialog.

Address

The IP address for the machine hosting the Nexus.

Port

The port on which this Nexus listens.

Add Nexus Dialog

The Add Nexus dialog is launched when you click Add... in the Define Nexus dialog.

It allows you to define properties for a new Nexus instance.

Figure 14

Figure 13 The Add Nexus dialog

The fields that you can edit in this dialog are listed below.

Alias

When you launch the Add Nexus dialog, this field contains a default name such as

Nexus 1. You can edit this field to specify a new display name for the Nexus; this is the name by which the Nexus is known in the Define Nexus dialog.

Address

The IP address for the machine hosting the Nexus.

Port

The port on which this Nexus listens.

For more information about using the Workstation to perform tasks like logging in

and managing sessions and users, see “ PerformaSure Workstation ” on page 145.

Starting PerformaSure 63

Starting PerformaSure FAQ

When I try to start the PerformaSure Nexus service from the command line, an error dialog that says “StartServiceCtrlDispatcher failed” appears. Why does this happen?

This dialog appears if you attempt to start the PerformaSure Nexus service but it is not currently installed. If you see this dialog, go to the Control Panel and use

Services to ensure that the Nexus is installed as a service. See the Installation and

Configuration Guide for instructions on installing this service.

When I try to start the Nexus, the following message appears in the Nexus console:

FATAL Unable to start Connection Listener; Location: Host: *, Port: 41705.

What does this error message mean?

This error message appears if you attempt to start the Nexus when it is already running and listening for connections on port 41705.

64 PerformaSure: User’s Guide

Chapter 3

Recording a Session

This chapter offers suggestions about planning a session based on the Java EE performance investigation strategy of Detect, Diagnose, Resolve. It discusses the recording levels in PerformaSure and outlines parameters and recording settings that affect data collection. This chapter also discusses how to record a session so that the diagnosis phase is most likely to expose a problem in a way that is easily

detectable. The next chapter, Analyzing Sessions, discusses ways of analyzing a

PerformaSure session—the diagnosis phase. Resolution of the problem can take many forms depending on its source.

Recording Levels

There is no upper limit to the number of classes and methods in a Java EE application. Request trees can, and frequently do, contain thousands of nodes.

This information may be invaluable during the QA phase of product development, but collecting all of it places a heavy load on the system. For production systems, a less intrusive solution is required.

Fortunately, Java EE applications have well-defined interfaces that provide natural points at which to focus the collection of performance data. Collecting data at these points has the benefit of reducing the amount of data collected—and hence the overhead. It also provides you with an architectural view of each service request; this high-level view can highlight problems that may not be as evident using the view that results from full instrumentation. The term used to describe this recording level is component detail. PerformaSure defines a default

set of interfaces and classes for this level. See “ Component Instrumentation ” on page 445 for a list of packages and classes that are included in what PerformaSure

defines as its ‘component-only view of Java EE resources.’

65

Alternatively, at full detail, PerformaSure collects overall timing information and detailed statistics on all classes and methods involved in processing a service request.

PerformaSure also offers an intermediate solution that allows you to include other parts of your application in the high-level view while imposing less overhead than recording at the full detail level. PerformaSure can extend the component-level

view to include custom components. See “ Custom Component Instrumentation ” on page 67 for instructions on using this approach.

Component or Full Detail?

PerformaSure can run in a production environment or in a pre-production test environment. In a production environment, overhead must be as low as possible.

One way of reducing the overhead associated with the Tag and Follow

™ technology is to collect less data for each service request. Since the performance overhead of Tag and Follow is directly proportional to the number of called methods on which performance data is collected, choosing a smaller set of methods on which to collect performance data can significantly reduce overhead.

Choosing a select few of these methods—by recording at the component level or by extending the component level to include custom components—ensures that the number of instrumented points is limited.

Component detail is the default recording level for PerformaSure. It’s a good idea to begin a new investigation by recording a session at this level. After obtaining a high-level view of your application, you can switch to full detail and collect another session. With it, you can drill down to the root cause while being guided by the component level view.

You can set the recording level in the Sampling tab of the Recording Settings dialog

or by using the command-line utility nexusctl. See “ Standard Component-Level

Instrumentation

” on page 66 and “ Full Detail Recording Level ” on page 69 for

more information.

Component-Level Instrumentation

66 PerformaSure: User’s Guide

Standard Component-Level Instrumentation

There are two ways of recording a session with component-level detail: by selecting Component Detail Recording Level in the Sampling tab of the

Workstation’s Recording Settings dialog and saving this setting as part of a recording settings configuration or by entering the nexusctl command nexusctl startrecording -c .

To set the recording level to component detail—Workstation instructions:

1.

Open the Recording Control window by selecting Record New Session from the PerformaSure Startup window and then clicking OK. You can also open the Recording Control window by clicking its icon in the Project window’s toolbar or by selecting Tools > Recording Control Window from the menu bar of the Project window or any browser.

2.

Click the Configure... button in the Recording Control window. The Recording

Settings dialog will appear.

3.

Select the recording settings configuration that you would like to use from the

Settings drop-down menu, or create a new configuration. See “ Configuring

Recording Settings ” on page 207 for details.

4.

Select the Sampling tab.

5.

Select Component Detail Recording Level in this tab.

6.

Click Apply to save this setting as part of the recording settings configuration.

Note: The Component Detail Recording Level radio button is automatically selected as part of the Default Settings recording

configuration. See “ Default Settings ” on page 206 for more information

about this configuration.

To set the recording level to component detail—nexusctl instructions:

1.

When you are ready to record a new session, enter the command nexusctl start-recording -c . PerformaSure will record a new session at the component detail level. Component detail is the default recording level.

Custom Component Instrumentation

Editing the configuration section CustomComponents in

<performasure_home>/config/client/instrumentation.config allows you to extend the default set of Java EE components that are included when you record a session at the component detail level.

Note: A set of common custom components is pre-defined in

instrumentation.config. See the instructions in this file for details.

Recording a Session 67

68 PerformaSure: User’s Guide

Tip: Use custom component instrumentation when your distributed application uses third-party technologies that aren’t part of the default list of items included with PerformaSure, but which you want to be included in the component-only view. You’ll only have to edit

CustomComponents once to include these technologies.

To configure custom components—Workstation instructions:

1.

Set the recording level to component detail by following the steps in “ To set the recording level to component detail—Workstation instructions: ” on page

67.

2.

Make a backup copy of <performasure_home>/config/client/instrumentation.config.

3.

Open instrumentation.config in a text editor and scroll to the bottom of the section on custom components.

4.

Configure PerformaSure to collect performance data on custom components by editing CustomComponents . Specify the name of each component in a method list, either by entering the name or by forming a regular expression that matches the name or pattern. Enter the include element before each item in the list. For example:

CustomComponents = {

"MQSeries": MethodList(include /com\.ibm\.mq\..*/),

"TopLink": MethodList(include "oracle.toplink."),

"Globex": MethodList(

}; include "com.globex.plan.DominateWorld", include "com.globex.pocket.Sugar",

) include "com.globex.cypresscreek.HammockHut.sit",

When PerformaSure matches method names to the methods in a list, it interprets them as custom components. For more information about using

regular expressions, see “ Appendix D—Regular Expressions ” on page 489.

5.

After editing and saving instrumentation.config, ensure that this file is read by restarting the Agents and the instrumented application servers.

To view the methods in the Request Tree browser, follow the steps above and then record a new session using the recording settings configuration for which you set the recording level to component detail. PerformaSure will instrument entry

points into the custom components that you specified. See “ Collecting Your First

Session ” on page 92 for instructions on using the Workstation to record a new

session.

To configure custom components—nexusctl instructions:

1.

Follow steps 2—5 above.

2.

When you are ready to record a new session, enter the command nexusctl start-recording -c .

3.

When you’ve finished recording the session, you can view the methods in the

Request Tree browser.

See “ Customizing Component-Level Data Collection ” on page 456 for more

information about configuring custom components.

Full Detail Recording Level

When you set the recording level to full detail, all classes and methods involved in processing a service request are instrumented unless:

InstrumentAtComponentLevel is set to true in

<performasure_home>/config/client/instrumentation.config. In this case, component detail will be the recording level no matter what the setting is in

the Workstation. See “ Forcing the Component-Only Mode ” on page 457

for more information.

UserClasses lists some packages or classes alongside exclude elements in instrumentation.config. Any packages or classes thus listed will be excluded

from instrumentation. See “ Including and Excluding Classes ” on page 70

and “ UserClasses ” on page 452 for more information.

Important: You must restart the Agents and your instrumented application servers after making changes to instrumentation.config. You do not need to restart the Nexus.

To set the recording level to full detail—Workstation instructions:

1.

Open the Recording Control window by selecting Record New Session from the PerformaSure Startup window and then clicking OK. You can also open the Recording Control window by clicking its icon in the Project window’s toolbar or by selecting Tools > Recording Control Window from the menu bar of the Project window or any browser.

2.

Click the Configure... button in the Recording Control window. The Recording

Settings dialog will appear.

3.

Select the recording settings configuration that you would like to use from the

Settings drop-down menu, or create a new configuration. See “ Configuring

Recording Settings ” on page 207 for details.

Recording a Session 69

4.

Select the Sampling tab.

5.

Select Full Detail Recording Level in this tab.

6.

Click Apply to save this setting as part of the recording settings configuration.

To set the recording level to full detail—nexusctl instructions:

1.

When you are ready to record a new session, enter the command nexusctl start-recording -f . PerformaSure will record a new session at full detail.

Recursion Limit

By default, PerformaSure tracks recursive calls five levels deep when recording in full detail; in the Request Tree browser, the terminal node in the chain is marked with the recursion symbol ( ) to indicate that there are more calls that are not shown.

Figure 15

Figure 14 A recursive call path

You can control the number of recursive calls that are shown in the request tree by editing RecursionLimit in

<performasure_home>/config/client/instrumentation.config and then saving this file.

When RecursionLimit is set to its default setting ( 5 ), only the method and its first five recursive calls are shown. To obtain data on each of the recursive calls separately, set RecursionLimit to a number larger than the expected recursion depth. To see only the first method call but none of the recursive calls, set

RecursionLimit to 0

. See “ Setting the Recursion Limit ” on page 458 for more

information.

Including and Excluding Classes

This section discusses ways of modifying the list of classes that PerformaSure includes in its Tag and Follow mechanism.

70 PerformaSure: User’s Guide

Choosing Classes for Instrumentation

PerformaSure groups classes into two types: user classes and server classes. It fully instruments user classes and for the most part it ignores server classes. If server classes were included, much more data would be collected and displayed, yet it is doubtful if any of the additional data would be useful to you. In fact, the additional clutter might make it more difficult for you to pick out what would otherwise be an obvious trouble spot.

Even some user classes fall into the category of noise, and you might prefer that they were not recorded and displayed. Editing the UserClasses configuration section in <performasure_home>/config/client/instrumentation.config allows you to specify which classes or entire packages to include for full instrumentation by

PerformaSure or to exclude from instrumentation.

Tip: Configure user classes to exclude a class when it causes excessive load on the Agent or Nexus to instrument it.

To include classes or packages for instrumentation:

1.

Make a backup copy of <performasure_home>/config/client/instrumentation.config.

2.

Open instrumentation.config in a text editor and scroll to the bottom of the section on User Classes.

3.

Edit UserClasses to include certain classes for instrumentation and exclude others. Specify the name of each class in a class list, either by entering the name or by forming a regular expression that matches the name or pattern.

Enter the include element before each class in the list. For example:

UserClasses = ClassList( include “com.globex.plan.DominateWorld”, include “com.globex.pocket.Sugar”

);

As shown in this example, multiple include elements can appear in this configuration section. In this case, both “ com.globex.plan.DominateWorld

” and “ com.globex.pocket.Sugar

” would be included. For more information

about using regular expressions, see “ Appendix D—Regular Expressions ” on page 489.

Tip: What you enter in the class list is treated as a regular expression. If you want to include a single class, the best approach is to type in the complete, fully-qualified name.

Recording a Session 71

4.

After editing and saving instrumentation.config, ensure that this file is read by restarting the Agents and the instrumented application servers.

To exclude a class or package from instrumentation:

1.

Make a backup copy of <performasure_home>/config/client/instrumentation.config.

2.

Open instrumentation.config in a text editor and scroll to the bottom of the section on User Classes.

3.

Edit UserClasses to exclude classes from instrumentation. Specify the name of each class in a class list, either by entering the name or by forming a regular expression that matches the name or pattern. Enter the exclude element before each name in the list. For example:

UserClasses = ClassList( exclude “com.globex.plan.DominateWorld”, exclude “com.globex.scheme.”

);

In this example, the class “ com.globex.plan.DominateWorld

” would be excluded, as well as all classes in the package “ com.globex.scheme

”. For

more information about using regular expressions, see “ Appendix D—Regular

Expressions ” on page 489.

Tip: What you enter in the class list is treated as a regular expression. If you want to exclude a single class, the best approach is to type in the complete, fully-qualified name.

4.

After editing and saving instrumentation.config, ensure that this file is read by restarting the Agents and the instrumented application servers.

Including and Excluding Multiple Classes

72 PerformaSure: User’s Guide

Multiple include and exclude elements can appear together in the list of classes, but it is the first element that matches that will control the outcome.

To include and exclude classes:

1.

Make a backup copy of <performasure_home>/config/client/instrumentation.config.

2.

Open instrumentation.config in a text editor and scroll to the bottom of the section on User Classes.

3.

Edit UserClasses to include and exclude classes. Specify the name of each class in a class list, either by entering the name or by forming a regular expression that matches the name or pattern. Enter the include or exclude element before each name in the list. For example:

UserClasses = ClassList( include “com.globex.plan.DominateWorld”, exclude /(\.|^)globex\./, include “com.globex.pocket.Sugar”

);

In this case, the class “ com.globex.plan.DominateWorld

” would be included, but the class “ com.globex.pocket.Sugar

” would actually be excluded since it matched the exclude pattern on the second line. Also, any classes in “ net.globex.

” package or the root “ globex.

” package would be excluded since they match the regular expression corresponding to the exclude element. For more information about using regular expressions, see

“ Appendix D—Regular Expressions ” on page 489.

4.

After editing and saving instrumentation.config, ensure that this file is read by restarting the Agents and the instrumented application servers.

Caution: You must edit the same UserClasses configuration section to both include and exclude classes. Any UserClasses sections in

instrumentation.config after the first are ignored.

How the Nexus Categorizes Service Requests

Complete Requests

Complete requests are requests that have been fully reconstructed by the Nexus.

In general, all service requests should qualify as complete requests unless an error occurs.

Incomplete Requests

PerformaSure also tracks incomplete requests. There are two reasons why incomplete requests may occur:

■ A request may not complete within the time during which the session was recorded. An incomplete request can occur when the session ends before the response to the request is recorded.

Recording a Session 73

■ A request may not complete within a specified time, called the incomplete

request timeout period. An incomplete request can occur when the timeout period ends before the request completes. The duration of this period can be

set in the Session tab of the Recording Settings dialog. See “ Session Tab ” on page 208 for more information.

Tip: When system throughput is poor, keeping track of incomplete requests helps you to determine which component is to blame.

Fragmented Requests

It is also possible to have fragmented requests. Fragmented requests are service requests whose parts become cut off from each other because some intermediate process fails to complete. Even when PerformaSure deems a request to have been completed, some parts of it may not have reported back, possibly because that part was being processed by an uninstrumented server.

To prevent fragmented data from being confused with good data, fragmented requests are not stored in the session. Instead, they are output to the log file with an explanation and a possible solution. However, a service request still occurred and that information is saved. If the service request type can be identified, the not

sampled count of the root node is incremented each time a fragmented request is seen.

Note: The most probable cause of fragmented requests is that the value of

CommitTimeout (set in <performasure_home>/config/nexus.config) is too short. A WARN message appears in the log file when fragmented requests

are detected. See “ Service Request Timeout Thresholds ” below for

details.

74 PerformaSure: User’s Guide

Service Request Timeout Thresholds

The CommitTimeout configuration section in

<performasure_home>/config/nexus.config controls how long, in milliseconds, the

Nexus will wait before committing a service request to the session file. For example, the default setting in nexus.config is CommitTimeout = 4000 , meaning that the timeout is set to 4 seconds. In effect, this means that you are telling the

Nexus that you expect all service requests to take 4 seconds or less to complete.

Reconstructing service requests is very memory intensive. By reducing the timeout, the Nexus will wait for a shorter period of time before writing

reconstructed transactions to disk, and hence use less memory. If you reduce the value of CommitTimeout to too low a number, however, you risk having fragmented requests.

Tip: If you begin to see fragmented requests, try increasing the value of

CommitTimeout by 1 second (1000 milliseconds) at a time to ensure that transactions are not written to disk before all of the messages associated with tracking requests using Tag and Follow have been received.

Important: Always restart the Nexus after editing nexus.config to ensure that this file is read.

Load Levels

The PerformaSure Nexus is designed to resist becoming overloaded. It accomplishes this by automatically switching to sampling mode whenever the number of service requests that enter the system during the sampling interval can potentially overload the Nexus. It sends a message to its Agents instructing them to track fewer service requests using Tag and Follow technology in the next sampling interval.

If the Nexus can’t keep up even after entering its lowest sampling regime, it sends messages to its Agents instructing them to stop tracking requests using Tag and

Follow so that it can clear its backlog. The Nexus continues to update its count of non-sampled requests while clearing its backlog. This ensures that all requests are counted and statistical accuracy is maintained. A small amount of data is collected even for requests that are not sampled. This data still takes time to process, though not nearly as much time as it takes to process the data collected for fullysampled requests. After the backlog is cleared, the Nexus informs its Agents that they can resume collecting and forwarding data.

Requests are sampled based on how much data the Nexus can process: the Nexus asks for as much data as it can handle, but no more. Thus, you may see cases in which the Nexus asks for fewer samples in a certain time period because it had to deal with much more data from requests that were not sampled. Because the

Nexus must collect some data from non-sampled requests, it is possible to saturate

Recording a Session 75

Service Request Sampling

In performance tests of long duration, or very high load, there is little need for every service request to be tracked using Tag and Follow; a sample of the incoming load is sufficient to determine the source of the performance bottleneck.

On the other hand, service requests that arrive infrequently may be among the most important from your application’s point of view. PerformaSure makes sure that these infrequent requests are measured, even in low-overhead sampling situations.

By default, PerformaSure tracks as many service requests as it can, but you may encounter situations where sampling gives you essentially the same information at much less cost.

If the PerformaSure Nexus is unable to keep up with the incoming service requests, it adjusts the sampling rate. You can allow the Nexus to set the sampling rate, or you can adjust the sampling rate yourself. Since every system is different, it will take a bit of experimentation to find the optimum setting.

To configure service request sampling in the Workstation:

1.

Open the Recording Control window by selecting Record New Session from the PerformaSure Startup window and then clicking OK. You can also open the Recording Control window by clicking its icon in the Project window’s toolbar or by selecting Tools > Recording Control Window from the menu bar of the Project window or any browser.

2.

Click the Configure... button in the Recording Control window. The Recording

Settings dialog will appear.

76 PerformaSure: User’s Guide it at extremely high request rates with non-sampled requests alone. If this happens, you will need to run the Nexus on a more powerful machine.

It is possible to instruct the Nexus to sample even fewer requests than the limit it has set for itself by using the controls in the Sampling tab of the Recording Settings dialog or by using nexusctl. This way, you can reduce the overhead PerformaSure

places on your system. See “ Service Request Sampling ” below for more

information.

Caution: Both recording a session and analyzing a session can place a heavy load on the Nexus, especially when you are asking the

Nexus to collect as many samples as possible. Using the

Workstation to analyze data while recording a new session may result in fewer samples being taken.

3.

Select the recording settings configuration that you would like to use from the

Settings drop-down menu, or create a new configuration. See “ Configuring

Recording Settings ” on page 207 for details.

4.

Select the Sampling tab.

5.

Select Collect Fewer Samples to Reduce Overhead and adjust the Few

Samples...Many Samples slider. No matter what the setting, PerformaSure reliably samples infrequent requests.

6.

Review the rest of the settings in this tab (such as the recording level) and, if they are what you want, click OK to save your selections as part of the recording settings configuration and close the dialog. The Recording Control window will remain open, allowing you to begin recording when you choose by clicking the Start Recording button.

Note: You can also use the options available in the nexusctl command-line

utility to adjust the service request sampling rate. See “ Sampling

Parameters ” on page 233 for more information.

Setting Sampling Weights

In sampling mode, PerformaSure uses Tag and Follow technology to track requests in proportion to their invocation frequency. You can override the default

sampling weights that PerformaSure assigns to requests. See “ Advanced Sampling

Dialog ” on page 221 for more information.

Service Request Separation

By default, PerformaSure groups all requests that have the same base URL into a single request and provides aggregate statistics for it; for example, they are displayed as a single request tree in the Request Tree browser’s graph pane.

PerformaSure allows you to use separators to separate requests with the same base URL into distinct request types based on the requests’ GET and POST parameters, cookies, or HTTP headers. By allowing service request separation,

PerformaSure gives you the option of treating each parameter as if it were a separate request.

Separating Service Requests

You can apply a request separation pattern to URLs passed to instrumented servers. Separation occurs if any of the parameters in a request match the request

Recording a Session 77

78 PerformaSure: User’s Guide separation rule for that URL, meaning that a request may be separated based on more than one parameter. For example, if the separation rule contains the parameters USER=BOB,LOGIN then any request with either USER=BOB , or LOGIN , or both as parameters will be separated from requests with the same base URL that do not contain one or both of these parameters.

You can configure request separation based on one or more GET or POST parameter, cookie, or HTTP header names or name-value pairs. Request separation will occur as follows based on the information that you provide in the separator:

Name only: If you provide only a GET or POST parameter, cookie, or

HTTP header name, requests will be separated based on that name: all URLs that have the same value for that GET or POST parameter, cookie, or HTTP header name will be considered to be requests of the same type, but different from URLs that have a different value for that parameter name. See

“ Separating Requests Based on GET or POST Parameters ” below or

“ Separating Requests Based on Cookies ” on page 80 for examples

Name and value: If you provide a GET or POST parameter, cookie, or

HTTP header name-value pair, requests will be separated based on both the name and the value: only URLs that contain that name-value pair in the GET or POST parameter, cookie, or HTTP header will be considered to be

requests of the same type. See “ Separating Requests Based on a Name-Value

Pair ” on page 83 for an example.

It is possible for GET and POST parameters, cookies, and HTTP headers to have the same name or name and value. When you specify a name or name-value pair as the parameter on which requests are separated, all GET and POST parameters, cookies, and HTTP headers with that name or name-value pair are used for separating requests.

PerformaSure appends the parameters that are used for request separation to the separated URL. Parameters are always appended in the same order, even to requests with different base URLs. For example, if two requests with different base URLs are separated based on the same three parameters, these parameters will be appended in the same order to each separated URL. Name-value pairs are appended to each URL the same number of times that they appear in a separated request’s GET and POST parameters, cookies, and HTTP headers.

The sections below describe the different options for separating requests and provide example scenarios in which service request separation can help isolate

performance problems. See “ Configuring Request Separation ” on page 84 for

instructions on configuring request separation in the Workstation or using nexusctl.

Separating Requests Based on GET or POST Parameters

Standard Java EE practice includes the case of a single JSP or Servlet that contains arguments which it forwards to the appropriate processor. PerformaSure

would normally group all calls to this JSP or Servlet as a single request. In some cases, such as a Servlet that forwards requests to different processors based on

URL parameters, treating them as separate requests can make analysis easier.

Example:

There is a URL for a small business that lets qualified users log in, perform queries, and order stock. The URLs for these three operations are:

http://www.example.com/littlebusiness.jsp?cmd="login"

http://www.example.com/littlebusiness.jsp?cmd="query"

http://www.example.com/littlebusiness.jsp?cmd="order"

Because the base URL is the same, PerformaSure would, by default, consider these as part of the same request and amalgamate the information collected for all three URLs into one graph in its Request Tree browser. However, because the three

URLs perform different tasks, it makes sense to regard them as three separate requests.

The parameter string of each URL described above contains a name-value pair such as cmd="login" . By specifying cmd in the Parameters column of the table in the Separators tab (as shown below), all URLs that have the same value for cmd (for example, "login" ) will be considered to be requests of the same type, but different from URLs that have a cmd parameter with a different value, such as

"query" or "order" .

Figure 16

Figure 15 Configuring request separation on the query parameter cmd

See “ Separators Tab ” on page 213 for more information about using the controls

in the Recording Settings dialog’s Separators tab.

Recording a Session 79

80 PerformaSure: User’s Guide

Separators can also be configured when recording a session using nexusctl. See

“ Request Separation Parameters ” on page 234 for more information.

Important: POST parameter separation is only support for requests that use Content-Type: x-www-form-urlencoded . This means that, when performing POST parameter request separation,

PerformaSure will ignore requests that use Content-Type: multipart/form-data .

Separating Requests Based on Cookies

There are situations when it is useful to separate requests based on cookies, such as when you would like to track the requests made by users who are experiencing long response times.

Example:

A company is receiving complaints from customers that when they log in to the company’s web application, everything seems slower, but when they browse the company’s site without logging in, it is far more responsive.

To track down the source of this performance problem, the company’s performance engineer, Jane, wants to view requests to the same URL as separate requests depending on whether or not a user is logged in. Fortunately, there is a way to do this. The web application stores user login information in a cookie

(called LoginName ), so she decides to configure request separation based on this cookie name.

In the Sampling tab of the Recording Settings dialog, she adds a new separator that uses the URL expression .* and the cookie name LoginName , and specifies

RegEx as the expression type (as shown below). Now, when she records a session, requests for the same URL from users who are logged in will not be aggregated with those from users who are not logged in. When she views the session in the Request Time and Request Tree browsers, for example, the two types of requests will be displayed separately, making it easier for her to identify the problem with the logged-in users’ requests.

Figure 17

Figure 16 Configuring request separation on the cookie name LoginName

See “ Separators Tab ” on page 213 for more information about using the controls

in the Recording Settings dialog’s Separators tab.

Separators can also be configured when recording a session using nexusctl. See

“ Request Separation Parameters ” on page 234 for more information.

Important: PerformaSure does not collect certain cookie attributes and reserved cookie names.

The following cookie attributes are not collected:

Comment

CommentURL

Discard

Domain

Expires

Max-Age

Path

Post

Secure

Version

All cookie names that begin with $ are reserved and will be ignored by PerformaSure because they should only be used by web servers and user-agents.

Recording a Session 81

82 PerformaSure: User’s Guide

Separating Requests Based on HTTP Headers

Separating requests based on HTTP headers can help you identify the source of a performance problem.

Example:

A company is receiving reports from customers that, when they use the company’s web application, periods when the application is very responsive alternate with long wait times. Jane, the company’s performance engineer, does some initial investigation with PerformaSure and concludes that there is no correlation between the long response times and either the types of requests that users make or the volume of requests at the times when the site’s responsiveness decreases.

The company’s web site includes a load balancer that distributes users’ requests to several web and application servers. Jane suspects that certain requests are taking longer to execute depending on the web and application servers to which they are forwarded. She asks Bob, the company’s web and application server administrator, to investigate further.

Bob needs to find out if certain servers are performing poorly and where the problem is on each server. In order to do so, he does not want PerformaSure to aggregate requests for the same URL that end up on different servers.

Fortunately, the company’s load balancer adds a custom HTTP header to each request with the name of the server to which it forwards the request. The name of this header is X-LoadBalance-Forward .

Using nexusctl, Bob configures a separator for all requests that include the header

X-LoadBalance-Forward by specifying the following option with the startrecording command:

-srr “.*” “X-LoadBalance-Forward”

After he does so, only requests for the same URL that are also forwarded to the same server are aggregated in the session that he records. When he analyzes the session in the Request Time browser, he discovers that a request can take over twice as long to execute depending on the web and application servers to which it is forwarded.

See “ Request Separation Parameters ” on page 234 for more information about

using nexusctl to configure service request separators.

Separators can also be configured in the Workstation’s Recording Settings dialog.

See “ Separators Tab ” on page 213 for more information.

Separating Requests Based on a Name-Value Pair

In addition to separating requests based on a GET or POST parameter, cookie, or HTTP header name, you can also separate requests that contain a specific name-value pair.

Example:

A company is receiving complaints from customers that the company’s web application runs very slowly when they add items to their shopping cart, but not when they perform other actions, such as submitting search information.

The application’s developers decide to isolate all requests that include the query parameter action=AddItem by adding a separator in the Sampling tab of the

Recording Settings dialog that uses the URL expression .* and includes this namevalue pair (as shown below). When they record a new session, only requests that contain the parameter action=AddItem will be separated, but not requests that include action=Search or just action= .

Figure 18

Figure 17 Configuring request separation on the name-value pair action=AddItem

See “ Separators Tab ” on page 213 for more information about using the controls

in the Recording Settings dialog’s Separators tab.

Separators can also be configured when recording a session using nexusctl. See

“ Request Separation Parameters ” on page 234 for more information.

Recording a Session 83

Configuring Request Separation

You can configure separators using nexusctl or through the Workstation.

To configure service-request separation with nexusctl:

You can use the options available in the nexusctl command-line utility to configure

service request separation. See “ Request Separation Parameters ” on page 234 for

more information.

To configure service request separation in the Workstation:

1.

Open the Recording Control window by selecting Record New Session from the PerformaSure Startup window and then clicking OK. You can also open the Recording Control window by clicking the Recording Control Window button in the Project window’s toolbar or by selecting Tools > Recording

Control Window from the menu bar of the Project window or any browser.

2.

Click the Configure... button in the Recording Control window. The Recording

Settings dialog will appear.

3.

Select the recording settings configuration that you would like to use from the

Settings drop-down menu, or create a new configuration. See “ Configuring

Recording Settings ” on page 207 for details.

4.

Select the Separators tab.

5.

Adjust the controls found in this tab. See “ Separators Tab ” on page 213 for

detailed instructions.

6.

Review the rest of the settings in this tab (such as the maximum length of the value used for request separation) and, if they are what you want, click OK to save your selections as part of the recording settings configuration and close the dialog. The Recording Control window will remain open, allowing you to begin recording when you choose by clicking the Start Recording button.

Service Request Filtering

Filtering allows you to configure PerformaSure to reduce traffic between Agents and the Nexus, which decreases both overhead and storage requirements.

Filtering can be configured to include some requests and exclude others. Regular expression pattern matching can be used to determine which requests are included and which are excluded. You can also match requests using literal

strings. See “ Appendix D—Regular Expressions ” on page 489 for more

information about using regular expressions.

84 PerformaSure: User’s Guide

Many types of requests can safely be ignored once you have determined that they have no costly effects on performance. This category includes image files that are loaded via individual HTTP requests, and other static files whose loading times can be assumed to be constant. By default, PerformaSure excludes requests for .gif, .jpg, .css, .png, .js, and .ico files.

After you have measured the request times for certain objects and you are satisfied that there are no problems with them, you can use service request filtering to remove them from view.

Tip: If you have specified request separation on a parameter in the

Separators tab, you can filter requests on that parameter in the Filters tab.

To configure service request filtering in the Workstation:

1.

Open the Recording Control window by selecting Record New Session from the PerformaSure Startup window and then clicking OK. You can also open the Recording Control window by clicking the Recording Control Window button in the Project window’s toolbar or by selecting Tools > Recording

Control Window from the menu bar of the Project window or any browser.

2.

Click the Configure... button in the Recording Control window. The Recording

Settings dialog will appear.

3.

Select the recording settings configuration that you would like to use from the

Settings drop-down menu, or create a new configuration. See “ Configuring

Recording Settings ” on page 207 for details.

4.

Select the Filters tab.

5.

Adjust the controls found in this tab. See “ Filters Tab ” on page 216 for detailed

instructions.

6.

Review the rest of the settings in this tab (such as the drop-down menu that controls whether all other requests are included or excluded) and, if they are what you want, click OK to save your selections as part of the recording settings configuration and close the dialog. The Recording Control window will remain open, allowing you to begin recording when you choose by clicking the Start Recording button.

Note: You can also use the options available in the nexusctl command-line

utility to configure service request filtering. See “ Filtering Parameters ” on page 237 for more information.

Recording a Session 85

Session Acquisition

Tag and Follow

A typical session-acquisition flow is illustrated in Figure 18. First, whatever filters

you have defined are applied. Next, the non-filtered requests may be arriving at a rate that is rapid enough for the Nexus to switch to its sampling mode. If this is the case, the Service Request Agents are told how many requests of each type they should track using Tag and Follow during the next sampling interval. If the request arrival rate is low enough, they will all be monitored.

Once a service request has passed the filtering and sampling gates, these actions occur:

■ The request is marked upon entry into your PerformaSure-instrumented Java

EE environment,

The Agents integrated within the elements of your environment emit events to the Nexus as the service request is tracked, then

The Nexus reconstructs the full execution path for the service request.

Figure 19

Figure 18 The session acquisition pipeline

Session Time Slice Size

Service requests that have been tracked to completion using Tag and Follow are aggregated into the time slice in which they complete and the data is stored in the

86 PerformaSure: User’s Guide

session file (see Figure 19). The width of the time slice defines the finest

granularity of time that you can analyze with the PerformaSure browsers.

Figure 20

Figure 19 How service requests are aggregated

A request is associated with a time slice based on when it completes. Thus, in

Figure 19, only the requests numbered 1 and 2 completed during the time slice

(shown as a grey bar). If the Zonar were shrunk to just this time slice, only requests

1 and 2 would be shown in the browsers. The others would be visible if the Zonar were expanded to include the time slices in which they completed.

Setting the Session Time Slice

The time slice size can be set in the Session tab of the Recording Settings dialog or using nexusctl. This setting defines the narrowest time window to which you can drill down during session analysis. For example, if you record a session with the default time slice size (one minute), all events occurring within one minute intervals are assumed to have happened at the same time for presentation purposes.

Adjusting the time slice size can be helpful when you are trying to pinpoint transient performance problems by, for example, correlating changes in thread counts and queue lengths with changes in response times.

Guidelines for setting the time slice size:

Use narrow time slice values for relatively short runs (< 10 minutes) and wide time slice values for relatively long runs (> 10 minutes).

Set narrow time slice values when you want to have more accurate information about when requests end. To determine when they start, subtract the cumulative time (available in the Request Time, and Request Tree).

Recording a Session 87

Acquiring a Session

Configuration Overview

The Workstation’s Recording Control window and Recording Settings dialog and certain configuration files allow you to define parameters for the new session that you are about to record. This section describes parameters, fields, and controls that are available through the Workstation and in certain files in the

<performasure_home>/config directory and that allow you to adjust basic recording settings.

You can also use nexusctl to perform actions like starting and stopping session recording, naming a session, supplying comments about a session, and adjusting

recording settings. See “ Recording Control Window and Nexusctl ” on page 195

for more information about the controls available in the Recording Control window, in the Recording Settings dialog, and through nexusctl.

Recording Control Window

Session Name

A default name is supplied, which is a combination of your username and the current date. It’s a good idea to change it to a more meaningful name that gives an indication of the reason why the session is being recorded.

Comments

You can elaborate on the reason why the session is being recorded in the comments field.

Settings

The Settings drop-down menu allows you to select a saved set of recording settings that are used when you start recording a new session. When you first launch the

Recording Control window, this menu includes the recording settings configuration

88 PerformaSure: User’s Guide

Default Settings, which is selected by default. See “ Default Settings ” on page 206

for more information about the settings included in this configuration.

Important: A recording settings configuration is required to record a session. If no configurations are listed in the Settings drop-down menu (for example, if the Default Settings configuration is accidentally deleted), you will not be able to record a session.

See “ Configuring Recording Settings ” on page 207 for

information about adding a new configuration.

Start Recording

The Start Recording button causes PerformaSure to start recording a session.

Clicking this button initiates recording by sending messages to all enabled Agents instructing them to send data to the Nexus. This button is disabled while you are recording a session.

Tip: You can automate session recording by means of the nexusctl

command-line utility. See “ Starting the Nexus from a script ” on page

42 for details.

Recording Settings Dialog

You can use the controls in the Recording Settings dialog to modify the settings included in a recording settings configuration, to remove a recording settings configuration, or to add a new configuration.

To change the settings included in an existing recording configuration, select the configuration from the Settings drop-down menu, adjust the controls in the dialog

as desired, and click Apply. See “ Configuring Recording Settings ” on page 207

for information about adding a new configuration. To remove a configuration, simply select the configuration from the Settings drop-down menu and click

Remove.

The basic recording settings that you may want to configure in the tabs of this dialog are described below.

Session Tab

Limit Session Length

You can set the duration of the session by selecting the Limit Session Length checkbox and using the editable spin boxes. Alternatively, you can stop recording

Recording a Session 89

90 PerformaSure: User’s Guide the session manually by clicking the Stop Recording button in the Recording

Control window.

Time Slice Size

The time slice size can be adjusted using the Time Slice Size associated dropdown menus. The time slice size determines the granularity of the data in the session. Each time slice contains the requests that have completed during its span.

The default time slice is one minute, which means that (for presentation purposes) all events occurring within one minute intervals are assumed to have happened at the same time.

Sampling Tab

Collect as Many Samples as Possible/Collect Fewer Samples to Reduce Overhead

By selecting one of these radio buttons, you tell the Nexus to collect as many samples as possible or to collect fewer samples to reduce overhead. Selecting

Collect Fewer Samples to Reduce Overhead enables the Few Samples...

Many Samples slider, which you can use to adjust the number of samples collected.

Component Detail Recording Level/Full Detail Recording Level

You can collect data on key Java EE components by selecting the Component

Detail Recording Level radio button, or you can collect data on all classes and methods involved in processing a service request by selecting the Full Detail

Recording Level radio button.

Setting Parameters in agent.config and nexus.config

Important: Always restart the Agents and your instrumented application servers after editing <performasure_home>/config/agent.config.

Always restart the Nexus after editing

<performasure_home>/config/nexus.config. You will also need to restart the Agents and your instrumented application servers after editing ListenHost and ListenPort in nexus.config. See

“ ListenHost and ListenPort ” on page 432 for more information.

Host name and port number for the Nexus

Before starting the Agents, you must edit NexusHost and NexusPort in

<performasure_home>/config/agent.config on each Agent machine to specify the host

name and port number of the machine hosting the Nexus. See “ Specifying the

Location of the Nexus ” on page 427 for details.

Location of the session file

The default location of all session files is the sessions subdirectory of the

PerformaSure home directory (<performasure_home>/sessions) on the machine hosting the Nexus. To change the location where the Nexus stores sessions, edit

SessionDirectory in <performasure_home>/config/nexus.config on the Nexus machine. If you supply a relative pathname, it is relative to the home directory for

PerformaSure.

Important: The directory where the Nexus stores sessions must be on a local drive. The Nexus cannot be run from a network mounted drive using protocols such as NFS (Network Filesystem) or

SMB (Server Message Block). If necessary, edit nexus.config to ensure that this is the case.

Timeouts

You can change the default setting of various timeouts by editing

<performasure_home>/config/agent.config and <performasure_home>/config/nexus.config and by adjusting the settings in the Session tab of the Recording Settings dialog. See

“ Setting the Authentication Timeout ” on page 429, “

Changing the Commit

Timeout Setting

” on page 434, and “ Incomplete Request Timeout ” on page 209

for details.

Setting Parameters in log.config

General operational information, warnings, and errors encountered by the Nexus and its Agents are written to log files. In <performasure_home>/config/log.config, you can configure properties such as the level at which messages are logged, the language in which they are displayed, the places where the logs appear, and the

directory in which log files are created. See “ The Parameters in log.config

” on page 437 and the instructions in log.config for more information.

Important: You must restart the Nexus, the Agents, and your instrumented application servers after editing log.config.

Recording a Session 91

Load Testing

PerformaSure works well with load-testing tools like Quest Benchmark Factory

® and Mercury Interactive LoadRunner

®

. These tools can be used to provide a model of system behavior and performance by emulating users on your system.

See “ Interaction with Load-Testing Tools ” on page 38 for more information about

how PerformaSure interacts with load-testing tools. Consult your load-testing tool’s manuals for product-specific details about installation, configuration, and use.

Collecting Your First Session

If it is your first time using PerformaSure, it’s better to start with a smaller session before using all of the capabilities of PerformaSure to conduct an in-depth performance investigation. These suggestions will help you collect a comfortablysized initial session:

Use a time slice of 1 minute or greater.

Begin by recording at the component detail level. Only switch to the full detail level once success has been achieved recording at the component detail level.

On WebSphere 5, set the PMI level to High or lower.

On WebSphere, do not use the JVMPI option ( heavily loaded.

-XrunpmiJvmpiProfiler

Minimize the number of application server metrics being gathered.

Arrange your load-testing scenario so that your application server is not

).

Tip: Before recording a session from a system under heavy load, consult the detailed information on request separation, filtering, and sampling in

the chapter “ Recording Control Window and Nexusctl ” on page 195.

92 PerformaSure: User’s Guide

Pre-Recording Checklist

Before you start recording, ensure that:

The Nexus is running. See “

information.

Running the Nexus ” on page 41 for more

■ You have specified the correct host name and port number for the Nexus in

<performasure_home>/config/agent.config. See “ Host name and port number for the Nexus ” on page 90 for more information.

The Agents are running. See “ Running Agents ” on page 48 for more

information.

The Workstation is running and you are logged in (if you want to use the

Workstation to record a session). See “ Logging In—Quick Start ” on page 58 for

instructions on logging in to the Workstation. You can also use the options available in the nexusctl command-line utility to record a session. See

“ Recording with nexusctl ” on page 225 for more information.

Recording a New Session

To record a new session from the Workstation:

1.

Once you have logged in to the Workstation, select Record New Session from the PerformaSure Startup window.

2.

Click OK. The Recording Control window will appear.

3.

Click the Configure... button. The Recording Settings dialog will open.

4.

Select the recording settings configuration that you want to use from the

Settings drop-down menu.

Tip: The first time you record a session, you may want to use the Default

Settings recording configuration. See “ Default Settings ” on page 206 for

information about this configuration.

5.

In the Session tab, make sure that Time Slice Size is set to 1 minute (the default setting). If you want to limit the duration of the session, check the

Limit Session Length checkbox and set the session length in hours, minutes, and seconds using the editable spin boxes.

6.

Click on the Sampling tab. Make sure that the Component Detail

Recording Level radio button is selected.

7.

Click OK to save any changes that you made to the recording settings configuration and close the Recording Settings dialog. The Recording Control window will remain open.

8.

In the Recording Control window, select the recording settings configuration that you want to use from the Settings drop-down menu.

9.

Choose an appropriate name for your session and type it in the Name field.

10.

Enter comments about why you are recording the session in the Comments field.

11.

Ensure that the Open Session When Recording Completes checkbox is checked.

Recording a Session 93

12.

Press the Start Recording button.

13.

Send requests to your instrumented application server.

14.

If you have not set the duration of the session in the Recording Settings dialog, click the Stop Recording button when you want to stop recording. A new

PerformaSure Project window and Request Time browser will open, allowing you to begin analyzing your new session right away.

Note:

You can also record a new session using nexusctl. See “ Recording with nexusctl ” on page 225 for more information.

Recording a Session FAQ

I can’t access the Recording Control window from the Workstation (the Recording

Control Window buttons and menu items are disabled). Why can’t I open this window and start recording a session?

If the Recording Control Window buttons and menu items are disabled, the role which has been assigned to your user account does not include the permissions required to start recording a session. Speak to your PerformaSure administrator about the permissions included in the role that you have been

assigned. See “ User Management ” on page 154 for more information about

permissions and roles.

What request rate can the Nexus handle?

A Nexus residing on a one-processor, midrange commodity machine should be able to handle 200 or more requests per minute. The actual number may be much higher.

How do I change the directory in which session files are stored?

You can change the directory where you place your session files, but you will have to edit SessionDirectory in <performasure_home>/config/nexus.config on the machine hosting the Nexus so that PerformaSure knows where to find the files.

See “ Location of the session file ” on page 91 for more information.

94 PerformaSure: User’s Guide

Chapter 4

Analyzing Sessions

This chapter discusses a methodology for analyzing the data that you collected using PerformaSure. It provides instructions for using the Project window, the Time

Control panel, and the browsers.

Methodology

This section presents general recommendations to help you begin analyzing sessions. For more detailed information about analyzing sessions in the

PerformaSure Workstation, see “ Navigating the Project Window ” on page 97 and

“ Using the Browsers

” on page 101. See “ Integration with the Quest Software Suite for Further Analysis ” on page 134 for information about integrating PerformaSure

with JProbe

®

, Foglight

®

, and Spotlight

®

.

The guidelines in this section have been developed based on the assumption that you just completed recording a session by following the instructions in the

previous chapter, Recording a Session. If this is not the case, before you proceed,

ensure that:

The Nexus is running. See “ Running the Nexus ” on page 41 for more

information.

The Workstation is running and you are logged in. See “ Logging In—Quick

Start ” on page 58 for login instructions.

You have collected session data. See “ Collecting Your First Session ” on page

92 for instructions.

You have opened a session in a new PerformaSure Project. To do so:

1. Select Open Session in New Project from the PerformaSure Startup window and click OK. The New Project Wizard will open.

2.

Choose a session from the table and click Open. See “ New Project Wizard ” on page 171 for more information.

95

Note: Sessions recorded with versions of PerformaSure prior to version 5.0 cannot be opened in PerformaSure 5.0. The error dialog shown in

Figure 20 appears if you attempt to open an obsolete session. The

Upgrade Session option has been disabled for the current version.

Figure 21

Figure 20 This dialog appears if you attempt to open an obsolete session

General Guidelines for Analyzing a Session

Because each person’s methodology for tracking down performance problems is unique, you may want to follow a different sequence than the one outlined here.

However, it is suggested that you begin by following these steps while developing your own preferred approach:

1. Select the session that you want to analyze and open it in a new

PerformaSure Project. When you open a new Project based on the Default template, the Request Time browser opens automatically. This browser is a good place to begin your performance investigation by identifying the service

requests that are taking the most time. See “ Request Time Browser ” on page

265 for detailed information about this browser.

2. Launch the SQL browser. This browser allows you to take a high-level view of the SQL statements used in your Java EE application and investigate their

overall performance. See “ SQL Browser ” on page 295 for detailed

information about this browser.

3. Investigate the time-consuming requests that you identified using the Request

Time browser by opening the Request Tree browser. In it, time-consuming methods are highlighted in a ‘hot’ color. By knowing which methods contribute to long request times, you can concentrate your optimization

efforts on them. See “ Request Tree Browser ” on page 319 for detailed

information about this browser.

4. Open the Metrics and Thresholds browsers to get a picture of how the various system metrics correlate with service request processing. A request that is taking a long time might be caused by the overuse of some resource, such as the CPUs, the Java heap size, the size of connection pools or other cache parameters. PerformaSure allows you to correlate these metrics with request

metrics. See “ Metrics Browser ” on page 371 and “

Thresholds Browser ” on page 391 for detailed information about these browsers.

96 PerformaSure: User’s Guide

Navigating the Project Window

Selecting Another Project or Session

Once you have a Project window open, you have the option of opening another

Project or of opening another session in a new Project.

To open an existing Project:

1.

Select Project > Open Project... from the menu bar to launch the Open file chooser.

2.

From the list of PerformaSure Project files (files with the .sure extension), double-click on a file or select one and then click Open.

To open a session in a new Project:

1.

Click the Open Session in New Project button in the Project window’s toolbar or select Project > Open Session in New Project... from the menu bar to launch the New Project Wizard.

2.

Select a session from the table. By default, the list of sessions is sorted by session name. Click on the header of another column in the table to sort the

list of sessions based on a different session detail. See “ Session Information ” on page 175 for more information about the columns in this table.

3.

Select a template from the Template drop-down menu. If you do not select a template, the new Project will automatically use either the Default template or

the template that was last selected from this menu. See “ Template ” on page

176 for more information about Project templates.

4.

Click Open. The Project window appears. At this point, the Project has not been saved. Select Project > Save Project or Project > Save Project As... to launch the Save file chooser. If you do not supply an extension for the

Project filename, the extension .sure is automatically appended.

See “ Creating a New Project ” on page 174 for details about the fields and controls

in the New Project Wizard.

Customizing the Project Window

The PerformaSure Project window is the control panel for your Project. This window is highly configurable: you can select the browsers that give the best

Analyzing Sessions 97

indication of underperformance in your system and add them to the Project; organize browsers into folders in the navigation pane of the Project window’s

Browsers area; and add comments to browsers, folders, and the Project as a whole.

Figure 22

Figure 21 A Project window: browser icons have been organized into named folders

98 PerformaSure: User’s Guide

Adding Browsers

When you create a new Project using the Default template, the navigation pane contains a Request Time browser that opens automatically, giving you a starting point for your investigation. You can add as many other browsers of each type as you want to your Project and adjust their settings to focus on the performance problems that you have discovered. When you save the Project, browser settings are also saved. The next time you open this Project, the browsers that you added to it are ready to be used again.

To add a browser to your Project:

1.

Click the left-hand side of the New Browser... button in the Project window’s toolbar or select Project > New Browser... from the menu bar. The

New Browser dialog will open.

2.

Select the type of browser that you want from the Browser Type drop-down menu. The other fields and controls in this dialog allow you to assign a name to the browser, add comments to it, or configure it to open automatically when you open the Project.

3.

Click OK. The dialog will close and a new browser of the type you selected will open.

4.

Click the Add New Browser to Project button in the browser’s toolbar or select Browser > Add New Browser To Project from the menu bar. The browser will be added to your Project and an icon for this browser will appear at the bottom of the navigation pane in the Browsers area of the Project window.

5.

From the Project window, click the Save Project button in the toolbar or select Project > Save Project from the menu bar. If it is your first time saving this Project, the Save file chooser will open. Provide a descriptive name for your Project in the File Name field and click Save.

Note: To open a new browser, you can also click the right-hand side of the

New Browser... button to display a drop-down menu from which you can choose the type of browser that you want. Select one of the options in this menu to cause a new browser of that type to open automatically.

You can then follow steps 4 and 5 above to add it to your Project.

Organizing the Navigation Pane

Every time you add a browser to your Project, a browser icon for that type of browser appears in the navigation pane of the Browsers area. You can organize the

contents of the navigation pane into folders (see Figure 22). To add folders to this

pane, select Project > New Folder... from the menu bar.

Tip: Organize browsers into folders according to the type of analysis for which you are using that set of browsers. Provide a name for each folder that identifies the investigative tasks for which you will use the

browsers in that folder. See Figure 22 for examples of folder names.

Adding Comments

You can add comments to the Project, to a folder, or to a browser using the

Properties dialogs available from the Project window. The comments added to a folder or to a browser appear in the details pane when that folder or browser is selected. When no items are selected, the details pane displays information and comments about the Project.

To add comments to a Project:

1.

Select Project > Project Properties... from the menu bar. The Project

Properties dialog will open.

Analyzing Sessions 99

2.

Add comments to the Project.

3.

Click OK to save your comments and close the dialog. Save your project, if desired.

To add comments to a folder:

1.

Select the folder and click the Properties button in the toolbar or rightclick the folder icon and select Edit Properties... from the context menu that appears. The Folder Properties dialog will open.

2.

Add comments to the folder.

3.

Click OK to save your comments and close the dialog. Save your project, if desired.

To add comments to a browser:

1.

Select the browser and click the Properties button in the toolbar or rightclick the browser icon and name and select Edit Properties... from the context menu that appears. The Browser Properties dialog will open.

2.

Add comments to the browser.

3.

Click OK to save your comments and close the dialog. Save your project, if desired.

Note: You can access the Browser Properties dialog from individual browsers.

Click the Properties button in a browser’s toolbar or select Browser >

Properties... from its menu bar to launch the Browser Properties dialog.

Tip: To name or rename a folder or browser, follow the instructions above for adding comments to a folder or browser. When you have opened the appropriate Properties dialog, simply edit the Folder Name or Browser

Name field and click OK.

Creating a Custom Project Template

It’s easy to create your own Project templates based on existing PerformaSure

Projects. There may be many different reasons you want to do this, for example:

■ When you’re working on a specific problem and recording a series of sessions with the same application servers, you frequently want to look at the same requests or metrics for each new session you record, without having to repeat the same selection process in the Request Time and Metrics browsers.

100 PerformaSure: User’s Guide

You’ve become comfortable with your own workflow and want to create a

Project template to support it and that can be used with any session.

You want to communicate your findings to other members of the organization and make it easy for them to navigate to the problem you’ve uncovered.

To create your own Project template:

1.

Open one of your sessions in a new Project. Select None from the Template drop-down menu in the New Project Wizard.

2.

In the Project, create and configure the browsers that you want to appear by default in the Project window. This Project will become your new template. For example, in a Metrics browser, open charts for the metrics that you want, but remember that metrics that are specific to one session might not show up in

other sessions. See “ Adding Browsers

” on page 98, “ Organizing the

Navigation Pane

” on page 99, and “ Customizing the Browsers ” on page 102

for information about configuring browsers and the Project window.

3.

Save the Project in the <performasure_home>/config/templates directory: select the option Save Project as Template from the Project menu in the Project window’s menu bar, then name and save the new template using the Save file chooser that appears.

The next time you open a session in a new Project, you will be able to select that template from the Template drop-down menu in the New Project Wizard.

Using the Browsers

This section describes what the PerformaSure browsers do and how they can help you analyze sessions. It also provides basic steps that you can follow to become familiar with the fields and controls in each browser. For detailed information about the individual browsers and their features, see Section II of this manual.

Analyzing Sessions 101

Customizing the Browsers

Configuring a Browser to Open Automatically

The Default Project template is pre-configured to launch the Request Time browser when you open the Project window, but you can configure any browser that you have added to your Project to open automatically.

1.

Open the browser that you want to configure by double-clicking its icon in the

Browsers area.

2.

Click the Properties button in the toolbar of that browser or select

Browser > Properties... from its menu bar. The Browser Properties dialog will open.

3.

Check the Automatically open this browser when project is opened checkbox and click OK. Save your project, if desired.

Edit Options Dialog

You can open the Edit Options dialog by selecting Tools > Options... from the menu bar of any browser. This dialog allows you to customize graphs, themes, and reports and configure certain aspects of the Request Tree browser and the

Metrics browser. See “ Edit Options Dialog ” on page 247 for more information.

Using the Time Control Panel

The Time Control panel is common to all of the browsers in PerformaSure. It contains controls that allow you to adjust the span of time for which you view session data in a browser.

Figure 23

Figure 22 The Time Control panel

102 PerformaSure: User’s Guide

Using the Time Control Panel

Navigating the Timeline

The Timeline represents the total period of time during which the session was recorded. You can select portions of the Timeline with the Zonar. There are major and minor tick marks on the Timeline that correspond to time slice boundaries.

Use these tick marks as a guide when positioning the Zonar.

Interpreting the Timeline Labels

There are several labels on the Timeline. These labels can help you keep track of the total duration of the session, position the Zonar, and understand the exact time span covered by the Zonar.

Figure 24

Figure 23 Timeline labels and the Zonar Offset and Duration label

Session Start Time Label and Session End Time Label

The session start time label and the session end time label display the start time and end time for the current session. These labels appear at the far left and far right of the Timeline when the whole Timeline is visible. The time is displayed in bold in these two Timeline labels, helping you distinguish them from the labels over major tick marks within the Timeline.

Note: The labels over major tick marks, the session start time label, and the session end time label all display the absolute time, not the time relative to the start of the session.

Zonar Offset and Duration Label

The Zonar’s offset from the start of the session and the length of time currently spanned by the Zonar are displayed in the Zonar offset and duration label at the top of the Time Control panel. The information in this label updates continuously as you move the Zonar or adjust the length of time that it spans. This helps you keep track of the Zonar’s position relative to the start of the session and the length of time that you have adjusted it to cover.

Analyzing Sessions 103

Checking for Data Availability

The blue line under the Timeline is called the Data Availability Indicator. It indicates the presence of session data that can be displayed in the browser for one or more time slices. As you change the configuration of certain browsers, interruptions in the Data Availability Indicator may appear or be filled in. For example, deselecting the Show Response Time for All Statements checkbox in the SQL browser can cause this indicator to appear under fewer time slices.

In the browsers that contain metric charts (the Request Time, SQL, Metrics, and

Thresholds browsers), a gap in the Data Availability Indicator that is the length of one time slice is charted in the graph pane as a dashed line (in Default and Overlap charts). This line spans the gap between two points in the chart for which there is session data available.

Using the Zonar

The Zonar controls the interval of time for which data is viewed in a browser (see

Figure 22). You can adjust the length of the Zonar or move it to a different part of

the Timeline to cause the browser to display data for that period only. When you perform one of these actions, the session is queried and data is returned only for the interval that the Zonar spans.

You can cause the Zonar to span all or part of the Timeline. The instructions below describe how to adjust the length of the Zonar or to change its location within the

Timeline.

Note: The ends of the Zonar snap to time slice boundaries. You cannot position either end of the Zonar in the middle of a time slice.

To change the length of time spanned by the Zonar:

1.

Click and drag the left side of the Zonar to set a new starting point for the interval for which data will be displayed in the browser. The offset portion of the Zonar offset and duration label will display the amount of time that this end of the Zonar is offset from the start of the session.

2.

Click and drag the right side of the Zonar to set a new end point for the interval for which data will be displayed in the browser. The duration portion of the Zonar offset and duration label will display the total length of time spanned by the Zonar.

Tip: Cover a smaller portion of the Timeline with the Zonar if you want to isolate a part of the session in which problems occur and obtain a more detailed picture of the system during that period of time.

104 PerformaSure: User’s Guide

To move the Zonar to a different location within the Timeline:

1.

Click the middle of the Zonar.

2.

Drag it to the portion of the Timeline that you want to it to span.

Tip: Move the Zonar by clicking and dragging it when you want it to cover a different range of time with the same length.

To cause the Zonar to expand to fill the whole Timeline:

■ Double-click the Zonar.

Zooming the Timeline

You can adjust how much of the Timeline is displayed (and in how much detail) by clicking the More Zone Detail (zoom in) button or the Less Zone Detail (zoom

out) button (see Figure 22). When you zoom out, more of the Timeline becomes

visible, allowing you to adjust the Zonar to span a longer period of time, but the

Timeline is displayed in less detail. When you zoom in, less of the Timeline becomes visible, but this portion is displayed in greater detail, allowing you to position the ends of the Zonar with greater accuracy.

Note: Clicking the More Zone Detail button zooms in to the portion of the

Timeline spanned by the Zonar.

To zoom in to the Timeline:

1.

Adjust the Zonar so that it spans the length of time in which you are interested.

2.

Click and hold the More Zone Detail button until the Timeline is displayed with the desired level of detail. You can zoom in until the period of time spanned by the Zonar fills the visible Timeline.

To zoom out from the Timeline:

■ Click and hold the Less Zone Detail button until the desired amount of the

Timeline is displayed. You can zoom out until the Timeline represents the session from the start time to the end time.

Using Related Time Controls

There are certain controls that are related to the Time Control panel but are not located within it. These controls are described below.

Analyzing Sessions 105

Using the Sightline

Although it is linked to the Zonar, the Sightline is located in the graph pane of the

Request Time, SQL, Metrics, and Thresholds browsers, not in the Time Control Panel itself. You can adjust the position of the Sightline using the Sightline slider. In the

Request Time, SQL, and Thresholds browsers, this slider is located at the top of the graph pane. In the Metrics browser, there is a Sightline and a Sightline slider for each metric chart that you open in the graph pane.

The Sightline is a broken line that extends downwards from the slider. The slider’s offset from the leftmost point on the chart’s x-axis is displayed next to the slider, along with the size of the time slice and the value charted at the point in the graph intersected by the Sightline.

The range of time through which you can move the Sightline along the chart’s xaxis reflects the range currently spanned by the Zonar. When you move the

Sightline’s slider, it snaps to time slice boundaries imposed by the Zonar.

Figure 25

Figure 24 The Sightline and its slider in the Metrics browser

PerformaSure draws a horizontal dashed line from the y-axis to the Sightline’s current position in the chart along the x-axis. This allows you to accurately determine the measured quantity’s ordinate. The point at which these two lines intersect is marked by small square colored by the active metric.

Linking the Browsers’ Time Controls

There is a button in the toolbar of every PerformaSure browser that allows you to toggle whether or not the Time Control panels of all existing and newly created browsers are linked. Clicking this button affects the browsers in the current

Project only.

Click the Link Browsers to Use Same Zone button to link the browsers’

Time Control panels. When linked, the Zonar and (where applicable) the Sightline in each browser are in the same state as the browser in which the button was clicked. Using the controls in the Time Control panel of one browser will impact all

106 PerformaSure: User’s Guide

other browsers as well. If a problem occurs during a specific interval spanned by the Zonar, linking the browsers can help you track this problem across different browsers.

Click the Break Link Between Browsers button to return the browsers’

Time Control panels to an unlinked state. This allows each browser’s Zonar and

Sightline to function independently.

Filtering Data in the Browsers

In several of the PerformaSure browsers, you can filter the data that is displayed in the graph and detail panes. For example, if you are only interested in seeing the metrics that have exceeded their bounds for a certain server, you can specify a filter in the Thresholds browser’s Filter Metrics bar that includes that server’s name.

See “ Using the Thresholds browser’s Filter Metrics bar ” on page 397 for more

information.

In the Request Time, and Request Tree browsers, you filter data for display by entering a literal string or regular expression in the Filter Requests bar. This string or expression is matched against the items listed in the detail pane; only the items that match are displayed in the graph and detail panes. By default, this bar

contains an empty literal string so that all items are selected. See “ Using the

Request Time browser’s Filter Requests bar

” on page 273, and “ Using the Request

Tree browser’s Filter Requests bar ” on page 333 for more information.

There is a Filter Statements bar in the SQL browser that functions the same way as the Filter Requests bar; you can use it to filter SQL statements for display in the

browser. See “ Using the SQL browser’s Filter Statements bar ” on page 301 for

more information.

Note: The filters that you specify in the browsers listed above are casesensitive.

Using the Request Time Browser

The recommended starting place for your investigation is the Request Time browser because it helps you identify the most time-consuming requests.

Analyzing Sessions 107

Figure 26

Figure 25 The Request Time browser

What does the Request Time browser do?

The Request Time browser provides a list of service requests that entered the instrumented system during the interval spanned by the Zonar, displays response time data for these requests, and allows you to view response time metrics for requests broken down by tier or by component technology. You can also use this browser to drill down into a single request to examine many different metrics for that request over time.

The Request Time browser functions in two modes: All Requests mode and Single

Request Investigation mode. See “ Using the Browser in All Requests Mode ” and

“ Using the Browser in Single Request Investigation Mode ” below for more

information about these modes.

How this helps:

The Request Time browser helps you investigate performance metrics related to service requests over time, including the total time spent servicing each individual

108 PerformaSure: User’s Guide

request. It allows you to determine which service request took the longest to complete, and where the majority of the request’s time was spent.

Using the Request Time Browser—Quick Start

Using the Browser in All Requests Mode

In All Requests mode, you can compare the metrics for the requests listed in the detail pane. The table in this pane can be sorted by name or by one of the metrics, allowing you view response time metrics for a specific request or to isolate the most expensive request based on a certain metric. When you select a request in the detail pane, response time metrics are charted for that request in the graph pane. In All Requests mode, you have the option of charting the aggregate response time for all requests with the metrics for the selected request.

Setting the Display Mode

You can display response time metrics in the graph pane and in the bar charts in the detail pane broken down either by tier or by component technology.

Displaying response time metrics broken down by tier allows you to distinguish the tiers of your application. PerformaSure consistently assigns one color to each tier and one for each application server cluster. Select Tier to investigate response time by tier for the request that you selected and for the requests listed in the detail pane. When you select this option, the segments in the chart in the graph pane and in the bar charts in the detail pane are grouped in terms of the following tiers: web server, application server cluster(s), and database.

Displaying response time metrics broken down by component technology allows you to distinguish component types in the charts in the graph pane and detail panes. PerformaSure consistently assigns colors to standard and custom components. When you select the option Component Technology, the segments in the chart are grouped by component technology. The component

technology segments are listed in the table “ Component Technology Chart

Segments ” on page 272.

To change the display mode:

1.

Click the Display By drop-down menu in the toolbar or select View >

Display by... from the menu bar to display a submenu from which you can select one of two options: Tier or Component Technology. Tier is selected by default.

2.

Click the radio button associated with either Tier or Component

Technology.

Analyzing Sessions 109

Isolating Requests in the Detail Pane

The detail pane is only available when the browser is in All Requests mode. The detail pane presents a list of requests and of response time metrics for these

requests in tabular form. See “ Detail Pane Columns ” on page 290 for more

information.

If you are interested in specific metrics listed in the detail pane, you can cause only the columns that correspond to those metrics to be displayed. By allowing you to sort the requests listed in the detail pane based on the values listed in one of the metric columns, the Request Time browser helps you isolate the most expensive request based on a particular metric.

To toggle the display of the detail pane columns:

1.

Select View > Show/Hide Columns... from the menu bar or select

Show/Hide Columns... from the context menu. The Show/Hide Columns dialog will open.

Note: If you only want to hide one column, simply right-click on it and select Hide Column from the context menu that appears. If you want to cause that column to be displayed again, you will need to use the

Show/Hide Columns dialog.

2.

If you do not want certain metrics to be displayed, uncheck the checkboxes that correspond to those metrics. If you want to deselect all items in this dialog so that only the Name column is displayed in the detail pane, click None. To select all items in the dialog so that all columns are displayed in the detail pane, click All.

3.

Click OK to apply these settings and close the dialog.

To isolate an expensive request in the detail pane:

1.

Select the display mode for the detail pane bar charts. See “ Setting the Display

Mode ” on page 109 for details.

2.

Click on the header for a metric column once to sort the requests in descending order based on that metric or twice to sort the requests in ascending order. An arrow indicating the order in which the requests are sorted will appear in the header.

Figure 27

Figure 26 Sorting requests by Avg Cumulative Time in the detail pane

110 PerformaSure: User’s Guide

Charting Response Time Metrics For a Request

Once you have isolated a request of interest in the detail pane, simply click its entry in the table to cause a metric chart to be displayed in the graph pane for that request. Response time metrics for the selected request will be charted in the

graph pane broken down either by tier or by component technology. See “ Setting the Display Mode

” on page 109 for details. See “ Request Time Browser Graph

Pane—Full Detail ” on page 284 for information about the controls, tooltips, and

context menus available in the graph pane.

Charting the Aggregate Response Time Metric

Leave the Show Response Time for All Requests checkbox selected (the default setting) to display aggregate response time data for all requests listed in the detail pane. Deselect this checkbox if you do not want this data to be charted in the graph pane.

Figure 28

Figure 27 The aggregate response time of all requests charted in the graph pane

As shown in above, the chart segment for the overall response time of the system is identified as Response Time in the graph pane.

Tip: Leave Show Response Time for All Requests checked to examine the request you selected in comparison to the overall response time of the system. Charting the aggregate response time of all requests provides you with a point of reference for your investigation into an expensive request.

Investigating a Single Request

After isolating an expensive request in the detail pane and viewing response time metrics for it in the graph pane, you can continue your investigation by drilling

Analyzing Sessions 111

down into the request. In All Requests mode, three Request Investigation actions are available in the browser’s control pane. Click the arrow icon or the action text to perform an action. When you perform an action, the browser will switch into Single Request Investigation mode. Depending on the action that you perform, response time metrics for the selected request will be broken down by tier,

component technology, or server and displayed in the graph pane. See “ Request

Investigation ” on page 280 for more information about the drill-down actions

available in the browser in All Requests mode.

Figure 29

Figure 28 The Request Time browser’s control pane in All Requests mode

Investigating a Request in Other PerformaSure Browsers

In All Requests mode, three actions are available in the control pane that allow you to continue your investigation in other PerformaSure browsers: View call tree of

selected request, and View related metrics of selected request. Click the

arrow icon or the action text to perform an action. See “ Further Investigation ” on page 281 for more information about these actions.

Using the Browser in Single Request Investigation Mode

When you find a request of interest, you can switch the browser into Single Request

Investigation mode by drilling down into the request to investigate response time by tier, component technology, or server. The options available in the control

pane in Single Request Investigation mode are described below. See “ Request Time

Browser Graph Pane—Full Detail ” on page 284 for information about the

controls, tooltips, and context menus available in the graph pane.

112 PerformaSure: User’s Guide

Figure 30

Figure 29 The Request Time browser’s control pane in Single Request Investigation mode

Tracking the Drill-Down Levels

The Current Drill Down History section of the control pane displays the drill-down history for the request that you are currently investigating, allowing you to keep track of the request investigation actions that you have performed. The entries for previous drill-down levels function like request investigation actions. Click the entry for a previously-selected action to ‘drill up’ a level. Click Request to cause the browser to return to All Requests mode. Hover the cursor over the entry for a previous drill-down level to make a tooltip appear in which the specific value for that level is displayed.

Figure 31

Figure 30 A drill-down history tooltip

Selecting the Next Drill-Down Level

The request investigation actions that you can perform vary depending on the current drill-down level. The actions that are available from the current level are

listed in the Next Drill Down section of the control pane. See “ Next Drill Down ” on page 281 for more information about the actions that may be listed in this

section.

Analyzing Sessions 113

Investigating a Request in Other PerformaSure Browsers

In Single Request Investigation mode, three actions are available in the control pane that allow you to continue your investigation in other PerformaSure browsers:

View call tree of selected request, and View related metrics of selected

request. Click the arrow icon or the action text to perform an action. See

“ Further Investigation ” on page 282 for more information about these actions.

Linking Time Control Panels

You can link the Time Control panels of all existing and newly created browsers.

When the browsers are linked, using the controls in the Time Control panel of one

browser will impact all other browsers as well. See “ Linking the Browsers’ Time

Controls ” on page 106 for more information.

Request Time Browser Reports

Click the Export Report button in the browser’s toolbar or select Browser >

Export Report... from the menu bar to begin the process of creating a report in

CSV, PDF, or XML format. See “ Choosing the Report Option ” on page 413 for

more information about generating a report. See “ Request Time Report ” on page

418 for details about the information included in a report generated from the

Request Time browser.

114 PerformaSure: User’s Guide

Using the SQL Browser

Figure 32

Figure 31 The SQL browser

What does the SQL browser do?

The SQL browser displays performance information for SQL statements aggregated across multiple requests. It provides you with a high-level view of the

SQL statements used in your application, helping you identify and diagnose database problems. You can use this browser to chart SQL response time metrics for a particular statement broken down by operation and compare the metrics for that statement with the aggregate response time of all statements. As your performance investigation progresses, you can configure the browser to chart metrics in the graph pane for specific SQL operations.

Analyzing Sessions 115

How this helps:

The SQL browser helps you diagnose database performance problems effectively by providing you with detailed information about the SQL statements that are used in your application.

Using the SQL Browser—Quick Start

Isolating SQL Statements in the Detail Pane

The SQL browser’s detail pane presents a list of SQL statements and of response

time metrics for these statements in tabular form. See “ Detail Pane Columns ” on page 314 for more information.

If you are interested in specific metrics listed in the detail pane, you can cause only the columns that correspond to those metrics to be displayed. By allowing you to sort the statements listed in the detail pane based on the values listed in one of the metric columns, the SQL browser helps you isolate inefficient SQL statements.

To toggle the display of the detail pane columns:

1.

Select View > Show/Hide Columns... from the menu bar or right-click anywhere in the detail pane to make a context menu appear from which you can select Show/Hide Columns.... The Show/Hide Columns dialog will open.

Note: If you only want to hide one column, simply right-click on it and select Hide Column from the context menu that appears. If you want to cause that column to be displayed again, you will need to use the

Show/Hide Columns dialog.

2.

If you do not want certain metrics to be displayed, uncheck the checkboxes that correspond to those metrics. If you want to deselect all items in this dialog so that only the Name column is displayed in the detail pane, click None. To select all items in the dialog so that all columns are displayed in the detail pane, click All.

3.

Click OK to apply these settings and close the dialog.

To isolate an inefficient statement in the detail pane:

■ Click on the header for a metric column once to sort the statements in descending order based on that metric or twice to sort the statements in ascending order. An arrow indicating the order in which the statements are sorted will appear in the header.

116 PerformaSure: User’s Guide

Figure 33

Figure 32 Sorting statements by Avg Response Time in the detail pane

Charting Response Time Metrics For a SQL Statement

Once you have isolated a statement of interest in the detail pane, simple click its entry in the table to cause a metric chart to be displayed in the graph pane for that

statement. See “ SQL Browser Graph Pane—Full Detail ” on page 309 for details

about the controls, tooltips, and context menus available in the graph pane.

Charting the Aggregate Response Time Metric

Leave the Show Response Time for All Statements checkbox selected (the default setting) to display aggregate response time data in the graph pane for all

SQL statements listed in the detail pane; the chart segment for this data is identified as Total Response Time in the graph pane. Deselect this checkbox if you do not want this data to be charted in the graph pane.

Figure 34

Figure 33 The aggregate response time of all SQL statements charted in the graph pane

Charting the Total Response Time provides you with a point of reference for your performance investigation by allowing you to examine the response time metrics for a particular statement in comparison to the overall response time of all SQL statements.

Analyzing Sessions 117

Using the SQL Browser’s Control Pane

The SQL browser’s control pane contains controls for configuring the display of response time data in the graph pane and actions that you can take to continue your performance investigation in other PerformaSure browsers.

Figure 35

Figure 34 The SQL browser’s control pane

Showing Selected SQL Operations

The checkboxes in the SQL Statement Investigation area control the display of response time data for the SQL operations charted in the graph pane. All three options (Prepare, Execute, and Retrieve) are selected by default. You can deselect the checkboxes that correspond with the operations that you do not want to show.

Investigating a Statement in Other PerformaSure Browsers

Two actions are available in the SQL browser’s control pane that allow you to continue your investigation in other PerformaSure browsers: View call tree of

related request and View related metrics of selected statement. Click the

arrow icon or the action text to perform an action. See “ Further Investigation ” on page 307 for more information about these actions.

Linking Time Control Panels

You can link the Time Control panels of all existing and newly created browsers.

When the browsers are linked, using the controls in the Time Control panel of one

browser will impact all other browsers as well. See “ Linking the Browsers’ Time

Controls ” on page 106 for more information.

118 PerformaSure: User’s Guide

SQL Browser Reports

Click the Export Report button in the browser’s toolbar or select Browser >

Export Report... from the menu bar to begin the process of creating a report in

CSV, PDF, or XML format. See “ Choosing the Report Option ” on page 413 for

more information about generating a report. See “ SQL Report ” on page 418 for

details about the information included in a report generated from the SQL browser.

Using the Request Tree Browser

Figure 36

Figure 35 The Request Tree browser

What does the Request Tree browser do?

The Request Tree browser provides a graphical view of service requests in its graph pane. Each request is illustrated in a request tree. A request tree starts with the request’s invocation as it enters the system and progresses through the various method and database calls. For example, as a request progresses, it may call one or more Servlets, which in turn call one or more EJBs, and so on, until the request

Analyzing Sessions 119

is complete. Request trees can be displayed in the graph pane with component-, class-, or method-level detail.

Each request tree is comprised of one entry-point node (also called a root node) and multiple group nodes. An entry-point node can represent an HTTP or an

RMI request. Group nodes represent components in your Java EE application,

Java classes, or JDBC calls that contributed to the completion of that request.

Group nodes are comprised of method nodes, which are displayed as rectangular boxes within group nodes.

Figure 37

Figure 36 Elements in the Request Tree browser’s graph pane

One of the purposes of the Request Tree browser is to help you find the critical path within a request: the one taking the most time. Request trees can be colored and sorted, allowing you to easily identify the most expensive service request or the most expensive node in a request tree based on the active metric that you select.

The Request Tree browser also includes a detail pane that provides an explorer view of the requests that are illustrated in the graph pane. The detail pane displays information including method names, cumulative times, and call counts.

You can configure the detail pane to display this information in list or in a tree view that preserves calling relationships.

120 PerformaSure: User’s Guide

Figure 38

Figure 37 The detail pane of the Request Tree browser with the display set to Tree

How this helps:

The Request Tree browser allows you to examine in greater detail the timeconsuming requests that you identified in the Request Time browser. Once you have identified an expensive request in the Request Time browser, simply rightclick on the request in the graph pane of the Request Time browser and select

View Call Tree from the context menu that appears.

By deconstructing a service request into its constituent parts and displaying them in a request tree, this browser enables you to view the nested set of calls that are made as the request progresses. A request tree shows the relationship between all components—such as Servlets, EJBs, and JDBC calls—that contributed to the completion of a service request.

Using the Request Tree Browser—Quick Start

For detailed descriptions of all of the fields and controls in this browser, see

“ Request Tree Browser ” on page 319.

Navigating the Graph Pane

Zooming the graph pane

A typical request tree will not fit in the graph pane unless you reduce its scale.

You can use the Zoom Control slider to reduce the scale of the request trees displayed in the graph pane by as much as 90%, allowing you to get an overall impression of events.

Analyzing Sessions 121

Scrolling through the graph pane

To scroll through the graph pane more easily, you can use the panner. The panner opens in its own window. As shown below, the panner window contains a scaled-down view of the graph pane. The highlighted rectangle in the panner window represents the current view area.

Figure 39

Figure 38 The panner window

To display and use the panner:

1.

Click the Show Panner button in the toolbar or open the View menu and check the checkbox associated with the Show Panner menu item. The panner will open in its own window.

2.

Click and drag the highlighted rectangle to reposition the view area within the graph pane. To enlarge or reduce the highlighted area, zoom in to or out of the request tree using the Zoom Control slider.

Note: If the Panner Updates Graph While Dragging checkbox is selected in the Graphs pane of the Edit Options dialog (Tools > Options...), the view area in the graph pane will update continuously. If it is not selected, the view area will update only when you release the mouse button.

Coloring Request Trees

Coloring tree nodes

The nodes in a request tree can be color-coded. The ‘hotter’ the color of a node, the more expensive that node is in relation to other nodes based on the active metric. By default, the tree is colored by Avg Cumulative Time, the average amount of time taken by each method (and its children) during the interval spanned by the Zonar.

You can recolor the request trees in the graph pane based on one of thirteen active metrics. For example, you could change the active metric from its default setting to Avg Call Count, the number of times each method was called (per request) during the interval spanned by the Zonar.

122 PerformaSure: User’s Guide

To change the active metric to Avg Call Count:

1.

Click on Active Metric in the toolbar to display a drop-down menu with the active metric options or select View > Active Metric from the menu bar to display a submenu with these options.

2.

Select Avg Call Count. The Methods in each request tree will be recolored based on the new active metric.

See “ Active Metric ” on page 328 for a complete list of metrics.

Coloring the Identifier bars

You can also color the Identifier bar found on the left side of each node (see

Figure 37) by Tier or Component Technology. Tier is selected by default.

The color of each Identifier bar represents a different tier or component technology, helping you distinguish between the tiers in your application or between component types.

To change the display mode of the Identifier bars to Component Technology:

1.

Select View > Display by from the menu bar to display a submenu with two options: Tier and Component Technology.

2.

Select Component Technology. The Identifier bars in the request trees will change color. You can now distinguish each standard and custom component in your Java EE application based on the unique color that it is assigned.

Using and Customizing the Color Scale

The Color Scale Toggle button toggles the display of a color-based legend called the Color Scale . The ‘hot’ color is displayed at the top of this scale. This color is used to identify the most expensive nodes based on the active metric. The ‘cold’ color at the bottom of the scale is used to mark nodes that are the least expensive based on the active metric. Clicking the Color Scale Toggle button causes the Color

Scale to appear or disappear.

You can choose different hot and cold colors in the Edit Options dialog. The intermediate colors are interpolated from the hot and cold colors.

To select custom colors for the Color Scale:

1.

Select Tools > Options... from the menu bar. The Edit Options dialog will open.

2.

Select Themes on the left-hand side of the dialog. The Themes pane will be displayed on the right-hand side. This pane contains four options boxes and a drop-down menu with the choices White, Black, and Custom.

Analyzing Sessions 123

3.

Select Custom from the drop-down menu.

4.

The Color Scale options box contains two color rectangles, which are used to set the extreme hot and cold colors in the Request Treebrowsers. Click on a color rectangle to launch the Select Color chooser. There are three ways of specifying a new color: color swatches, HSB, or RGB.

5.

After selecting new hot and cold colors, click Apply to update the colors used in the Request Tree browser’s Color Scale and then click OK to close the dialog.

Note: You can use the controls in the Themes pane to customize many of the

colors used in the browsers. See “ Edit Options Dialog ” on page 247 for

more information.

Sorting Request Trees

After recoloring the request trees in the graph pane by selecting a new active metric, you can sort the trees based on that metric. Sorting a request tree causes nodes with higher values of the active metric to appear above nodes with lower values. To sort the request trees, select View > Sort Tree from the menu bar. See

“ Sort Tree ” on page 328 for more information about how request trees are sorted.

Tooltips in the Graph Pane

There are several tooltips associated with each node in a request tree. The information displayed in these tooltips changes based on how you have configured the Request Tree browser. For example, changing the display mode of the Identifier bars from Tier to Component Technology (View > Display by) also changes the tooltip for these bars. After changing the display mode, hover the cursor over an Identifier bar to cause the new tooltip to appear.

Figure 40

Figure 39 The tooltip for an Identifier bar when Component Technology is selected

The format of the tooltips for entry-point, group, and method nodes changes depending on whether Per Request or Per Call is selected from the Metric

Display submenu. Per Request is selected by default; this setting causes request averages to be displayed in tooltips and in the detail pane. To change the display setting so that call averages are displayed in tooltips and in the detail pane, select

View > Metric Display > Per Call from the menu bar or click Metric Display in the toolbar and select Per Call from the drop-down menu that appears.

When you hover the cursor over the header for a group node, a tooltip appears displaying metrics for the whole group.

124 PerformaSure: User’s Guide

Figure 41

Figure 40 Tooltip in the Request Tree Browser showing per request statistics

When you hover the cursor over a method node, a tooltip with a similar format is displayed. This tooltip has an extra line in the header that contains the method name.

Hovering the cursor over an entry-point node (like an RMI or HTTP node) causes a different type of tooltip to appear. The tooltips for entry-point nodes contain extra fields, such as Total Cumulative Time and Sampled Requests (listed as a

percentage). See “ Request Tree Tooltips ” on page 347 for more information about

the tooltips associated with the various types of nodes.

There is also a tooltip associated with each section of the Color Scale. Hover the cursor over a section of the Color Scale to make this type of tooltip appear (see image below). If the scale is not visible, click the Color Scale Toggle button to make it appear. This type of tooltip displays the name of the active metric and the metric range spanned by that color. This range is listed on a per request or per call basis, depending on the option that you selected from the Metric Display submenu.

Figure 42

Figure 41 The tooltip for a section of the Color Scale in the Request Tree browser

Bundling

The different bundling modes available in the Request Tree browser allow you to change the level of detail at which the request trees are displayed. Componentlevel bundling displays key Java EE classes and methods in each request tree, giving you an overview of your application’s behavior. Class-level bundling

Analyzing Sessions 125

displays both Java EE and user classes, presenting a slightly more complex tree.

However, when you select class-level bundling, method calls to other methods within the same class are not displayed but are bundled together as a single node, labeled by the method that starts the string of calls. Method-level bundling displays all classes and method calls, presenting the most detailed request tree.

Important: The default bundling mode for PerformaSure is Component.

That means that even if you recorded your session at full detail, only the key Java EE components are shown if you do not change the bundling mode from its default setting.

It is recommended that you begin your performance investigation with the bundling mode set to Component. As your investigation progresses, you can switch to one of the other modes to expose more details about your application’s behavior.

To change the bundling mode from its default setting:

1.

Select View > Bundling Mode from the menu bar to display a submenu with the different bundling options (Component, Class, and Method) or click Bundling Mode in the toolbar to display a drop-down menu with these options.

2.

Depending on the level of detail at which you want the request trees to be displayed, select either Class or Method. The new setting will take effect immediately, but you may need to wait a few moments while PerformaSure updates the view in the graph pane.

Pruning and Isolating Request Trees

Nodes that are very expensive based on the active metric can overshadow nodes that are less expensive—but still problematic. The Prune and Isolate options available from the context menus in the graph pane allow you to hide certain request tree nodes. The range of values for the active metric does not include values from pruned nodes or nodes that are excluded when you select one of the

Isolate options. Thus, when you prune or isolate a node, a new maximum value can be used. This changes how the nodes are colored and allows you to pinpoint problem areas that were previously overshadowed.

Selecting one of the Prune or Isolate options can cause certain nodes to appear as ghosted. All pruned nodes or nodes that have been excluded when you select one of the Isolate options will appear as ghosted if you did not check the Hide

Pruned Sub-Trees checkbox in the Edit Options dialog (Tools > Options... >

Graphs). Certain nodes will always display as ghosted when you prune them because they must remain in place to maintain the request tree’s structure. For example, pruning a node in the path between two unpruned nodes will cause that node to display as ghosted. If you prune an entry-point node, it will also display as ghosted, allowing you to un-prune it later.

126 PerformaSure: User’s Guide

The action performed when you select one of the Prune or Isolate options can

vary depending on the context menu from which you select it. See “ Context

Menus in the Graph Pane ” on page 351 for more information.

Request Tree Browser Detail Pane

The metrics that appear in the tooltips for the request tree nodes are also listed in tabular form in the detail pane. This table also lists the Agents that collected the data, the URLs that were called during the interval spanned by the Zonar, and the

methods that were called. See “ Detail Pane Columns ” on page 363 for details.

Tip: Double-click a node in the request tree to transfer focus to the corresponding item in the Request Tree detail pane. You don’t have to spend time searching for the item.

The process works in reverse as well. Double-click an item in the

Request Tree detail pane to transfer focus to the corresponding node in the request tree. Because multiple methods of one type may exist in the tree, the most expensive one is selected based on the active metric.

Note that focus will not be transferred to nodes that were pruned or excluded and are hidden; however, focus will be transferred to nodes that were pruned or excluded and are displayed as ghosted.

Transferring focus to a hidden child node will cause it to be displayed again.

There are two settings for viewing this information, List and Tree. List is the default setting. When List is set, all the methods that were called are listed in a simple tabular format underneath the request. When Tree is selected, items are arranged in a tree hierarchy underneath the request. Tree format causes the calling relationships between the nodes illustrated in the graph pane to be mirrored in the detail pane.

Figure 43

Figure 42 Items listed in the detail pane (with Tree selected)

To change the detail table mode to Tree:

1.

Click the list/tree toggle button at the far right of the detail pane or select View > Detail Table Mode > Tree. The way the lines are drawn

Analyzing Sessions 127

inside the button does not indicate the current view but the view that will appear when you click on the button.

2.

Double-click the URL name to expose the methods that were called.

There may be metrics or other types of information that you don’t want to see in the detail pane while analyzing a session. You can remove these items from view by hiding the column in which they are listed.

To toggle the display of the detail pane columns:

1.

Select View > Show/Hide Columns... from the menu bar or right-click anywhere in the detail pane to make a context menu appear from which you can select Show/Hide Columns.... The Show/Hide Columns dialog will open.

Note: If you only want to hide one column, simply right-click on it and select Hide Column from the context menu that appears. If you want to cause that column to be displayed again, you will need to use the

Show/Hide Columns dialog.

2.

If you do not want the name of the Agent that collected the data to be displayed, uncheck the Agent checkbox. If you do not want certain metrics to be displayed, uncheck the checkboxes that correspond to those metrics. If you want to deselect all items in this dialog so that only the Name column is displayed in the detail pane, click None. To select all items in the dialog so that all columns are displayed in the detail pane, click All.

3.

Click OK to apply these settings and close the dialog.

Linking Time Control Panels

You can link the Time Control panels of all existing and newly created browsers.

When the browsers are linked together, using the controls in the Time Control

panel of one browser will impact all other browsers as well. See “ Linking the

Browsers’ Time Controls ” on page 106 for more information.

Exporting a JProbe Launcher File

PerformaSure can generate a configuration ( JPL) file for deeper analysis with

JProbe Profiler. See “ JProbe Integration ” on page 134 for more information.

Request Tree Browser Reports

Click the Export Report button in the browser’s toolbar or select Browser >

Export Report... from the menu bar to begin the process of creating a report in

CSV, PDF, or XML format. See “ Choosing the Report Option ” on page 413 for

more information about generating a report. See “ Request Tree Report ” on page

419 for details about the information included in a report generated from the

Request Tree browser.

128 PerformaSure: User’s Guide

Using the Metrics Browser

Figure 44

Figure 43 The Metrics browser

What does the Metrics browser do?

The Metrics browser provides a full list of available metrics organized in a collapsible tree hierarchy in its navigation pane. You can open each metric in its own chart in the graph pane or visually correlate multiple metrics in the same chart; multiple charts can be opened simultaneously. Charting metrics allows you to compare the trend of related metrics, to see if certain metrics exceed the minimum or maximum thresholds you have set for them, to observe the duration of threshold violations, and to check for anomalous behavior.

Tip: By correlating system metrics with service request metrics, you can often expose a performance problem.

Analyzing Sessions 129

The Metrics browser also provides access to the Threshold Editor, the dialog in

which you set metric thresholds. See “ Threshold Editor ” on page 408 for more

information about setting thresholds.

How this helps:

■ Metrics whose thresholds were exceeded can be viewed in a format that allows their correlation with other metrics.

The Metrics browser’s navigation pane provides you with a list of all metrics available in the session that you recorded.

Charting metrics in the graph pane allows you to view these metrics throughout the history of the session, helping you pinpoint problem areas.

The Sightlines are linked in all charts that you open in a Metrics browser, allowing you to correlate an event in one chart with that in another.

Using the Metrics Browser—Quick Start

Exploring the Tree Hierarchy

The navigation pane contains a list of metrics organized in a tree hierarchy. All the metrics available for the session that you are currently analyzing are listed in this pane. The metrics available in a session will vary depending on several

factors, such as the application server(s) that you are instrumenting. See “ The

Metric Hierarchy ” on page 464 for a description of the structure of the metric

hierarchy that is displayed in the navigation pane.

To expose the next level in the metric hierarchy:

■ Double-click a node in the tree or click the square ( ) to the left of the node.

To navigate the metric hierarchy using your keyboard:

Move from node to node using the up and down arrow keys.

Expand or close folders using the right and left arrow keys.

Select or deselect entries in the tree by pressing the spacebar.

Selecting Metrics For Display

There are several ways that you can select metrics from the tree hierarchy for presentation in the graph pane.

To open a metric chart:

■ Select a metric in the tree and press Enter or double-click a metric. You can also click and drag a metric from the navigation pane to a blank space in the graph pane or to the edge of a chart in the graph pane. Performing any one of these actions causes the metric to be displayed in its own chart.

130 PerformaSure: User’s Guide

To add a metric to an existing chart:

■ Click on the metric in the tree hierarchy and drag it to a chart in the graph pane.

Tip: Charting a metric in the same chart as another makes it easier to compare the trend of several metrics.

To open a chart with multiple metrics:

Ctrl-click or Shift-click the metrics in the navigation pane and press Enter

Ctrl-click or Shift-click the metrics in the navigation pane and right-click on the selected metrics to cause a context menu to appear. This menu contains three options: Open, Open in Overlap Mode, Open in Stacked Mode.

When you select Open, the metrics are charted together in Default mode. See

“ Changing the Chart Type ” on page 385 for more information about chart

types.

To reposition a metric chart within the graph pane:

■ Click the top portion of the chart and drag it to another spot in the graph pane.

To remove a metric chart from the graph pane:

■ Click the Close Chart button or right-click below the top portion of the chart and select Close Chart from the context menu that appears.

Charting Metrics in the Graph Pane

By following the instructions in “ Selecting Metrics For Display ”, you can open a

collection of charts in the Metrics browser’s graph pane. Each chart that you open illustrates the history of one or more metrics during the interval spanned by the

Zonar. The metrics that are available for display in the graph pane are listed in the

tree hierarchy in the navigation pane. See “ Metrics Browser Graph Pane—Full

Detail ” on page 384 for details about the tooltips and context menus available in

each chart that you open in the graph pane; this section also contains information about applying functions to metrics and using the Chart Type chooser and the Plot

Type chooser.

Metrics Browser Reports

Click the Export Report button in the browser’s toolbar or select Browser >

Export Report... from the menu bar to begin the process of creating a report in

CSV, PDF, or XML format. See “ Choosing the Report Option ” on page 413 for

Analyzing Sessions 131

more information about generating a report. See “ Metric Report ” on page 420 for

details about the information included in a report generated from the Metrics browser.

Using the Thresholds Browser

Figure 45

Figure 44 The Thresholds browser

What does the Thresholds Browser do?

The Thresholds browser displays information about metrics with threshold violations. All metrics that have exceeded their threshold settings during the

132 PerformaSure: User’s Guide

interval spanned by the Zonar are listed in the browser’s detail pane; you can view a chart for each metric in the graph pane.

How this helps:

The Thresholds browser can help you identify problem areas that should be investigated further. Once you have pinpointed intervals in the session during which metric thresholds were exceeded, you can continue your investigation in other PerformaSure browsers to determine the cause of these threshold violations.

Using the Thresholds Browser—Quick Start

Selecting a Metric For Display

The Thresholds browser’s detail pane provides an explorer view of the metrics with threshold violations. Metric properties are displayed in the detail pane in tabular

form. See “ Detail Pane Columns ” on page 405 for more information.

You can isolate a metric of interest by sorting the columns in the detail pane. For example, by sorting by Total Duration, you can find the metric that exceeded its threshold settings for the longest period of time during the interval spanned by the Zonar.

To isolate a metric in the detail pane:

■ Click on the header for a column once to sort the metrics in descending order based on the values listed in that column or twice to sort the metrics in ascending order. An arrow indicating the order in which the metrics are sorted will appear in the header.

Figure 46

Figure 45 Sorting metrics by Total Duration in the detail pane

Charting Metrics in the Graph Pane

Once you have isolated a metric of interest in the detail pane, simple click its entry in the table to cause it to be charted in graph pane. The chart will show a diagonally striped, rectangular strip at the right-hand edge of the chart. This strip indicates the range on the y-axis in which the metric exceeds its normal bounds; a threshold line is drawn across the chart to indicate the threshold boundary (see

Figure 45). See “ Thresholds Browser Graph Pane—Full Detail ” on page 402 for

details about the controls and tooltips available in the graph pane.

Analyzing Sessions 133

Setting Thresholds

Metric thresholds are set in the Threshold Editor. You can access the Threshold

Editor by clicking the Edit Thresholds button that is located at the bottom right-hand corner of the graph pane when you are viewing a metric in a Default or

Overlap chart. See “ Threshold Editor ” on page 408 for more information.

Thresholds Browser Reports

Click the Export Report button in the browser’s toolbar or select Browser >

Export Report... from the menu bar to begin the process of creating a report in

CSV, PDF, or XML format. See “ Choosing the Report Option ” on page 413 for

more information about generating a report. See “ Threshold Report ” on page 421

for details about the information included in a report generated from the

Thresholds browser.

Integration with the Quest Software Suite for Further Analysis

The following topics are covered in this section:

JProbe Integration

Spotlight Integration

JProbe Integration

JProbe Profiler is the ideal tool for profiling the internals of Java classes.

PerformaSure provides a handy tool to make coordination with JProbe even easier. This section describes the functions available from the Export JProbe

Launcher File menu choice that is available in the Request Tree browser.

134 PerformaSure: User’s Guide

Figure 47

Figure 46 Export JProbe Launcher File menu choice

Generating and Using a JProbe Launcher File

The .jpl file contains settings to start the application server under JProbe Profiler, either from a command line or from JProbe’s LaunchPad, and to collect performance data on the classes and methods that you select in the Request Tree browser.

Caution: Use the drop-down menu in the Request Tree pane of the Edit

Options dialog to select the version of JProbe that you are using, otherwise the .jpl file that is created will not be compatible with your version of JProbe. To launch the Edit Options dialog, select

Tools > Options... from the menu bar of the Project window or any browser.

To generate a JPL file:

1.

Select one or more nodes in the call tree displayed in the Request Tree browser’s graph pane. These serve to specify the packages and classes you want to profile with JProbe. Select a class by clicking on the first item (the class name) in the node. Select a method by clicking on any of the other items.

If you choose a node that does not represent a class or method, it will be ignored when producing the JPL file.

To select more than one node, press the Control key in combination with a mouse click on each desired node.

2.

To profile the selected item or items, JProbe must be installed on a machine that is running the same software as that used when the PerformaSure data for the selected item or items was collected. Ideally, this would be the same machine as the one used for recording the PerformaSure session.

3.

In the File menu, or by right-clicking on one of the selected nodes, choose

Export JProbe

Launcher File.

• PerformaSure gives you the ability to specify the scope of your JProbe analysis. You can track data in either the entire package (or set of packages) represented by the class(es) and/or method(s) you have selected, or just the

Analyzing Sessions 135

class(es) represented by your selection(s).

1

• To track data in all methods in the package represented by each selected class or method, choose Profile Selected Package(s). If you have selected multiple classes and/or methods, all packages represented by your selections are marked for tracking.

• To track data in all methods in the selected classes (or classes represented by selected methods), choose Profile Selected Class(es).

To use the JPL file generated by PerformaSure:

1.

Ensure that JProbe is installed on a machine as described in step 2 above.

2.

Complete the JPL by loading the JPL file into the JProbe LaunchPad and selecting your application server and Integration ID.

Even though a server and integration may be selected automatically when you open the JPL file in the LaunchPad, they may be either incomplete or incorrect because this can only be done properly from the LaunchPad on the machine where JProbe is installed. Therefore, it is vital that you verify that you have selected a valid and working configuration for your application server and integration.

3.

Run JProbe Profiler using the generated JPL file along with the chosen integration. You can run JProbe from either the command line or from the console. Refer to the JProbe documentation for details.

Note: Since the key elements of the JPL file are filters, and these are generated by PerformaSure based on the nodes you have selected, it is possible to use the JPL files to profile your software on machines other than the ones used to collect PerformaSure metrics, for example, a developer’s workstation or a test environment running the same application server and deployed software.

Profiling Packages and Classes

This section uses JProbe-specific terminology and assumes some familiarity with

JProbe and its use. If you are new to JProbe, refer to the JProbe Profiler

Developer’s Guide for a complete description of the application.

The difference between profiling packages and classes is in the filters. The class mask used for the filters under package profiling uses the package name of each of the selected nodes and class name “*”; whereas under class profiling, the class name of the node is left intact. The table below outlines the differences in filters for various selection combinations.

1. If you selected methods, the classes containing these methods is profiled.

136 PerformaSure: User’s Guide

Type of profiling based on selections and menu choice

The following table summarizes what is profiled depending on which items are selected and which menu choice is made:

Selected Items

Single node

Multiple nodes from same class

Multiple nodes from multiple classes in same package

Menu Choice: Profile

Selected Package(s)

The node’s package result = 1 filter

The nodes’ package result = 1 filter

The nodes’ package result = 1 filter

Multiple nodes from multiple classes in multiple packages

The nodes’ packages result = 1 filter per selected package

- no duplicates

Menu Choice: Profile Selected

Class(es)

The node’s class result = 1 filter

The nodes’ class result = 1 filter

The nodes’ classes result = 1 filter per selected class

- no duplicates

The nodes’ classes result = 1 filter per selected class

- no duplicates

Spotlight Integration

There are several ways to launch Spotlight

® in Quest Central from PerformaSure:

■ You can launch Spotlight

® in Quest Central from the Tools menu of the

Project window or any browser (Tools > Performance Diagnostics) or from the toolbar of any browser.

■ You can also launch Spotlight

® in Quest Central by selecting a JDBC node in the Request Tree browser or a SQL statement in the detail pane of the SQL browser, right-clicking on that node or statement, and choosing Performance

Diagnostics > Spotlight

®

in Quest Central from the context menu.

Note: Selecting the Spotlight

®

in Quest Central menu item launches the version of Spotlight

®

that is included with Quest Central. You must have

Quest Central installed to launch Spotlight

®

from PerformaSure.

Analyzing Sessions 137

Analyzing Sessions FAQ

What does it mean if the message “No Data For Selected Settings” appears in a browser?

This message appears when there is no data available for display because of the configuration of one or more of the browser’s settings. For example, this message will appear when:

■ There is no session data available for display in the browser for the section of

the Timeline spanned by the Zonar. See “ Using the Zonar ” on page 104 for

information about adjusting the length of time spanned by the Zonar.

■ A filter has been specified in the browser’s Filter Requests, Filter Statements, or

Filter Metrics bar that does not return any data. See “ Filtering Data in the

Browsers ” on page 107 for information about specifying filters.

After I log into the Workstation, the Open Session in New Project, Open Existing

Project, and Open Recent Project radio buttons are disabled in the Startup window.

Why can’t I view the sessions that have been recorded?

If these buttons are disabled, the role that has been assigned to your user account does not include the permissions required to open existing Projects or to open sessions in new Projects. Speak to your PerformaSure administrator about the

permissions included in the role that you have been assigned. See “ User

Management ” on page 154 for more information about permissions and roles.

The following WARN error appears in the log files for a session that I recorded:

“Node has used a remote protocol too many times: filtering subsequent flows. This is a likely cause of performance problems in the application.” How can I find out which node is responsible?

If you see this WARN error in a PerformaSure log file or in the Project window’s

Session Log dialog, you can discover which method initiated the RMI calls by following these steps:

1.

If you have not already done so, start the Workstation and open the session.

2.

Launch the Request Tree browser.

3.

Type the following into the text field in the Request Tree browser’s Filter Requests bar:

Remote Invocation Limit Exceeded

4.

Ensure that the Regular Expression and Apply to Root Nodes Only checkboxes are deselected and press Apply.

5.

Right-click the round Show/Hide Child Node button on the entry-point node of each request tree that is displayed in the graph pane and select Expand All

Children from the context menu that appears.

138 PerformaSure: User’s Guide

6.

Look for nodes labelled Remote Invocation Limit Exceeded (see image below).

7.

Trace back along the call tree from a Remote Invocation Limit Exceeded node to find the method that initiated the RMI calls.

For information about the RemoteInvocationLimit configuration setting in the

file <performasure_home>/config/client/instrumentation.config, see “ Setting the

Remote Invocation Limit ” on page 458.

Figure 48

Figure 47 Search for nodes labelled Remote Invocation Limit Exceeded in the request tree

Why does an Out of Memory error occur when I open certain sessions?

If a recorded session becomes too large, an attempt to open it for viewing in the

Workstation may cause an Out of Memory error in the Java runtime. This may occur because it requires more memory than is initially allocated to the Java heap. This situation can be addressed by increasing the size of the Java heap.

To increase the amount of memory needed to open large sessions in the Project window:

1.

Note the size of the session file in MB and add 128 MB. For example, if the session file is 500 MB, the size parameter is 628 MB.

2.

Unix or Windows: Launch the Nexus from a command file or script that passes the size parameter to increase the heap size. For example, for a 500 MB session file, you would enter nexus -Xmx628m .

3.

Windows: Launch the Workstation from a DOS console or command file that passes a size parameter to increase the heap size. For example: workstation -Xmx512m

Unix: Edit the text file <performasure_home>/bin/workstation.lax to change the memory option setting. Example: lax.nl.java.option.additional=-Xms128m -Xmx 512 m -Dquest.debug=0

The size parameter for the Workstation is not directly related to the size of the session. It is a function of the size, but it depends more directly on the size and complexity of the request trees that are stored in the session.

I would like to be able to create my own project templates. How can I do this?

The Project templates that ship with PerformaSure are not hard-coded. In fact, it's easy to create your own Project templates. There may be many different reasons you want to do this, for example:

Analyzing Sessions 139

When you’re working on a specific problem and recording a series of sessions with the same application servers, you frequently want to look at the same requests or metrics for each new session you record, without having to repeat the same selection process in the Request Time and Metrics browsers.

You’ve become comfortable with your own workflow and want to create a

Project template to support it and that can be used with any session.

You want to communicate your findings to other members of the organization and make it easy for them to navigate to the problem you’ve uncovered.

To create your own Project template:

1.

Open one of your sessions in a new Project. Select None from the Template drop-down menu in the New Project Wizard.

2.

In the Project, create and configure the browsers that you want to appear by default in the Project window. This Project will become your new template. For example, in a Metrics browser, open charts for the metrics that you want, but remember that metrics that are specific to one session might not show up in

other sessions. See “ Adding Browsers

” on page 98, “ Organizing the

Navigation Pane

” on page 99, and “ Customizing the Browsers ” on page 102

for information about configuring browsers and the Project window.

3.

Save the Project in the <performasure_home>/config/templates directory: select the option Save Project as Template from the Project menu in the Project window’s menu bar, then name and save the new template using the Save file chooser that appears.

The next time you open a session in a new Project, you will be able to select that template from the Template drop-down menu in the New Project Wizard.

Do the JPL files created by PerformaSure 5.0 work with the latest version of JProbe?

The JPL file formats available in PerformaSure 5.0 are JProbe 6.x-8.x..

To select a JPL file format:

1.

Select Tools > Options... from the menu bar of the Project window or any browser. The Edit Options dialog opens.

2.

Click on Request Tree in the pane on the left-hand side of the Edit Options dialog.

3.

Select the version of JProbe that you are using from the JPL File Format drop-down menu in the Request Tree pane.

4.

Click OK to save your selection and close the dialog.

140 PerformaSure: User’s Guide

Chapter 5

Isolating Performance

Problems

Performance problems pop up in unexpected places. One might exist on your main page as a result of populating a choice box from fields in a database table.

This could cause a slowdown for all users even though most of them don’t choose the option responsible for the slowdown. By observing that too many database calls are occurring, or by timing the inefficient SQL query, you can improve performance. But how do you determine which servlets are responsible? This section presents some general guidelines to help you isolate performance problems.

A Strategy for Finding Performance Problems

At each stage, profile your application with PerformaSure to see if problems arise as the application attempts to service the selected requests.

1.

Apply a load test that simulates a single user making a request. You can test, one by one, the common types of requests your application is designed to handle. At this stage, you may be able to detect overly-long requests or requests that result in too many database calls.

2.

Perform a load test using a single application server on a multi-processor machine. At this stage, you may be able to detect resource contention and serialization issues.

3.

Perform a load test on a cluster. At this stage, you may be able to test the operation of your application in a scenario that shouldn’t be too far removed from your production system.

141

142 PerformaSure: User’s Guide

Part

II

The

PerformaSure

Workstation

Chapter 6

PerformaSure Workstation

The Workstation is the graphical user interface (GUI) for PerformaSure. With it, you can manage users and roles, collect data, and explore and analyze sessions with the help of the PerformaSure browsers. These browsers help expose the most time-consuming service requests as well as the critical paths of method calls within these requests, simplifying the task of analyzing the sessions you collect.

Once you have identified time-consuming requests, you can use the browsers to correlate them with other data collected from your distributed system during the same period, such as SQL statement, network traffic, application server, and OS metrics. If you load your system with hundreds of users, you’ll be able to measure the system’s average behavior and compare it to the maximum request times.

As long as your system resources are sufficiently powerful, the licensed members of your team can run several Workstations simultaneously.

You use the Workstation to view historical data, not real-time events. If you are collecting new session data at the same time as you are viewing a previouslycollected session, the Nexus must process queries from the Workstation as well as receive and process data from Agents. You may find that the Nexus increases its sampling interval in this case. It is recommended that you separate the tasks of collecting data and of viewing sessions.

Note: The Workstation is not used for tasks like configuring your application server to work with PerformaSure or other setup tasks that require hand tooling, such as editing configuration files. See the Installation and

Configuration Guide for instructions on setting up your environment to

work with PerformaSure. See “ Appendix A—Configuring PerformaSure ” on page 425 for information about the configuration files for

PerformaSure.

145

Starting the Workstation

Logging In

When you launch PerformaSure, a Splash screen appears. To run the

Workstation, you must first successfully log in through the Login window.

Figure 49

Figure 48 Login window for the Workstation

In the User Name and Password fields, enter your user name and the password assigned to you by your system administrator. If you do not specify a password,

PerformaSure will assume that an empty password is associated with your username. Passwords are sent to the Nexus in encrypted format for user authentication.

Important: The user name admin and the password admin can initially be used to log in to the Workstation with administrator privileges and add additional user accounts through the User Management window. Quest Software recommends that you promptly change the password for the admin account to something other

than its installed value. See “ Changing a Password ” on page 154

for more information.

In addition to entering your username and password, you also need to choose the location of the Nexus that you would like to use for this session. Use the Nexus drop-down menu to select a Nexus instance, or click the Define... button to

create or modify an instance that does not appear in the list. See “ Defining Nexus

Instances ” on page 148 for details.

Once you have entered all the information, click Login. If you click Exit, you will close PerformaSure.

146 PerformaSure: User’s Guide

Login Errors

If you see the login Error dialog, check that you have entered your user name and password exactly as it was assigned. Your user name is case sensitive, as is your password. If you continue to have difficulties logging on, ask your PerformaSure administrator for assistance.

Figure 50

Figure 49 The logon error alert

If you see the Not Responding error dialog, verify that the Nexus is running, that its address and port number are correct, and that the network connections are functioning.

Figure 51

Figure 50 Failure to connect to the Nexus results in this alert

If you are running the Workstation on RedHat Enterprise Linux AS 3.0, the

Workstation may be unable to connect to a remote Nexus and will log an error like the following:

2006-03-06 09:12:15.018 [Login Thread] ERROR com.sitraka.pas.workstation.login.LoginManager - Could not communicate with Nexus RMI server java.rmi.ConnectException: Connection refused to host:

127.0.0.1

This error occurs if RedHat Enterprise Linux AS 3.0 has installed localhost entries in the /etc/hosts file. Check this file for an entry like

127.0.0.1 localhost lrh4 where lrh4 is your machine name. If you see an entry like this, remove the machine name from the line and then restart the Nexus and the Workstation.

Using the same example, after editing this entry, the line should appear as follows:

127.0.0.1 localhost

PerformaSure Workstation 147

Defining Nexus Instances

The Define Nexus dialog (Figure 52) allows you to edit, add, or remove a Nexus

instance. You can access it by clicking Define in the Login window (Figure 49).

Figure 52

Figure 51 The Define Nexus dialog

Define Nexus Dialog—Summary

Define Nexus Dialog

Control Type

Nexus instances Table

Edit...

Add...

Remove

Button

Button

Button

Default Value Description

N/A Lists the Nexus instances that have been defined. This table has

three columns: Alias, Address, and Port. See “ Nexus Instance Table ”

below for more information.

Disabled

Enabled

Disabled

This button is enabled when you select a Nexus instance from the list.

Click this button to launch the Edit Nexus dialog.

Launches the Add Nexus dialog.

This button is enabled when you select a Nexus instance from the list.

Click it to remove that instance.

Define Nexus Dialog—Full Detail

Nexus Instance Table

This table contains three columns:

Alias Lists the names that you chose for the Nexus machines.

Address Lists the addresses for the Nexus machines.

Port Lists the port numbers that the Agents use to transfer session data to the

Nexus machines.

148 PerformaSure: User’s Guide

Edit Nexus Dialog

The Edit Nexus dialog allows you to change the properties of an existing Nexus instance.

Figure 53

Figure 52 The Edit Nexus dialog

The fields in this dialog are listed below.

Alias

This is the name by which the Nexus is known in the Define Nexus dialog.

Address

The IP address for the machine hosting the Nexus.

Port

The port on which this Nexus listens.

Add Nexus Dialog

The Add Nexus dialog allows you to define properties for a new Nexus instance.

Figure 54

Figure 53 The Add Nexus dialog

The fields in this dialog are listed below.

Alias

When you launch the Add Nexus dialog, this field contains a default name such as Nexus 1. This is the name by which the Nexus is known in the Define Nexus dialog; you can edit this field to specify a new display name for the Nexus.

PerformaSure Workstation 149

Address

The IP address for the machine hosting the Nexus.

Port

The port on which this Nexus listens.

Remove

If there are items in the Nexus instance table that are no longer applicable, select the instance you want to delete from the list and click Remove.

Navigating the Startup Window

The PerformaSure Workstation Startup window is the last step in the startup sequence. From this window, select the radio button that corresponds to your needs and then click OK. To exit PerformaSure, click Exit.

Figure 55

Figure 54 PerformaSure Startup window showing the Tools menu choices

Important: Depending on the permissions that are included in the role you have been assigned, certain options may not be available from

the Startup window. See “ User Management ” on page 154 for

information about roles and permissions.

150 PerformaSure: User’s Guide

Startup Window—Summary

Startup Window

Control

Logout

OK

Type

Record New Session Radio button

Open Session in New

Project

Radio button

Open Existing Project Radio button

Not selected

Not selected

Open Recent Project Radio button and project list

Tools

Not selected

Drop-down menu Enabled

Exit

Button

Button

Button

Default Value Description

Selected Opens the Recording Control window.

Launches the New Project Wizard.

Enabled

Enabled

Enabled

Launches the Open file chooser.

Opens the PerformaSure Project that you select from the project list.

Displays a drop-down menu. See “ Tools ” below for more

information.

Logs you out of the Workstation and returns you to the

Login window.

Confirms your selection and opens the appropriate window or dialog.

Closes the Startup window and exits PerformaSure.

Startup Window—Full Detail

Record New Session

Select this radio button and click OK to open the Recording Control window. See

“ Recording Control Window and Nexusctl ” on page 195 for details about the

fields and controls available in this window.

Open Session in New Project

Select this radio button and click OK to launch the New Project Wizard, which allows you to create a new PerformaSure Project based on a previously-recorded session.

Sessions recorded with versions of PerformaSure prior to version 5.0 cannot be opened in PerformaSure 5.0. The Upgrade Session option has been disabled for

the current version. See “ New Project Wizard ” on page 171 for details about

creating a new Project.

An error dialog will appear if you attempt to open an obsolete session.

PerformaSure Workstation 151

Open Existing Project

Select this radio button and click OK to launch the Open file chooser, which allows you to navigate to the directory in which you saved the Project.

By default, Projects are saved in the PerformaSure root directory. PerformaSure

Project files are created with the help of the New Project Wizard and have the .sure extension.

Note: Opening a Project causes a session file to be read. The progress dialog

shown in Figure 56 appears while the session file is being scanned.

Figure 56

Figure 55 This alert appears while the session file is loading

When you try to open an existing Project, the Session Error dialog (Figure 57) will

appear if there is no session currently associated with the Project that you have chosen, if the session cannot be found, or if the session is obsolete. See

“ Upgrading a Session ” below for more information about obsolete sessions. If

you see this error and there is another session that you wish to associate with the

Project, click Yes to launch the Session Chooser dialog. If you click No, you will

return to the Startup window (Figure 55), from which you can create a new

Project, record a new session, or open another existing Project.

Figure 57

Figure 56 The Session Error dialog

152 PerformaSure: User’s Guide

Troubleshooting: You may see the Session Error dialog if you have changed the location of the session files but have not updated the

SessionDirectory configuration section in the file

<performasure_home>/config/nexus.config on the machine hosting the

Nexus.

To re-associate a Project with a session file that has been moved:

1.

Click No to close the Session Error dialog.

2.

Shut down the Workstation (click Exit in the Startup window) and stop the Nexus.

3.

Open the file nexus.config on the machine hosting the Nexus.

4.

Edit SessionDirectory to point the Nexus to the folder (on a local

drive) in which you are storing session files. See “ Changing the Sessions

Directory ” on page 430 for more information.

5.

Save and close nexus.config.

6.

Restart the Nexus and the Workstation.

Upgrading a Session

A session recorded with a version of PerformaSure prior to version 5.0 cannot be opened in PerformaSure 5.0. This option has been disabled for the current version.

Open Recent Project

Select this radio button and click OK to open the Project that you chose from the project list. The available choices for recent Projects are shown in the text area directly below the button.

Tools

Click Tools to display a drop-down menu (see Figure 55). The options in this

menu are listed below.

Session Management...

Choose this option to open a dialog in which you can delete a session or edit

its properties. See “ Session Management ” on page 164 for more information.

PerformaSure Workstation 153

Change Password...

Choose this option to open a dialog in which you can change your password.

See “ Changing a Password ” below for more information.

User Management...

Choose this option to open a dialog in which you can add new users, create roles, and assign passwords and roles to users. This option is disabled if you

do not have the required permissions. See “ User Management ” on page 154

for more information.

To exit PerformaSure without selecting any of these options, click Exit. To log out of the Workstation and return to the Login window, click Logout.

Changing a Password

The Change Password dialog allows an administrator to change the password of any registered user; it also allows registered users to change their own passwords.

You can access this dialog by selecting Tools > Change Password... from the

Startup window.

Figure 58

Figure 57 The Change Password dialog

Note: Passwords are sent to the Nexus in encrypted format for user authentication.

User Management

If you have the required permissions, you can manage users through the User

Management window (Figure 59). You can open this window by selecting User

Management... from the Tools drop-down menu in the Startup window (Figure

55). This menu item is disabled if you do not have the permissions required to

view or manage users and roles.

154 PerformaSure: User’s Guide

The user management terminology used in PerformaSure is defined below.

User Management in PerformaSure

Term

Permission

Role

User

Definition Use in PerformaSure

A permission authorizes a user to perform a certain set of actions using PerformaSure. The list of permissions defined by PerformaSure cannot be modified. See

“ Selecting Permissions ” on page 160 for more

information.

A role is a named set of permissions. PerformaSure includes three default roles: Session Analyst, Power User,

and Administrator. See “ Managing Roles ” on page 158 for

information about the default roles, adding new roles, and modifying roles.

Permissions are assigned to users through roles.

You can use the default roles, create multiple new roles based on different combinations of permissions, and modify the set of permissions assigned to each role, but only one role can be assigned to each user.

Each user has a username and password and is assigned a single role. PerformaSure includes two default users:

user and admin. See “ Managing Users ” on page 156 for

information about the default users, adding new users, and modifying user information.

Logging on as a specific user allows you perform a certain set of actions, based on the permissions included in the role assigned to that user.

Figure 59

Figure 58 The tabs in the User Management window showing the default set of users and roles

PerformaSure Workstation 155

User Management Window—Users Tab

Control

List of users

Type

Text area

Default Value admin, user

New

Edit

Delete

Button

Button

Button

Enabled

Disabled

Disabled

Description

Lists the users authorized to use PerformaSure. This text area is not editable: it simply displays a list of all the users authorized to use PerformaSure.

Opens the New User dialog.

Launches the Edit User dialog. This button is enabled when you select a user from the list.

Deletes the selected user (after confirmation). This button is enabled when you select a user from the list.

User Management Window—Roles Tab

Control

List of roles

Type

Text area

New

Edit

Delete

Button

Button

Button

Default Value

Administrator,

Power User,

Session Analyst

Enabled

Disabled

Disabled

Description

Lists the set of roles to which users can be assigned. This text area is not editable: it simply displays a list of all the roles that have been defined.

Opens the New Role dialog.

Launches the Edit Role dialog. This button is enabled when you select a role from the list.

Deletes the selected role (after confirmation). This button is enabled when you select a role from the list.

Managing Users

Default Users

By default, PerformaSure includes the user accounts user and admin. The initial settings for these accounts are described below.

user: Includes a blank password and is assigned the Power User role. See

“ Default Roles

” on page 158 for information about this role. See “ Editing User

Information ” on page 157 for information about changing a user’s password or

role.

admin: Includes the password admin and is assigned the Administrator role. See

“ Default Roles ” on page 158 for information about this role.

The admin user cannot be deleted. You can change the role assigned to this

156 PerformaSure: User’s Guide

user, but the new role must include at least the View Users and Roles,

Manage Users, and Manage Roles permissions. See “ Selecting Permissions ” on page 160 for information about these permissions.

Important: Quest Software recommends that you promptly change the password for the admin account to something other than its installed value.

Adding a New User

Click the New button in the Users tab to launch the New User dialog. This dialog contains the Role drop-down menu and three required text fields in which you enter information about the new user (User Name, Password, and Confirm

Password). The Password and Confirm Password fields must contain the same password. Type the user name that you would like to add in the User Name text field.

Note: User names and passwords are case-sensitive.

Each user is assigned a single role. Use the Role drop-down menu to select a role for the new user. Since permissions are specified through roles, the role that you assign to a user determines the actions that they are authorized to perform. See

“ Selecting Permissions ” on page 160 for information about the set of permissions

from which you can choose when creating or editing a role.

Figure 60

Figure 59 Assigning a role in the New User dialog

Editing User Information

Select one or more user and click the Edit button to launch the Edit User dialog.

You can use this dialog to change a user’s password or role, but user names cannot be changed.

PerformaSure Workstation 157

Figure 61

Figure 60 Changing a user’s role in the Edit User dialog

Deleting a User

Select a user and click the Delete button to cause the Delete Users alert to appear.

This alert allows a user with the necessary permissions to confirm the deletion of one or more users from the system.

Figure 62

Figure 61 The Delete Users alert

Note: The admin user cannot be deleted.

Managing Roles

Default Roles

By default, PerformaSure includes the roles Session Analyst, Power User, and

Administrator. The permissions initially included in these roles are described below.

Session Analyst: Includes the Open Sessions permission. This role allows users to analyze session data in the browsers by opening an existing Project or opening a session in a new Project.

Power User: Includes all permissions except those required to view and manage users and roles. This role allows users to perform a variety of actions, including analyzing and managing existing sessions, starting and stopping session recording, and shutting down the Nexus.

158 PerformaSure: User’s Guide

Administrator: Includes all permissions. This role allows users perform all of the actions available within the Power User role and also enables them to manage users and roles. The Administrator role cannot be deleted. You can change the permissions included in this role, but it must include at least the

View Users and Roles, Manage Users, and Manage Roles permissions.

See “ Selecting Permissions ” on page 160 for details about the permissions

described above.

Creating a New Role

Click the New button in the Roles tab to launch the New Role dialog. This dialog allows you to specify a name for the new role using the Role Name text field and to select permissions for this role using the checkboxes in the Permissions area. See

“ Selecting Permissions ” below for more information.

Figure 63

Figure 62 Adding permissions in the New Role dialog

Editing a Role

Select a role and click the Edit button to launch the Edit Role dialog. You can use

this dialog to change the permissions associated with a role; see “ Selecting

Permissions ” below for more information. Role names cannot be changed.

PerformaSure Workstation 159

Figure 64

Figure 63 Removing a permission in the Edit Role dialog

Selecting Permissions

By selecting or deselecting the checkboxes in the Permissions area of the New Role and Edit Role dialogs, you can choose which permissions are associated with a certain role. The permissions from which you can choose are described below.

Open Sessions

This permission enables a user to analyze sessions in the browsers.

When this permission is not included in the role assigned to a user, the user will not be able to open a session in a new Project or to open an existing

Project.

Upgrade Sessions

PerformaSure version 5.0 does not currently support session conversions from any previous version of PerformaSure.

The Upgrade Sessions option is disabled for this version.

Edit Sessions

This permission enables a user to edit session names and comments that have been added to sessions using the Edit Session Properties dialog. This dialog is accessible from the Session Management dialog and in the New Project Wizard.

When this permission is not included in the role assigned to a user, the Edit button and the Edit Session context menu item (which launch the Edit Session

Properties dialog) are disabled in the Session Management dialog and in the New

Project Wizard.

160 PerformaSure: User’s Guide

Delete Sessions

This permission enables a user to delete sessions using the Session Management dialog and the New Project Wizard.

When this permission is not included in the role assigned to a user, the Delete button and the Delete Session context menu item are disabled in the Session

Management dialog and in the New Project Wizard.

View Agents

This permission enables a user to view the list of (enabled or disabled, connected or disconnected) Agents by issuing the nexusctl command showconnections .

When neither this permission nor the Start Recording permission are included in the role assigned to a user, the tables with Agent information will not be displayed when this command is issued.

Note:

Note:

Permission to view Agent information (in the Recording Control window, in the Recording Settings dialog, and using nexusctl) is automatically included in the Start Recording permission.

If none of View Agents, View Users, Start Recording, or Manage

Users are included in the role that is assigned to a user, information about neither the Agents nor the connected users will be displayed when the nexusctl command show-connections is issued, and a message similar to the following will appear in the Unix shell or DOS command window:

<DateStamp> INFO User does not have permissions to execute command: show-connections

Clear Agent Information

This permission enables a user to remove disconnected Agents from the list of

Agents by clicking using the Reset Agent List button in the Agents tab of the

Recording Settings dialog or by issuing the nexusctl command reset-agentlist .

When this permission is not included in the role assigned to a user, the Reset

Agent List button in the Agents tab of the Recording Settings dialog is disabled.

In addition, when the nexusctl command reset-agent-list is issued, the list of Agents will not be reset and a message similar to the following will appear in the Unix shell or DOS command window:

<DateStamp> ERROR Could not make remote call to Nexus

<DateStamp> INFO User does not have permissions to execute command: reset-agent-list

Start Recording

This permission enables a user to start recording a session using the Recording

Control window or nexusctl.

PerformaSure Workstation 161

When this permission is not included in the role assigned to a user, the menu items and buttons in the Workstation that launch the Recording Control window are disabled. In addition, when the nexusctl command start-recording is issued, PerformaSure will not start recording a session and a message similar to the following will appear in the Unix shell or DOS command window:

<DateStamp> ERROR Could not make remote call to Nexus

<DateStamp> INFO User does not have permissions to execute command: start-recording

Stop Recording

This permission enables a user to stop recording a session using the Recording

Control window or nexusctl.

When this permission is not included in the role assigned to a user, the menu items and buttons in the Workstation that launch the Recording Control window are disabled. In addition, when the nexusctl command stop-recording is issued, PerformaSure will not stop recording the session and a message similar to the following will appear in the Unix shell or DOS command window:

<DateStamp> ERROR Could not make remote call to Nexus

<DateStamp> INFO User does not have permissions to execute command: stop-recording

View Users and Roles

This permission enables a user to perform the following actions:

• View the lists of users and roles in the tabs of the User Management window.

The New, Edit, and Delete buttons will be disabled if this permission is included in the role assigned to a user but Manage Users is not.

• View the list of users and client types ( Workstation or NexusCtl ) that are connected to the Nexus by issuing the nexusctl command showconnections .

When neither this permission nor Manage Users are included in the role assigned to a user, the User Management... menu item is disabled in the

Tools menu in the Startup window, in the Project window, and in the browsers.

In addition, the tables with information about the connected users will not be displayed when the nexusctl command show-connections is issued.

Note: Permission to view users and roles is automatically included in the

Manage Users permission.

Note: If none of View Agents, View Users, Start Recording, or Manage

Users are included in the role that is assigned to a user, information about neither the Agents nor the connected users will be displayed when the nexusctl command show-connections is issued, and a message similar to the following will appear in the Unix shell or DOS command window:

<DateStamp> INFO User does not have permissions to execute command: show-connections

162 PerformaSure: User’s Guide

Manage Users

This permission enables a user to perform the following actions:

• Add a new user and assign a password and role to that user.

• Edit user information (change a user’s password or assigned role).

• Delete a user from the system.

When this permission is not included in the role assigned to a user, the New,

Edit, and Delete buttons are disabled in the Users tab of the User Management window.

Important: The Manage Users permission provides the equivalent of administrator privileges to a user.

Manage Roles

This permission enables a user to perform the following actions:

• Add a new role and specify the permissions that are associated with it.

• Edit a role (change the permissions included in that role).

• Delete a role from the system.

When this permission is not included in the role assigned to a user, the New,

Edit, and Delete buttons are disabled in the Roles tab of the User Management window.

Important: The Manage Roles permission provides the equivalent of administrator privileges to a user.

Shutdown Nexus

This permission enables a user to shut down the Nexus. Depending on the mode in which the Nexus was started and the platform on which it is running,

there may be several ways to stop the Nexus; see “ Stopping the Nexus ” on page 45 for details.

When this permission is not included in the role assigned to a user, the Nexus will not shut down when the user attempts to do so, and an error message may appear. For example, issuing the nexusctl command stop to shut down a

Nexus running in the background on Windows without the required permission will cause a message similar to the following to appear in the DOS command window:

<DateStamp> INFO Requesting Nexus shutdown.

<DateStamp> ERROR Could not make remote call to the Nexus

PerformaSure Workstation 163

<DateStamp> INFO User does not have permissions to execute command: stop

Deleting a Role

Select one or more roles and click the Delete button to cause the Delete Roles alert to appear. This alert allows a user with the necessary permissions to confirm the deletion of one or more roles from the system.

Figure 65

Figure 64 The Delete Roles alert

Note: The Administrator role cannot be deleted.

Session Management

The Session Management dialog allows you to edit session properties, and delete sessions. To open the Session Management dialog, click the Session Management button in the Project window or select Tools > Session Management... in the

Startup window, the Project window, or any browser.

Figure 66

Figure 65 The Session Management dialog

164 PerformaSure: User’s Guide

Session Management Dialog—Summary

Session Management Dialog

Control

Session information

Type

Table

OK

Edit

Delete

Upgrade

Help

Button

Button

Button

Button

Button

Default Value Description

N/A

Enabled

Enabled if the selected session uses the current format

Enabled

Disabled for this version.

Enabled

Lists the sessions available to the Nexus in the Session Name column and contains information about these sessions in the

Version, State, Owner, Start date, End date, Length, Time slice,

Detail level, and Comments columns.

Closes the Session Management dialog.

Launches the Edit Session Properties dialog.

Allows you to delete the selected session.

PerformaSure version 5.0 does not currently support session conversions from previous versions. This option is currently disabled.

Launches context-sensitive help.

Session Management Dialog—Context Menu

Control

Auto-Fit Column

Auto-Fit All

Columns

Hide Column

Show/Hide

Columns...

Edit Session

Delete Session

Upgrade Session

Type

Menu item

Menu item

Menu item

Menu item

Menu item

Menu item

Menu item

Default Value

Enabled

Enabled

Enabled

Enabled

Description

Resizes the column so that all values within the column are visible.

Resizes all columns so that all values within each column are visible.

Causes the column to no longer be displayed in the table.

Launches the Show/Hide Columns dialog. See “ Show/Hide

Columns...

” below for more information.

Launches the Edit Session Properties dialog. See “ Edit ” below

for more information.

Enabled if the selected session uses the current format

Enabled

Disabled for this version

Allows you to delete the selected session.

PerformaSure version 5.0 does not currently support session conversions from any previous version of PerformaSure.

The Upgrade Sessions option is disabled for this version.

PerformaSure Workstation 165

Session Management Dialog—Full Detail

The fields and controls in this dialog are described in more detail below.

Session Information

The list of sessions and details about these sessions are displayed in tabular form in the Session Management dialog. The columns in this table are described below.

Session Name

Lists the sessions available to the Nexus. By default, sessions are stored in the

sessions subdirectory of the PerformaSure home directory. See “ Changing the

Sessions Directory ” on page 430 for more information.

Version

Lists the version of PerformaSure that was used to record the session. If the session is obsolete or invalid, <unknown version> is listed in this field.

State

Lists Obsolete if it cannot be upgraded. This field is blank if the session was recorded using the current version . Invalid is listed in this column if

PerformaSure does not recognize the session file format.

Owner

Lists the username under which the session was initiated. If the session is obsolete or invalid, <unknown owner> is listed in this field.

Start date and End date

These columns list the date and time when recording began and ended.

Length

Lists the total length of the session.

Time slice

Lists the time granularity of the collected data.

Detail level

Lists the detail level at which the session was collected (component or full).

166 PerformaSure: User’s Guide

Comments

Lists any user-supplied description of the session. If the session is obsolete or invalid, the following message appears in this field:

This session was recorded by an unrecognized or unsupported version of PerformaSure.

Edit

Launches the Edit Session Properties dialog, which contains two editable text fields,

Session Name and Comments. You can change the name of the session, add comments to the session, or edit any comments that were entered earlier.

Note: This button is disabled if the session is obsolete, or invalid.

Figure 67

Figure 66 The Edit Session Properties dialog

Delete

Displays a Warning dialog asking you to confirm the deletion of the selected session. Click the Delete button to confirm deletion of the session file, or click

Cancel to close the dialog without making any deletions.

Figure 68

Figure 67 The Delete Session alert

Upgrade

PerformaSure version 5.0 does not currently support session conversions from any previous version of PerformaSure. The Upgrade Sessions option is disabled for this version.

PerformaSure Workstation 167

Context Menus in the Session Management Dialog

You can right-click anywhere in the table to make a context menu appear. The items in this menu are described below.

Auto-Fit Column

Click Auto-Fit Column to resize the width of the column on which you rightclicked so that all values within the column are visible.

Auto-Fit All Columns

Click Auto-Fit All Columns to resize the width of all columns in the table so that all values within each column will be visible as you scroll through the dialog.

Hide Column

Click Hide Column if you do not want the column on which you right-clicked to be displayed in the table.

Show/Hide Columns...

You can choose whether or not to display certain session details in the table.

Select Show/Hide Columns... to open a dialog that contains a group of checkboxes. Each checkbox controls the display of the associated session detail.

Edit Session

Click Edit Session to launch the Edit Session Properties dialog (Figure 67). This

dialog contains two editable text fields, Session Name and Comments. You can use this dialog to change the name of the session, add comments to the session, or edit any existing comments.

Note: This menu item is disabled if the session is obsolete, or invalid.

Delete Session

When you click Delete Session, a Warning dialog appears asking you to confirm

the deletion of the selected session (Figure 68). Select Delete to confirm deletion

of the session file, or click Cancel to close the dialog without making any deletions.

168 PerformaSure: User’s Guide

Upgrade Session

PerformaSure version 5.0 does not currently support session conversions from any previous version of PerformaSure. The Upgrade Sessions option is disabled for this version.

PerformaSure Workstation 169

170 PerformaSure: User’s Guide

Chapter 7

PerformaSure Projects

Projects are one of the central points of control in PerformaSure. Each

PerformaSure Project is associated with a session. One important function of a

Project is to choose a set of browsers that you use to view a session’s data. One set of browsers may be appropriate for analyzing one session, while another set may work better for another session. Sometimes it’s even advisable to define two different scenarios for the same session. In each case, you use Projects to define the set of browsers associated with a session.

Almost all aspects of a Project and its browsers that are user-configurable are saved to and restored from the Project file. This means that you can add as many browsers of each type as you want to your Project and adjust their settings to focus on the problems you have discovered. When you reload the Project, the saved browsers are ready to be used again. If you make changes to any of these settings, you may save them when you close the Project. If you want to make a particular configuration global, save the Project as a template and use it each time you create a new Project.

Besides associating browsers with a session, the Project window allows you to access several other windows and dialogs including the Recording Control window, from which you can start recording a new session; the New Project Wizard, which you can use to open a session in a new Project; and the Edit Options dialog, in which you can edit settings for the current Project, for the browsers, and for

PerformaSure reports.

New Project Wizard

The New Project Wizard (Figure 69) allows you to view the sessions available to the

Nexus and details about these sessions, select and open a session in a new

171

PerformaSure Project, and perform session management tasks like deleting sessions and editing session properties.

Figure 69

Figure 68 The New Project Wizard

New Project Wizard—Summary

New Project Wizard—Summary

Control

Session information

Template

Open

Edit

Type

Table

Drop-down menu

Button

Button

Default Value

N/A

Default

Description

Lists the sessions available to the Nexus in the Session Name column and contains information about these sessions in the

Version, State, Owner, Start date, End date, Length, Time slice,

Detail level, and Comments columns.

Allows you to choose a template. The two static choices are None and Default. Any custom templates that you save in the

<performasure_home>/config/templates subdirectory will also appear in this list.

Opens the selected session in a new Project. See “ Open ” below for

more information.

Enabled if the selected session uses the current format

Enabled if the selected session uses the current format

Launches the Edit Session Properties dialog.

172 PerformaSure: User’s Guide

New Project Wizard—Summary

Control

Delete

Upgrade

Type

Button

Button

Cancel

Help

Button

Button

Default Value

Enabled

Disabled for this version.

Enabled

Enabled

Description

Allows you to delete the selected session.

PerformaSure version 5.0 does not currently support session conversions from previous versions. This option is currently disabled.

Closes the New Project Wizard.

Launches context-sensitive help.

New Project Wizard—Context Menu

Control

Auto-Fit Column

Type

Menu item

Auto-Fit All

Columns

Hide Column

Show/Hide

Columns...

Open Session

Edit Session

Delete Session

Upgrade Session

Menu item

Menu item

Menu item

Menu item

Menu item

Menu item

Menu item

Default Value

Enabled

Enabled

Enabled

Enabled

Enabled if the selected session uses the current format

Enabled if the selected session uses the current format

Enabled

Disabled for the current version.

Description

Resizes the column so that all values within the column are visible.

Resizes all columns so that all values within each column are visible.

Causes the column to no longer be displayed in the table.

Launches the Show/Hide Columns dialog. See “ Show/Hide

Columns...

” below for more information.

Opens the selected session in a new Project. See “ Open ” below

for more information.

Launches the Edit Session Properties dialog. See “ Edit ” below

for more information.

Allows you to delete the selected session.

PerformaSure version 5.0 does not currently support session conversions from previous versions.

PerformaSure Projects 173

New Project Wizard—Full Detail

Projects allow you to view, organize, and analyze the information contained in session files. You can use Projects to share results with other members of your team and to archive results once a trouble spot has been identified.

Creating a New Project

To start the process of creating a new Project, select Open Session in New

Project from the PerformaSure Startup window and then click OK. The New

Project Wizard will open.

Tip: Click the Open Session in New Project button in the Project window’s toolbar or select Project > Open Session in New Project from the menu bar anytime you want to launch the New Project Wizard.

The New Project Wizard allows you to create a new, unnamed Project associated with a PerformaSure session file.

To create a new Project:

1.

Select a session compatible with PerformaSure 5.0 from the table in the New

Project Wizard. By default, the list of sessions is sorted by session name. Click on the header of another column in the table to sort the list of sessions based

on a different session detail. See “ Session Information ” below for more

information about the columns in this table.

2.

Select a template from the Template drop-down menu. If you do not select a template, the new Project will automatically use either the Default template or

the template that was last selected from this menu. See “ Template ” below for

more information about Project templates.

3.

Click Open. The Project window appears. At this point, the Project has not been saved. Select Project > Save Project or Project > Save Project As... to launch the Save file chooser. PerformaSure will automatically append the extension .sure to the Project filename.

Note: PerformaSure version 5.0 does not currently support session conversions from any previous version of PerformaSure. The Upgrade Sessions option is disabled for this version.

Once you have created a new Project, you can add folders and browsers to it, organize the browsers into folders, and rename folders and browsers or delete

ones that you don’t need. See “ Browsers Area ” on page 190 for more information.

174 PerformaSure: User’s Guide

The fields and controls in the New Project Wizard are described below.

Session Information

The list of sessions and details about these sessions are displayed in tabular form in the New Project Wizard. The columns in this table are described below.

Session Name

Lists the sessions available to the Nexus. By default, sessions are stored in the

sessions subdirectory of the PerformaSure home directory. See “ Changing the

Sessions Directory ” on page 430 for more information.

Version

Lists the version of PerformaSure that was used to record the session. If the session is obsolete or invalid, <unknown version> is listed in this field.

State

Lists Obsolete if it cannot be upgraded. This field is blank if the session was recorded using the current version. Invalid is listed in this column if

PerformaSure does not recognize the session file format.

Owner

Lists the username under which the session was initiated. If the session is obsolete or invalid, <unknown owner> is listed in this field.

Start date and End date

These columns list the date and time when recording began and ended.

Length

Lists the total length of the session.

Time slice

Lists the time granularity of the collected data.

Detail level

Lists the detail level at which the session was collected (component or full).

Comments

Lists any user-supplied description of the session. If the session is obsolete or invalid, the following message appears in this field:

This session was recorded by an unrecognized or unsupported version of PerformaSure.

PerformaSure Projects 175

Template

The Template drop-down menu allows you to select a template. Templates are sample Projects that are not associated with a session file. Templates are kept in the <performasure_home>/config/templates subdirectory. Since templates have the same structure as any PerformaSure Project file, you can add your own template

files to this directory; see “ Creating a Custom Project Template ” on page 100 for

details.

Any Project files that you add to the templates subdirectory will appear as available choices in the Template drop-down menu. The two static options in this menu are listed below.

Default

Select Default to create a Project using the Default template. The new Project will contain a Request Time browser that opens automatically, providing you with a starting point for your investigation.

None

Select None to create a Project without using a template. The Browsers area in the new Project will be empty.

Open

After you have selected a session from the list, click Open to open the session in a new PerformaSure Project. PerformaSure version 5.0 does not currently support session conversions from any previous version of PerformaSure.

Edit

Launches the Edit Session Properties dialog, which contains two editable text fields,

Session Name and Comments. You can change the name of the session, add comments to the session, or edit any existing comments.

Note: This button is disabled if the session is obsolete, or invalid.

Figure 70

Figure 69 The Edit Session Properties dialog

176 PerformaSure: User’s Guide

Delete

Clicking Delete displays a Warning dialog asking you to confirm the deletion of the selected session. Select Delete to confirm deletion of the session file, or click

Cancel to close the dialog without making any deletions.

Figure 71

Figure 70 The Delete Session alert

Upgrade

PerformaSure version 5.0 does not currently support session conversions from previous versions. This option is currently disabled.

Context Menus in the New Project Wizard

You can right-click anywhere in the table to make a context menu appear. The items in this menu are described below.

Auto-Fit Column

Click Auto-Fit Column to resize the width of the column on which you rightclicked so that all values within the column are visible.

Auto-Fit All Columns

Click Auto-Fit All Columns to resize the width of all columns in the table so that all values within each column will be visible as you scroll through the dialog.

Hide Column

Click Hide Column if you do not want the column on which you right-clicked to be displayed in the table.

Show/Hide Columns...

You can choose whether or not to display certain session details in the table.

Select Show/Hide Columns... to open a dialog that contains a group of checkboxes. Each checkbox controls the display of the associated session detail.

PerformaSure Projects 177

Open Session

Click Open Session to open the selected session in a new PerformaSure Project.

PerformaSure version 5.0 does not currently support session conversions from any previous version of PerformaSure. The Upgrade Sessions option is disabled for this version.

Edit Session

Click Edit Session to launch the Edit Session Properties dialog (Figure 70). This

dialog contains two editable text fields, Session Name and Comments. You can use this dialog to change the name of the session, add comments to the session, or edit any existing comments.

Note: This menu item is disabled if the session is obsolete, or invalid.

Delete Session

When you click Delete Session, a Warning dialog appears asking you to confirm

the deletion of the selected session (Figure 71). Select Delete to confirm deletion

of the session file, or click Cancel to close the dialog without making any deletions.

Upgrade Session

PerformaSure version 5.0 does not currently support session conversions from previous versions. This option is currently disabled.

The Project Window

The Project window (Figure 72) consists of a menu bar, a toolbar, a Session label,

and a Browsers area. The Browsers area contains a navigation pane and a details pane.

178 PerformaSure: User’s Guide

Figure 72

Figure 71 The Project window

Menus and Toolbar—Summary

Menu Bar

The Project window’s menu bar is located along the top of the Project window. The following tables describe the options available from the different menus in the menu bar.

Project Window Menu Bar—Project Menu

Menu Item

New Browser

New Folder

Open Session in

New Project

Description

Opens the New Browser dialog. Use this dialog to choose the type of browser you want to launch.

Launches the Add Folder dialog. Use this dialog to add a new folder to the Project and give it a name.

Opens the New Project Wizard. See “ New Project Wizard ” on page 171 for more information.

PerformaSure Projects 179

Project Window Menu Bar—Project Menu

Menu Item Description

Open Project

Close

Save Project

Launches the Open file chooser. Use this file chooser to select the

Project that you want to open.

Closes the Project window.

Saves the Project with its current settings. If you have never saved the Project, selecting this option launches the Save dialog.

Save Project As

Save Project As

Template

Launches the Save dialog. Use this file chooser to save the Project and give it a name.

Launches the Save dialog with the

<performasure_home>/config/templates directory open. Use this

dialog to save the Project as a template. See “ Save Project As

Template ” on page 184 for more information.

Opens the selected browser windows.

Open Selected

Items

Delete Selected

Items

Deletes the selected browsers and/or folders from the Project.

Edit Properties of

Selected Item

Opens the Browser Properties dialog or the Folder Properties

dialog. See “ Edit Properties of Selected Item ” on page 185 for

more information.

Project Properties

Launches the Project Properties dialog. See “ Project Properties ” on page 186 for details.

Exit

PerformaSure

Closes all open Projects and browsers and shuts down the

Workstation.

Project Window Menu Bar—Tools Menu

Menu Item Description

Recording Control Window Launches the Recording Control window.

Session Management

Thresholds

Change Password

User Management

Performance Diagnostics

Options

Opens the Session Management dialog.

Launches the Threshold Editor.

Opens the Change Password dialog.

Launches the User Management window. This menu item is enabled if you have the required permissions.

Displays a submenu. See “ Performance Diagnostics ” on page 187 for more information.

Launches the Edit Options dialog.

180 PerformaSure: User’s Guide

Project Window Menu Bar—Windows Menu

Menu Item

Bring All To Front

[Switch to a Project window]

[Switch to a browser]

Description

Ensures that all open PerformaSure windows have a higher stacking order than non-PerformaSure windows.

Switches to the Project window that you select. Each menu item of this type will display the name of an open Project.

Switches to the open browser that you select. Each menu item of this type will display the name of an open

PerformaSure browser.

Project Window Menu Bar—Help Menu

Menu Item

Help

About

Description

Launches context-sensitive help.

Opens a new window that displays product information about

PerformaSure.

Toolbar

Under the Project window’s menu bar is a toolbar with controls for performing actions like opening new PerformaSure browsers or launching the New Project

Wizard, the Recording Control window, or the Session Management dialog. The following table describes the controls available from the toolbar.

Project Window Toolbar

Button

New Browser

Save Project

Properties

Description

Clicking on the left-hand side of this button launches the New

Browser dialog. See “ New Browser ” on page 182 for details.

Clicking on the right-hand displays a drop-down menu from which you can choose the type of new browser that you want to

open. See “ New Browser ” on page 188 for details.

Saves the Project with its current settings. If you have never saved the Project, clicking this button launches the Save dialog.

Launches the Project Properties dialog. See “ Project

Properties ” on page 186 for details.

PerformaSure Projects 181

Project Window Toolbar

Button Description

Recording Control

Window

Open Session in New

Project

Session

Management

Launches the Recording Control window.

Opens the New Project Wizard. See “ New Project Wizard ” on page 171 for more information.

Opens the Session Management dialog.

Menus and Toolbar—Full Detail

Menu Bar—Project

New Browser

Select New Browser... to launch the New Browser dialog (Figure 73), which allows

you to select and open a new browser of a specific type and give it a name.

Keyboard accelerator: Ctrl-B.

Figure 73

Figure 72 The New Browser dialog

The new browser that you open using this dialog is not automatically added to

the Project or listed in the Project window. See “ Adding Browsers ” on page 98 for

more information about adding browsers to a Project.

Tip: Open multiple browsers in a Project while you are using it to investigate a problem, then close the Project without saving it to avoid cluttering it with temporary browsers when they are no longer needed.

New Folder

The New Folder... menu item launches the Add Folder dialog, which allows you to create and name a new folder and, if desired, add a description of the folder’s

182 PerformaSure: User’s Guide

contents.

Keyboard accelerator: Ctrl+Shift-N.

Figure 74

Figure 73 The Add Folder dialog

Click OK to add the folder to the Browsers area of the Project window.

Tip: You can move an item to another folder by dragging. To place a newlyadded folder in an existing folder, drag the folder’s icon over the target folder’s icon. The cursor changes shape to indicate that a dragging operation is occurring: .

Open Session in New Project

The Open Session in New Project... menu item launches the New Project

Wizard. See “ Creating a New Project ” on page 174 to learn how to create a new

Project.

Keyboard accelerator: Ctrl-N.

Open Project

Selecting Open Project... in the Project menu causes the Open file chooser to appear. You can use this file chooser to select the Project that you want to open.

All PerformaSure Project files have a .sure extension. The default location for

Project files is the PerformaSure5.0 directory, but they can be stored in any directory of your choice.

Keyboard accelerator: Ctrl-O.

Close

The Close menu item closes the Project; the Workstation will remain open.

Keyboard accelerator: Ctrl-W.

Save Project

Select Save Project to save the Project’s state, including the settings in all browsers that have been added to the Project. If you have never saved the Project,

PerformaSure Projects 183

selecting this menu item launches the Save file chooser.

Keyboard accelerator: Ctrl-S.

Important: By default, Projects are saved in the PerformaSure5.0 directory.

Browser settings are stored on a per-Project basis: they are saved with the Project to which the browser has been added. If you open a Project and then open a browser, that browser will have the same settings it had when the Project was last saved.

If you open a Project and change a browser’s settings, do not save the Project unless you want to replace the saved settings with the current ones.

Save Project As

Select Save Project As... to save a copy of the Project under a different name.

When you select this option, the Save file chooser opens automatically, allowing you to navigate to the directory where you would like to save the Project. You provide a name for the Project in the File Name text field. PerformaSure will add the .sure extension to the Project filename.

After you have clicked Save to save the new Project, you will continue to work in that Project. Any changes that you make are saved in the new Project.

Caution: If you enter a name in the File Name text field that is already taken by another Project in that directory, a warning dialog opens.

If you choose Yes, you overwrite the previously saved version.

Save Project As Template

Templates are sample Projects that are not associated with a session file.

Templates are kept in the <performasure_home>/config/templates subdirectory.

Since templates have the same structure as any PerformaSure Project file, you can add your own template files to this directory by selecting Save Project as

Template.... When you select this option, the Save file chooser opens automatically, allowing you to save a copy of the Project as a template in the

<performasure_home>/config/templates directory. Any Project files that you add to the templates subdirectory will appear as choices in the Template drop-down menu in the New Project Wizard.

Open Selected Items

The Open Selected Items menu item is disabled until you select one or more browser icons in the Browsers area. Choosing this menu item causes all selected browsers to be opened. Selecting a folder has no effect; to open browsers

184 PerformaSure: User’s Guide

contained in a folder, first double-click the folder to show its contents and then select the browsers that you want to open.

Delete Selected Items

The Delete Selected Items menu item removes the selected browsers or folders from the Project.

Caution: Selecting a folder for deletion removes all browsers and subfolders contained in that folder from the Project.

Edit Properties of Selected Item

Depending on the item that you selected in the Browsers area, selecting the Edit

Properties of Selected Item... menu item launches either the Browser Properties dialog or the Folder Properties dialog. The changes that you make in these dialogs are saved when you save the Project.

Browser Properties Dialog

The Browser Properties dialog (Figure 75) allows you to rename the selected

browser, provide a description of the problems that you have found by using this browser and its settings, and select whether you would like this browser to open automatically when you open the Project.

Figure 75

Figure 74 The Browser Properties dialog

Folder Properties Dialog

The Folder Properties dialog (Figure 76) allows you change the name of the

selected folder and add comments about the types of browsers that it contains.

PerformaSure Projects 185

Figure 76

Figure 75 The Folder Properties dialog

Project Properties

Select Project Properties... to open the Project Properties dialog, which allows you to add comments about the Project. You can use the Comments field in this dialog to describe the conditions under which session data was collected or to record your observations about this data. These comments are saved when you save the

Project.

Figure 77

Figure 76 The Project Properties window

Exit PerformaSure

Choose Exit PerformaSure to close all open Projects and browsers and shut down the Workstation. When you select this menu item, you may be prompted to save the Projects that are open or add new browsers to these Projects before closing the application.

Menu Bar—Tools

Recording Control Window

Select Recording Control Window... to launch the Recording Control window.

See “ Recording Control Window ” on page 197 for more information about using

the controls in this window.

186 PerformaSure: User’s Guide

Session Management

Select Session Management... to open the Session Management dialog. See

“ Session Management ” on page 164 for more information about using this dialog.

Thresholds

Select Thresholds... to launch the Threshold Editor. See “ Threshold Editor ” on page 408 for more information.

Change Password

Select Change Password... to open the Change Password dialog. See “ Changing a

Password ” on page 154 for more information about using this dialog.

User Management

Select User Management... to launch the User Management window. See “ User

Management ” on page 154 for details about using this window.

Note: This menu item is disabled if you do not have the required permissions.

Performance Diagnostics

Selecting the Performance Diagnostics menu item displays a submenu with one option: Spotlight

®

in Quest Central. This option is enabled if Quest Central is installed. When you select this option, the version of Spotlight

®

included with

Quest Central is launched.

Options

Selecting the Options... menu item launches the Edit Options dialog. See “ Edit

Options Dialog ” on page 247 for details about using this dialog.

Menu Bar—Windows

The Windows menu’s one static choice is Bring All To Front, which ensures that all open PerformaSure windows have a higher stacking order than non-

PerformaSure windows.

The other items in the Windows menu allow you to switch from one open Project window or browser to another. In addition to Bring All To Front, the Windows menu will always contain at least one item (for the Project window).

PerformaSure Projects 187

Menu Bar—Help

Help

The Help... menu item launches context-sensitive help for the Project window.

About

The About... menu item opens a new window in which product information about PerformaSure is displayed.

Toolbar

The Project window’s toolbar is located directly below the menu bar.

Figure 78

Figure 77 The toolbar in the Project window

New Browser

The New Browser... button has two parts. Click on the left-hand side of this button to launch the New Browser dialog, from which you can select the type of

browser that you want and assign it a name; see “ New Browser ” on page 182 for

more information about the New Browser dialog. Click on the right-hand side of the New Browser... button to display a drop-down menu from which you can choose the type of browser that you want.

Save

Click the Save button to save the Project’s state, including the settings in all browsers that have been added to the Project. If you have never saved the Project,

the Save file chooser will open when you click this button. See “ Save Project ” on page 183 for more information about saving Projects.

Recording Control Window

Click the Recording Control Window button to launch the Recording Control

window. See “ Recording Control Window ” on page 197 for more information

about using the controls in this window.

188 PerformaSure: User’s Guide

Open Session in New Project

Click the Open Session in New Project button to launch the New Project

Wizard. See “ Creating a New Project ” on page 174 to learn how to create a new

Project.

Session Management

Click the Session Management button to open the Session Management

dialog. See “ Session Management ” on page 164 for more information about using

this dialog.

Properties

Click the Properties button to launch the Project Properties dialog. See

“ Project Properties ” on page 186 for more information about using this dialog.

The Session Label

Next to the Session label is the name of the session currently associated with the

Project.

Changing the Name of a Session

To change the name of a session:

1.

In the Project window, click the Session Management button in the toolbar or select Tools > Session Management... from the menu bar. The

Session Management dialog will appear.

2.

Select a session from the Choose session list and click the Edit button. The Edit

Session Properties dialog will appear.

3.

Edit the Session Name field in the Edit Session Properties dialog and click OK.

4.

Click Close in the Session Management dialog.

PerformaSure Projects 189

Browsers Area

The Browsers area has two parts: the navigation pane and the details pane (see

Figure 79). The navigation pane contains the browsers that are currently

associated with the Project and the folders into which they are organized. The details pane displays information about the Project or about the browser or folder that is currently selected in the navigation pane.

Figure 79

Figure 78 The Browsers area in the Project window

Tip: You can reposition items in the navigation pane by clicking and dragging them. For example, to place a newly-added browser in an existing folder, drag the browser’s icon to the folder icon. The cursor changes shape to indicate that a dragging operation is occurring: .

All the browsers that you have added to your Project are listed in the navigation pane; you can open more browsers and add them to your Project at any time. See

“ Adding Browsers

” on page 98 for instructions on launching a new browser and

adding it to the Project. See “ Organizing the Navigation Pane ” on page 99 for

instructions on adding folders to the Project and organizing the contents of the navigation pane.

Tip: You can navigate the navigation pane using your keyboard. To select a different folder or browser in the navigation pane, use the up and down arrow keys. To expand and collapse folders, use the right and left arrow keys.

190 PerformaSure: User’s Guide

Context Menus in the Browsers Area

You can right-click anywhere in the navigation pane of the Browsers area to make a context menu appear. The items in this menu will differ depending on where you right-click with the mouse.

Right-clicking in the navigation pane

Right-click anywhere on the blank space in the navigation pane (when no folders or browsers are selected) and a menu containing three options will appear. The options in this menu are listed below.

New Browser

Select New Browser... to launch the New Browser dialog. See “ New Browser ” on page 182 for more information about using this dialog.

New Folder

Select New Folder... to launch the Add Folder dialog. See “ New Folder ” on page 182 for more information about using this dialog.

Project Properties

Select Project Properties... to launch the Project Properties dialog. See “ Project

Properties ” on page 186 for more information about using this dialog.

Right-clicking on a folder

Right-click on a folder (or anywhere in the blank space in the navigation pane when a folder is selected) and a menu containing three options will appear. The options in this menu are listed below.

New Folder

Select New Folder... to launch the Add Folder dialog. See “ New Folder ” on page 182 for more information about using this dialog.

Delete

When you select Delete, a dialog appears asking you to confirm the deletion of the selected Project item.

Figure 80

Figure 79 An attempt to delete a Project item produces this dialog

PerformaSure Projects 191

Edit Properties

Select Edit Properties... to launch the Folder Properties dialog. See “ Folder

Properties Dialog ” on page 185 for more information about using this dialog.

Right-clicking on a browser

Right-click on a browser (or anywhere in the blank space in the navigation pane when a browser is selected) and a menu containing three options will appear. The options in this menu are listed below.

Open

Select Open to open the selected browser.

Delete

See “ Delete ” above.

Edit Properties

Select Edit Properties... to launch the Browser Properties dialog. See “ Browser

Properties Dialog ” on page 185 for more information about using this dialog.

Session log dialog

If you see the icon at the left of the session name in the Project window, there are messages in the log file that was written when the data was collected. Click the icon to see a dialog containing the error messages.

Figure 81

Figure 80 The Session log dialog containing Nexus log file messages

192 PerformaSure: User’s Guide

PerformaSure Projects FAQ

How do I delete a Project?

You can delete a session using the Session Management dialog. To delete a Project, you have to remove it using an operating system utility.

PerformaSure Projects 193

194 PerformaSure: User’s Guide

Chapter 8

Recording Control Window and Nexusctl

You can use the Recording Control window to see which Agents are enabled and connected to the Nexus, to select a saved configuration of recording settings, and to record a session. From the Recording Control window, you can also access the

Recording Settings dialog, which allows you to customize and save recording settings. The Recording Control window can be opened from the Startup window, or from the Tools menu in the Project window or in any browser.

Figure 82

Figure 81 The Recording Control window

The Recording Control window includes configuration controls for:

195

Selecting a recording settings configuration which you previously created,

named, and saved in the Recording Settings dialog. See “ Settings ” on page 199

for more information.

Specifying a name for the session and adding descriptive comments. See

“ Session Name

” on page 199 and “ Comments ” on page 200 for more

information.

Starting to record a session and issuing a stop command. See “ Start

Recording ” on page 201 and “ Stop Recording ” on page 201 for more

information.

Viewing information about which Agents are enabled or disabled, connected or disconnected, and sorting the list of Agents based on different Agent

attributes. See “ Agents Table ” on page 220 for more information.

The tabs in the Recording Settings dialog include configuration controls for:

■ Adding a new recording settings configuration and giving it a name, or

deleting an existing configuration. See “ Configuring Recording Settings ” on page 207 for more information.

Selecting whether recording settings from Quest Foglight are used. See “ Using

Foglight Recording Settings ” on page 208 for details.

Setting a duration for the session. See “ Limit Session Length ” on page 209 and

“ Time ” on page 209 for more information.

Setting the Time Slice Size. See “ Setting the Session Time Slice ” on page 87

and “ Time Slice Size ” on page 209 for more details about defining a Time

Slice.

Setting the Incomplete Request Timeout. See “ Incomplete Request Timeout ” on page 209 for more details about this setting.

Selecting an option that requests confirmation before a recording session is

stopped. See “ Confirm Before Stopping Recording ” on page 210 for more

information.

Selecting whether fewer than the maximum possible samples should be taken.

See “ Service Request Sampling

” on page 76, “ A Note on Sampling ” on page

211, “ Collect As Many Samples as Possible ” on page 212, and “ Collect Fewer

Samples to Reduce Overhead ” on page 212 for more information.

Choosing whether to collect data at the component detail level or at the full

detail level. See “ Component Detail Recording Level ” on page 212 and “ Full

Detail Recording Level ” on page 212 for more information.

Selecting whether advanced sampling settings are used. See “ Advanced

Sampling Dialog ” on page 221 for more information.

Specifying URL expressions and parameters, cookies, or headers for request

separation. See “ Service Request Separation

” on page 77 and “ Separators

Tab ” on page 213.

Setting filters for including or excluding requests. See “ Service Request

Filtering ” on page 84 for details.

196 PerformaSure: User’s Guide

Selecting which Agents should be enabled or disabled. See “ Agents Tab ” on page 220 for more information.

The Advanced Sampling dialog includes configuration controls for:

Setting sampling weights. See “ Changing Sampling Weights ” on page 222 for

details.

Many of the recording controls listed above are also available in the command-

line utility nexusctl. See “ Recording with nexusctl

” on page 225 and “ Equivalent

Recording Control Options ” on page 241 for details.

Recording Control Window

Recording Control Window—Summary

Recording Control Window

Field or Control

Settings

Type

Drop-down menu

Default Value

Default Settings

Configure...

Button

Session Name

Append Date and

Time to Session

Name

Comments

Text field

Checkbox

Text field

The Recording Control window (Figure 82) has the following settings:

Enabled user

Checked

Blank

Description

Allows you to select a saved configuration of recording settings.

When you first open the Recording Control window, the Default

Settings recording configuration is selected by default. See

“ Settings ” on page 199 and “

Default Settings ” on page 206 for

more information.

Launches the Recording Settings tabbed dialog. The settings are

described in “ Recording Settings Dialog—Summary ”

Edit this field to give the session a descriptive name.

When checked, a full date string is appended to the Session Name.

Time Slice Size Info only 1 minute

Use this field to record reminders about the purpose of the session.

Shows the value of the time slice. Use the Recording Settings dialog (Session tab) to change the value.

Recording Control Window and Nexusctl 197

Recording Control Window (Continued)

Field or Control

Detail Level

Owner

Status bar

Status

Elapsed time

Duration

Type

Info only

Info only

Progress bar

Info only

Info only

Info only

Default Value

Component user

Disabled

Idle

00:00:00

Unlimited

Start Recording

Stop Recording

Button

Button

Open Session

When Recording

Completes

Agent status summary

Agents table

Checkbox

Info only

Table

Enabled when not recording

Enabled when recording

Checked

N/A

Empty

Description

Shows the value of the recording level. Use the Recording

Settings dialog (Sampling tab) to change the value.

Lists the username under which session recording was initiated.

Shows the session recording progress if the length of the session was specified in the Recording Settings dialog. This bar is disabled when the recording status is Idle.

Lists the recording status. The status changes when you start or stop recording.

Shows the elapsed time when session recording is in progress.

Displays either Unlimited or the session length that you specified.

See “ Status, Elapsed Time, and Duration ” below for more

information.

Initiates session recording. Messages are sent to all enabled

Agents instructing them to send data to the Nexus.

Stops recording.

When checked, the session’s Project window opens as soon as recording stops, allowing you to begin your investigation right away.

Lists the total number of Agents listed in the table and the number of disconnected Agents.

Has these fields: Enabled, Agent Name, Hostname, Type, Version,

and State. See “ Agents Table ” below for more information.

Recording Control Window—Full Detail

Using the Recording Control Window

The Recording Control window is used to perform tasks like starting and stopping session recording; selecting a recording configuration that defines what settings are used for a session; and viewing Agent status information.

The fields and controls in the Recording Control window are described below. The information displayed in some of these fields will vary depending on the recording settings that you have selected.

198 PerformaSure: User’s Guide

Settings

The Settings drop-down menu allows you to select a saved set of recording settings that are used when you start recording a new session. When you first launch the

Recording Control window, this menu includes the recording settings configuration

Default Settings, which is selected by default. See “ Default Settings ” on page 206

for more information about the settings included in this configuration.

Important: A recording settings configuration is required to record a session. If no configurations are listed in the Settings drop-down menu (for example, if the Default Settings configuration is accidentally deleted), you will not be able to record a session.

See “ Configuring Recording Settings ” on page 207 for

information about adding a new configuration.

Configure

The Configure... button launches the Recording Settings dialog, which allows you to modify the settings included in the recording settings configuration that is selected in the Settings drop-down menu; to remove a configuration; or to add a

new configuration. See “ Configuring Recording Settings ” on page 207, “

Using

Foglight Recording Settings ” on page 208, “ Session Tab ” on page 208, “

Sampling

Tab

” on page 211, “ Separators Tab ” on page 213, “

Filters Tab ” on page 216, and

“ Agents Tab ” on page 220 for more information.

Session Name

You can supply a name for the session in this editable text field. The full name of the session depends on whether Append Date and Time to Session Name is checked. If it is, a full date string is appended to the content of this field. Choose a name that describes the purpose of the test, and let the date portion act as an index that distinguishes this session from other similarly-named sessions. The file on disk has an extension psdat . Example:

LongRunningExample_2006-Mar-06_09-12-15.psdat

Attempting to overwrite an existing session

The system compares the name in the Session Name text box with existing sessions. If that name exists, PerformaSure adds a suffix to the new file name to ensure that its name is different from the existing file.

Append Date and Time to Session Name

Use this checkbox to control whether a date string is appended to the session filename. This string contains the date and time at which recording began.

Recording Control Window and Nexusctl 199

Comments

You can record reminders about the purpose of the session in the Comments text field. Information that you enter in the Comments field is saved after you finish recording a session and after you close the Recording Control window.

Time Slice Size

This area shows the value of the time slice that will be used when you begin recording (based on the recording settings configuration that you selected) or the time slice size that is currently being used for a session that is in progress. The default value of the time slice is 1 minute. To change this value, navigate to the

Session tab of the Recording Settings dialog by selecting Configure... > Session. See

“ Session Tab

” on page 208 for details about the settings in this tab and “ Setting the Session Time Slice ” on page 87 for more information about setting time slice

values.

Detail Level

This area shows the value of the recording level that will be used when you begin recording (based on the recording settings configuration that you selected) or the recording level that is currently being used for a session that is in progress. The default setting is Component. To change this value, navigate to the Sampling tab of

the Recording Settings dialog by selecting Configure... > Sampling. See “ Sampling

Tab ” on page 211 for details.

Owner

This area lists the username of the user who logged in to the Workstation and launched the Recording Control window. If a session is currently being recorded, this area lists the username under which session recording was initiated.

Status Bar

If you specified the length of the session in the Recording Settings dialog and saved it as part of the recording settings configuration that you selected, the status bar shows the session’s recording progress. The status bar is disabled and reset when the session recording status Idle is displayed.

Status, Elapsed Time, and Duration

The text area below the status bar shows the recording status, the elapsed time, and the total duration of the session.

Status: this area displays Idle (the default value) or Recording. The status changes when you start or stop recording.

Elapsed time: this area shows the elapsed time when you are recording a session, or the value 00:00:00 when you are not recording.

200 PerformaSure: User’s Guide

Duration: when you are recording a session, this area displays either the session recording length that you specified in the Recording Settings dialog (and saved as part of the recording settings configuration that you selected) or the value Unlimited (if the session length is not specified). The value Unlimited is also displayed in this area when session recording is not in progress.

Open Session When Recording Completes

This checkbox is selected by default. When it is selected, the session’s Project window opens (using the last selected Project template) and the Recording Control window closes as soon as recording stops. This occurs both when a user has clicked the Stop Recording button and when the session has stopped recording automatically because it was set for a specified length. This configuration setting allows you to begin your investigation right away.

Start Recording

The Start Recording button causes PerformaSure to start recording a session.

Clicking this button initiates recording by sending messages to all enabled Agents instructing them to send data to the Nexus.

Note: This button becomes the Stop Recording button when session recording is in progress.

Stop Recording

The Stop Recording button causes PerformaSure to stop collecting session data.

This button is enabled only when session recording is in progress.

Stop Recording Dialog

If you have selected the Confirm Before Stopping Recording checkbox in the

Session tab of the Recording Settings dialog, the dialog shown in Figure 83 appears

when the Stop Recording button is clicked.

When this dialog appears, click Yes to stop recording or No to continue collecting

session data. See “ Confirm Before Stopping Recording ” on page 210 for more

information.

Figure 83

Figure 82 This dialog may appear when you click the Stop button

Recording Control Window and Nexusctl 201

Agent Status Summary

Above the Agents table, there is a summary of the total number of Agents listed in the table and (in brackets) the number of disconnected Agents.

Agents Table

You can use this text area to view which Agents are active and connected to the

Nexus. For each entry, the text area lists the Agent name and whether it is enabled, the host machine name, the type of Agent, and its state (connected or disconnected).

An Agent is enabled if a check mark ( ) appears in the Enabled column in the row that corresponds to it. Before you start recording, you can enable or disable

Agents using controls in the Agents tab of the Recording Settings dialog. See “ Agents

Tab ” on page 220 for details.

Recording Settings Dialog

The tabs in the Recording Settings dialog (Figure 84, Figure 85, Figure 86, Figure

87, and Figure 88) contain fields and controls for configuring the recording

settings for a new session and for saving these settings.

202 PerformaSure: User’s Guide

Recording Settings Dialog—Summary

Recording Settings dialog—All tabs

Field or Control

Settings

Add

Type

Drop-down menu

Button

Remove Button

Use Foglight

Recording

Settings for Filters and Separators

Checkbox

Default Value Description

Default Settings Allows you to select a recording settings configuration that you previously created and saved.

Enabled

Launches the Add Recording Setting dialog. See “ Configuring

Recording Settings ” on page 207 for information about adding

new recording settings configurations.

Enabled

Not selected

Allows you to delete the recording settings configuration that is currently selected in the Settings drop-down menu.

Uses Foglight recording settings for request separation and

filtering. See “ Using Foglight Recording Settings ” on page 208

for details.

Recording Settings dialog—Session tab

Field or Control

Limit Session

Length

Time

Type Default Value Description

Checkbox Not selected When checked, the Time spin boxes are enabled.

Disabled Set the duration of the session in hours, minutes, and seconds.

Time Slice Size

Incomplete

Request Timeout

Editable spinners

Dropdown menus

Editable spinners

1 minute

2 minutes

Set the aggregation interval for PerformaSure. See “ Setting the

Session Time Slice ” on page 87 for more details.

Confirm Before

Stopping

Recording

Checkbox Enabled

Set the incomplete request timeout. After this span of time has elapsed, the Nexus will classify a request as incomplete. See

“ Incomplete Request Timeout ” on page 209 for details.

If checked, an alert appears when you click the Stop Recording button in the Recording Control window. This alert does not appear if the session stops recording automatically based on the Session Length that you set.

Recording Control Window and Nexusctl 203

Recording Settings dialog—Sampling tab

Field or Control

Collect as Many

Samples as

Possible

Choose Fewer

Samples to

Reduce Overhead

Type

Radio button

Radio button

Component Detail

Recording Level

Radio button

Full Detail

Recording Level

Use Advanced

Sampling Settings

Checkbox

Advanced...

Radio button

Button

Default Value Description

Selected Inform the Nexus that it should attempt to collect as many samples as it can. Choosing this setting places a load on the running system that can be diminished by choosing to collect fewer samples.

Not selected

Selected

Enables the Few Samples...Many Samples slider when selected. Fewer samples means less overhead on the system, but requests of a given type that complete during the time slice are sampled at least once.

There is no scale on the slider because many factors influence how

many samples are taken. See “ A Note on Sampling ” on page 211.

Reduces overhead and simplifies the call trees in the Request Tree browser by collecting data only on bellwether Java EE classes and methods.

This is a useful setting for reducing overhead. See “ Recording Levels ” on page 65 and for more information.

Not selected Selecting this recording level means that all classes and methods involved in processing a service request will be instrumented unless certain configuration settings have been set in

<performasure_home>/config/client/instrumentation.config. See “ Full

Detail Recording Level ” on page 69 for more information.

Not selected

Enabled

Allows you to override the sampling weights that PerformaSure assigns to requests. When this checkbox is selected, the sampling weights set in the Advanced Sampling dialog are used.

Clicking this button opens the Advanced Sampling dialog. See

“ Advanced Sampling Dialog ” on page 221 for details.

Recording Settings dialog—Separators tab

Field or Control

Separate HTTP requests that match, in order

Type

Table

Add new entry Button

Remove selection Button

Move selection up Button

Default Value Description

Empty Has these fields: URL Expression, Type, and

Parameters/Cookies/Headers. Contains descriptions of HTTP requests that should be separated based on GET or POST parameters, cookies,

or HTTP headers. See “ Separators Tab ” on page 213 for details.

Enabled

Disabled

Disabled

Adds a new entry to the list.

Removes the selected entry from the list.

Moves the selected entry up the list.

204 PerformaSure: User’s Guide

Recording Settings dialog—Separators tab (Continued)

Field or Control

Move selection down

Maximum length of value used for separation

Type

Button

Spinner box

Default Value Description

Disabled Moves the selected entry down the list.

32 Allows you to set the maximum length (in characters) for values used for performing request separation. This maximum is used for all request separation parameters. Its default setting is 32; it can be set to any value between 1 and 512.

Recording Settings dialog—Filters tab

Field or Control

Include or exclude requests that match, in order

Type

Table

Add new entry Button

Remove selection Button

Move selection up Button

Move selection down

Button

All other requests should be

Dropdown menu

Included

Default Value Description

Contains default filters

Contains filters that describe conditions under which requests should

be either included or excluded. See “ Include or exclude requests that match, in order ” on page 217 for details.

Enabled

Disabled

Disabled

Disabled

Adds a new entry to the list.

Removes the selected entry from the list.

Moves the selected entry up the list.

Moves the selected entry down the list.

Allows you to select whether service requests that do not match the entries in the table are included or excluded.

Recording Settings dialog—Agents tab

Field or Control

Agent status summary

Agents table

Type

Info only

Table

Select All

Deselect All

Reset Agent List

Button

Button

Button

Default Value Description

N/A Lists the total number of Agents listed in the table and the number of disconnected Agents.

Empty Has these fields: Enabled, Agent Name, Hostname, Type, Version, and

State. See “ Agents Table ” on page 220 for more information.

N/A

N/A

Selects all Agents in the list.

Deselects all Agents in the list.

Enabled Resets the Agent list.

Recording Control Window and Nexusctl 205

Recording Settings dialog—Agents tab (Continued)

Field or Control

Automatically enable newly discovered Agents

Type

Checkbox

Default Value Description

Checked Toggles whether Agents that connect to the Nexus after you start recording are enabled.

Recording Settings Dialog—Full Detail

Default Settings

When you first open the Recording Settings dialog, the Settings drop-down menu lists the recording settings configuration Default Settings. This configuration consists of the following settings:

■ All tabs:

Use Foglight Recording Settings for Filters and Separators checkbox: deselected.

Session tab:

Limit Session Length checkbox: not selected

Time editable spin boxes: disabled

Time Slice Size associated drop-down menus: set to 1 minute

Incomplete Request Timeout editable spin boxes: set to 2 minutes

Confirm Before Stopping Recording checkbox: selected

Sampling tab:

Collect as Many Samples as Possible radio button: selected

Component Detail Recording Level radio button: selected

Use Advanced Sampling Settings checkbox: not selected

Separators tab:

Separate requests that match, in order table: empty

Maximum length of value used for separation spin box: set to 32

Filters tab:

Include or exclude requests that match, in order table: includes the default filters

(see “ Service Request Filtering ” on page 219 for details)

All other requests should be drop-down menu: set to Included

Agents tab:

• Agents table: lists the Agents in your monitored environment, all of which are enabled by default

Automatically enable newly discovered Agents checkbox: selected

206 PerformaSure: User’s Guide

You can make changes to the Default Settings configuration. See the instructions in

“ To modify an existing recording settings configuration: ” on page 207 for details.

Note: The settings included in the Default Settings configuration are also included by default in each new configuration that you add. In addition, if all configurations listed in the Settings drop-down menu are deleted, the settings in the tabs of the Recording Settings dialog revert to the default settings listed above.

Configuring Recording Settings

You can create and save multiple recording settings configurations in the Recording

Settings dialog. This allows you to easily switch between configurations if, for example, you frequently record sessions at different detail levels or with a different set of Agents.

To create a new recording settings configuration:

1.

Click the Add button at the top of the Recording Settings dialog. The Add

Recording Setting dialog appears.

2.

Specify a name for the configuration in the Setting Name text field and then click OK. The new configuration includes the default recording settings, and is automatically selected in the Settings drop-down menu.

Note: You must select a unique name for each new configuration. An error dialog will appear if you attempt to add a new configuration that has the same name as an existing configuration.

3.

Configure the settings in the tabs of the Recording Settings dialog as desired. See

“ Session Tab ” on page 208, “

Sampling Tab

” on page 211, “ Separators Tab ” on page 213, “

Filters Tab

” on page 216, and “ Agents Tab ” on page 220 for more

information.

4.

Click the Apply button at the bottom of the Recording Settings dialog to save the current selections in all tabs of the dialog as part of the new configuration.

To modify an existing recording settings configuration:

1.

Select the configuration from the Settings drop-down menu.

2.

Configure the settings in the tabs of the Recording Settings dialog as desired. See

“ Session Tab ” on page 208, “

Sampling Tab

” on page 211, “ Separators Tab ” on page 213, “

Filters Tab

” on page 216, and “ Agents Tab ” on page 220 for more

information.

3.

Click the Apply button at the bottom of the Recording Settings dialog to save the changes that you have made to the configuration.

Recording Control Window and Nexusctl 207

Using Foglight Recording Settings

The Use Foglight Recording Settings for Filters and Separators checkbox at the top of the Recording Settings dialog allows you to select whether PerformaSure will use recording settings for request filtering and separation from Quest

Foglight. When this checkbox is selected, the controls in the Separators and

Filters tabs of the Recording Settings dialog are disabled. You can also configure

PerformaSure to use Foglight recording settings through nexusctl. See “ -fgl ” on page 239 for details.

To use Foglight recording settings:

1.

Select the recording settings configuration with which you would like to use

Foglight recording settings for request filtering and separation, or create a new

configuration with which to include this option. See “ Configuring Recording

Settings ” on page 207 for details about creating a new recording settings

configuration or modifying an existing one.

2.

Select the Use Foglight Recording Settings for Filters and Separators checkbox.

3.

Click the Apply button at the bottom of the Recording Settings dialog.

Session Tab

Figure 84

Figure 83 The Recording Settings dialog showing the Session tab

208 PerformaSure: User’s Guide

Limit Session Length

The Limit Session Length checkbox enables the Time spin boxes. This checkbox is not selected by default.

Time

Time has three associated spin boxes that you can use to specify the duration of the session (hours, minutes, and seconds). You can also edit each of these values by typing in the appropriate text field.

Time Slice Size

Time Slice Size has two associated drop-down menus for setting the granularity of the collected data. The default time slice is one minute, which means that all events occurring within one minute intervals are assumed to have happened at the same time for presentation purposes.

The time slice size determines how finely you can time events. When you are analyzing a session, you can zoom in to or out of a browser’s Timeline or change the length of the Timeline that is spanned by the Zonar. These changes affect how a time slice is displayed in a browser’s Time Control panel and (where applicable) alter the size of the space between time slices on the x-axis of metric charts, but they are display changes only. The time slice size you set when initiating a session is the smallest increment of time achievable for analysis after the data has been recorded.

Incomplete Request Timeout

You can use the Incomplete Request Timeout editable spinner boxes to set the time after which the Nexus will no longer wait before classifying a request as

incomplete.

PerformaSure classifies any request that has not completed within the period defined in Incomplete Request Timeout as incomplete. Performance timing is not recorded for an incomplete service request, but enough information is provided to help you identify what the request was doing when PerformaSure stopped tracking it. You can easily find and highlight incomplete requests in the

Request Tree browser.

It is important to understand that a request may have completed after the timeout period has ended. Because most requests typically complete very quickly, incomplete requests may indicate performance problems, depending on the length of time defined in Incomplete Request Timeout.

Recording Control Window and Nexusctl 209

The default setting for Incomplete Request Timeout is 2 minutes. This may be adjusted depending on the expected length of time for your application to complete requests.

Example: In some cases, an application may be expected to have very long request-completion times, in which case you could adjust the value to an appropriately high number, such as 5 minutes.

Note: Incomplete Request Timeout must be set to a value between 0 and 24 hours (1440 minutes). An error dialog will appear if you specify a value for this setting that is higher than 1439 minutes and 59 seconds.

Confirm Before Stopping Recording

The Confirm Before Stopping Recording checkbox is selected by default.

When this checkbox is selected, the dialog shown in Figure 83 will appear when

you click the Stop button in the Recording Control window.

When this dialog appears, you will need to enter confirmation (by clicking OK) before recording is stopped.

Note: This alert does not appear if you have selected Limit Session Length and set the duration of the session using the Time spin boxes.

210 PerformaSure: User’s Guide

Sampling Tab

Figure 85

Figure 84 The Recording Settings dialog showing the Sampling tab

A Note on Sampling

You can choose to sample fewer service requests rather than letting the Nexus sample as many as it can. This is particularly important when you are stresstesting your system and the number of requests per second becomes large. In that case, the Nexus may collect fewer samples, yet be able to provide accurate statistical data.

You can further decrease the sample rate by adjusting the Few Samples... Many

Samples slider in the Sampling tab. Moving the slider to the left tells

PerformaSure to collect fewer samples per unit of time. This is a means of reducing overhead, yet it permits useful data to be collected.

If you are attempting to trace an intermittent problem, you may have to lengthen the time of your session to ensure that a statistically significant number of samples is taken. If you suspect a certain request is the cause, you can use the Advanced

Sampling dialog to increase its sampling weight as an alternative to extending the

time over which data is collected. See “ Advanced Sampling Dialog ” below for

details.

Note: Sampling is based on a particular request’s frequency of occurrence. If a certain request R occurs 100 times during the sampling period, and there are a total of 1000 requests of all types in the same interval, the Nexus

Recording Control Window and Nexusctl 211

assigns a frequency of 10% to request R. Assume that the Nexus decides that it can collect complete Tag and Follow

information on 50 requests during the sampling interval. It sends a message to its Agents to monitor

5 instances of the request R. The Agents monitor the 5 requests, spacing them uniformly throughout the sampling interval. Also, PerformaSure guards against omissions that might be introduced by strict random sampling. It adjusts its sampling behavior so that infrequent requests are sampled at least once.

Collect As Many Samples as Possible

Choose Collect as Many Samples as Possible when you want PerformaSure to collect as much data as possible. When you select this option, requests will be sampled at 100% of the Nexus’ ability. When your test system is heavily loaded, tracking each request using Tag and Follow may not be feasible because

PerformaSure logs an enormous amount of data for each request. In this case, the

Nexus will adjust the sample rate to keep data collection within manageable bounds.

Collect Fewer Samples to Reduce Overhead

Choose Collect Fewer Samples to Reduce Overhead when you want to further reduce the number of requests that will be tracked using Tag and Follow during the sampling interval. This lessens the overhead that PerformaSure places on your system while still providing diagnostic information. Sampling within the interval is random; this eliminates the possibility of overlooking some cyclic effect. PerformaSure makes this adjustment to strict random sampling: every request that enters the system during the sampling interval is measured at least once.

Selecting this option enables the Few Samples... Many Samples slider. When you move the slider to the extreme left, the fewest samples possible will be collected during the sampling interval. When you move the slider to the extreme right, requests will be sampled at 100% of the Nexus’ ability, just like when you select Collect As Many Samples as Possible.

Component Detail Recording Level

Choose Component Detail Recording Level to collect data on key Java EE

classes. See “ Component Instrumentation ” on page 445 for a description and a

list of the Java EE components that are tracked by PerformaSure when using this option.

Full Detail Recording Level

Choose Full Detail Recording Level to fully instrument your application.

212 PerformaSure: User’s Guide

Use Advanced Sampling Settings

Selecting this checkbox allows you to override the sampling weights that

PerformaSure assigns to requests. When this checkbox is checked, the sampling weights that you set in the Advanced Sampling dialog are used.

Advanced

Clicking on this button opens the Advanced Sampling dialog. Use this dialog to set sampling weights that override the weights that PerformaSure assigns to requests.

See “ Advanced Sampling Dialog ” on page 221 for details.

Separators Tab

Figure 86

Figure 85 The Recording Settings dialog showing the Separators tab

Important: See “ Service Request Separation ” on page 77 for information

about how request separation works in PerformaSure.

Note: You can also enable separation through the nexusctl utility. For more

information, see “ nexusctl—Summary ” on page 226.

Recording Control Window and Nexusctl 213

List of Requests to Separate

The Separators tab contains one table: Separate HTTP requests that match,

in order. In this table, you list the URL expressions and GET and POST parameters, cookies, and HTTP headers that will be used to match the requests that should be separated. The order of this list is important. PerformaSure will attempt to match service requests beginning at the top of the list of separators and then will move down the list. The first separator that includes a URL that matches a request is used; all other separators are ignored for that request.

Note: Requests will be separated if they match any of the listed parameters.

This means that a request may be separated based on more than one parameter.

There are four columns in this table:

■ The first column contains checkboxes. Select a checkbox to enable a separator, or deselect it to disable the separator. No checkboxes are visible when the table is empty.

URL Expression: in this column, enter the string of characters that is used to match the base URL. Expressions are case-insensitive and will match on partial strings.

Type: use the drop-down menu in this column to specify whether the URL

Expression is a literal expression (Literal) or a regular expression (RegEx).

Note:

Literal strings are referred to as literal expressions in the User’s Guide. See

“ Appendix D—Regular Expressions ” on page 489 for more information

about using regular expressions.

Parameters/Cookies/Headers: In this column, enter the specific parameters that are used to separate requests. The parameters on which requests are separated can be GET or POST parameter, cookie, or HTTP headers names or name-value pairs. Names and name-value pairs are matched case-insensitively. If you specify several parameters in this column, they must be entered as a list of comma-separated values.

Note that if you include leading or trailing spaces or spaces around the = sign in a name-value pair, they will be removed before parameters are matched to requests. However, spaces embedded in GET or POST parameters, cookies, or HTTP headers will be preserved.

Important: POST parameter separation is only support for requests that use Content-Type: x-www-form-urlencoded . This means that, when performing POST parameter request separation,

PerformaSure will ignore requests that use Content-Type: multipart/form-data .

214 PerformaSure: User’s Guide

Important: PerformaSure does not collect certain cookie attributes and reserved cookie names.

The following cookie attributes are not collected:

Comment

CommentURL

Discard

Domain

Expires

Max-Age

Path

Post

Secure

Version

All cookie names that begin with $ are reserved and will be ignored by PerformaSure because they should only be used by web servers and user-agents.

Maximum length of value used for separation

The Maximum length of value used for separation spinner box allows you to set the maximum length (in characters) of values used for performing request separation. This maximum applies to all request separation parameters. It is set to

32 characters by default but can be set to any value between 1 and 512. Values over 512 characters long will be truncated before being considered for request separation.

Modifying the List of Separators

To add a new entry to the table:

1.

Click the Add new entry button and is selected.

Note:

. The new entry is added to the table

New separators are enabled by default.

2.

Double-click the field in the URL Expression column to make it editable.

Enter a literal or regular expression for the base URL.

3.

By default, RegEx is selected from the drop-down menu in the Type column.

Select Literal from this drop-down if you entered a literal expression in the

URL Expression column.

4.

Double-click the field in the Parameters/Cookies/Headers column to make it editable. Enter a single parameter or a comma-separated list of parameters.

5.

Set the location of the new entry within the list of separators by using the

Move selection up button or the Move selection down button.

Recording Control Window and Nexusctl 215

6.

Click the Apply button to save your changes as part of the recording settings configuration.

To modify an entry:

1.

Edit the entry in the table:

• Select or deselect the checkbox in the left-hand column if you want to enable or disable that entry.

• Double-click the field in the URL Expression or the field in the

Parameters/Cookies/Headers column if you want to make it editable.

• Use the drop-down menu in the Type column if you want to change the expression type for the entry in the URL Expression column.

2.

Click the Apply button to save your changes as part of the recording settings configuration.

To remove an entry:

1.

Select the row that you want to remove by clicking on it.

2.

Click the Remove selection button .

3.

Click the Apply button to save your changes as part of the recording settings configuration.

To change the location of an entry in the list:

1.

Select the row that you want to move by clicking on it.

2.

Use the Move selection up button or the Move selection down button

3.

to move the entry to the desired location in the list.

Click the Apply button to save your changes as part of the recording settings configuration.

Filters Tab

Tip: If you have specified request separation on a parameter in the

Separators tab, you can filter requests on that parameter in the Filters tab.

216 PerformaSure: User’s Guide

Important: Requests for .css, .gif, .jpeg, .js, .png, and .ico files are excluded by default. If you want to include any of these requests, specify the requests that should be included in the Include or exclude

requests that match, in order table.

Figure 87

Figure 86 The Recording Settings dialog showing the default settings in the Filters tab

Filtering allows you to configure PerformaSure to reduce traffic between Agents and the Nexus, which decreases both overhead and storage requirements. In the

Filters tab, you can configure filtering to include certain requests and exclude others.

Include or exclude requests that match, in order

The order of the filters that you set in the Include or exclude requests that

match, in order table is significant: PerformaSure will attempt to match filters beginning at the top and will then move down the list. Expressions are case sensitive, will always match on partial strings, and will match against the name of the request.

Note: To enter or text in the entry that you have selected, double-click in the space that corresponds with the appropriate column (Expression or

Parameters).

Recording Control Window and Nexusctl 217

The first column contains checkboxes that you can select or deselect to enable or disable the filters to which they correspond. For a new entry, the checkbox is selected by default. No checkboxes appear when the table is empty.

The Action column contains a drop-down menu that allows you to specify either

Exclude or Include. For new entries, this column specifies to Exclude by default.

The Expression column allows you to enter text and edit it in the table itself. The text that you enter into the table can be either a regular expression or a literal expression that is used to match requests that should be filtered. For new entries,

this column is empty by default. See “ Appendix D—Regular Expressions ” on page

489 for more information about using regular expressions.

Important: The dollar sign ( $ ) is a shell metacharacter in Unix. If you are running PerformaSure on a Unix system and want to include the dollar sign as a metacharacter in a regular expression, surround the expression with single quotes. See the entry

“ dollar sign ($) ” on page 491 for more information about using

this metacharacter in a regular expression.

The Type column specifies the type of expression, either Literal or RegEx. In both cases, expressions are case sensitive and will match on partial strings. For new entries, this column specifies Literal by default.

Add New Entry

The Add new entry button adds a new entry to the list. By default, each new entry is enabled and the columns Action, Expression, and Type contain the default values specified above.

Remove Selection

The Remove selection button removes the selected entry from the list. This button is disabled until you select an entry.

Move Selection Up

The Move selection up button moves the selected entry up the list. This button is disabled until you select an entry.

218 PerformaSure: User’s Guide

Move Selection Down

The Move selection down button moves the selected entry down the list.

This button is disabled until you select an entry.

All Other Requests Should Be

The All other requests should be drop-down menu allows you to select whether service requests that do not match the entries in the table are included or excluded. The options are Included or Excluded; the menu specifies Included by default.

Service Request Filtering

Many types of requests can safely be ignored once you have determined that they have no costly effects on performance. Among these are image files that are loaded via individual HTTP requests, and other static files whose loading times can be assumed to be constant. By default, PerformaSure excludes requests

for .gif, .jpg, .css, .png, .js, and .ico files (see Figure 87).

After you have measured the request times for certain objects and you are satisfied that there are no problems with them, you can use service request filtering to remove them from view.

Recording Control Window and Nexusctl 219

Agents Tab

Figure 88

Figure 87 The Recording Settings dialog showing the Agents tab

Agent Status Summary

Above the Agents table, there is a summary of the total number of Agents listed in the table and (in brackets) the number of disconnected Agents.

Agents Table

You can use this text area to view which Agents are active and connected to the

Nexus and control whether they are enabled. For each entry, the text area lists the

Agent name and whether it is enabled, the host machine name, the type of Agent, and its state.

An Agent is enabled if the checkbox next to it is selected. Before you start recording, you can select or deselect the checkboxes in the Agent table to enable or disable individual Agents, or use the Select All or Deselect All buttons. See

“ Select All ” and “ Deselect All ” below for more information about these buttons.

The Agent type can be:

• Server, in which case the type of server is shown.

• System, indicating a System Agent is installed on the machine so that operating system and network traffic metrics can be collected.

The Agent version and state:

220 PerformaSure: User’s Guide

• Version—the version number of the Agent. For example, 5.0.

• State—whether the Agent is connected or disconnected.

Select All

Click the Select All button to select all Agents in the list. This button is disabled if all Agents are currently selected.

Deselect All

Click the Deselect All button to deselect all Agents in the list. This button is disabled if no Agents are currently selected.

Reset Agent List

By clicking this button, you cause the Nexus to reset the Agent list. When this occurs, all Agents that are not connected are removed from the Agent list.

Automatically Enable Newly Discovered Agents

This checkbox allows you to toggle whether Agents will be enabled if they connect to the Nexus while session recording is in progress.

Advanced Sampling Dialog

Advanced Sampling Dialog—Summary

The Advanced Sampling dialog (Figure 89) opens when you click Advanced... in

the Sampling tab of the Recording Settings dialog. You can use this dialog to set sampling weights that override those automatically set by PerformaSure.

Advanced Sampling Dialog

Control

Set sampling weights for requests that match, in order

Type

Table

Default Value Description

Empty Has these fields: Expression, Type, and Weight. Contains entries

describing sampling weight overrides. See “ Set Sampling Weights For

Requests That Match, In Order ” below for details.

Recording Control Window and Nexusctl 221

Advanced Sampling Dialog (Continued)

Control

Weight Of All

Other Requests

Type

Info only

Add new entry Button

Remove selection Button

Move selection up Button

Move selection down

Button

Default Value Description

1.00

Shows the sampling weight remaining for all other requests.

Enabled

Disabled

Disabled

Disabled

Adds a new entry to the table.

Removes the selected entry from the table.

Moves the selected entry up the list.

Moves the selected entry down the list.

Advanced Sampling Dialog—Full Detail

Figure 89

Figure 88 The Advanced Sampling dialog

Changing Sampling Weights

The Nexus maintains a table of historical data for the frequency of each service request that it processes. It uses this information to tell the Agents how many samples to take during the current sampling interval. In this way, the Nexus ensures that a weighted average of samples is taken.

222 PerformaSure: User’s Guide

However, you may want to set the weights yourself. The Advanced Sampling dialog is useful when, in high volume situations, you want to adjust the sample ratios from their default values.

Example: If the Nexus decides that it can comfortably track 150 requests per second from a certain Agent, and the current request frequency is 1500 requests per second, the Nexus directs the

Agent to track every tenth request using Tag and Follow.

Normally, there will be a mix of different request names, such as commitorder , enterstore , and so on. The Nexus records the frequency of occurrence of each type and prorates them among the 150 measured ones. Let us say that commitorder accounts for 10% of the requests, so that 15 requests are actually tracked. If you wanted to focus on this request, you could cause it to be weighted more than its natural frequency. To do so, in the

Advanced Sampling dialog’s Set sampling weights for requests

that match, in order table, you would enter commitorder in the Expression column, select RegEx from the drop-down menu in the Type column, and enter 0.3

into the Weight column.

Tip: Entering 0 in the Weight column (of the Set sampling weights for

requests that match, in order table) is not the same thing as filtering out the request. Any request matching the regular expression or literal expression that you enter into the table will be counted, but it won’t be tracked using Tag and Follow, so you won’t be able to see any other information about it. The Request Tree browser shows only the root node of the request.

If you want to filter out requests, use the configuration settings in the

Filters tab of the Recording Settings dialog to do so. See “ Filters Tab ” for

details.

Set Sampling Weights For Requests That Match, In Order

In the Set sampling weights for requests that match, in order table, you can enter text and select values in order to set sampling weight overrides.

Note: To enter or edit text in an entry that you have selected, double-click in the space that corresponds with the appropriate column (Expression or

Weight).

The Expression column allows you to specify either a regular expression or a literal expression that is used to match requests that should be weighted more than their natural frequency. Expressions are case sensitive and will always match on partial strings. For new entries, this column is empty by default. See

Recording Control Window and Nexusctl 223

“ Appendix D—Regular Expressions ” on page 489 for more information about

using regular expressions.

Important: The dollar sign ( $ ) is a shell metacharacter in Unix. If you are running PerformaSure on a Unix system and want to include the dollar sign as a metacharacter in a regular expression, surround the expression with single quotes. See the entry

“ dollar sign ($) ” on page 491 for more information about using

this metacharacter in a regular expression.

The Type column specifies the type of expression, either Literal or RegEx. In both cases, the expression is case sensitive and will match on partial strings. For new entries, this column specifies Literal by default.

The Weight column allows you to enter a numerical value between 0.00 and

1.00.

If the total of all entries is greater than 1.00 when you click OK (or click elsewhere in the table), a warning message will appear indicating that the values cannot total more than 1.00. PerformaSure will then normalize the entries to add up to 1.00 or less. If the values add up to exactly 1.00, a message will appear informing you that no other types of requests will be sampled.

For the first entry in this table, the Weight column displays a value of 1.00 by default.

Weight of All Other Requests

The text area Weight Of All Other Requests shows the remaining sampling weight as a fraction of 1.00. This fractional percentage represents the sampling weight that will be applied to all requests not listed in the table. When there are no entries in the table or they are all set to 0.00, this area displays a value of 1.00.

If there is only one entry in the table and you have not changed its weight from

1.00, then this area displays a value of 0.00.

Add New Entry

The Add new entry button adds a new entry to the list. By default, each new entry is enabled and the columns Expression, Type and Weight contain the default values specified above.

Remove Selection

The Remove selection button removes the selected entry from the list. This button is disabled until you select an entry.

224 PerformaSure: User’s Guide

Move Selection Up

The Move selection up button moves the selected entry up the list. This button is disabled until you select an entry.

Move Selection Down

The Move selection down button moves the selected entry down the list.

This button is disabled until you select an entry.

Recording with nexusctl

You can use the options available from the nexusctl command-line utility to start and stop session recording, enable or disable Agents, and adjust settings for recording a session, sampling, request separation, and request filtering. This section discusses the options available from nexusctl that are analogous to the controls in the Workstation’s Recording Control window, Recording Settings dialog,

and Advanced Sampling dialog. See “ Equivalent Recording Control Options ” on page 241 for a chart that details the corresponding recording controls in nexusctl

and in the Workstation. See “ Using nexusctl ” on page 46 for a complete list of

options available from nexusctl.

Recording Control Window and Nexusctl 225

nexusctl—Summary

Recording Options in nexusctl

Option nexusctl startrecording nexusctl stoprecording

Type

Recording option

Recording option

Default Value Description

Records with

1 minute time slice

N/A

Starts recording a new session, which is given the default name

Nexus_<timestamp>.

Stops recording the current session.

Parameters for nexusctl start-recording

Parameter Type

-user username Login parameter

-pwd password Login parameter

-n “NAME” Basic recording parameter

-a Basic recording parameter

-com

“COMMENTS”

Basic recording parameter

Agent parameter

-ad

“AGENTNAME”

-ae

“AGENTNAME”

-i

-l nnn

Agent parameter

Session parameter

Session parameter

-t nnn Session parameter

Default Value user

Blank

Nexus

Set

Not set

Not set

Not set

Set

Not set

1 minute

Description

Overrides the default username with the name that you specify.

Allows you to specify a password.

Overrides the default session name with the name that you

specify. See “ -n “NAME” ” below for details.

Appends the time at which recording began to the session’s filename.

Allows you to supply comments about the session.

Specifies which Agents are to be disabled. See “ -ad

“AGENTNAME” ” below for details.

Specifies which Agents are to be enabled. See “ -ae

“AGENTNAME” ” below for details.

Allows you to record indefinitely. If you do not specify either -i or

-l, -i is applied by default.

Sets the duration of the session. See “ -l nnn ” below for details.

Sets the time slice for the session.

226 PerformaSure: User’s Guide

Parameters for nexusctl start-recording (Continued)

Parameter

-irt nnn

-c

-f

-s nn

-swr nnn

“expression”

Type

Session parameter

Sampling parameter

Sampling parameter

Sampling parameter

Sampling parameter

Default Value

2 minutes

Set

Not set

100

Not set

-swl nnn

“expression”

Sampling parameter

Not set

Not set

Description

Sets the incomplete request timeout for the session. See “ -irt nnn ” below for details.

Records at component detail level.

Records at full detail level. If you do not enter this parameter,

PerformaSure will record at the component level.

Sets the service request sampling percentage.

Sets advanced sampling weights using regular expressions. See

“ -swr nnn “expression” ” below for details about the format for

setting sampling weights.

Sets advanced sampling weights using literal expressions. See “ swl nnn “expression” ” on page 234 for more information about

literal expressions.

Separates requests using regular expressions. See “ -srr

“URIregex” “PARAM” ” below for details.

-srr “URIregex”

“PARAM”

-srl “URIliteral”

“PARAM”

Request separation parameter

Request separation parameter

-sl nn

-fir

“expression”

-fil

“expression”

-fxr

“expression”

-fxl

“expression”

-ia

-xa

Request separation parameter

Filtering parameter

Filtering parameter

Filtering parameter

Filtering parameter

Filtering parameter

Filtering parameter

Not set

32

Not set

Not set

Not set

Not set

Set

Not set

Separates requests using literal expressions. See “ -srl

“URIliteral” “PARAM” ” below for details.

Sets the maximum length for a value used in request separation.

The range for nn is 1 to 512.

Filters requests for inclusion using regular expressions. See “ -fir

“expression” ” below for details.

Filters requests for inclusion using literal expressions. See “ -fil

“expression” ” below for details.

Filters requests for exclusion using regular expressions. See “ -fxr

“expression” ” below for details.

Filters requests for exclusion using literal expressions. See “ -fxl

“expression” ” below for details.

Includes all other requests (after filtering certain requests).

Excludes all other requests (after filtering certain requests).

Recording Control Window and Nexusctl 227

Parameters for nexusctl start-recording (Continued)

Parameter

-r URI

Type

Connection parameter

Default Value

Not set

-o “/path/to/ filename.ext”

-fgl

Recording settings parameter

Recording settings parameter

N/A

Not set

Description

Sets the connection URI for the Nexus when it is on a different machine than the nexusctl script or for a local Nexus that does not use the default port.

Loads nexusctl settings that you have saved to a file. See “ Using a Recording Settings File ” below for details on using and

overriding a recording settings file.

Uses Foglight recording settings for request separation and

filtering. See “ -fgl ” below for details.

Parameters for nexusctl stop-recording

Parameter Type

-user username Login parameter

-pwd password Login parameter

-r URI Connection parameter

Default Value Description user Overrides the default username with the name that you specify.

Blank

Not set

Allows you to specify a password.

Sets the connection URI for the Nexus when it is on a different machine than the nexusctl script or for a local Nexus that does not use the default port.

Options for Showing Connections to the Nexus

Option nexusctl showconnections nexusctl showconnections-xml nexusctl resetagent-list

Type

Display option

Display option

Display option

Default Value Description

N/A Lists all connections to the Nexus in a table.

N/A

N/A

Lists all connections to the Nexus in XML format.

Resets the list of Agents, removing the entries for Agents that have been disconnected. This command is disabled during recording.

228 PerformaSure: User’s Guide

Parameters for nexusctl show-connections, show-connections-xml, and nexusctl reset-agent-list

Parameter Type

-user username Login parameter

-pwd password Login parameter

-r URI Connection parameter

Default Value Description user Overrides the default username with the name that you specify.

Blank

Not set

Allows you to specify a password.

Sets the connection URI for the Nexus when it is on a different machine than the nexusctl script or for a local Nexus that does not use the default port.

nexusctl—Full Detail

Recording Options

nexusctl start-recording

The start-recording option allows you to start recording a new session. When you use this flag, a message appears in the console window that was used to start the Nexus initially. The default name given to the session is Nexus_<timestamp>.

The default time slice for recording a session using start-recording is one

minute, as it is in the Recording Settings dialog’s Session tab. See “ -t nnn ” below

and “ Setting the Session Time Slice ” on page 87 for more information about the

time slice size.

This option permits a number of additional optional parameters. See “ Parameters for nexusctl start-recording ” on page 230.

nexusctl stop-recording

The stop-recording control stops recording the current session. There are three optional parameters for nexusctl stop-recording :

-user Your PerformaSure login username.

-pwd Your PerformaSure login password (if you have set one—otherwise omit this parameter).

■ -r Sets the connection URI for the Nexus when it is on a different machine than the one on which the nexusctl script is located or for a local Nexus that does not use the default port.

Recording Control Window and Nexusctl 229

Example usage: nexusctl stop-recording -user lisa -pwd oboe789 -r your.remote.host.com:42705

Important: The nexusctl script must not be moved from the directory in which it was installed.

Parameters for nexusctl start-recording

Note: The parameters -swr , -srr , -fir , and -fxr (described below) use

regular expressions. See “ Appendix D—Regular Expressions ” on page

489 for more information about using regular expressions.

Important: The dollar sign ( $ ) is a shell metacharacter in Unix. If you are running PerformaSure on a Unix system and want to include the dollar sign as a metacharacter in a regular expression, surround the expression with single quotes. See the entry

“ dollar sign ($) ” on page 491 for more information about using

this metacharacter in a regular expression.

Login Parameters

-user username

The parameter -user username overrides the default username with username .

This parameter is optional for all nexusctl commands except start (which launches the Nexus in the background), where it is not required. If you do not specify a username, PerformaSure will assume a default username of user .

-pwd password

The parameter -pwd password allows you to specify a password. This parameter is optional for all nexusctl commands except start (which launches the Nexus in the background), where it is not required. If you do not specify a password,

PerformaSure will assume that an empty password is associated with your username.

Caution: The password that you specify is entered in plain text on the command line, but it is encrypted before being sent to the Nexus for user authentication.

230 PerformaSure: User’s Guide

Basic Recording Parameters

-n “NAME”

The parameter -n “NAME” allows you to provide a customized name for the session. Specifying the parameter -n “NAME” overrides the default session name with NAME . It is recommended that you always place double quotes around the name parameter. They are required if the name you choose for your session contains one or more spaces.

-a

The parameter -a appends the time at which recording began to the session name.

-com “COMMENTS”

The parameter -com “COMMENTS” allows you to supply comments about the session that you are recording or are about to record. It is recommended that you place double quotes around your comments.

Agent Parameters

-ad “AGENTNAME”

The parameter -ad “AGENTNAME” allows you to specify which Agents will be disabled for the current session only. AGENTNAME is a unique name given to each

Agent, which you can specify in <performasure_home>/config/agent.config. It is recommended that you place double quotes around Agent names.

You only need to specify which Agents are to be disabled using -ad

“AGENTNAME” . Unless they are specified to be disabled, PerformaSure will record from any Agents that are connected to the Nexus and from any new Agents that connect to the Nexus after you start recording. You can specify multiple -ad entries for a single nexusctl command.

-ae “AGENTNAME”

The parameter -ae “AGENTNAME” allows you to specify which Agents will be enabled for the current session only. AGENTNAME is a unique name given to each

Agent, which you can specify in <performasure_home>/config/agent.config. It is recommended that you place double quotes around Agent names.

You only need to specify which Agents are to be enabled using -ae

“AGENTNAME” . When you include -ae parameters in a start-recording command, PerformaSure will not record from any Agents that are connected to the Nexus or from any new Agents that connect to the Nexus after you start

Recording Control Window and Nexusctl 231

recording unless they are specified to be enabled. You can specify multiple -ae entries for a single nexusctl command.

Note: If you do not specify either -ad “AGENTNAME” parameters or -ae

“AGENTNAME” parameters with a start-recording command, Agents that connect to the Nexus after you start recording are automatically enabled.

Caution: Do not include both -ad “AGENTNAME” parameters and -ae

“AGENTNAME” parameters in a start-recording command. If you include both -ad and -ae parameters, only the last parameter specified will affect which Agents are enabled or disabled.

Session Parameters

-i

The parameter -i allows you to record indefinitely. To stop recording, issue the command nexusctl stop-recording later on.

Note: If you do not specify either -i or -l , -i is applied by default.

-l nnn

The parameter -l nnn sets the duration of the session. The format for specifying the time is nnns for seconds, nnnm for minutes, or nnnh for hours. Thus, to record for 1 hour, you could use 3600s , 60m , or 1h .

Note: You cannot record a session that is shorter than 10 seconds. If you attempt to record a session that is shorter than 10 seconds, PerformaSure will issue a WARN log message in the Nexus console and automatically record for 10 seconds.

-t nnn

The parameter -t nnn sets the time slice for the session. Use this option to change the default setting for the time slice, which sets the time granularity for the session. The time slice size determines how finely you can time events. The time slice size that you set when initiating a session is the smallest increment of time achievable for analysis after the data has been recorded. The format for specifying the time slice size is the same as the format for setting the duration of a session.

232 PerformaSure: User’s Guide

-irt nnn

The parameter -irt nnn sets the incomplete request timeout value, the length of time after which a request will be considered incomplete. The format for specifying the incomplete request timeout is the same as the format for specifying the duration of a session.

Sampling Parameters

-c

The parameter -c allows you to record at component detail level. Key Java EE components are recorded, which gives you an overall picture of the application.

See “ Component Instrumentation ” on page 445 for the list of interfaces that are

instrumented at this level of detail. Recording at the component detail level is the default setting.

-f

The parameter -f allows you to record at full detail level. If this flag is not present, recording will be at the component level.

-s nn

The parameter -s nn sets the service request sampling percentage. The range for nn is 1 to 100. By default, the Nexus collects as many samples as possible. You can reduce overhead by choosing to sample fewer service requests than the maximum allowable. For example, by setting nn to 50 , you are instructing the

Nexus to collect half as many samples as it could in each sampling interval.

-swr nnn “expression”

The parameter -swr nnn “expression” sets advanced sampling weights using a regular expression. For example:

-swr 0.43 “estore/portal-.*\.jsp”

The range for nnn is 0.00 to 1.00. The sum of all advanced sampling entries cannot be greater than 1.00, but does not have to equal 1.00. The remaining fractional percentage represents the sampling weight that will be applied to all other requests. When you use this parameter, the expression will be evaluated as a case-sensitive regular expression and will match on partial strings.

You can specify multiple -swr entries for a single nexusctl command.

Recording Control Window and Nexusctl 233

-swl nnn “expression”

The parameter -swl nnn “expression” sets advanced sampling weights using a literal expression.

Important: A literal string is a string of characters that is interpreted literally, without any substitutions based on regular expression pattern-matching. Literal strings will be referred to as literal

expressions in the User’s Guide.

For example:

-swl 0.32 “estore/do”

The range for nnn is 0.00 to 1.00. The sum of all advanced sampling entries cannot be greater than 1.00, but does not have to equal 1.00. The remaining fractional percentage represents the sampling weight that will be applied to all other requests. When you use this parameter, the expression will be evaluated as a case-sensitive literal expression and will match on partial strings.

You can specify multiple -swl entries for a single nexusctl command. It is recommended that you place double quotes around the expressions used to set sampling weights.

Request Separation Parameters

Important: See “ Service Request Separation ” on page 77 for information

about how request separation works in PerformaSure.

-srr “URIregex” “PARAM”

The parameter -srr “URIregex” “PARAM” separates requests using a regular expression. For example:

-srr “estore/portal-.*\.jsp” “country” “user-agent”

You can specify multiple -srr entries for a single nexusctl command, but be aware that the order of the entries is significant. PerformaSure will interpret this order as an indication of priority: only the first -srr entry that a URL matches will be used for request separation. All other entries will be ignored for that request.

The parameters on which requests are separated can be GET or POST parameter, cookie, or HTTP header names or name-value pairs. You can specify any combination of GET or POST parameters, cookies, and HTTP headers in a single -srr entry. If you provide multiple request separation parameters, they

234 PerformaSure: User’s Guide

must be separated by spaces (as shown in the example above). The expressions and parameters used for request separation are case-insensitive.

Important: POST parameter separation is only support for requests that use Content-Type: x-www-form-urlencoded . This means that, when performing POST parameter request separation,

PerformaSure will ignore requests that use Content-Type: multipart/form-data .

Important: PerformaSure does not collect certain cookie attributes and reserved cookie names.

The following cookie attributes are not collected:

Comment

CommentURL

Discard

Domain

Expires

Max-Age

Path

Post

Secure

Version

All cookie names that begin with $ are reserved and will be ignored by PerformaSure because they should only be used by web servers and user-agents.

If you enter leading or trailing spaces with request separation parameters or include spaces around the = sign in a name-value pair, these spaces will be removed before parameters are matched to requests. However, spaces embedded in GET or POST parameters, cookies, or HTTP headers will be preserved.

Note: Requests will be separated if they match any of the parameters that you specify with an -srr entry. This means that a request may be separated based on more than one parameter.

Note: It is recommended that you place double quotes around the expressions used to separate requests.

-srl “URIliteral” “PARAM”

The parameter -srl “URIliteral” “PARAM” separates requests using a literal expression. For example:

-srl “littlebusiness/welcome.jsp” “cmd=login” “lang” “LoginName”

You can specify multiple -srl entries for a single nexusctl command, but be aware that the order of the entries is significant. PerformaSure will interpret this order as

Recording Control Window and Nexusctl 235

an indication of priority: only the first -srl entry that a URL matches will be used for request separation. All other entries will be ignored for that request.

The parameters on which requests are separated can be GET or POST parameter, cookie, or HTTP header names or name-value pairs. You can specify any combination of GET or POST parameters, cookies, and HTTP headers in a single -srl entry. If you provide multiple parameters, they must be separated by spaces (as shown in the example above). The expressions and parameters used for request separation are case-insensitive.

Important: POST parameter separation is only support for requests that use Content-Type: x-www-form-urlencoded . This means that, when performing POST parameter request separation,

PerformaSure will ignore requests that use Content-Type: multipart/form-data .

Important: PerformaSure does not collect certain cookie attributes and reserved cookie names.

The following cookie attributes are not collected:

Comment

CommentURL

Discard

Domain

Expires

Max-Age

Path

Post

Secure

Version

All cookie names that begin with $ are reserved and will be ignored by PerformaSure because they should only be used by web servers and user-agents.

If you enter leading or trailing spaces with request separation parameters or include spaces around the = sign in a name-value pair, these spaces will be removed before parameters are matched to requests. However, spaces embedded in GET or POST parameters, cookies, or HTTP headers will be preserved.

Note: Requests will be separated if they match any of the parameters that you specify with an -srl entry. This means that a request may be separated based on more than one parameter.

Note: It is recommended that you place double quotes around the expressions used to separate requests.

236 PerformaSure: User’s Guide

-sl nn

The parameter -sl nn sets the maximum length (in characters) of values used for performing request separation. The range for nn is 1 to 512; the default setting is

32. Values over 512 characters long will be truncated before being considered for request separation.

Note: This is a global entry that will be applied to all request separation parameters.

Filtering Parameters

Tip: If you have specified request separation on a parameter by entering a

nexusctl request separation flag, you can filter requests on that parameter by using request filtering options.

Important: Requests for .css, .gif, .jpg, .js, .png, and .ico files are excluded by default. If you want to include any of these requests, you must specify -fir options that have the same pattern as the excluded requests. For example, to include .css

files, you would specify

-fir “\.(css|Css|CSS)$” because the pattern \.(css|Css|CSS)$ exactly matches the pattern used in the default exclude filter for this type of request.

See nexusctl help (enter the command nexusctl from the

<performasure_home>\scripts directory) for a complete list of the exclude filters that are applied by default.

-fir “expression”

The parameter -fir “expression” filters requests for inclusion using a regular

expression. See “ Appendix D—Regular Expressions ” on page 489 for more

information about using regular expressions.

You can specify multiple -fir entries for a single nexusctl command, but be aware that the order of the entries is significant. PerformaSure will interpret this order as an indication of matching priority.

-fil “expression”

The parameter -fil “expression” filters requests for inclusion using a literal expression. For example:

-fil “.JPG”

Recording Control Window and Nexusctl 237

You can specify multiple -fil entries for a single nexusctl command, but be aware that the order of the entries is significant. PerformaSure will interpret this order as an indication of matching priority.

-fxr “expression”

The parameter -fxr “expression” filters requests for exclusion using a regular expression. You can specify multiple -fxr entries for a single nexusctl command, but be aware that the order of the entries is significant. PerformaSure will interpret this order as an indication of matching priority.

-fxl “expression”

The parameter -fxl “expression” filters requests for exclusion using a literal expression. You can specify multiple -fxl entries for a single nexusctl command, but be aware that the order of the entries is significant. PerformaSure will interpret this order as an indication of matching priority. It is recommended that you place double quotes around the expressions used to filter requests.

-ia

The parameter -ia includes all other requests.

-xa

The parameter -xa excludes all other requests.

Note: If you do not specify either -ia or -xa , -ia will be applied by default.

Only one of either -ia or -xa can be used.

Connection Parameters

-r URI

The parameter -r URI sets the connection URI for the Nexus. For example:

-r your.remote.host.com:42705

Use this flag to set the connection URI for the Nexus when it is on a different machine than the one on which the nexusctl script is located or for a local Nexus that does not use the default port.

Important: The nexusctl script must not be moved from the directory in which it was installed.

238 PerformaSure: User’s Guide

Using a Recording Settings File

-o “/path/to/filename.ext”

The parameter -o “/path/to/filename.ext” loads nexusctl settings that you have saved to a file. Rather than having to specify a long list of options every time you want to record, you can enter the flags into a text file that specifies recording settings. An example path string is: nexusctl start-recording -o “/usr/performasure/nexusctloptions.txt”

A recording settings file consists of one option per line; two entries cannot exist on the same line.

Important: Place quotation marks around any values in the recording settings file that contain spaces. For example:

-com “Comments about a new session”

To override a recording settings file:

A recording settings file acts as a base template for nexusctl commands. You can enter additional options to override this file. For example: nexusctl start-recording -t 10s -s 100 -srl “estore/do” “product” -o

“usr/performasure/nexusctloptions.txt.”

Using Foglight Recording Settings

-fgl

Including the parameter -fgl with the start-recording command causes

PerformaSure to use recording settings from Quest Foglight and ignore all other settings for request filtering and separation, whether they are specified on the command line or in a recording settings file.

Options for Showing Connections to the Nexus

Showing Connections to the Nexus nexusctl show-connections Shows all connections to the Nexus. This command lists all connected users (for example, nexusctl or the Workstations) and

PerformaSure Agents in tabular form in the shell or DOS command window. The tables in which the enabled and disabled Agents are listed include entries indicating whether the Agents are connected or disconnected.

nexusctl show-connections-xml Shows all connections to the Nexus. This command lists all connected users (for example, nexusctl or the Workstations) and

Recording Control Window and Nexusctl 239

all known, connected, included, and excluded PerformaSure Agents in XML format in the shell or DOS command window.

There are three optional parameters for nexusctl show-connections and show-connections-xml :

-user Your PerformaSure login username.

-pwd Your PerformaSure login password (if you have set one—otherwise omit this parameter).

■ -r Sets the connection URI for the Nexus when it is on a different machine than the one on which the nexusctl script is located or for a local Nexus that does not use the default port.

Example usage: nexusctl show-connections -user lisa -pwd oboe789 -r your.remote.host.com:42705

Important: The nexusctl script must not be moved from the directory in which it was installed.

Resetting the Agent List

■ nexusctl reset-agent-list Resets the list of Agents. This command removes the entries for Agents that have been disconnected from the show-connections list so that only currently connected Agents are listed. There are three optional parameters for nexusctl reset-agent-list :

-user Your PerformaSure login username.

-pwd Your PerformaSure login password (if you have set one—otherwise omit this parameter).

■ -r Sets the connection URI for the Nexus when it is on a different machine than the one on which the nexusctl script is located or for a local Nexus that does not use the default port.

Example usage: nexusctl reset-agent-list -user lisa -pwd oboe789 -r your.remote.host.com:42705

Important: The nexusctl script must not be moved from the directory in which it was installed.

240 PerformaSure: User’s Guide

Equivalent Recording Control Options

This table lists the equivalent recording controls in nexusctl and the Workstation.

They are listed alphabetically by the first letter of the nexusctl option or parameter.

See the appropriate sections above for more detailed descriptions of these controls.

Recording controls in the Workstation and nexusctl

Action

Append the time at which recording began to the session filename.

Specify which

Agents are to be disabled.

nexusctl

-a

-ad “AGENTNAME”

Specify which

Agents are to be enabled.

Record at the component detail level.

-ae “AGENTNAME”

-c

Supply comments about a session.

-com “COMMENTS”

Workstation

Append Date and Time to

Session Name (checkbox)

How to use nexusctl: enter this parameter with the startrecording option.

Workstation: select this checkbox in the

Recording Control window.

Enabled (column in

Agents table)

Enabled (column in

Agents table)

Component Detail

Recording Level (radio button)

Comments (text field) nexusctl: enter this parameter and specify the Agent names with the start-recording option.

Workstation: deselect the checkboxes in the

Enabled column of the table in the

Recording Control window to disable the corresponding Agents. Select the

Automatically enable newly connected

Agents checkbox if you want Agents that connect to the Nexus during recording to be enabled.

nexusctl: enter this parameter and specify the Agent names with the start-recording option.

Workstation: select the checkboxes in the

Enabled column of the table in the

Recording Control window to enable the corresponding Agents. Select the

Automatically enable newly connected

Agents checkbox if you want Agents that connect to the Nexus during recording to be enabled.

nexusctl: enter this parameter with the startrecording option.

Workstation: click on this radio button in the

Sampling tab of the Recording Settings dialog.

nexusctl: enter this parameter and comments with the start-recording option.

Workstation: enter comments in this text field in the Recording Control window.

Recording Control Window and Nexusctl 241

Recording controls in the Workstation and nexusctl (Continued)

Action

Record at the full detail level.

Use recording settings from

Quest Foglight.

Filter requests for inclusion using literal expressions.

Filter requests for inclusion using regular expressions.

Filter requests for exclusion using literal expressions.

nexusctl

-f

-fgl

-fil “expression”

-fir “expression”

-fxl “expression”

Workstation

Full Detail Recording

Level (radio button)

Use Foglight Recording

Settings for Filters and

Separators (checkbox)

Filters tab of the

Recording Settings dialog

Filters tab of the

Recording Settings dialog

Filters tab of the

Recording Settings dialog

How to use nexusctl: enter this parameter with the startrecording option.

Workstation: click on this radio button in the

Sampling tab of the Recording Settings dialog.

nexusctl: enter this parameter with the startrecording option. All other request filtering and separation parameters will be ignored.

Workstation: select the checkbox in the

Recording Settings dialog. All controls in the

Separators and Filters tabs will be disabled.

nexusctl: enter this flag and the literal expression with the start-recording option.

Workstation: in the table in the Filters tab of the Recording Settings dialog, select Include from the Action dropdown menu, check the checkbox, enter the literal expression, select

Literal from the drop-down menu in the

Type column and click OK.

nexusctl: enter this flag and the regular expression with the start-recording option.

Workstation: in the table in the Filters tab of the Recording Settings dialog, select Include from the Action dropdown menu, check the checkbox, enter the regular expression, select RegEx from the drop-down menu in the Type column and click OK.

nexusctl: enter this flag and the literal expression with the start-recording option.

Workstation: in the table in the Filters tab of the Recording Settings dialog, select

Exclude from the Action dropdown menu, check the checkbox, enter the literal expression, select Literal from the dropdown menu in the Type column and click

OK.

242 PerformaSure: User’s Guide

Recording controls in the Workstation and nexusctl (Continued)

Action

Filter requests for exclusion using regular expressions.

Record indefinitely

Include all other requests (after filtering certain requests).

Set the incomplete request timeout for the session.

Set the length of the session.

Reset the list of

Agents so that only currently connected Agents are listed.

nexusctl

-fxr “expression”

-i

-ia

-irt

-l nnn nexusctl reset-agent-list

Workstation

Filters tab of the

Recording Settings dialog

Limit Session Length

(checkbox)

All other requests should be (drop-down menu)

Incomplete Request

Timeout (editable spin boxes)

Limit Session Length

(checkbox) and Time

(editable spin boxes)

Reset Agent List

How to use nexusctl: enter this flag and the regular expression with the start-recording option.

Workstation: in the table in the Filters tab of the Recording Settings dialog, select

Exclude from the Action dropdown menu, check the checkbox, enter the regular expression, select RegEx from the dropdown menu in the Type column and click

OK.

nexusctl: enter this parameter with the startrecording option.

Workstation: deselect this checkbox in the

Session tab of the Recording Settings dialog.

nexusctl: enter this parameter with the startrecording option along with a parameter for filtering requests.

Workstation: select Included from the dropdown menu in the Filters tab of the

Recording Settings dialog.

nexusctl: enter this parameter with the startrecording option and specify the timeout period.

Workstation: use the spin boxes in the

Session tab of the Recording Settings dialog to customize the timeout period.

nexusctl: enter this parameter with the startrecording option and specify the session length.

Workstation: select this checkbox and use the spin boxes in the Session tab of the

Recording Settings dialog to customize the session length.

nexusctl: enter this option.

Workstation: press this button in the

Recording Control window.

Recording Control Window and Nexusctl 243

Recording controls in the Workstation and nexusctl (Continued)

Action

Show all connections to the

Nexus.

Start recording a new session.

Stop recording the current session.

Specify the name for a session.

Select a set of recording settings.

Set the service request sampling percentage.

nexusctl Workstation nexusctl showconnections or nexusctl showconnections-xml

Agents table nexusctl start-recording Record (button)

How to use nexusctl: enter one of these options.

Workstation: Review the entries listed in this table.

nexusctl: enter this option.

Workstation: press this button in the

Recording Control window.

nexusctl stop-recording

-n NAME

Stop (button)

Session Name (text field) nexusctl: enter this parameter with the startrecording option and specify a session name.

Workstation: enter a new name for the session in the text field in the Recording

Control window.

-o “path/to/filename.ext” Settings (drop-down menu) nexusctl: enter this option.

Workstation: press this button in the

Recording Control window.

nexusctl: create a recording settings file with a list of the nexusctl parameters that you want to use, and then enter this parameter with the start-recording option.

Workstation: create and save a recording settings configuration in the Recording

Settings dialog, and then select the configuration from the Settings drop-down menu in the Recording Control window when you are ready to record a session.

-s nn Collect as Many Samples as Possible (radio button) or Collect Fewer Samples to Reduce Overhead

(radio button) and Few

Samples... Many Samples

(slider) nexusctl: enter this parameter with the startrecording option and specify the sampling percentage.

Workstation: in the Sampling tab of the

Recording Settings dialog, select the Collect as Many Samples as Possible radio button or select the Collect Fewer Samples to

Reduce Overhead radio button and set the position of the Few Samples... Many

Samples slider.

244 PerformaSure: User’s Guide

Recording controls in the Workstation and nexusctl (Continued)

Action

Set the maximum length for a value used in request separation.

Separate requests using literal expressions.

Separate requests using regular expressions.

Set advanced sampling weights using literal expressions.

nexusctl

-sl nn

-srl “URIregex”

“PARAM”

-srr “URIregex”

“PARAM”

-swl nnn “expression”

Workstation

Maximum length of value used for separation

(editable spin box)

Separators tab of the

Recording Settings

Dialog.

Separators tab of the

Recording Settings

Dialog.

Use Advanced Sampling

Settings (checkbox),

Advanced (button), and

Advanced Sampling dialog

How to use nexusctl: enter this parameter with the startrecording option and specify a value.

Workstation: in the Separators tab of the

Recording Settings dialog, enter the maximum value in the box or set it using the spinner.

nexusctl: enter this flag, the literal expression and “PARAM” with the startrecording option.

Workstation: in the table in the Separators tab of the Recording Settings dialog, enter the literal expression, select Literal from the drop-down menu in the Type column, specify the parameters (param) and click

OK.

nexusctl: enter this flag, the regular expression, and the parameters with the start-recording option.

Workstation: in the table in the Separators tab of the Recording Settings dialog, enter the regular expression, select RegEx from the drop-down menu in the Type column, specify the parameters and click OK.

nexusctl: enter this parameter with the startrecording option, specify a sampling weight, and enter the literal expression.

Workstation: select this checkbox in the

Sampling tab of the Recording Settings dialog and click on the Advanced... button.

In the table in the Advanced Sampling dialog, enter the literal expression, set the sampling weight, select Literal from the drop-down menu in the Type column and click OK.

Recording Control Window and Nexusctl 245

Recording controls in the Workstation and nexusctl (Continued)

Action

Set advanced sampling weights using regular expressions.

Set the time slice for the session.

Exclude all other requests (after filtering certain requests).

nexusctl

-swr nnn “expression”

-t nnn

-xa

Workstation

Use Advanced Sampling

Settings (checkbox),

Advanced (button), and

Advanced Sampling dialog

Time Slice Size

(associated drop-down menus)

All other requests should be (drop-down menu)

How to use nexusctl: enter this parameter with the startrecording option, specify a sampling weight, and enter the regular expression.

Workstation: select this checkbox in the

Sampling tab of the Recording Settings dialog and click on the Advanced... button.

In the table in the Advanced Sampling dialog, enter the regular expression, set the sampling weight, select RegEx from the drop-down menu in the Type column and click OK.

nexusctl: enter this parameter with the startrecording option and specify the time slice size.

Workstation: use the associated drop-down menus to set the granularity of collected data.

nexusctl: enter this parameter with the startrecording option along with a parameter for filtering requests.

Workstation: select Excluded from the dropdown menu in the Filters tab of the

Recording Settings dialog.

246 PerformaSure: User’s Guide

Chapter 9

Edit Options Dialog

Selecting Options... from the Tools menu displays the Edit Options dialog box.

Figure 90

Figure 89 Edit Options dialog. box

From the appropriate pane in this dialog, you can customize themes, adjust certain properties of your Project, and configure aspects of the Request Tree browser, the Metrics browser, graphs, and PerformaSure Reports.

247

Choose which pane is displayed by clicking on one of the following nodes in the tree view:

Browsers—contains two browser-related options. Project—Don’t ask to add a new browser to a project when closing. If this option is selected, new browsers are not added automatically to the project and data is permanently lost when closed. You can add a browser manually by clicking Add New Browser to Project on the toolbar. Live Updates—Configure the frequency of data collection updates to a Workstation.

Under the Browser option, three additional Edit Options are available:

Request Tree—contains two options boxes (JProbe Integration and Open New

Browser With These Settings).

Use the drop-down menu in the JProbe Integration box to select a JPL file format. This menu allows you to specify which version of JProbe you are using.

The options box Open New Browser With These Settings contains a drop-down menu that you can use to select which bundling mode is displayed in the tree view of a new Request Tree browser. The default bundling mode is

Component; the other options are Class and Method.

Metrics—this pane contains two checkboxes: Automatically Create New

Columns When Adding Charts, which is selected by default, and Show

Raw Metrics, which is not selected by default. The Show Raw Metrics checkbox allows you to toggle the display of raw metrics in the Metrics

browser’s navigation pane. See “ Appendix B—Metrics in PerformaSure ” on page 463 for more information about the different types of metrics that

PerformaSure collects.

Graphs—this pane contains two checkboxes (Panner Updates Graph While

Dragging and Hide Pruned Sub-Trees) and the FastFind options box. The controls in this pane apply to the graphs in the Request Tree browser.

Panner Updates Graph While Dragging is selected by default (update mode is automatically selected). If you choose not to use the update mode by deselecting this option, the view in the graph pane does not update until you have released the mouse button.

Hide Pruned Sub-Trees is not selected by default. Selecting this option hides the pruned sub-trees completely; if this option is not selected, pruned sub-trees will be displayed as ghosted.

FastFind option allows you to choose how many of the top critical paths or nodes to expose in the request trees or control hierarchies when you select

FastFind.

Reports—this pane contains the options box PDF Report Logo, in which you can change the header information in PerformaSure generated reports, and the checkbox Do Not Round Values In CSV Or XML Reports.

The PDF Report Logo box contains four options:

248 PerformaSure: User’s Guide

Default PerformaSure Image: selected by default.

Image: choose this option if you want to specify an image to use in the header. This button is accompanied by a text field and a browse button that invokes the file chooser.

Text: choose this option if you want to customize the header text. This button is accompanied by a text field in which you can specify text.

None: click on this button if you do not want to include a header in the report.

The checkbox Do Not Round Values In CSV Or XML Reports is selected by default. If you deselect this checkbox, PerformaSure will round the values listed in the CSV or XML reports that you generate from the browsers.

Values are rounded to a maximum of three decimal places.

Themes—this pane contains the Theme drop-down menu (which has the choices White, Black, and Custom) and three options boxes (General, Color

Scale, and Request Graphs).

Choose one of the options from the Theme drop-down menu to set the theme.

White and Black are pre-configured themes; White is selected by default.

See below for instructions on configuring the Custom theme.

The options in the General box are: Background, Text, Action Text, and

Focused Action Text.

The Color Scale options box contains two color rectangles, which are used to set the extreme Hot and Cold colors in the Request Tree browser.

Use the color rectangles in the Request Graphs box to set the Fill, Outline,

Pruned Background, and Pruned Foreground colors for the nodes in the tree views.

Tip: When you set options and click the Apply button, some settings take effect on the next browser that you open.

Edit Options Dialog 249

To configure the Custom theme:

Figure 91

Figure 90 The Edit Options dialog (Themes pane selected)

1.

There are two ways to start configuring the Custom theme:

• Select Custom if you would like to configure a complete set of colors.

• Select White or Black if you would like to use most of the colors in one of these pre-configured themes.

2.

Click on a color rectangle in one of the options boxes to launch the Select Color chooser. There are three ways of specifying the new color: color swatches,

HSB, or RGB.

Note: When you change a color in the White or Black theme,

PerformaSure automatically switches the theme to Custom. This

Custom theme will contain the colors from the pre-configured theme that you selected (with the exception of the color that you changed).

3.

After you have selected new colors, click Apply to save the changes to the

Custom theme. Themes are immediately updated in the browsers to which the settings apply.

250 PerformaSure: User’s Guide

To Configure the Frequency of Live Data Updates

The Get Live Updates option is defaulted to off. When selected, it is defaulted to automatically collect live data every five minutes. This setting can be configured to automatically collect data at different interval.

Note: The minimum update frequency is one minute.

1.

Open a Project file.

2.

On the Tools menu, click Options.

3.

On the left column of the Edit Options window, click Browser.

Live Updates configuration options are displayed.

4.

Configure hours, minutes, and seconds.

5.

Click OK.

Edit Options Dialog 251

252 PerformaSure: User’s Guide

Chapter 10

Time Control Panel

The Time Control panel consists of the components directly under the toolbar of every browser. The controls in this panel allow you to adjust the span of time for which you view the data in the session you recorded.

Components in the Time Control Panel

Figure 92

Timeline

Figure 91 The Time Control Panel

The Time Control panel contains several elements, which are described below.

The Timeline represents the total period of time during which the session was recorded. You can adjust how much of the Timeline is displayed (and in how much detail) by clicking the More Zone Detail (zoom in) button or the Less Zone

Detail (zoom out) button. See “ More Zone Detail

” and “ Less Zone Detail ” below

for more information.

253

You can select portions of the Timeline with the Zonar, causing the browser that you are using to display data for that period only.

There are major and minor tick marks on the Timeline that you can use as a guide when positioning the Zonar. Major tick marks correspond to time slice boundaries; they are labeled with the absolute time, not the time relative to the start of the session. Minor tick marks indicate the time slice boundaries between major tick marks. A unique tick mark with the date above it indicates midnight.

Zonar

The Zonar controls the interval of time for which data is viewed in a browser.

When you move the Zonar or adjust its length, the session is queried and data is returned only for the interval that it spans. Covering a smaller portion of the

Timeline with the Zonar can help you isolate a part of the session in which problems occur and obtain a more detailed picture of the system during that period of time.

The Zonar can span all or part of the Timeline. Adjusting the position of its ends

(by clicking and dragging them) changes the amount of time that is selected. By clicking the middle of the Zonar and dragging it, you can reposition it to cover a different range of time with the same length. Double-clicking the Zonar causes it to expand to fill the whole Timeline.

Note: The ends of the Zonar snap to time slice boundaries. You cannot position either end of the Zonar in the middle of a time slice.

Data Availability Indicator

The Data Availability Indicator is the blue line located directly below the

Timeline (see Figure 92). This line indicates the presence of data within the visible

Timeline.

More Zone Detail

The More Zone Detail button is located on the right-hand side of the Time

Control panel. This button allows you to zoom in to the interval of the session spanned by the Zonar. If the visible Timeline includes more than one time slice,

254 PerformaSure: User’s Guide

Less Zone Detail

The Less Zone Detail button is located on the right-hand side of the Time

Control panel. This button allows you to zoom out from a sub-interval of the session. Showing more of the Timeline allows you to adjust the Zonar to select a longer time span.

Timeline Labels

you can reduce the size of the Zonar to span a smaller portion of the Timeline and then click the More Zone Detail button to zoom in to that portion.

Note: You can only zoom in when more than one time slice worth of Timeline is visible and when the Zonar is smaller than the visible Timeline. When you have zoomed in to the Timeline, it will display an arrow at one or both of its ends to indicate that the session extends beyond the visible time line.

When the whole Timeline is visible, the session start time label (at the far left of the

Timeline) and the session end time label (at the far right of the Timeline) display the start time and end time for the current session. The time is displayed in bold in these two Timeline labels, distinguishing them from the labels over major tick marks within the Timeline.

Figure 93

Figure 92 The Timeline labels and the Zonar Offset and Duration label in the Time Control panel

The Zonar’s offset from the start of the session and the length of time currently spanned by the Zonar are displayed in the Zonar offset and duration label at the top of the Time Control panel.

Time Control Panel 255

Related Controls

Certain controls in the PerformaSure browsers are associated with the Time

Control panel but are not located in it. These controls are described below.

Sightline

The Sightline is only available in the Request Time, SQL, Metrics, and Thresholds browsers. Although it is linked to the Zonar, it is located in the graph pane of these browsers, not in the Time Control Panel itself. The Sightline’s slider is located at the top of the graph pane in the Request Time, SQL, and Thresholds browsers. In the

Metrics browser, there is a Sightline and a Sightline slider for each graph.

As shown below, the Sightline is a broken line that extends downwards from the slider. The time to which a point in the graph corresponds is displayed next to the slider, along with the value charted at that point.

The range of time through which you can move the Sightline reflects the range currently spanned by the Zonar. When you move the Sightline’s slider, it will snap to time slice boundaries imposed by the Zonar.

Figure 94

Figure 93 The Sightline and its slider in the Metrics browser

PerformaSure draws a horizontal dashed line from the y-axis to the Sightline’s current position in the chart along the x-axis. This allows you to accurately determine the measured quantity’s ordinate. The point at which these two lines intersect is marked by small square colored by the active metric.

256 PerformaSure: User’s Guide

Link Browsers to Use Same Zone/Break Link Between Browsers

There is a button in the toolbar of every browser that allows you to toggle whether or not the Time Control panels of all existing and newly created browsers are linked. Clicking this button affects the browsers in the current Project only.

Click the Link Browsers to Use Same Zone button to link the browsers’

Time Control panels. When linked, the Timeline, Zonar, and (where applicable) the

Sightline of these browsers are in the same state as the browser in which the button was clicked. Using the controls in the Time Control panel of one browser will impact all other browsers as well. If a problem occurs during a specific interval spanned by the Zonar, linking the browsers can help you track this problem across different browsers.

Click the Break Link Between Browsers button to return the browsers’

Time Control panels to an unlinked state. This allows each browser’s Timeline,

Zonar, and Sightline to function independently.

Query Progress Bar and Cancel Query Button

When you adjust the position of the Zonar, a query is sent to the Nexus to retrieve the data to be displayed in the browser’s graph pane for the portion of the

Timeline that you have selected. Queries can take some time. The Query Progress

bar informs you that activity is going on, and you can interrupt the process by clicking the red Cancel Query button to the right of the Query Progress Bar.

Figure 95

Figure 94 The Query Progress Bar in its active state

Time Control Panel 257

258 PerformaSure: User’s Guide

Chapter 11

Live Data Updates

The Get Live Updates option provides the ability to view live data as it is being collected. This system operations live feedback assists you in diagnosing a performance problem faster. Response times are displayed as they become available.

Note: This option is available in all browsers except the Request Tree Browser.

This browser simply presents a graph tree listing the critical path within a request.

The Get Live Data option is only available for a session which is in recording process. Both the Record New Session and Open Session in New Project windows display this option. By default, this option is off. The default setting for automatically collecting live data is five minutes. The minimum update frequency is one minute.

To Force a Live Data Update:

1.

Launch PerformaSure, and click one of the following options:

Record New Session

Open Session in New Project

Figure 96

Figure 95 Sessions selection

259

2.

Click OK.

The Recording Control window appears.

3.

Place a check mark in the View session while recording box.

4.

Click Start Recording.

On the browser toolbar, Get Live Updates is selected by default. Data is collected based on the Edit Options. For more information about setting a

different frequency for collecting live data updates, see “ Edit Options Dialog ” on page 247.

5.

On the toolbar, click Update Browser Data.

Figure 97

Figure 96 Toolbar icon for Update Browser Data.

Live data updates automatically appear in the browser.

260 PerformaSure: User’s Guide

Chapter 12

Agent Information

The Agent Information view displays information the Agent collects about itself and its environment during a recorded session.

From this view you can explore various Java properties (for example, name, version, vendor, classpath), application server settings, OS name and version, as well as settings used to record the session, such as filters and separators.

When using the Get Live Updates tool in a browser, the latest data collected is updated in the Agent Information view. For more information about the Get Live

Updates, see “ Live Data Updates ” on page 259.

To open the Agent Information viewer:

1.

Open your Project.

2.

Click Tools > Agent Info.

Figure 98

Figure 97 Agent Info

The Agent Information view displays a split pane. The left side of the pane displays a complete list of agents names, ids, and recording session states. The right side of the pane displays details on the selected agent. Each component of this table can be collapsed to allow you to focus on one or more property groups.

261

Figure 99

Figure 98 Agent Information View

The following table outlines the detailed properties displayed for an agent.

Property

General Agent Info

• Agent Name

• Agent Version

• Agent Build

• Debug Level

Environment Properties

• Host Name

• CPU Count

• OS Name

• OS Version

Recording Settings

• Filtering Information

• Separation Information

Application (Server) Properties

262 PerformaSure: User’s Guide

Property

• Cluster Name

• Application Arguments

• Main Class

• Component Type

• Platform Home

• WebLogic Name

• WebLogic Home

• log4j Configuration

• Log Configuration File

• Server Root

• EJB Delegation Mode

• EJB Instance Name

• Catalina Base

• Catalina Home

Java Properties

• Java Version

• Java Classpath

• Java Home

• Java Vendor

• Java Library Path

• Book Vlasspath

• Boot LibraryPath

• JRockit Version

• JRockit VIM

Agent Information 263

264 PerformaSure: User’s Guide

Chapter 13

Request Time Browser

The following topics are covered in this chapter:

Request Time Browser

Request Time Browser Modes

Menus and Toolbar—Summary

Menus and Toolbar—Full Detail

Time Control Panel

Request Time Browser Control Pane—Summary

Request Time Browser Control Pane—Full Detail

All Requests Mode

Single Request Investigation Mode

Request Time Browser Graph Pane—Summary

Request Time Browser Graph Pane—Full Detail

Charts in the Graph Pane

Tooltips in the Graph Pane

Context Menus in the Graph Pane

Request Time Browser Detail Pane

Detail Pane Columns

Bar Charts in the Detail Pane

Bar Chart Tooltips

Context Menus in the Detail Pane

Request Time Browser FAQ

265

Request Time Browser

The Request Time browser helps you identify expensive service requests. You use this browser to investigate performance metrics related to service requests over time, including the total time spent servicing each individual request. You can drill down to investigate a single request by tier, by component technology, or by server.

The Request Time browser launches automatically when you open a new Project based on the Default template, enabling you to start your investigation right away by isolating the request that is consuming the most time. Once you identify an expensive request, you can launch a Request Tree browser to see all the methods and database calls in the request. You can also launch a Metrics browser to view metrics related to that request and see if any of those metrics exceed their normal bounds.

Figure 99 The Request Time browser

266 PerformaSure: User’s Guide

Request Time Browser Modes

The Request Time browser allows you to view response time data in All Requests mode or in Single Request Investigation mode. In All Requests mode, you can analyze requests in comparison to the overall response time of the system. When you find a request of interest, switch the browser into Single Request Investigation mode by drilling down into that request to investigate response time by tier, server, component technology, or component. Drilling down into a request in Single

Request Investigation mode allows you to examine a number of different request metrics over time, helping you diagnose performance problems.

For more information about using the Request Time browser its two investigation

modes, see “ All Requests Mode

” on page 279 and “ Single Request Investigation

Mode ” on page 281.

Menus and Toolbar—Summary

Menu Bar

The Request Time browser’s menu bar is located along the top of the browser window. The following tables describe the controls available from the different menus in the menu bar.

Request Time Browser Menu Bar—Browser Menu

Control

New Browser

Add New

Browser To

Project

Export Report

Type Default Value Description

Menu item Enabled

Menu item Enabled

Opens the New Browser dialog. Use this dialog to choose the type of browser you want to launch.

Adds the browser to your PerformaSure Project. A Request Time browser icon will appear in the Browsers area of the Project window.

Menu item Enabled

Properties

Close

Exit

PerformaSure

Menu item Enabled

Menu item Enabled

Menu item Enabled

Begins the process of generating a print version of the browser suitable for inclusion in a report.

Launches the Browser Properties dialog. See “ Properties ” on page

271 for details.

Closes the browser.

Closes all open Projects and browsers and shuts down the

Workstation.

Request Time Browser 267

Request Time Browser Menu Bar—View Menu

Control

Display By

Type

Menu item

Default Value

Tier

Auto-Fit All Columns Menu item

Show/Hide Columns Menu item

Show/Hide Bar

Charts

Show Filter Bar

Menu item

Enabled

Enabled

Enabled

Menu item with checkbox

Selected

Description

Displays a submenu from which you can select either Tier or Component. Selecting one of these options changes the display mode of the charts in the graph and detail panes.

Resizes the width of all columns in the table so that all values within each column are visible.

Opens a dialog containing a group of checkboxes. Select or deselect these checkboxes to toggle the display of certain metrics in the detail pane.

Opens a dialog containing a group of checkboxes. Select or deselect these checkboxes to toggle the display of certain bar charts in the detail pane columns.

Toggles the display of the Filter Requests Bar at the bottom

of the graph pane. See “ Show Filter Bar ” on page 273 for

more information about the Filter Requests Bar.

Request Time Browser Menu Bar—Tools Menu

Control Type

Recording Control Window Menu item

Session Management Menu item

Thresholds

Change Password

User Management

Menu item

Menu item

Menu item

Default Value

Enabled

Enabled

Enabled

Enabled

Disabled

Performance Diagnostics Menu item

Options Menu item

N/A

Enabled

Description

Launches the Recording Control window.

Opens the Session Management dialog.

Launches the Threshold Editor.

Opens the Change Password dialog.

Launches the User Management window. This menu item is enabled if you have the required permissions.

Displays a submenu with one option. See

“ Performance Diagnostics ” on page 274 for more

information.

Launches the Edit Options dialog.

268 PerformaSure: User’s Guide

Request Time Browser Menu Bar—Windows Menu

Control

Bring All To Front

[Switch to a Project window]

[Switch to a browser]

Type Default Value Description

Menu item Enabled

Menu item Enabled

Menu item Enabled

Ensures that all open PerformaSure windows have a higher stacking order than non-PerformaSure windows.

Switches to the Project window that you select. Each menu item of this type will display the name of an open Project.

Switches to the open browser that you select. Each menu item of this type will display the name of an open

PerformaSure browser.

Request Time Browser Menu Bar—Help Menu

Control

Help

About

Type Default Value Description

Menu item Enabled

Menu item Enabled

Launches context-sensitive help for this browser.

Opens a new window that displays product information about PerformaSure.

Toolbar

Request Time Browser Toolbar

Under the Request Time browser’s menu bar is a toolbar with controls for opening new PerformaSure browsers, launching Spotlight

®

and Quest database tools, controlling the view in the Request Time browser’s graph and detail panes, and performing other actions like exporting a report. The following table describes the controls available from the toolbar.

Control

New Browser

Type

Button and drop-down menu

Add New Browser To

Project

Export Report

Button

Button

Default Value

Enabled

Enabled

Enabled

Description

Clicking on the left-hand side of this button launches the

New Browser dialog. See “ New Browser ” on page 182

for details. Clicking on the right-hand displays a dropdown menu from which you can choose the type of new

browser that you want to open. See “ New Browser ” on page 275 for details.

Adds the browser to the Project. This button is disabled if you have already added the browser to the Project.

Begins the process of generating a print version of the browser suitable for inclusion in a report.

Request Time Browser 269

Request Time Browser Toolbar

Control

Properties

Performance

Diagnostics

Get Live Updates

Type

Button

Button and drop-down menu

Check box

Update Browser Data Button

Link Browsers To Use

Same Zone/Break

Link Between

Browsers

Button

Show Detail/Hide

Detail

Display By

Button

Drop-down menu

Default Value

Enabled

N/A

On

N/A

Enabled

Enabled

Description

Launches the Browser Properties dialog. See

“ Properties ” on page 276 for details.

Displays a drop-down menu with one option. See

“ Performance Diagnostics ” on page 276 for more

information.

Launches an automatic data collection update and

refreshes the display of data in a browser. See “ Live

Data Updates ” on page 259 for more details.

Forces a live data collection update. See “ Live Data

Updates ” on page 259 for more details.

Toggles whether or not the Time Control panels of all existing and newly created browsers are linked. Clicking this button affects the browsers in the current Project

only. See “ Link Browsers to Use Same Zone/Break Link

Between Browsers ” on page 276 for more information.

Toggles the display of the detail pane.

Tier

Allows you to change the display mode. See “ Tier ” and

“ Component Technology ” on page 272 for more

information about the two display options.

Menus and Toolbar—Full Detail

Menu Bar—Browser Menu

New Browser

Choose New Browser... to launch the New Browser dialog, which allows you to select and open a new browser of a specific type. The new browser is not automatically added to the Project or listed in the Project window.

Keyboard accelerator: Ctrl-B.

Add New Browser To Project

The Add New Browser To Project menu item is enabled if you have not yet added this browser to the Project. Click this item to add the browser to the

Project. A new Request Time browser icon will appear in the Browsers area of the

270 PerformaSure: User’s Guide

Project window.

Keyboard accelerator: Ctrl-A.

Export Report

Select Export Report... to begin the process of generating a print version of the browser suitable for inclusion in a report. When you select this option, a Save file chooser is launched so that you can supply a file name for the report. See

“ PerformaSure Reports ” on page 411 for a discussion of the reports that

PerformaSure can provide.

Keyboard accelerator: Ctrl-R.

Properties

Choose Properties... to launch the Browser Properties dialog. This dialog allows you to rename the browser, provide a description of the problems that you have found by using this browser and its settings, and select whether you would like this browser to open automatically when you open the Project.

Close

Select the Close menu item to close the browser but leave the Project open.

Keyboard accelerator: Ctrl-W.

Exit PerformaSure

Choose Exit PerformaSure to close all open Projects and browsers and shut down the Workstation. When you select this menu item, you may be prompted to save the Projects that are open or add new browsers to these Projects before exiting PerformaSure.

Menu Bar—View

Display By

Choose Display by... to display a submenu from which you can select one of two options: Tier or Component Technology. Tier is selected by default.

Click the radio button associated with either Tier or Component Technology to change the display mode.

Request Time Browser 271

Tier

Changing the display mode to Tier causes the response time data displayed in the graph pane and the response time metric bar charts in the detail pane to be broken down and colored by tier.

Selecting this option allows you to distinguish the tiers of your application in the charts in the graph and detail panes. PerformaSure consistently assigns one color to each tier and one for each application server cluster.

Component Technology

Changing the display mode to Component Technology causes the response time data displayed in the graph pane and the response time metric bar charts in the detail pane to be broken down and colored by component technology.

Selecting this option allows you to distinguish component types in the charts in the graph pane and detail panes. Component technologies include HTTP,

Servlets, EJBs, RMI, URL, JNDI, JMS, JDBC, and custom components.

PerformaSure consistently assigns colors to standard and custom component technologies.

The component technology chart segments that may appear in the graph and detail pane are listed in the table below.

Component Technology Chart Segments

Java EE

HTTP

Servlet

EJB

RMI

URL

JNDI

JMS

JDBC

Web Client

RMI Outgoing

Remote

Other

[Custom Components]

Other

272 PerformaSure: User’s Guide

The HTTP segment includes only the portion from the application server. Java

EE component technology segments span all application servers in the system, regardless of cluster. The Servlet segment includes both JSPs and Servlets.

Auto-Fit All Columns

Click Auto-Fit All Columns to resize the width of all columns in the table so that all values within each column are visible.

Show/Hide Columns

You can choose whether or not to display certain metrics in the detail pane. Select

Show/Hide Columns... to open a dialog that contains a group of checkboxes.

Each checkbox controls the display of the associated metric in a column in the detail pane.

Show/Hide Bar Charts

You can choose whether or not to display certain bar charts in the detail pane columns. Select Show/Hide Bar Charts to open a dialog that contains a group of checkboxes. Each checkbox controls the display of the associated bar chart.

Show Filter Bar

Select or deselect the checkbox associated with the menu item Show Filter Bar to toggle the display of the Filter Requests bar at the bottom of the graph pane.

Using the Request Time browser’s Filter Requests bar

You can enter a literal string or a regular expression in the Filter Requests bar’s

Filter Requests text field. When you click the Apply button, the string or expression that you entered is matched against the service request names listed in the detail pane; only the requests that match are displayed in the graph pane and in the detail pane. By default, the Filter Requests text field contains an empty

literal string so that all service requests are selected. See “ Appendix D—Regular

Expressions ” on page 489 for more information about using regular expressions.

Tip: If you enter a regular expression in the Filter Requests text field, ensure that the Regular Expression checkbox is selected before you click Apply.

Request Time Browser 273

Menu Bar—Tools

Recording Control Window

Select Recording Control Window... to launch the Recording Control window.

See “ Recording Control Window ” on page 197 for more information about using

the controls in this window.

Session Management

Select Session Management... to open the Session Management dialog. See

“ Session Management ” on page 164 for more information about using this dialog.

Thresholds

Select Thresholds... to launch the Threshold Editor. See “ Threshold Editor ” on page 408 for more information.

Change Password

Select Change Password... to open the Change Password dialog. See “ Changing a

Password ” on page 154 for more information about using this dialog.

User Management

Select User Management... to launch the User Management window. See “ User

Management ” on page 154 for details about using this window.

Note: This menu item is disabled if you do not have the required permissions.

Performance Diagnostics

Selecting the Performance Diagnostics menu item displays a submenu with one option: Spotlight

®

in Quest Central. This option is enabled if Quest Central is installed. When you select this option, the version of Spotlight

®

included with

Quest Central is launched.

Options

Selecting the Options... menu item launches the Edit Options dialog. See “ Edit

Options Dialog ” on page 247 for details about using this dialog.

274 PerformaSure: User’s Guide

Menu Bar—Windows

The Windows menu’s one static choice is Bring All To Front, which ensures that all open PerformaSure windows have a higher stacking order than non-

PerformaSure windows.

The other items in the Windows menu allow you to switch from one open Project window or from one open browser to another. In addition to Bring All To Front, the Windows menu will always contain at least two items: one for the Project window and one for this browser.

Menu Bar—Help

Help

The Help... menu item launches context-sensitive help for this browser.

About

The About... menu item opens a new window in which product information about PerformaSure is displayed.

Toolbar

The Request Time browser’s toolbar is located directly below the menu bar.

Figure 100

Figure 100 The toolbar in the Request Time browser

New Browser

The New Browser... button has two parts. Click on the left-hand side of this button to launch the New Browser dialog, from which you can select the type of

browser that you want and assign it a name; see “ New Browser ” on page 182 for

more information about the New Browser dialog. Click on the right-hand side of the New Browser... button to display a drop-down menu from which you can choose the type of browser that you want.

Add New Browser to Project

The Add New Browser to Project button is enabled if you have not yet added this browser to the Project. Click this button to add the browser to the

Request Time Browser 275

Project. A new Request Time browser icon will appear in the Browsers area of the

Project window.

Export Report

Click the Export Report button to begin the process of generating a print version of the browser suitable for inclusion in a report. When you select this option, a Save file chooser is launched so that you can supply a file name for the

report. See “ PerformaSure Reports ” on page 411 for a discussion of the reports

that PerformaSure can provide.

Properties

Click the Properties button to launch the Browser Properties dialog. This dialog allows you to rename the browser, provide a description of the problems that you have found by using this browser and its settings, and select whether you would like this browser to open automatically when you open the Project.

Performance Diagnostics

Clicking the Performance Diagnostics button displays a drop-down menu with one option: Spotlight

®

in Quest Central. This option is enabled if Quest

Central is installed. When you select this option, the version of Spotlight

® included with Quest Central is launched.

Link Browsers to Use Same Zone/Break Link Between Browsers

Every PerformaSure browser contains a button that allows you to toggle whether or not the Time Control panels of all existing and newly created browsers are linked. Clicking this button affects the browsers in the current Project only.

Click the Link Browsers to Use Same Zone button to link the browsers’

Time Control panels. When linked, the Zonar and (where applicable) the Sightline in each browser are in the same state as the browser in which the button was clicked. Using the Zonar or (where applicable) the Sightline in one browser will impact all other browsers as well. If a problem occurs during a specific interval spanned by the Zonar, linking the browsers can help you track this problem across different browsers.

Click the Break Link Between Browsers button to return the browsers’

Time Control panels to an unlinked state. This allows each browser’s Zonar and

Sightline to function independently.

276 PerformaSure: User’s Guide

Hide/Show Detail

The Hide/Show Detail button toggles the display of the Request Time browser’s detail pane.

Display By

The Display By drop-down menu contains two options: Tier and Component

Technology. See “ Display By ” on page 271 for more information.

Time Control Panel

The Time Control panel is located directly below the Request Time browser’s toolbar. This panel has the same controls in all PerformaSure browsers. See

“ Time Control Panel ” on page 253 for a detailed description of its controls.

Request Time Browser Control Pane—Summary

The following table describes the configuration controls and actions available from the control pane in All Requests mode.

Request Time Browser Control Pane—All Requests Mode

Control/Action

Show Response

Time for All

Requests

Tier

Type

Checkbox

Action

Default Value Description

Checked Toggles the display of aggregate response time data in the graph pane for all requests listed in the detail pane.

Enabled

Component

Technology

Server

View call tree of selected request

Action

Action

Action

Enabled

Enabled

Enabled

Switches the browser into Single Request Investigation mode.

Response time data broken down by tier is displayed in the graph pane for the request that you selected.

Switches the browser into Single Request Investigation mode.

Response time data broken down by component technology is displayed in the graph pane for the request that you selected.

Switches the browser into Single Request Investigation mode.

Response time data broken down by server is displayed in the graph pane for the request that you selected.

Launches a new Request Tree browser based on the request that is currently selected.

Request Time Browser 277

Request Time Browser Control Pane—All Requests Mode

Control/Action Type

View related metrics of selected request

Action

Default Value Description

Enabled Launches a new Metrics browser based on the metrics for the request that is currently selected.

The following table describes the features and actions available from the control pane in Single Request Investigation mode.

Request Time Browser Control Pane—Single Request Investigation Mode

Feature/Action

Current Drill Down

History

Next Drill Down

Type

Drill-down history/ actions

Actions

Default Value Description

N/A

Enabled

Enabled

Displays the drill-down history for the request that you are currently investigating. The entries for previous drilldown levels function like request investigation actions.

Lists the drill-down options that are currently available.

Click a drill-down option to display response time data in the graph pane broken down by that option. See

“ Next Drill Down ” on page 281 for more information.

Returns the browser to All Requests mode.

Choose another request

View call tree of selected request

View related metrics of selected request

Action

Action

Action

Enabled

Enabled

Launches a new Request Tree browser based on the request that you are currently investigating.

Launches a new Metrics browser based on the metrics for the request that you are currently investigating.

Request Time Browser Control Pane—Full Detail

The Request Time browser operates in two performance investigation modes: All

Requests mode and Single Request Investigation mode. In each of these modes, different configuration controls, features, and actions appear in the control pane.

The two sets of options available from this pane are described below.

278 PerformaSure: User’s Guide

Figure 101

Figure 101 The control pane in All Requests mode (left) and Single Request Investigation mode (right)

All Requests Mode

Show Response Time for All Requests

When the Show Response Time for All Requests checkbox is selected (its default setting), aggregate response time data is displayed in the graph pane for all requests listed in the detail pane. Deselect this checkbox if you do not want this data to be charted in the graph pane.

Figure 102

Figure 102 The aggregate response time of all requests charted in the graph pane

Request Time Browser 279

As shown in Figure 102, the chart segment for the overall response time of the

system is identified as Response Time in the graph pane.

Tip: Leave Show Response Time for All Requests checked to examine the request you selected in comparison to the overall response time of the system. Charting the aggregate response time of all requests provides you with a point of reference for your performance investigation.

Request Investigation

In All Requests mode, three request investigation actions are available in the control pane. Click the arrow icon or the action text to perform an action.

Tier

Select Tier to investigate response time by tier for the request that you selected.

Performing this action causes the browser to switch into Single Request Investigation mode and chart response time data broken down by tier in the graph pane. When you perform this action, the segments in the chart are grouped in terms of the following tiers:

Web server

Application server cluster(s)

Database

Component Technology

Select Component Technology to investigate response time by component technology for the request that you selected. Performing this action causes the browser to switch into Single Request Investigation mode and chart response time data broken down by component technology in the graph pane. When you perform this action, the segments in the chart are grouped by component

technology. See “ Component Technology Chart Segments ” on page 272 for a list

of and information about the component technology chart segments.

Server

Select Server to investigate response time by server for the request that you selected. Performing this action causes the browser to switch into Single Request

Investigation mode and chart response time data broken down by server in the graph pane. When you perform this action, the segments in the chart are grouped in terms of application servers.

280 PerformaSure: User’s Guide

Further Investigation

In All Requests mode, two actions are available in the control pane that allow you to continue your investigation in other PerformaSure browsers. Click the arrow icon or the action text to perform an action.

View call tree of selected request

Select View call tree of selected request to launch a new Request Tree browser based on the request that you selected in the detail pane.

View related metrics of selected request

Select View related metrics of selected request to launch a new Metrics browser based on the request that you selected in the detail pane.

Single Request Investigation Mode

Current Drill Down History

As shown in Figure 103, in Single Request Investigation mode, this section of the

control pane displays the drill-down history for the request that you are currently investigating, allowing you to keep track of the request investigation actions that you have performed. The entries for previous drill-down levels function like request investigation actions. Click the entry for a previously-selected action to

‘drill up’ a level. Click Request to cause the browser to return to All Requests mode.

Tip: Hover the cursor over the entry for a previous drill-down level to make a tooltip appear that displays the specific value for that level.

Figure 103

Figure 103 A drill-down history tooltip

Next Drill Down

The request investigation actions that are available from the current drill-down level are listed in the Next Drill Down section of the control pane. The request investigation actions that you can perform vary depending on the current drilldown level.

Request Time Browser 281

View by Component Technology

Select View By Component Technology to drill down and investigate response time by component technology for the request that you are currently analyzing.

When you select this option, response time data broken down by component technology is charted in the graph pane. At the Component Technology drill-down level, the segments in the chart are grouped by component technology. See

“ Component Technology Chart Segments ” on page 272 for a list of and

information about the component technology chart segments.

Note: This action is available from the Tier and Server drill-down levels.

View by Server

Select View by Server to drill down and investigate response time by server for the request that you are currently analyzing. When you select this option, response time data broken down by server will be charted in the graph pane. At the Server drill-down level, the segments in the chart are grouped in terms of application servers.

Note: This option is available from the Tier, Component Technology, and

Component drill-down levels.

View by Component

Select View by Component to drill down and investigate response time by component for the request that you are currently analyzing. Response time data for the selected component will be charted in the graph pane.

Note: This option is available from the Component Technology drill-down level.

Further Investigation

In Single Request Investigation mode, there are three Further Investigation actions available in the control pane: one action causes the browser to return to All

Requests mode, and the other two actions allow you to continue your investigation in other PerformaSure browsers. Click the arrow icon or the action text to perform an action.

Choose another request

Select Choose another request to cause the Request Time browser to switch back to All Requests mode.

282 PerformaSure: User’s Guide

View call tree of selected request

Select View call tree of selected request to launch a new Request Tree browser based on the request that you are currently investigating.

View related metrics of selected request

Select View related metrics of selected request to launch a new Metrics browser based on the request that you are currently investigating.

Request Time Browser Graph Pane—Summary

The following tables describe the controls and the context (right-click) menus available in the graph pane.

Request Time Browser Graph Pane

Control

Chart header

Type Default Value Description

Drop-down menu Enabled

Function Set chooser

Plot Type chooser

Drop-down menu

Drop-down menu

Enabled

Enabled

Sightline slider Slider Enabled

Legend entries Metric Indicators Enabled

Chart Type chooser

Drop-down menu

Edit Thresholds Button

Enabled

Enabled

Displays the name of the active response time metric. Click it to display a menu from which you can select a different metric.

Displays a menu from which you can select the function applied to the response time metrics charted in the graph pane.

Displays a menu from which you can select the plot type applied to the active response time metric.

Changes the position of the Sightline.

Clicking an Indicator changes the active response time metric.

See “ Using the Legend ” on page 285 for more information.

Displays a menu from which you can select the chart type.

Opens the Threshold Editor for the active response time metric.

See “ Threshold Editor ” on page 408 for more information.

Request Time Browser Graph Pane—Context Menus

Control

Function for Selected Metric

Plot Type for Selected Metric

Type

Drop-down menu

Description

Displays a menu from which you can select the function applied to the active response time metric.

Drop-down menu

Displays a menu from which you can select the plot type applied to the active response time metric.

Request Time Browser 283

Request Time Browser Graph Pane—Context Menus

Control

Copy

View Call Tree

Type

Menu item

Menu item

View Related Metrics Menu item

Description

Copies the active response time metric.

Launches a new Request Tree browser based on the request that is currently selected.

Launches a new Metrics browser based on the metrics for the request that is currently selected.

Request Time Browser Graph Pane—Full Detail

The Request Time browser’s graph pane includes several elements.

Figure 104

Figure 104 Elements in the Request Time browser’s graph pane in All Requests mode; the Chart Type is set to

Overlap and the Plot Type is set to Line.

Charts in the Graph Pane

In the Request Time browser graph pane, you can view a response time chart for every request that entered the instrumented system during the interval spanned by the Zonar. To view the chart for a request in the graph pane, click on the entry for that request in the detail pane.

284 PerformaSure: User’s Guide

In All Requests mode, the chart displays response time data for the request that you selected segmented by tier or component technology, depending on the option that you selected from the Display By drop-down menu (View > Display By or from the toolbar). When the Show Response Time for All Requests checkbox is checked in the control pane, the aggregate response time of all requests is also displayed in the chart. Displaying this data allows you to examine the request that you selected in comparison to the overall response time of all requests that entered the instrumented system during the interval spanned by the Zonar.

In Single Request Investigation mode, you can drill down into a single request, progressively breaking down response time into more detailed parts. You can drill down to investigate response time data for a request by tier, server, component technology, and component. A new chart is displayed at each drill-down level.

Tip: In both All Requests mode and Single Request Investigation mode, you can hold down the Shift key and drag the mouse between two points in the graph pane to cause the Zonar to zoom in to a smaller portion of the

Timeline. When you perform this action, the response time data displayed in the graph pane will be for the new interval spanned by the

Zonar.

Changing the Display Mode

In All Requests mode, you can change the display mode of the charts in the graph pane. When you change the display mode, response time data for the request that you selected is broken down and colored by tier or by component technology.

To change the display mode, select Tier or Component Technology from the

Display By drop-down menu (View > Display By or from the toolbar). See

“ Display By ” on page 271 for more information about these display options.

Using the Response Time Drop-Down Menu

The chart header displays the name of the response time metric that is currently selected in the chart. Click this header to display a drop-down menu from which you can select a new active metric.

Tip: Hover the cursor over the chart header to make a tooltip appear that displays the full name of the active response time metric.

Using the Legend

As shown in Figure 104, the graph pane legend contains a group of Metric

Indicators. Click a Metric Indicator to select a new active response time metric.

Request Time Browser 285

A dark square appears around the Metric Indicator that corresponds to the active metric.

Changing the Chart Type

The header for the Chart Type chooser displays the chart type that is currently selected. Click this header to display a drop-down menu from which you can select a new chart type. The options available in this menu are described below.

Default

When you select the Default chart, all response time metrics for the selected request are charted using a single y-axis.

Tip: Select the Default chart if you want to compare multiple response time metrics with similar ranges.

Overlap

When you select the Overlap chart, a separate y-axis is used to graph each response time metric for the selected request; a Metric Indicator appears next to the Chart Type chooser to indicate to which response time metric the current yaxis applies. Select a metric in the chart or click its corresponding Indicator in the legend to cause the range of values for that metric to be shown on the y-axis.

Tip: Select the Overlap chart when you want to compare the trend of two response time metrics with very different ranges.

286 PerformaSure: User’s Guide

Example: Two response time metrics are charted in the graph pane for the request that you chose to investigate. For the interval spanned by the Zonar, Response Time Metric A has a range of 2,500 to 8,500 milliseconds and Response Time Metric B has a range of 50 to 150 milliseconds. Because of the disparity between their ranges, displaying both metrics in a Default chart causes Response Time

Metric B to be shown as a nearly flat line near 0. If you use an

Overlap chart instead, Response Time Metric A can be charted with a

y-axis range of approximately 0 to 10 seconds and Response Time

Metric B can be charted with a y-axis range of approximately 0 to

200 milliseconds. The scale shown on the y-axis will thus correspond more closely to the values for each metric. As a result, Response Time Metric B can be charted a way that provides you with a better visual indication of its trend.

Stacked

When you select the Stacked chart, the response time metrics for the request that you selected are displayed as additive metrics and are charted using a single yaxis. In this type of chart, the broken line that extends horizontally from the y-axis and intersects the Sightline is aligned with the top (the sum) of the stacked metrics.

Tip: Select the Stacked chart when you want to compare the total of multiple response time metrics and to compare the relative breakdown of this total on a per-metric basis.

Changing the Function Set

Click the Function Set chooser icon to display a drop-down menu from which you can select the function applied to the response time metrics charted in the graph pane.

The options listed in this menu are the functions that exist for the active response time metric. When you select a new function using the Function Set chooser, however, this function is applied to all metrics in the chart.

Tip: Hover the cursor over the Function Set chooser icon to make a tooltip appear that displays the function currently applied to the active response time metric.

Request Time Browser 287

Note: To change the function applied to a single response time metric, rightclick the metric to cause a context menu to appear. You can then select a new function from the Function submenu.

Changing the Plot Type

Click the Plot Type chooser icon to display a drop-down menu from which you can select the plot type. When Default or Overlap is selected from the

Chart Type chooser, the options available in this menu are Line, Bar, and Area.

When Stacked is selected from the Chart Type chooser, the options available in this menu are Stacked Bar and Stacked Area. The plot type that you select is applied to all response time metrics in the chart.

Tip: Hover the cursor over the Plot Type chooser icon to make a tooltip appear that displays the plot type that is currently selected.

Edit Thresholds Button

Click the Edit Thresholds... button to launch the Threshold Editor for the active

response time metric. See “ Threshold Editor ” on page 408 for details about the

Threshold Editor. See “ Thresholds Browser FAQ ” on page 410 for information

about the availability of the Edit Thresholds button.

Tooltips in the Graph Pane

Indicator Tooltips

Hover the cursor over a Metric Indicator to cause a tooltip to appear in which the name of the corresponding response time metric and the function applied to that metric are displayed.

Figure 105

Figure 105 The tooltip for a Metric Indicator

Chart Tooltips

Hover the cursor over a data point in the chart to cause the x- and y-axis values charted at that point to appear in a tooltip. The tooltip will also include the

Metric Indicator for that metric.

288 PerformaSure: User’s Guide

Figure 106

Figure 106 The tooltip for a data point

Context Menus in the Graph Pane

You can right-click anywhere in the graph pane to make a context menu appear.

Function for Selected Metric

Click Function for Selected Metric to cause a submenu to appear from which you can select the function applied to the active response time metric.

Plot Type For Selected Metric

Click Plot Type for Selected Metric to cause a submenu to appear from which you can select the plot type applied to the active response time metric. When

Default or Overlap is selected from the Chart Type chooser, the options available in this menu are Line, Bar, and Area. When Stacked is selected from the Chart Type chooser, the options available in this menu are Stacked Bar and

Stacked Area.

Copy

Click Copy to copy the active response time metric, allowing you to paste it into a chart in the Metrics browser. You can also paste the metric name into another application, such as a spreadsheet.

View Call Tree

Click View Call Tree to launch a Request Tree browser based on the request that is selected in the detail pane.

View Related Metrics

Click View Related Metrics to launch a Metrics browser based on the metrics for the request that is selected in the detail pane.

Request Time Browser 289

Request Time Browser Detail Pane

The Request Time browser’s detail pane provides an explorer view of the requests that are charted in the graph pane. Information like statistics on incomplete requests, call counts, and exceptional exits are displayed in the detail pane in tabular form.

Tip: Selecting a row in the detail table and putting it in the operating system’s copy buffer allows for further processing. (Select the row in

Unix, or Ctrl-C in Windows.) After the row is copied, you can paste it into another application, such as a spreadsheet.

Figure 107

Figure 107 The detail pane in the Request Time browser

Detail Pane Columns

The columns in the detail pane are described below.

Figure 108

Figure 108 The column headers in the Request Time browser’s detail pane

Name

The Name column lists the names of the root requests that entered the instrumented system during the interval spanned by the Zonar. Each separate

HTTP request, JMS call, or RMI call is shown.

Tip: Hover the cursor over an entry in the Name column to display the full name of the root request.

Call Count

The Call Count column lists the number of times the request was completed during the interval spanned by the Zonar.

290 PerformaSure: User’s Guide

Avg Cumulative Time

The Avg Cumulative Time is the Total Cumulative Time divided by the Call Count. It is the average time spent by each sampled request in each container during the interval spanned by the Zonar. The Avg Cumulative Time is displayed in seconds.

Max Cumulative Time

The Max Cumulative Time column lists the longest time taken for a sampled request to complete during the interval spanned by the Zonar. The Max Cumulative

Time is displayed in seconds.

Total Cumulative Time

The Total Cumulative Time column lists the total time (in seconds) taken by all requests that completed during the interval spanned by the Zonar.

PerformaSure counts all requests, but it may not measure all requests that are handled by the system. If requests were sampled at less than 100% of the Nexus’

ability, Total Cumulative Time is an extrapolated value. See “ Sampling Tab ” on page 211 and “

Sampling Parameters ” on page 233 for more information about

setting the sampling rate in the Recording Settings dialog or using nexusctl.

Avg Exceptional Exits

The Avg Exceptional Exits column lists the average number times the request left the container due to an uncaught exception during the interval spanned by the

Zonar.

PerformaSure counts all requests, but it may not measure all requests that are handled by the system. However, PerformaSure does sample enough requests to be able to estimate how many times each container is used to process requests of a given type. If requests were sampled at less than 100% of the Nexus’ ability, the

number listed in the Avg Exceptional Exits column is an estimate. See “ Sampling

Tab

” on page 211 and “ Sampling Parameters ” on page 233 for more information

about setting the sampling rate in the Recording Settings dialog or using nexusctl.

Example: In a certain session the JDBC call count is 21234 and the number of JDBC exceptional exits is 12234. The large number of exceptions means that unnecessary time is being spent servicing them. Data validation before a database call is almost always more efficient than passing bad data and catching an exception.

Request Time Browser 291

Incomplete Requests (%)

The Incomplete Requests (%) column lists the percentage of incomplete service requests that occurred over the requests that completed during the interval spanned by the Zonar.

PerformaSure considers a request incomplete if some of the events that make up the request are unpaired and the request has remained in that state with no other events coming into the Nexus by the end of the session or for the duration of the

incomplete request timeout period. See “ Incomplete Request Timeout ” on page

209 and “ Session Parameters ” on page 232 for more information about setting the

incomplete request timeout in the Recording Settings dialog or using nexusctl.

Sampled Requests (%)

The Sampled Requests (%) column lists the percentage of service requests that were tracked using Tag and Follow during the interval spanned by the Zonar.

Bar Charts in the Detail Pane

Depending on the option that you selected from the Display By drop-down menu (View > Display By or from the toolbar), the bar charts in the Avg

Cumulative Time and Total Cumulative Time columns in the detail pane display request metrics segmented either by Tier or by Component Technology.

When the display mode is set to Tier, the segments of the bar charts are grouped by the following tiers:

Web server

Application Server Cluster(s)

Database

When the display mode is set to Component Technology, the segments of the

bar charts are grouped by component technology. See “ Component Technology

Chart Segments ” on page 272 for a list of and information about the component

technology chart segments.

Bar Chart Tooltips

The segments of the bar charts in the Avg Cumulative Time and Total Cumulative

Time columns correspond to the amount of time a request spent in each of the containers that had a part in handling the request.

Hover the cursor over a segment of one of the bar charts to make a tooltip appear that displays the percentage of the Avg Cumulative Time or Total Cumulative Time

292 PerformaSure: User’s Guide

spent by that request in a particular container and the number of times that object was called per request during the interval spanned by the Zonar.

Context Menus in the Detail Pane

You can right-click anywhere in the detail table to make a context menu appear.

The items in these menus are described below.

Figure 109

Figure 109 A context menu in the detail pane

Auto-Fit Column

Click Auto-Fit Column to resize the width of that column so that all values within the column are visible.

Auto-Fit All Columns

Click Auto-Fit All Columns to resize the width of all columns in the table so that all values within each column are visible.

Hide Column

Click Hide Column if you do not want the column on which you right-clicked to be displayed in the table.

Show/Hide Columns...

You can choose whether or not to display certain metrics in the detail pane. Select

Show/Hide Columns... to open a dialog that contains a group of checkboxes.

Each checkbox controls the display of the associated metric in a column in the detail pane.

Hide Bar Chart

Click Hide Bar Chart if you do not want bar charts displayed in that column.

Request Time Browser 293

Show/Hide Bar Charts...

You can choose whether or not to display certain bar charts in the detail pane columns. Select Show/Hide Bar Charts to open a dialog that contains a group of checkboxes. Each checkbox controls the display of the associated bar chart.

View Call Tree

Select View Call Tree to launch a new Request Tree browser based on the request that is currently selected. This item is disabled when you right-click on a column header.

View Related Metrics

Select View Related Metrics to launch a new Metrics browser based on the metrics for the request that is currently selected. This item is disabled when you right-click on a column header.

Request Time Browser FAQ

How can I keep track of the exact value of previous drill-down levels when drilling down several levels into a request? Is there a way to display these values in the browser?

You can hover the cursor over the entry for a previous drill-down level to make a tooltip appear that displays the specific value for that level.

Figure 110

Figure 110 The tooltip for a previous drill-down level

294 PerformaSure: User’s Guide

The following topics are covered in this chapter:

SQL Browser

Menus and Toolbar—Summary

Menus and Toolbar—Full Detail

Time Control Panel

SQL Browser Control Pane—Summary

SQL Browser Control Pane—Full Detail

SQL Browser Graph Pane—Summary

SQL Browser Graph Pane—Full Detail

Charts in the Graph Pane

Tooltips in the Graph Pane

Context Menus in the Graph Pane

SQL Browser Detail Pane

Detail Pane Columns

Bar Charts in the Detail Pane

Context Menus in the Detail Pane

SQL Browser FAQ

Chapter 14

SQL Browser

SQL Browser

Many performance problems are related to database accesses. In order to diagnose database performance problems effectively, you will need to view detailed information about the SQL statements that are being used in your application.

295

The SQL browser provides you with performance information for SQL statements aggregated across multiple requests. This provides you with a highlevel view of the SQL statements used in your application, allowing you to identify and diagnose database problems more easily and with greater accuracy.

Figure 111

Figure 111 The SQL browser

296 PerformaSure: User’s Guide

Menus and Toolbar—Summary

Menu Bar

The SQL browser’s menu bar is located along the top of the browser window. The following tables describe the controls available from the different menus in the menu bar.

SQL Browser Menu Bar—Browser Menu

Control

New Browser

Add New

Browser To

Project

Export Report

Type Default Value Description

Menu item Enabled Opens the New Browser dialog. Use this dialog to choose the type of browser you want to launch.

Menu item Enabled Adds the browser to your PerformaSure Project. A SQL browser icon will appear in the Browsers area of the Project window.

Menu item Enabled

Properties

Close

Exit

PerformaSure

Menu item Enabled

Menu item Enabled

Menu item Enabled

Begins the process of generating a print version of the browser suitable for inclusion in a report.

Launches the Browser Properties dialog. See “ Properties ” on page

300 for details.

Closes the browser.

Closes all open Projects and browsers and shuts down the

Workstation.

SQL Browser Menu Bar—View Menu

Control Type

Auto-Fit All Columns Menu item

Default Value

Enabled

Show/Hide Columns Menu item

Show/Hide Bar

Charts

Show Filter Bar

Menu item

Enabled

Enabled

Menu item with checkbox

Selected

Description

Resizes the width of all columns in the table so that all values within each column are visible.

Opens a dialog containing a group of checkboxes. Select or deselect these checkboxes to toggle the display of certain metrics in the detail pane.

Opens a dialog containing a group of checkboxes. Select or deselect these checkboxes to toggle the display of certain bar charts in the detail pane columns.

Toggles the display of the Filter Bar at the bottom of the

graph pane. See “ Show Filter Bar ” on page 301 for more

information about using the controls in the Filter Bar.

SQL Browser 297

SQL Browser Menu Bar—Tools Menu

Control Type

Recording Control Window Menu item

Session Management Menu item

Thresholds

Change Password

User Management

Menu item

Menu item

Menu item

Performance Diagnostics Menu item

Options Menu item

Default Value

Enabled

Enabled

Enabled

Enabled

Disabled

N/A

Enabled

Description

Launches the Recording Control window.

Opens the Session Management dialog.

Launches the Threshold Editor.

Opens the Change Password dialog.

Launches the User Management window. This menu item is enabled if you have the required permissions.

Displays a submenu with one option. See

“ Performance Diagnostics ” on page 302 for more

information.

Launches the Edit Options dialog.

SQL Browser Menu Bar—Windows Menu

Control

Bring All To Front

[Switch to a Project window]

[Switch to a browser]

Type Default Value Description

Menu item Enabled

Menu item Enabled

Menu item Enabled

Ensures that all open PerformaSure windows have a higher stacking order than non-PerformaSure windows.

Switches to the Project window that you select. Each menu item of this type will display the name of an open Project.

Switches to the open browser that you select. Each menu item of this type will display the name of an open

PerformaSure browser.

SQL Browser Menu Bar—Help Menu

Control

Help

About

Type Default Value Description

Menu item Enabled

Menu item Enabled

Launches context-sensitive help for this browser.

Opens a new window that displays product information about PerformaSure.

298 PerformaSure: User’s Guide

Toolbar

Under the SQL browser’s menu bar is a toolbar with controls for opening new

PerformaSure browsers, launching Spotlight

®

and Quest database tools, controlling the view in the SQL browser’s graph and detail panes, and performing other actions like exporting a report. The following table describes the controls available from the toolbar.

SQL Browser Toolbar

Control

New Browser

Type

Button and drop-down menu

Default Value

Enabled

Add New Browser To

Project

Export Report

Button

Button

Properties

Performance

Diagnostics

Get Live Updates

Link Browsers To Use

Same Zone/Break

Link Between

Browsers

Button

Show Detail/Hide

Detail

Button

Button and drop-down menu

Check box

Update Browser Data Button

Button

Enabled

Enabled

Enabled

N/A

On

N/A

Enabled

Enabled

Description

Clicking on the left-hand side of this button launches the

New Browser dialog. See “ New Browser ” on page 182

for details. Clicking on the right-hand displays a dropdown menu from which you can choose the type of new

browser that you want to open. See “ New Browser ” on page 303 for details.

Adds the browser to the Project. This button is disabled if you have already added the browser to the Project.

Begins the process of generating a print version of the browser suitable for inclusion in a report.

Launches the Browser Properties dialog. See

“ Properties ” on page 304 for details.

Displays a drop-down menu with one option. See

“ Performance Diagnostics ” on page 304 for more

information.

Launches an automatic data collection update and

refreshes the display of data in a browser. See “ Live

Data Updates ” on page 259 for more details.

Forces a live data collection update. See “ Live Data

Updates ” on page 259 for more details.

Toggles whether or not the Time Control panels of all existing and newly created browsers are linked. Clicking this button affects the browsers in the current Project

only. See “ Link Browsers to Use Same Zone/Break Link

Between Browsers ” on page 304 for more information.

Toggles the display of the detail pane.

SQL Browser 299

Menus and Toolbar—Full Detail

Menu Bar—Browser Menu

New Browser

Choose New Browser... to launch the New Browser dialog, which allows you to select and open a new browser of a specific type. The new browser is not automatically added to the Project or listed in the Project window.

Keyboard accelerator: Ctrl-B.

Add New Browser To Project

The Add New Browser To Project menu item is enabled if you have not yet added this browser to the Project. Click this item to add the browser to the

Project. A new SQL browser icon will appear in the Browsers area of the Project window.

Keyboard accelerator: Ctrl-A.

Export Report

Select Export Report... to begin the process of generating a print version of the browser suitable for inclusion in a report. When you select this option, a Save file chooser is launched so that you can supply a file name for the report. See

“ PerformaSure Reports ” on page 411 for a discussion of the reports that

PerformaSure can provide.

Keyboard accelerator: Ctrl-R.

Properties

Choose Properties... to launch the Browser Properties dialog. This dialog allows you to rename the browser, provide a description of the problems that you have found by using this browser and its settings, and select whether you would like this browser to open automatically when you open the Project.

Close

Select the Close menu item to close the browser but leave the Project open.

Keyboard accelerator: Ctrl-W.

Exit PerformaSure

Choose Exit PerformaSure to close all open Projects and browsers and shut down the Workstation. When you select this menu item, you may be prompted to

300 PerformaSure: User’s Guide

save the Projects that are open or add new browsers to these Projects before exiting PerformaSure.

Menu Bar—View

Auto-Fit All Columns

Click Auto-Fit All Columns to resize the width of all columns in the table so that all values within each column are visible.

Show/Hide Columns

You can choose whether or not to display certain metrics in the detail pane. Select

Show/Hide Columns... to open a dialog that contains a group of checkboxes.

Each checkbox controls the display of the associated metric in a column in the detail pane.

Show/Hide Bar Charts

You can choose whether or not to display certain bar charts in the detail pane columns. Select Show/Hide Bar Charts... to open a dialog that contains a group of checkboxes. Each checkbox controls the display of the associated bar chart.

Show Filter Bar

Select or deselect the checkbox associated with the menu item Show Filter Bar to toggle the display of the SQL browser’s Filter Statements bar at the bottom of the graph pane.

Using the SQL browser’s Filter Statements bar

You can enter a literal string or a regular expression in the Filter Statements bar’s

Filter Statements text field. When you click the Apply button, the string or expression that you entered is matched against the SQL statements listed in the detail pane; only the statements that match are displayed in the graph pane and in the detail pane. By default, the Filter Statements text field contains an empty

literal string so that all statements are selected. See “ Appendix D—Regular

Expressions ” on page 489 for more information about using regular expressions.

Tip: If you enter a regular expression in the Filter Statements text field, ensure that the Regular Expression checkbox is selected before you click Apply.

SQL Browser 301

Menu Bar—Tools

Recording Control Window

Select Recording Control Window... to launch the Recording Control window.

See “ Recording Control Window ” on page 197 for more information about using

the controls in this window.

Session Management

Select Session Management... to open the Session Management dialog. See

“ Session Management ” on page 164 for more information about using this dialog.

Thresholds

Select Thresholds... to launch the Threshold Editor. See “ Threshold Editor ” on page 408 for more information.

Change Password

Select Change Password... to open the Change Password dialog. See “ Changing a

Password ” on page 154 for more information about using this dialog.

User Management

Select User Management... to launch the User Management window. See “ User

Management ” on page 154 for details about using this window.

Note: This item is disabled if you do not have the required permissions.

Performance Diagnostics

Selecting the Performance Diagnostics menu item displays a submenu with one option: Spotlight

®

in Quest Central. This option is enabled if Quest Central is installed. When you select this option, the version of Spotlight

®

included with

Quest Central is launched.

Options

Selecting the Options... menu item launches the Edit Options dialog. See “ Edit

Options Dialog ” on page 247 for details about using this dialog.

302 PerformaSure: User’s Guide

Menu Bar—Windows

The Windows menu’s one static choice is Bring All To Front, which ensures that all open PerformaSure windows have a higher stacking order than non-

PerformaSure windows.

The other items in the Windows menu allow you to switch from one open Project window or from one open browser to another. In addition to Bring All To Front, the Windows menu will always contain at least two items: one for the Project window and one for this browser.

Menu Bar—Help

Help

The Help... menu item launches context-sensitive help for this browser.

About

The About... menu item opens a new window in which product information about PerformaSure is displayed.

Toolbar

The SQL browser’s toolbar is located directly below the menu bar.

Figure 112

Figure 112 The toolbar in the SQL browser

New Browser

The New Browser... button has two parts. Click on the left-hand side of this button to launch the New Browser dialog, from which you can select the type of

browser that you want and assign it a name; see “ New Browser ” on page 182 for

more information about the New Browser dialog. Click on the right-hand side of the New Browser... button to display a drop-down menu from which you can choose the type of browser that you want.

Add New Browser to Project

The Add New Browser to Project button is enabled if you have not yet added this browser to the Project. Click this button to add the browser to the

SQL Browser 303

Project. A new SQL browser icon will appear in the Browsers area of the Project window.

Export Report

Click the Export Report button to begin the process of generating a print version of the browser suitable for inclusion in a report. When you select this option, a Save file chooser is launched so that you can supply a file name for the

report. See “ PerformaSure Reports ” on page 411 for a discussion of the reports

that PerformaSure can provide.

Properties

Click the Properties button to launch the Browser Properties dialog. This dialog allows you to rename the browser, provide a description of the problems that you have found by using this browser and its settings, and select whether you would like this browser to open automatically when you open the Project.

Performance Diagnostics

Clicking the Performance Diagnostics button displays a drop-down menu with one option: Spotlight

®

in Quest Central. This option is enabled if Quest

Central is installed. When you select this option, the version of Spotlight

® included with Quest Central is launched.

Link Browsers to Use Same Zone/Break Link Between Browsers

Every PerformaSure browser contains a button that allows you to toggle whether or not the Time Control panels of all existing and newly created browsers are linked. Clicking this button affects the browsers in the current Project only.

Click the Link Browsers to Use Same Zone button to link the browsers’

Time Control panels. When linked, the Zonar and (where applicable) the Sightline in each browser are in the same state as the browser in which the button was clicked. Using the Zonar or (where applicable) the Sightline in one browser will impact all other browsers as well. If a problem occurs during a specific interval spanned by the Zonar, linking the browsers can help you track this problem across different browsers.

Click the Break Link Between Browsers button to return the browsers’

Time Control panels to an unlinked state. This allows each browser’s Zonar and

Sightline to function independently.

304 PerformaSure: User’s Guide

Hide/Show Detail

The Hide/Show Detail button toggles the display of the SQL browser’s detail pane.

Time Control Panel

The Time Control panel is located directly below the SQL browser’s toolbar. This

panel has the same controls in all PerformaSure browsers. See “ Time Control

Panel ” on page 253 for a detailed description of its controls.

SQL Browser Control Pane—Summary

The following table describes the configuration controls and actions available from the control pane.

SQL Browser Control Pane

Control/Action

Show Response

Time for All

Statements

Prepare

Type

Checkbox

Checkbox

Default Value Description

Checked Controls whether aggregate response time data is displayed in the graph pane for all SQL statements listed in the detail pane.

Checked

Execute

Retrieve

Checkbox

Checkbox

View call tree of related request

View related metrics of selected statement

Action

Action

Checked

Checked

Enabled

Enabled

Controls whether response time data for the Prepare portion of the selected SQL statement is displayed in the graph pane.

Controls whether response time data for the Execute portion of the selected SQL statement is displayed in the graph pane.

Controls whether response time data for the Retrieve portion of the selected SQL statement is displayed in the graph pane.

Launches a new Request Tree browser based on the request related to the SQL statement that you selected.

Launches a new Metrics browser in which metrics associated with the selected SQL statement are graphed.

SQL Browser 305

SQL Browser Control Pane—Full Detail

Components in the Control Pane

The SQL browser’s control pane contains controls for configuring the display of response time data in the graph pane and actions that you can take to continue your performance investigation in other PerformaSure browsers.

Figure 113

Figure 113 The SQL browser’s control pane

Show Response Time For All Statements

When the Show Response Time for All Statements checkbox is selected (its default setting), aggregate response time data is displayed in the graph pane for all

SQL statements listed in the detail pane; the chart segment for this data is identified as Total Response Time in the graph pane.

Figure 114

Figure 114 The aggregate response time of all SQL statements charted in the graph pane

306 PerformaSure: User’s Guide

Charting the Total Response Time provides you with a point of reference for your performance investigation by allowing you to examine the response time metrics for a particular statement in comparison to the overall response time of all SQL statements.

Example: You may want to deselect Show Response Time for All

Statements if the range of values for the Total Response Time is very different from the ranges for the response time metrics for the statement that you selected; if the metrics for this statement have similar ranges; and if you no longer need to compare these metrics to the Total Response Time. If you deselect this checkbox and select Default from the Chart Type chooser, all response time metrics for this statement will be charted using the same yaxis and the scale shown on the y-axis may correspond more closely to the range for these metrics, thus providing you with a better visual indication of each metric’s trend.

See “ Changing the Chart Type ” on page 310 for more

information about the chart types available in the graph pane.

SQL Statement Investigation

When you select a SQL statement listed in the detail pane, response time data broken down by operation is charted in the graph pane for that statement. The checkboxes in the SQL Statement Investigation area control the display of response time data for the SQL operations charted in the graph pane. All three options

(Prepare, Execute, and Retrieve) are selected by default.

Further Investigation

Two actions are available that allow you to continue your investigation in other

PerformaSure browsers. Click the arrow icon or the action text to perform an action.

View call tree of related request

Select View call tree of related request to launch a new Request Tree browser based on the request related to the SQL statement that you selected in the detail pane.

View related metrics of selected statement

Select View related metrics of selected statement to launch a new Metrics browser in which metrics associated with the selected SQL statement are graphed.

SQL Browser 307

SQL Browser Graph Pane—Summary

The following tables describe the controls and the context (right-click) menus available in the graph pane.

SQL Browser Graph Pane

Control

Chart header

Type Default Value Description

Drop-down menu Enabled

Function Set chooser

Drop-down menu Enabled

Plot Type chooser

Sightline slider

Drop-down menu Enabled

Slider Enabled

Legend entries Metric Indicators Enabled

Chart Type chooser

Drop-down menu

Edit Thresholds Button

Enabled

Enabled

Displays the name of the active SQL response time metric. Click it to display a menu from which you can select a different metric.

Displays a menu from which you can select the function applied to the SQL response time metrics charted in the graph pane.

Displays a menu from which you can select the plot type applied to the active SQL response time metric.

Changes the position of the Sightline.

Clicking an Indicator changes the active SQL response time

metric. See “ Using the Legend ” on page 310 for more

information.

Displays a menu from which you can select the chart type.

Opens the Threshold Editor for the active SQL response time metric.

SQL Browser Graph Pane—Context Menus

Control

Function for Selected Metric

Plot Type for Selected Metric

Copy

View Call Tree

View Related Metrics

Type

Drop-down menu

Drop-down menu

Menu item

Menu item

Menu item

Description

Displays a menu from which you can select the function applied to the active SQL response time metric.

Displays a menu from which you can select the plot type applied to the active SQL response time metric.

Copies the active SQL response time metric.

Launches a new Request Tree browser based on the statement that is currently selected.

Launches a new Metrics browser based on the metrics for the statement that is currently selected.

308 PerformaSure: User’s Guide

SQL Browser Graph Pane—Full Detail

The SQL browser’s graph pane includes several elements.

Figure 115

Figure 115 Elements in the SQL browser’s graph pane; the Chart Type is set to Overlap and the Plot Type is set to

Line.

Charts in the Graph Pane

Response time metrics for the selected statement are charted in the graph pane. If the Show Response Time for All Statements checkbox is checked, aggregate response time data for all SQL statements listed in the detail pane is displayed as well.

Tip: Hold down the Shift key and drag the mouse between two points in the graph pane to cause the Zonar to zoom in to a smaller portion of the

Timeline. When you perform this action, the SQL response time data displayed in the graph pane will be for the new interval spanned by the

Zonar.

SQL Browser 309

Using the Total Response Time Drop-Down Menu

The chart header displays the name of the SQL response time metric that is currently selected in the chart. Click this header to display a drop-down menu from which you can select a new active metric.

Tip: Hover the cursor over the chart header to make a tooltip appear that displays the full name of the active SQL response time metric.

Using the Legend

As shown in Figure 115, the graph pane legend includes a group of Metric

Indicators. Click a Metric Indicator to select a new active SQL response time metric. A black square appears around the Metric Indicator that corresponds to the active metric.

Changing the Chart Type

The header for the Chart Type chooser displays the chart type that is currently selected. Click this header to display a drop-down menu from which you can select a new chart type. The options available in this menu are described below.

Default

When you select the Default chart, all SQL response time metrics are graphed using a single y-axis.

Tip: Select the Default chart if you want to compare multiple SQL response time metrics with similar ranges.

Overlap

When you select the Overlap chart, a separate y-axis is used to graph each SQL response time metric; a Metric Indicator appears next to the Chart Type chooser to indicate to which response time metric the current values on the y-axis apply. Select a metric in the chart or click its corresponding Indicator in the legend to cause the range of values for that metric to be shown on the y-axis.

Tip: Select the Overlap chart when you want to compare the trend of two

SQL response time metrics with very different ranges.

310 PerformaSure: User’s Guide

Example: Two response time metrics are charted in the graph pane for the

SQL statement that you chose to investigate. As a point of comparison, you also decide to chart the aggregate response time for all SQL statements listed in the detail pane. For the interval spanned by the Zonar, Response Time Metric A (Prepare) has a range of 0 to 65 milliseconds, Response Time Metric B (Execute) has a range of 30 to 75 milliseconds, and the Total Response Time for all statements has a range of 500 to 3500 milliseconds. Because of the disparity between the first two metrics’ ranges and range of the aggregate response time metric, displaying all three metrics in a Default chart causes Metric A (Prepare) and Metric B (Execute) to be shown as nearly flat lines near 0. If you use an Overlap chart instead, Metric A (Prepare) can be charted with a y-axis range of 0 to 70 milliseconds, Metric B (Execute) can be charted with a y-axis range of approximately 20 to 80 milliseconds and the Total

Response Time can be charted with a y-axis range of approximately

0 to 4 seconds. The scale shown on the y-axis will thus correspond more closely to the values for each metric. As a result, Metric A (Prepare) and Metric B (Execute) can be charted a way that provides you with a better visual indication of each metric’s trend.

Stacked

When you select the Stacked chart, the response time metrics for the SQL statement that you selected are displayed as additive metrics and are charted using a single y-axis. In this type of chart, the broken line that extends horizontally from the y-axis and intersects the Sightline is aligned with the top (the sum) of the stacked metrics.

Tip: Select the Stacked chart when you want to view the total of multiple response time metrics and examine the breakdown of this total on a per-metric basis.

SQL Browser 311

Changing the Function Set

Click the Function Set chooser icon to make a drop-down menu appear that displays the function applied to the SQL response time metrics charted in the graph pane. This menu lists one option: Value.

Tip: Hover the cursor over the Function Set chooser icon to make a tooltip appear that displays the function applied to the SQL response time metrics.

Changing the Plot Type

Click the Plot Type chooser icon to display a drop-down menu from which you can select the plot type. When Default or Overlap is selected from the

Chart Type chooser, the options available in this menu are Line, Bar, and Area.

When Stacked is selected from the Chart Type chooser, the options available in this menu are Stacked Bar and Stacked Area. The plot type that you select is applied to all SQL response time metrics in the chart.

Tip: Hover the cursor over the Plot Type chooser icon to make a tooltip appear that displays the plot type that is currently selected.

Edit Thresholds Button

Click the Edit Thresholds... button to launch the Threshold Editor for the active

SQL response time metric. See “ Threshold Editor ” on page 408 for details about

the Threshold Editor. See “ Thresholds Browser FAQ ” on page 410 for information

about the availability of the Edit Thresholds button.

Tooltips in the Graph Pane

Indicator Tooltips

Hover the cursor over a Metric Indicator to cause a tooltip to appear in which the name of the corresponding SQL response time metric and the function applied to that metric are displayed.

312 PerformaSure: User’s Guide

Figure 116

Figure 116 The tooltip for a Metric Indicator

Chart Tooltips

Hover the cursor over a data point in the chart to cause the x- and y-axis values charted at that point to appear in a tooltip. The tooltip will also include the

Metric Indicator for that metric.

Figure 117

Figure 117 The tooltip for a data point

Context Menus in the Graph Pane

You can right-click anywhere in the graph pane to make a context menu appear.

Function for Selected Metric

Click Function for Selected Metric to cause a submenu to appear from which you can select the function applied to the active SQL response time metric.

Plot Type For Selected Metric

Select Plot Type for Selected Metric to cause a submenu to appear from which you can select the plot type applied to the active SQL response time metric.

When Default or Overlap is selected from the Chart Type chooser, the options available in this menu are Line, Bar, and Area. When Stacked is selected from the Chart Type chooser, the options available in this menu are Stacked Bar and

Stacked Area.

Copy

Click Copy to copy the active SQL response time metric, allowing you to paste it into a chart in the Metrics browser. You can also paste the metric name into another application, such as a spreadsheet.

SQL Browser 313

View Call Tree

Click View Call Tree to launch a new Request Tree browser based on the request related to the selected SQL statement.

View Related Metrics

Click View Related Metrics to launch a new Metrics browser in which metrics associated with the selected SQL statement are graphed.

SQL Browser Detail Pane

The SQL browser’s detail pane provides an explorer view of the statements that are charted in the graph pane. Information is displayed in the detail pane in tabular form.

Tip: Selecting a row in the detail table and putting it in the operating system’s copy buffer allows for further processing. (Select the row in

Unix, or Ctrl-C in Windows.) After the row is copied, you can paste it into another application, such as a spreadsheet.

Figure 118

Figure 118 The detail pane in the SQL browser

Detail Pane Columns

The columns in the detail pane are described below.

Figure 119

Figure 119 The column headers in the SQL browser’s detail pane

314 PerformaSure: User’s Guide

SQL Statement

The SQL Statement column lists the SQL statements used in your application.

Tip: Right-click the entry for a SQL statement and select Show SQL

Statement from the context menu that appears to display the full statement in a dialog.

Execute Count

The Execute Count column lists the number of times the SQL statement was executed during the interval spanned by the Zonar. The Execute Count does not include prepare or retrieve call counts.

Max Execute Time

The Max Execute Time column lists the longest execute time of the SQL statement during the interval spanned by the Zonar. The Max Execute Time is displayed in seconds per execution.

Avg Response Time

The Avg Response Time is the Total Response Time divided by the Execute Count. It is the average response time of the SQL statement during the interval spanned by the Zonar. The Avg Response Time is displayed in seconds per execution.

Total Response Time

The Total Response Time is the aggregate of all prepare, execute, and retrieval times of the SQL statement during the interval spanned by the Zonar. The Total Response

Time is displayed in seconds.

Bar Charts in the Detail Pane

The bar charts in the Avg Response Time and Total Response Time columns in the detail pane display response time metrics segmented by execution stage (Prepare,

Execute, and Retrieve).

Bar Chart Tooltips

The segments of the bar charts in the Avg Response Time and Total Response Time columns correspond to the amount of time spent in a particular operation.

SQL Browser 315

Hover the cursor over a segment of one of the bar charts to make a tooltip appear that displays the percentage of the Avg Response Time or Total Response Time spent in the corresponding operation.

Figure 120

Figure 120 A tooltip in the detail pane

Context Menus in the Detail Pane

You can right-click anywhere in the detail table to make a context menu appear.

The items in this menu are described below.

Figure 121

Figure 121 A context menu in the detail pane

Auto-Fit Column

Click Auto-Fit Column to resize the width of the column on which you rightclicked so that all values within the column are visible.

Auto-Fit All Columns

Click Auto-Fit All Columns to resize the width of all columns in the table so that all values within each column are visible.

Hide Column

Click Hide Column if you do not want the column on which you right-clicked to be displayed in the table.

316 PerformaSure: User’s Guide

Show/Hide Columns

You can choose whether or not to display certain metrics in the detail pane. Select

Show/Hide Columns... to open a dialog that contains a group of checkboxes.

Each checkbox controls the display of the associated metric in a column in the detail pane.

Hide Bar Chart

Click Hide Bar Chart if you do not want bar charts displayed in that column.

Show/Hide Bar Charts

You can choose whether or not to display certain bar charts in the detail pane columns. Select Show/Hide Bar Charts... to open a dialog that contains a group of checkboxes. Each checkbox controls the display of the associated bar chart.

Show SQL Statement

Select Show SQL Statement to open a dialog in which the full SQL statement is displayed.

View Call Tree

Select View Call Tree to launch a new Request Tree browser based on the request related to the SQL statement that is currently selected. This item is disabled when you right-click on a column header.

View Related Metrics

Select View Related Metrics to launch a new Metrics browser in which metrics related to the selected SQL statement are graphed. This item is disabled when you right-click on a column header.

Performance Diagnostics

The menu item Performance Diagnostics is enabled when you click on the entry for a SQL statement in the detail table. Selecting the Performance

Diagnostics menu item displays a submenu with one option: Spotlight

®

in

Quest Central. This option is enabled if Quest Central is installed. When you select this option, the version of Spotlight

®

included with Quest Central is launched.

SQL Browser 317

SQL Browser FAQ

SQL statements are sometimes truncated in the SQL Statement column in the detail pane. Is there a way of displaying the full statement without adjusting the size of the columns in the detail pane?

You can display the full SQL statement in a dialog by right-clicking the entry for that statement in the detail table and selecting Show SQL Statement from the context menu that appears.

318 PerformaSure: User’s Guide

Chapter 15

Request Tree Browser

The following topics are covered in this chapter:

Request Tree Browser

Menus and Toolbar—Summary

Menus and Toolbar—Full Detail

Time Control Panel

Request Tree Browser Graph Pane—Summary

Request Tree Browser Graph Pane—Full Detail

Request Trees

Request Tree Nodes

Request Tree Tooltips

Context Menus in the Graph Pane

Zooming the Request Tree

Request Tree Browser Detail Pane

Detail Pane Columns

Creating a JProbe Launcher File

Request Tree Browser FAQ

Request Tree Browser

The Request Tree browser shows a graphical representation of a request from its invocation as it enters the system and progresses through the various method and database calls. As the request progresses, it may call one or more Servlets, which in turn call one or more EJBs, and so on, until the request is complete. You can choose to display request trees with component-, class-, or method-level detail.

319

One of the purposes of the Request Tree browser is to help you find the critical path within a request: the one taking the most time. Requests are sorted alphabetically, with the most expensive request in focus. The call tree for each request is sorted as well. Time-consuming paths are drawn above those that take less time. Note that the way the tree is sorted is dependent on which metric is chosen. Choosing a new metric does not cause the tree to be resorted immediately since this operation usually necessitates redrawing the tree, which you might not want to do.

The window consists of a menu bar, a toolbar, a Time Control panel, a Request Tree

graph pane containing a call tree, and a Request Tree detail pane containing a table of numerical values for the metrics that have been collected.

Figure 122

Figure 122 The Request Tree browser

Saving Browser Settings

Almost all aspects of the Request Tree browser that are user-configurable (including detail table column visibility and width) are saved to and restored from the

Project file as part of the browser’s state. If you make changes to any of these aspects, you will be asked if you wish to save the Project when you close it.

320 PerformaSure: User’s Guide

Menus and Toolbar—Summary

Menu Bar

The Request Tree browser’s menu bar is located along the top of the browser window. The following tables describe the controls available from the different menus in the menu bar.

Request Tree Browser Menu Bar—Browser Menu

Control

New Browser

Add New Browser

To Project

Export Report

Export JProbe

Launcher File

Type Default Value Description

Menu item Enabled Opens the New Browser dialog. Use this dialog to choose the type of browser you want to launch.

Menu item

Menu item

Menu item

Enabled

Enabled

Disabled

Adds the browser to your PerformaSure Project. A Request Tree browser icon will appear in the Browsers area of the Project window.

This menu item is disabled if you have already added the browser to the Project.

Begins the process of generating a print version of the browser suitable for inclusion in a report.

Creates and exports a JProbe launcher file that you can use to run

JProbe Profiler. Choose this option after selecting expensive nodes in

the request tree. See “ Export JProbe Launcher File ” on page 325 for

more information.

Properties

Close

Exit PerformaSure

Menu item Enabled

Menu item

Menu item

Enabled

Enabled

Launches the Browser Properties dialog. See “ Properties ” on page 326

for details.

Closes the browser.

Closes all open Projects and browsers and shuts down the

Workstation.

Request Tree Browser Menu Bar—View Menu

Control

Display By

Type

Menu item

Default Value

Tier

FastFind Menu item Enabled

Description

Displays a submenu from which you can select either Tier or

Component Technology. Selecting one of these options colors the tree nodes’ Identifier bars accordingly.

Exposes the n most expensive nodes in the request tree

(based on the active metric) and scrolls the most expensive node into view.

Request Tree Browser 321

Request Tree Browser Menu Bar—View Menu

Control

Sort Tree

Metric Display

Active Metric

Bundling Mode

Detail Table Mode

Show Panner

Auto-Fit All Columns

Show Filter Bar

Type

Menu item

Menu item

Menu item

Menu item

Menu item

Menu item with checkbox

Show/Hide Columns Menu item

Menu item

Menu item with checkbox

Default Value

Enabled

Per Request

Avg Cumulative

Time

Component

List

Not selected

Enabled

Enabled

Selected

Description

Redraws the request tree after a new active metric has been

selected. See “ Sort Tree ” on page 328 for more information.

Displays a submenu from which you can select either Per

Request or Per Call. Select one of these options to cause either request averages or call averages to be displayed in tooltips and in the detail pane.

Displays a list of metrics in a submenu. Select one of these

options to recolor the request tree accordingly. See “ Active

Metric ” on page 328 for details.

Displays a submenu from which you can select Component,

Class, or Method. Select either Class or Method to display a

more detailed request tree. See “ Bundling Mode ” on page 331

for more information.

Displays a submenu from which you can select either List or

Tree. Select one of these options to change how the metrics in the detail pane are displayed.

Toggles the display of the panner window. Use the panner to scroll through the graph pane more easily.

Opens a dialog containing a group of checkboxes. Select or deselect these checkboxes to toggle the display of metrics and Agent information in the detail pane.

Resizes the width of all columns in the table so that all values within each column are visible.

Toggles the display of the Filter Bar at the bottom of the graph

pane. See “ Show Filter Bar ” on page 333 for more information

about using the controls in the Filter Bar.

Request Tree Browser Menu Bar—Tools Menu

Control Type

Recording Control Window Menu item

Session Management Menu item

Thresholds

Change Password

Menu item

Menu item

Default Value

Enabled

Enabled

Enabled

Enabled

Description

Launches the Recording Control window.

Opens the Session Management dialog.

Launches the Threshold Editor.

Opens the Change Password dialog.

322 PerformaSure: User’s Guide

Request Tree Browser Menu Bar—Tools Menu

Control

User Management

Type

Menu item

Default Value

Disabled

Performance Diagnostics Menu item

Options Menu item

N/A

Enabled

Description

Launches the User Management window. This menu item is enabled if you have the required permissions.

Displays a submenu with one option. See

“ Performance Diagnostics ” on page 334 for more

information.

Launches the Edit Options dialog.

Request Tree Browser Menu Bar—Windows Menu

Control

Bring All To Front

[Switch to a Project window]

[Switch to a browser]

Type Default Value Description

Menu item Enabled Ensures that all open PerformaSure windows have a higher stacking order than non-PerformaSure windows.

Menu item Enabled Switches to the Project window that you select. Each menu item of this type will display the name of an open Project.

Menu item Enabled Switches to the open browser that you select. Each menu item of this type will display the name of an open PerformaSure browser.

Request Tree Browser Menu Bar—Help Menu

Control

Help

About

Type Default Value Description

Menu item Enabled Launches context-sensitive help for this browser.

Menu item Enabled Opens a new window that displays product information about PerformaSure.

Toolbar

Under the Request Tree browser’s menu bar is a toolbar with controls for opening new PerformaSure browsers, launching Spotlight

®

and Quest database tools, controlling the view in the Request Tree browser’s graph and detail panes, and

Request Tree Browser 323

Request Tree Browser Toolbar performing other actions like exporting a report. The following table describes the controls available from the toolbar.

Control

New Browser

Add New Browser To

Project

Export Report

Properties

Type

Button and drop-down menu

Button

Button

Button

Performance

Diagnostics

Link Browsers To Use

Same Zone/Break Link

Between Browsers

Button and drop-down menu

Button

Show Detail/Hide

Detail

Show Panner/Hide

Panner

Button

Button

Default Value

Enabled

Enabled

Enabled

Enabled

N/A

Enabled

Enabled

Description

Clicking on the left-hand side of this button launches the

New Browser dialog. See “ New Browser ” on page 182 for

details. Clicking on the right-hand displays a drop-down menu from which you can choose the type of new browser

that you want to open. See “ New Browser ” on page 335 for

details.

Adds the browser to the Project. This button is disabled if you have already added the browser to the Project.

Begins the process of generating a print version of the browser suitable for inclusion in a report.

Launches the Browser Properties dialog. See “ Properties ” on page 326 for details.

Displays a drop-down menu with one option. See

“ Performance Diagnostics ” on page 336 for more

information.

Toggles whether or not the Time Control panels of all existing and newly created browsers are linked. Clicking this button affects the browsers in the current Project only.

See “ Link Browsers to Use Same Zone/Break Link Between

Browsers ” on page 336 for more information.

Toggles the display of the detail pane.

Metric Display

Active Metric

FastFind

Drop-down menu

Drop-down menu

Button

Enabled

Per Request

Avg Cumulative

Time

Enabled

Toggles the display of the panner. Clicking the Show

Panner button causes the panner to appear in its own window.

Provides two metric display options: Per Request and Per

Call. See “ Metric Display ” on page 337 for a description of

these options.

Provides a list of options from which you can choose a

new active metric. See “ Active Metric ” on page 328 for a

description of these options.

Exposes the top n expensive nodes in the request tree

(based on the active metric) and scrolls the most expensive node into view.

324 PerformaSure: User’s Guide

Request Tree Browser Toolbar

Control

Bundling Mode

Type

Drop-down menu

Default Value

Component

Description

Provides three bundling mode options: Component, Class,

and Method. See “ Bundling Mode ” on page 331 for a

description of these options.

Menus and Toolbar—Full Detail

Menu Bar—Browser Menu

New Browser

Choose New Browser... to launch the New Browser dialog, which allows you to select and open a new browser of a specific type. The new browser is not automatically added to the Project or listed in the Project window.

Keyboard accelerator: Ctrl-B.

Add New Browser To Project

The Add New Browser To Project menu item is enabled if you have not yet added this browser to the Project. Click this item to add the browser to the

Project. A new Request Tree browser icon will appear in the Browsers area of the

Project window.

Keyboard accelerator: Ctrl-A.

Export Report

Select Export Report... to begin the process of generating a print version of the browser suitable for inclusion in a report. When you select this option, a Save file chooser is launched so that you can supply a file name for the report. See

“ PerformaSure Reports ” on page 411 for a discussion of the reports that

PerformaSure can provide.

Keyboard accelerator: Ctrl-R.

Export JProbe Launcher File

After using the Request Tree browser to identify expensive nodes, you may want to examine the internal behavior of certain methods. To do so, select one or more expensive nodes in the request tree (by clicking or control-clicking them), choose

Browser > Export JProbe Launcher File, and then select either Profile

Selected Package(s)... or Profile Selected Class(es). Selecting one of these options begins the process of creating and exporting a JProbe launcher ( JPL) file

Request Tree Browser 325

that you can use to run JProbe Profiler. See “ Creating a JProbe Launcher File ” on

page 368 for more information about creating this type of file. See “ JProbe

Integration ” on page 134 for more information about using the JPL file.

Properties

Choose Properties... to launch the Browser Properties dialog. This dialog allows you to rename the browser, provide a description of the problems that you have found by using this browser and its settings, and select whether you would like this browser to open automatically when you open the Project.

Close

Select the Close menu item to close the browser but leave the Project open.

Keyboard accelerator: Ctrl-W.

Exit PerformaSure

Choose Exit PerformaSure to close all open Projects and browsers and shut down the Workstation. When you select this menu item, you may be prompted to save the Projects that are open or add new browsers to these Projects before exiting PerformaSure.

Menu Bar—View

Display By

Choose Display by... to display a submenu from which you can select one of two options: Tier or Component Technology. Tier is selected by default.

Click the radio button associated with either Tier or Component Technology to color the request tree nodes’ Identifier bars accordingly. Selecting one of these options will not interfere with your ability to color the tree nodes based on the active metric. For example, you can color the request tree by Component and by

Call Count simultaneously.

Tier

Coloring by tier allows you to distinguish the tiers of your application in the request tree. PerformaSure consistently assigns one color to each tier and one for each application server cluster.

326 PerformaSure: User’s Guide

Component Technology

Coloring by component technology allows you to distinguish component types in the request tree. Component technologies include HTTP, Servlets, EJBs, RMI,

URL, JNDI, JMS, JDBC, and custom components. PerformaSure consistently assigns colors to standard and custom component technologies. Any node that represents a class that does not belong to a standard or custom component technology is colored grey.

The component technology types identified in the graph pane are listed in the table below.

Java EE

HTTP

Servlet

EJB

RMI

URL

JNDI

JMS

JDBC

Web Client

RMI Outgoing

Remote

Other

[Custom Components]

Other

FastFind

Select FastFind to expose the top n expensive nodes in the request tree (based on the active metric) and scroll the most expensive node into view.

Keyboard accelerator: Ctrl-F.

To use the FastFind feature from the Menu bar:

1.

Set the active metric by selecting View > Active Metric and then selecting a metric listed in the submenu.

2.

Select View > FastFind. The top n expensive nodes will be exposed and the most expensive node will be scrolled into view.

Request Tree Browser 327

Sort Tree

Choose Sort Tree to redraw the request tree after you change the active metric.

Tip: Select Sort Tree if you want a node with a higher value of the active metric to appear above a node with a lower value.

Requests are always sorted alphabetically, so their order is fixed. Within a request, each node’s children and the members of each group node are sorted in descending order based on the active metric; non-pruned nodes always precede pruned nodes.

Metric Display

You can select one of two options from the Metric Display drop-down menu:

Per Request and Per Call.

Per Request

Select Per Request to cause request averages to be displayed in tooltips and in the detail tables.

Per Call

Select Per Call to causes call averages to be displayed in tooltips and in the detail tables.

Active Metric

Select Active Metric to make a submenu appear from which you can select one of thirteen options: Avg Cumulative Time, Max Cumulative Time, Min

Cumulative Time, Avg Exclusive Time, Avg Call Count, Avg Parameter

Data Serialized, Max Parameter Data Serialized, Min Parameter Data

Serialized, Avg Return Data Serialized, Max Return Data Serialized, Min

Return Data Serialized, Avg Exceptional Exits, and Incomplete %. See below for more information about these options.

328 PerformaSure: User’s Guide

Click the radio button associated with a metric to recolor the request tree based that metric. Nodes with the highest values of a certain metric are assigned the hottest color.

Tip: If you change the active metric, the nodes are recolored based on the new metric but the request tree is not redrawn. This makes it easier for you to observe the change in color while keeping the same node in view. Select Sort Tree to redraw the tree.

Figure 123

Figure 123 The View menu showing the choices listed in the Active Metric submenu

The metrics described below are not only used to color the nodes in the request tree; they also appear in the detail pane and in the tooltips available in the graph

pane. See “ Detail Pane Columns ” on page 363 for more information about these

metrics.

Avg Cumulative Time

The average cumulative time for the selected node (and all its children) is used to color the node.

Min Cumulative Time

The minimum cumulative time taken by the selected node (and all its children) is used to color the node.

Max Cumulative Time

The maximum cumulative time for the node (and all its children) is used to color the node.

Request Tree Browser 329

Avg Exclusive Time

The average exclusive time spent in just this node is used to color the node.

Avg Call Count

The average call count for this item is used to color the node.

Avg Parameter Data Serialized

The average amount of data sent to the network when this object’s parameters were serialized is used to color the node.

Max Parameter Data Serialized

The maximum amount of data sent to the network when this object’s parameters were serialized is used to color the node.

Min Parameter Data Serialized

The minimum amount of data sent to the network when this object’s parameters were serialized is used to color the node.

Avg Return Data Serialized

The average amount of data received from the network when a serialized object was returned is used to color the node.

Max Return Data Serialized

The maximum amount of data received from the network when a serialized object was returned is used to color the node.

Min Return Data Serialized

The minimum amount of data received from the network when a serialized object was returned is used to color the node.

Avg Exceptional Exits

The average number of exceptional exits caused by this object is used to color the node, that is, the number of uncaught exceptions thrown in this node per request or per call, depending on whether Per Request or Per Call is the active selection under Metric Display.

330 PerformaSure: User’s Guide

Incomplete %

The percentage of incomplete calls to the method that occurred (per request or per call, depending on the Metric Display mode) is used to color the node.

A service request is incomplete when an Agent has been processing it for longer than the incomplete request timeout period. This timeout can be set in the

Session tab of the Recording Settings dialog or using nexusctl; see “ Incomplete

Request Timeout

” on page 209 and “ -irt nnn ” on page 233 for details. When the

timeout occurs, a request is considered incomplete whether or not it is active.

Bundling Mode

Select Bundling Mode to display a submenu with the choices Component,

Class, and Method. Component-level bundling displays key Java EE classes and methods in the request tree, giving you an overview of your application’s behavior. Class-level bundling displays both Java EE and user classes in the tree, but method calls to other methods within the same class are not displayed.

Method-level bundling displays all classes and method calls, presenting the most detailed request tree.

Important: The default bundling mode for PerformaSure is Component.

That means that even if you recorded your session at full detail, only the key Java EE components are shown if you do not change the bundling mode from its default setting. It is recommended that you begin your performance investigation with the bundling mode set to Component. As your investigation progresses, you can switch to one of the other modes to expose more details about your application’s behavior.

Detail Table Mode

Selecting Detail Table Mode displays a submenu with the choices List or Tree.

List is selected by default.

List

When the radio button associated with List is selected, the methods associated with a request are listed in a single column under that request.

Tree

When the radio button associated with Tree is selected, the methods associated with a request are arranged in a tree structure under the request.

Request Tree Browser 331

Show Panner

Check the checkbox associated with the Show Panner menu item to launch the panner in its own window. You can use the panner to scroll through the graph pane more easily. The rectangular highlighted area in the panner window

represents the current view displayed in the graph pane (see Figure 124). Drag

this rectangle to reposition the view area within the graph pane. If the Panner

Updates Graph While Dragging checkbox is selected in the Graphs pane of the Edit Options dialog (Tools > Options...), the view area in the graph pane will update continuously. If it is not selected, the view area will update only when you release the mouse button. To enlarge or reduce the highlighted area, zoom in to or out of the request tree using the Zoom Control slider.

Keyboard accelerator: Ctrl-Shift-P.

Figure 124

Figure 124 The Show Panner menu item and the panner window

Show/Hide Columns

There is a lot of information associated with each item in the request tree which is also listed in the detail pane. In addition to all of the metrics listed in the Active

Metric drop-down menu (View > Active Metric or from the toolbar), information about the Agent that collected the data and the metrics Call Count and Total Cumulative Time are also displayed in the detail pane.

You can choose whether or not to display Agent information or one or more of these metrics in the detail pane. Select Show/Hide Columns... to open a dialog that contains a group of checkboxes. Each checkbox controls the display of the

Agent information or the associated metric.

332 PerformaSure: User’s Guide

Auto-Fit All Columns

Click Auto-Fit All Columns to resize the width of all columns in the table so that all values within each column are visible.

Show Filter Bar

Select or deselect the checkbox associated with the menu item Show Filter Bar to toggle the display of the Filter Requests bar at the bottom of the graph pane.

Using the Request Tree browser’s Filter Requests bar

You can enter a literal string or a regular expression in the Filter Requests bar’s

Filter Requests text field. When you click the Apply button, the string or expression that you entered is matched against the text in the tree nodes to select service requests; the service requests that are selected are displayed in the graph pane. Service requests are selected based on a match with any node in the request tree, even if that node isn’t displayed in the graph pane because of the current bundling mode. If you select the Apply To Root Nodes Only checkbox, the filter will be applied only to entry-point (root) nodes. By default, the Filter

Requests text field contains an empty literal string so that all service requests are

selected. See “ Appendix D—Regular Expressions ” on page 489 for more

information about using regular expressions.

Tip: If you enter a regular expression in the Filter Requests text field, ensure that the Regular Expression checkbox is selected before you click Apply.

Menu Bar—Tools

Recording Control Window

Select Recording Control Window... to launch the Recording Control window.

See “ Recording Control Window ” on page 197 for more information about using

the controls in this window.

Session Management

Select Session Management... to open the Session Management dialog. See

“ Session Management ” on page 164 for more information about using this dialog.

Request Tree Browser 333

Thresholds

Select Thresholds... to launch the Threshold Editor. See “ Threshold Editor ” on page 408 for more information.

Change Password

Select Change Password... to open the Change Password dialog. See “ Changing a

Password ” on page 154 for more information about using this dialog.

User Management

Select User Management... to launch the User Management window. See “ User

Management ” on page 154 for details about using this window.

Note: This item is disabled if you do not have the required permissions.

Performance Diagnostics

Selecting the Performance Diagnostics menu item displays a submenu with one option: Spotlight

®

in Quest Central. This option is enabled if Quest Central is installed. When you select this option, the version of Spotlight

®

included with

Quest Central is launched.

Options

Selecting the Options... menu item launches the Edit Options dialog. See “ Edit

Options Dialog ” on page 247 for details about using this dialog.

Menu Bar—Windows

The Windows menu’s one static choice is Bring All To Front, which ensures that all open PerformaSure windows have a higher stacking order than non-

PerformaSure windows.

The other items in the Windows menu allow you to switch from one open Project window or from one open browser to another. In addition to Bring All To Front, the Windows menu will always contain at least two items: one for the Project window and one for this browser.

334 PerformaSure: User’s Guide

Menu Bar—Help

Help

The Help... menu item launches context-sensitive help for this browser.

About

The About... menu item opens a new window in which product information about PerformaSure is displayed.

Toolbar

The Request Tree browser’s toolbar is located directly below the menu bar.

Figure 125

Figure 125 The toolbar in the Request Tree browser

New Browser

The New Browser... button has two parts. Click on the left-hand side of this button to launch the New Browser dialog, from which you can select the type of

browser that you want and assign it a name; see “ New Browser ” on page 182 for

more information about the New Browser dialog. Click on the right-hand side of the New Browser... button to display a drop-down menu from which you can choose the type of browser that you want.

Add New Browser to Project

The Add New Browser to Project button is enabled if you have not yet added this browser to the Project. Click this button to add the browser to the

Project. A new Request Tree browser icon will appear in the Browsers area of the

Project window.

Export Report

Click the Export Report button to begin the process of generating a print version of the browser suitable for inclusion in a report. When you select this option, a Save file chooser is launched so that you can supply a file name for the

report. See “ PerformaSure Reports ” on page 411 for a discussion of the reports

that PerformaSure can provide.

Request Tree Browser 335

Properties

Click the Properties button to launch the Browser Properties dialog. This dialog allows you to rename the browser, provide a description of the problems that you have found by using this browser and its settings, and select whether you would like this browser to open automatically when you open the Project.

Performance Diagnostics

Clicking the Performance Diagnostics button displays a drop-down menu with one option: Spotlight

®

in Quest Central. This option is enabled if Quest

Central is installed. When you select this option, the version of Spotlight

® included with Quest Central is launched.

Link Browsers to Use Same Zone/Break Link Between Browsers

Every PerformaSure browser contains a button that allows you to toggle whether or not the Time Control panels of all existing and newly created browsers are linked. Clicking this button affects the browsers in the current Project only.

Click the Link Browsers to Use Same Zone button to link the browsers’

Time Control panels. When linked, the Zonar and (where applicable) the Sightline in each browser are in the same state as the browser in which the button was clicked. Using the Zonar or (where applicable) the Sightline in one browser will impact all other browsers as well. If a problem occurs during a specific interval spanned by the Zonar, linking the browsers can help you track this problem across different browsers.

Click the Break Link Between Browsers button to return the browsers’

Time Control panels to an unlinked state. This allows each browser’s Zonar and

Sightline to function independently.

Hide/Show Detail

The Hide/Show Detail button toggles the display of the Request Tree browser’s detail pane.

Show Panner

The Show Panner button causes the panner to appear in its own window.

See “ Show Panner ” on page 332 for more information about using the panner.

336 PerformaSure: User’s Guide

Metric Display

You can select one of two options from the Metric Display drop-down menu:

Per Request and Per Call.

Per Request

Select Per Request to cause request averages to be displayed in tooltips and in the detail tables.

Per Call

Select Per Call to causes call averages to be displayed in tooltips and in the detail tables.

Active Metric

Select one of the options in the Active Metric drop-down menu to recolor the nodes in the request tree. The nodes are recolored based on which ones are the most expensive relative to the metric you have chosen. Nodes with the highest

values are assigned the hottest color. See “ Active Metric ” on page 328 for more

information.

FastFind

Click the FastFind button to expose the top n most expensive nodes and scroll the most expensive node into view.

Bundling Mode

Select one of the options in the Bundling Mode drop-down menu to change the level of detail with which the request tree is displayed. The choices are

Component, Class, and Method. See “ Bundling Mode ” on page 331 for more

information.

Time Control Panel

The Time Control panel is located directly below the Request Tree browser’s toolbar.

This panel has the same controls in all PerformaSure browsers. See “ Time

Control Panel ” on page 253 for a detailed description of its controls.

Request Tree Browser 337

Request Tree Browser Graph Pane—Summary

The following table describes the controls available in the graph pane. See

“ Request Trees

” on page 342 and “ Request Tree Tooltips ” on page 347 for

information about request trees, tree nodes, and tooltips in the graph pane.

Request Tree Browser Graph Pane

Control

Resize Sliders

Default Value Description

Minimum column width Control the width of the columns in which the tree nodes are displayed.

Toggle the display of method nodes within group nodes.

Disclosure Triangles Turned for expansion in group nodes

Show/Hide Child

Node Buttons

Show Child Node

Enabled

Toggles the display of child nodes. This button does not cause child nodes to be collapsed or expanded.

Toggles the display of the color chart on the left side of the graph pane.

Color Scale Toggle

Button

Zoom Control 100% Moving the slider to the right causes the graph pane to zoom in to the request tree; moving it to the left causes it to zoom out.

The following tables describe the options available from the context (right-click) menus in the graph pane.

Request Tree Browser Graph Pane—Context Menu: Entry-Point Node

Control

Expand All Children

Hide Children

Show Children

Collapse All Children

Isolate Sub-Tree

Prune Node

Type

Menu item

Menu item

Menu item

Menu item

Menu item

Menu item

Description

Displays the complete set of method nodes in the group nodes. This option is available if any of the group nodes in a request tree have been collapsed.

Hides the child nodes for the request in their current state. This option is available if any of the child nodes are visible.

Displays the child nodes for a request in the state in which they were hidden. This option is available if the child nodes are hidden.

Collapses and hides the child nodes for a request. This option is available if any of the child nodes are visible.

Isolates the entry-point node and its sub-tree, recoloring them accordingly.

The display of other entry-point nodes and sub-trees after this option is

selected can vary. See “ Isolate Sub-Tree ” on page 352.

Prunes the entry-point node, causing all trees in the graph pane to be recolored accordingly. The node’s un-pruned sub-trees will remain unpruned. This node will display as ghosted, allowing it to be un-pruned.

338 PerformaSure: User’s Guide

Request Tree Browser Graph Pane—Context Menu: Entry-Point Node

Control

Prune Sub-Tree

Un-Prune Sub-Tree

Un-Prune All

Copy Node Name

View Response Times

View SQL Response Times

View Related Metrics

Performance Diagnostics

Export JProbe Launcher File

Type

Menu item

Menu item

Menu item

Menu item

Menu item

Menu item

Menu item

Menu item

Menu item

Description

Prunes the entry-point node and its sub-tree, causing all trees in the graph pane to be recolored accordingly. This node will display as ghosted,

allowing it to be un-pruned; the display of the sub-tree can vary. See “ Prune

Sub-Tree ” on page 353.

Un-prunes the entry-point node and its sub-tree, causing all trees in the graph pane to be recolored accordingly. This item is disabled if none of this node’s sub-trees have been pruned.

Un-prunes all request trees, causing them to be recolored accordingly. This item is disabled if no nodes or sub-trees have been pruned.

Allows you to paste class names, method names, or SQL queries into other applications.

Launches a new Request Time browser based on the request to which the node belongs.

Enabled in the entry-point nodes of request trees that include one or more

JDBC node. Select this option to display a submenu with two choices. See

“ View SQL Response Times ” on page 354 for more information.

Launches a new Metrics browser based on metrics associated with the

entry-point node. See “ View Related Metrics ” on page 354 for more

information.

Disabled in entry-point nodes.

Disabled in HTTP nodes but enabled in other entry-point nodes.

Request Tree Browser Graph Pane—Context Menu: Group Node

Control

Hide Group Items

Show Group Items

Isolate Sub-Tree

Prune Node

Type

Menu item

Menu item

Menu item

Menu item

Description

Hides the method nodes. This item is available if the method nodes are displayed.

Displays the method nodes. This item is available if the method nodes are hidden.

Isolates the group node and (if applicable) its sub-trees, causing all trees in the graph pane to be recolored accordingly. The display of other nodes and

sub-trees after this option is selected can vary. See “ Isolate Sub-Tree ” on page 355.

Prunes the group node, causing all trees in the graph pane to be recolored accordingly. The node’s un-pruned sub-trees will remain un-pruned. The

display of pruned group nodes can vary. See “ Prune Node ” on page 356.

Request Tree Browser 339

Request Tree Browser Graph Pane—Context Menu: Group Node

Control

Prune Sub-Tree

Un-Prune Sub-Tree

Un-Prune All

Copy Node Name

View Response Times

View SQL Response Times

View Related Metrics

Performance Diagnostics

Export JProbe Launcher File

Type

Menu item

Menu item

Menu item

Menu item

Menu item

Menu item

Menu item

Menu item

Menu item

Description

Prunes the group node and (if applicable) its sub-trees, causing all trees in the graph pane to be recolored accordingly. The display of pruned group

nodes and their sub-trees can vary. See “ Prune Sub-Tree ” on page 356.

Un-prunes the group node and (if applicable) its sub-trees, causing all trees in the graph pane to be recolored accordingly. This item is disabled if neither this node nor its sub-trees have been pruned.

Un-prunes all request trees, causing them to be recolored accordingly. This item is disabled if no nodes or sub-trees have been pruned.

Allows you to paste class names, method names, or SQL queries into other applications.

Launches a new Request Time browser based on the request to which the node belongs.

Enabled in JDBC group nodes and in all group nodes in request trees that include one or more JDBC node. Select this option to display a submenu

with two choices. See “ View SQL Response Times ” on page 357 for more

information.

Launches a new Metrics browser based on metrics associated with the

group node. See “ View Related Metrics ” on page 357 for more information.

Enabled in JDBC group nodes. See “ Performance Diagnostics ” on page 357

for more information.

Disabled in the context menus for JDBC group nodes but enabled in other

group nodes. See “ Creating a JProbe Launcher File ” on page 368 for more

information.

Request Tree Browser Graph Pane—Context Menu: Method Node

Control

Expand All Children

Hide Children

Show Children

Collapse All Children

Type

Menu item

Menu item

Menu item

Menu item

Description

Expands and displays the method’s child nodes. This option is only available in the context menus of method nodes with collapsed child nodes.

Hides the method’s child nodes in their current state. This option is only available in the context menus of method nodes with visible child nodes.

Displays the method’s child nodes in the state in which they were hidden.

This option is only available in the context menus of method nodes with hidden child nodes.

Collapses and hides a method’s child nodes. This option is only available in the context menus of method nodes with visible child nodes.

340 PerformaSure: User’s Guide

Request Tree Browser Graph Pane—Context Menu: Method Node

Control

Isolate Sub-Tree

Prune Node

Prune Sub-Tree

Un-Prune Sub-Tree

Un-Prune All

Copy Node Name

View Response Times

View SQL Response Times

View Related Metrics

Performance Diagnostics

Type

Menu item

Menu item

Menu item

Menu item

Menu item

Menu item

Menu item

Menu item

Menu item

Menu item

Export JProbe Launcher File Menu item

Description

Isolates the method node and (if applicable) its sub-tree, recoloring them accordingly. The display of other nodes and sub-trees after this option is

selected can vary; see “ Isolate Sub-Tree ” on page 359.

Prunes the method node, causing all trees in the graph pane to be recolored accordingly. If it is the only member of a group node, then the group node is pruned. When pruned, a method node/group node that is in the path between two unpruned nodes will be displayed as ghosted. The display of pruned

method nodes/group nodes can vary; see “ Prune Node ” on page 359.

Prunes the method node and (if applicable) its sub-tree, causing all trees in the graph pane to be recolored accordingly. If it is the only member of a group node, then the group node is pruned. The display of pruned methods

nodes/group nodes/sub-trees can vary; see “ Prune Sub-Tree ” on page 360.

Un-prunes the method node and (if applicable) its sub-tree, causing all trees in the graph pane to be recolored accordingly. This item is disabled if none of the method node’s sub-trees have been pruned.

Un-prunes all request trees, causing them to be recolored accordingly. This item is disabled if no nodes or sub-trees have been pruned.

Allows you to paste class names, method names, or SQL queries into other applications.

Launches a new Request Time browser based on the request to which the node belongs.

Enabled in members of JDBC group nodes and in all method nodes in request trees that include one or more JDBC group node. Select this option

to display a submenu with two choices. See “ View SQL Response Times ” on page 360 for more information.

Launches a new Metrics browser based on metrics associated with the node.

See “ View Related Metrics ” on page 357 for more information.

Enabled in members of JDBC group nodes. See “ Performance Diagnostics ” on page 361 for more information.

Enabled in the context menus for all method nodes. See “ Creating a JProbe

Launcher File ” on page 368 for more information.

Request Tree Browser Graph Pane—Full Detail

The Request Tree browser’s graph pane includes several elements.

Request Tree Browser 341

Figure 126

Figure 126 Elements in the Request Tree browser’s graph pane

Request Trees

The request trees in the Request Tree browser’s graph pane diagram requests from end to end. These trees are comprised of nodes. Method nodes are displayed as rectangular boxes within group nodes.

Important: Static methods may appear as root nodes in the graph pane since they are not considered part of a component: they can be called outside the component context, even if their class is not deployed in any way. This is also the reason why static methods will not have deployed names.

Resize Sliders

The Resize Sliders at the top of the graph pane control the width of the nodes in their respective columns. A slider marks the right-hand edge of the column it controls. If a column is not wide enough, the information displayed in the nodes in that column may have to be abbreviated. Drag the Resize Slider to expose more or less text in the nodes. Double-click on a Resize Slider to display the full text in the nodes.

342 PerformaSure: User’s Guide

Request Tree Display

Coloring and Sorting

By default, the nodes in the request tree are colored by Avg Cumulative Time.

The nodes can be recolored by selecting a different metric from the Active

Metric submenu (View > Active Metric) or from the Active Metric drop-down

menu in the toolbar. See “ Active Metric ” on page 328 for more information.

After recoloring the trees, you can sort it based on the new metric by choosing

View > Sort Tree.

Bundling

To reduce the complexity of the tree, some information is hidden in the graph pane when you select Component or Class from the Bundling Mode dropdown menu (View > Bundling Mode or from the toolbar). If you have selected one of these options, methods that call one or more methods belonging to the same class are displayed bundled together as a single node in the request tree, labeled by the method that starts the string of calls.

Figure 127

Figure 127 Actual call graph and its representation in the Request Tree

To understand why some methods are not shown in the Request Tree when Class

or Component bundling is selected, look at the situation diagrammed in Figure

127. Method

a1() in class A calls methods b1() and b2() in class B . These method calls appear in the Request Tree representation as expected. But method b1() also calls within class B to b3() , which in turn calls b4() . Because these method calls have the same parent class (they do not ‘leave’ one class and ‘enter’ another) they are not graphed. The Request Tree browser’s representation of the actual request tree doesn’t show b3() or b4() , but it does show c2() , even though the hidden method b4() calls it. That is because the call originated in one class and its target was in another.

Request Tree Browser 343

This does not mean that the methods can’t be seen at all. You can display internally-called methods by choosing Method from the Bundling Mode dropdown menu (View > Bundling Mode or in the toolbar). In addition, selecting this option allows you to look at the metrics for these methods in tooltips.

Request Tree Nodes

The nodes in the request tree have different shapes to make it easy to distinguish

them by function. A basic group node is shown in Figure 128. Detailed

information about the node’s contents is available in tooltips. Hover the cursor over the header for a group node or over the method nodes in a group to make

the appropriate tooltip appear. See “ Request Tree Tooltips ” on page 347 for more

information. Context menus are also available when you right-click on various

parts of a request tree. See “ Context Menus in the Graph Pane ” on page 351 for

details.

Figure 128

Figure 128 A basic group node

Basic group nodes are used for JSPs, Servlets, EJBs, and user-defined classes, but not for JDBC, JNDI, or JMS calls.

An entry-point node that represents an HTTP or an RMI call looks like a method

node except that it has an Identifier bar (see “ Identifier Bars ” below). An HTTP

request may be handed off to the HTTP server in the application server. That node will have the same appearance as an entry-point HTTP node.

Figure 129

Figure 129 An entry-point node representing an HTTP request

344 PerformaSure: User’s Guide

Entry-point nodes can also represent, for example, EJBs, JDBC calls, or JMS calls. Entry-point EJB, JDBC, and JMS nodes have the same appearance as EJB,

JDBC and JMS group nodes, respectively. These types of entry-point nodes contain one or more method nodes, an Identifier bar, and a Disclosure Triangle.

As mentioned above, basic group nodes are used for EJBs. JDBC and JMS group nodes are described below.

A request tree can have a root node that represents a class that does not belong to a standard or custom component technology. This type of entry-point node will have the same appearance as a basic group node. When the display mode is set to

Component Technology (View > Display By), the Identifier bar for this type of entry-point node will be colored grey and the tooltip for this node’s Identifier bar will identify it as Other.

An example of a node representing an outgoing RMI call is shown in Figure 130.

Other types of RMI Outgoing nodes will have the protocol that was used (T3,

IIOP, HTTP, or JRMP) listed in the header instead of RMI. When the display mode is set to Component Technology (View > Display By), the tooltip for this node’s Identifier bar will identify it as RMI Outgoing.

Figure 130

Figure 130 An RMI Outgoing node with RMI listed in the header

A Web Client node is shown in Figure 131. Web Client nodes represent outgoing

HTTP connections made by means of java.net.URL

and supporting classes only. The header for this type node will display the hostname and port number of the destination machine (if available) or the IP address and port number. When the display mode is set to Component Technology (View > Display By), the tooltip for this node’s Identifier bar will identify it as Web Client.

Figure 131

Figure 131 A Web Client node

A node representing a JDBC call is shown in Figure 132.

Figure 132

Figure 132 A JDBC group node

Request Tree Browser 345

As shown in Figure 132, JDBC group nodes have a cylindrical shape. If the

information is available, the header of a JDBC group node lists the connection pool it is using (or the datasource name if the session was recorded with Oracle

10g), the URL, and the SQL statement to which all methods in the group are related. If none of this information is available, the group node will be identified simply as JDBC.

Nodes that represent JMS or JNDI calls look like the node shown in Figure 133.

JMS and JNDI group nodes have the shape of a truncated diamond.

Figure 133

Figure 133 A JNDI group node

The shape of JDBC, JMS, and JNDI group nodes makes them easily distinguishable from basic group nodes or from entry-point nodes, even when you have zoomed out from the request tree.

Identifier Bars

A colored vertical bar called an Identifier bar appears on the left side of every entry-point and group node. The color of each Identifier bar represents a different tier or component technology, helping you distinguish between the tiers in your application or between component types.

Each Identifier bar provides a tooltip distinct from that of the header of the group node. When you hover the cursor over an Identifier bar, a tooltip will provide the name of the corresponding tier or component technology.

Important: PerformaSure always instruments constructors, initializers, and static methods as generic methods regardless of their class’s component technology. As a result, they will be identified as generic methods in the request tree. For example, when the display mode is set to Component Technology (View >

Display By), the Identifier bar on a node that represents a constructor of a message EJB would be colored grey and the tooltip for this node’s Identifier bar would identify it as Other.

Color Scale Toggle Button

Click this button to display a color scale on the left side of the graph pane. You can compare this scale with the background color of the method nodes in the request trees. Each color represents a range within a metric count based on the active metric. Each change in color represents a proportional change in the

346 PerformaSure: User’s Guide

metric count. The ‘hot’ color at the top of the chart is used to mark the most expensive methods. When the color chart is visible, its tooltips show the metric range spanned by each color.

Zoom Control Slider

A typical request tree displays a considerable amount of information, and it is not likely that it will fit in the graph pane unless you reduce its scale. You can use the

Zoom Control slider to reduce the scale of the request trees displayed in the graph pane by as much as 90%, allowing you to get an overall impression of events.

Request Tree Tooltips

Two tooltips are associated with every group node and with every method node within a group node: one tooltip appears when Per Request is selected from the

Metric Display drop-down menu (View > Metric Display or from the toolbar) and the other appears when Per Call is selected. These tooltips display metrics for the group or method node over which you hover the cursor.

Important: There may be a discrepancy between the figure displayed in the tooltip for the group node and the sum of the call counts displayed in the tooltips for the method nodes in that group.

The reason for this disparity is that the call count is rounded differently for individual method nodes and for the group node.

This discrepancy increases with the number of method nodes in a group. Based on the way the call counts are rounded, the call count for the group node may provide a more accurate figure than the sum of the rounded call counts for the method nodes.

Each tooltip’s header contains the name of the part of the node over which you hover the cursor followed on the next line by the tier name.

Tooltip for an HTTP node

Each tooltip for an HTTP node includes Time and Counts sections and a Sampled

Requests (%) field. The metrics listed in the Time and Counts sections are accumulated for all sampled requests. A dash (-) indicates that a metric is unavailable.

Important: The tooltips for HTTP nodes do not provide distinguishing labels for HTTPS nodes.

Request Tree Browser 347

The Total Cumulative Time field shows the total time taken by all requests of this type that completed during the interval spanned by the Zonar. The Call Count field shows the total number of requests of this type that completed during the interval spanned by the Zonar. The Sampled Requests field allows you to calculate how many of these requests were tracked using Tag and Follow. Only root nodes display the Sampled Requests field.

Note: The Called in Requests field shows the number of requests in which an object was called during the interval spanned by the Zonar. For root nodes, the Called in Requests field always displays the same value as the

Call Count field.

As shown in Figure 134 and Figure 135, per-request and per-call metrics are the

same in the tooltips for an HTTP node. This is because request counts and call counts are the same for root nodes.

Figure 134

Figure 134 Tooltip for an HTTP node when Per Request is selected

Figure 135

Figure 135 Tooltip for an HTTP node when Per Call is selected

348 PerformaSure: User’s Guide

Tip: Only completed requests are included in the tooltips’ time statistics.

Thus if for a certain request, its counts are:

Sampled Call Count: 5

Incomplete Call Count: 7

Not Sampled Call Count: 1

For this case, even though only one request was not sampled, the incomplete requests are made part of the Not Sampled Call Count, resulting in a statistic for Sampled Requests of:

Sampled Requests: 5/13 = 38.5%

Even though requests that do not complete are not included in the time statistics, the execution location when the incomplete timeout occurred is recorded.

Tooltips for group and method nodes

The tooltips for group and method nodes display Time and Counts sections; they do not include Total Cumulative Time or Sampled Requests fields since the information listed in these fields pertains only to a service request as a whole.

Depending on whether Per Request or Per Call is selected, both cumulative and exclusive times can be different in the tooltip for an EJB group node, for example. This is because an EJB can be called multiple times in one service request.

In the tooltips for group and method nodes, the call count depends on which type of averages are being displayed. When Per Request is selected, the average call count shows the number of times the object was called per request. For example, a method that was called 50 times in a sample of 20 requests shows a requestaveraged call count of 2.5. When Per Call is selected, the call count shows the total number of times that the object was called. If the root node shows that sampling was at 100%, the call count is exact, otherwise it is extrapolated.

Figure 136

Figure 136 Tooltip for a method node in an EJB group node when Per Request is selected

Request Tree Browser 349

If you compare Figure 136 to Figure 137, you can see that the per-request tooltip

shows how many times the EJB was called per request, while the per-call tooltip shows the number of times the EJB was called overall.

Figure 137

Figure 137 Tooltip for a method node in an EJB group node when Per Call is selected

In the per-request tooltip, an Avg Call Count of 1 indicates that the EJB was called once in every request. If this number is less than 1, internal logic in the application must be determining if the EJB needs to be called. If the number is much greater than 1, the application’s logic is making multiple calls in every request. This is often an indication of a performance problem that can be eliminated by, for instance, calling the EJB once and caching some information.

The Called in Requests field shows the number of requests in which the object was

called during the interval spanned by the Zonar. As shown in Figure 136 and

Figure 137, the value of Called in Requests for the EJB is the same as the EJB’s Call

Count. This is because the EJB was called once per request.

Exceptional exits can be greater than 1 in the per-request tooltip, again because of calling the EJB multiple times in every request. In the per-call tooltip however, exceptional exits cannot exceed 1 because an EJB can cause at most one exceptional exit each time it is called.

Other types of group nodes include Class, Servlet, JDBC, JNDI, and JMS nodes.

The format of these nodes’ tooltips is the same as the format of the tooltips for

EJB group nodes.

Tooltips for an RMI node

A tooltip for an RMI node is shown in Figure 138. It contains extra fields in which

the volume of traffic for passing method parameters and for receiving returned data is displayed.

As with HTTP nodes, the Called in Requests field in the tooltip for an RMI node displays the same value as the Call Count field.

350 PerformaSure: User’s Guide

Figure 138

Figure 138 Tooltip for an RMI node when Per Request is selected

Context Menus in the Graph Pane

You can right-click anywhere on or around the request trees to make a context menu appear. The items in this menu will differ depending on where you rightclick with the mouse.

Right-clicking outside the Request Trees

Right-click anywhere on the blank space outside the request trees and a menu containing the item Un-Prune All appears. This item is disabled if no nodes or sub-trees in the request trees have been pruned.

If you did not check the Hide Pruned Sub-Trees checkbox in the Edit Options dialog (View > Options... > Graphs), selecting this option will cause all pruned nodes and sub-trees to no longer display as ghosted.

Right-clicking an Entry-Point Node

Right-click on an entry-point node and additional choices become available in

the context menu (Figure 139).

Request Tree Browser 351

Figure 139

Figure 139 The context menu for an entry-point node

Expand All Children

If any of an entry-point node’s children have been hidden or collapsed (so that the method nodes are hidden), the choice Expand All Children is available.

Select this option to display the child nodes in their entirety.

Hide Children

If any of an entry-point node’s children are visible, the choice Hide Children is available. Select this option to hide the child nodes without collapsing them.

Show Children

If an entry-point node’s children have been hidden, the choice Show Children is available. Select this option if you want to display the child nodes in the state in which they were hidden.

Collapse All Children

If an entry-point node’s children are showing, the choice Collapse All Children is available. Select this option to hide and collapse the request’s child nodes.

Isolate Sub-Tree

Click Isolate Sub-Tree to isolate the entry-point node and its sub-tree. Selecting this option recolors this node and its sub-tree accordingly: the range of values for the active metric that you selected does not include values from pruned nodes.

Depending on whether or not you checked the Hide Pruned Sub-Trees checkbox in the Edit Options dialog (View > Options... > Graphs), this node’s previously pruned sub-trees will either remain hidden or continue to display as

352 PerformaSure: User’s Guide

ghosted when you select Isolate Sub-Tree. If you did not check the Hide

Pruned Sub-Trees checkbox in the Edit Options dialog, selecting Isolate Sub-

Tree will cause the other (non-isolated) entry-point nodes and their sub-trees to display as ghosted.

Prune Node

Click Prune Node to prune an entry-point node. It will display as ghosted, allowing you to un-prune it. This node’s un-pruned sub-trees will remain unpruned.

Un-Prune Node

Click Un-Prune Node to un-prune an entry-point node. Selecting this option will cause the node to no longer display as ghosted.

Prune Sub-Tree

Click Prune Sub-Tree to prune an entry-point node and its sub-tree. The entrypoint node will display as ghosted, allowing you to un-prune it.

If you did not check the Hide Pruned Sub-Trees checkbox in the Edit Options dialog (View > Options... > Graphs), selecting this option will cause this node’s sub-tree to display as ghosted.

Un-Prune Sub-Tree

Click Un-Prune Sub Tree to un-prune an entry-point node and its sub-tree. This item is disabled if none of the node’s sub-trees have been pruned.

If you did not check the Hide Pruned Sub-Trees checkbox in the Edit Options dialog (View > Options... > Graphs), selecting this option will cause this node and its sub-tree to no longer display as ghosted.

Un-Prune All

Click Un-Prune All to un-prune all nodes and sub-trees. This item is disabled if no nodes or sub-trees have been pruned.

Copy Node Name

Click Copy Node Name if you want to be able to paste class names, method names, or SQL queries into another application, such as a spreadsheet.

Request Tree Browser 353

View Response Times

Click View Response Times to launch a new Request Time browser based on the request to which the node on which you right-clicked belongs.

View SQL Response Times

The menu item View SQL Response Times is enabled in the root nodes of request trees that include one or more JDBC group node. Select this option to display a submenu with two choices: For All Statements in Request and For

Selected Statements. Select For All Statements in Request to launch a new

SQL browser based on this request. Select For Selected Statements to launch a new SQL browser based on the statements that you selected. The option For

Selected Statements is only enabled in JDBC nodes with statements.

View Related Metrics

Select this option to launch a new Metrics browser based on metrics associated with the entry-point node on which you right-clicked. The specific metrics graphed in the new browser will depend on the node’s component type, but will include response time metrics for the request and for the component technology within that request.

Performance Diagnostics

The menu item Performance Diagnostics is disabled in entry-point nodes.

Export JProbe Launcher File

The option Export JProbe

Launcher File menu item is disabled in HTTP nodes and JDBC group nodes but enabled in the context menus for other group

nodes and for all method nodes. See “ Creating a JProbe Launcher File ” on page

368 for more information.

Right-clicking the Header of a Group Node

Right-click on the header of a group node to make a context menu appear for that

node (Figure 140). This menu contains many of the same choices as the context

menu for an entry-point node.

354 PerformaSure: User’s Guide

Figure 140

Figure 140 The context menu for the header of a group node

Hide Group Items

The choice Hide Group Items is available if the method nodes are displayed.

Select this option to hide the methods that were called.

Show Group Items

If the node is collapsed, hiding the method nodes, the choice Show Group Items is available. Select this option to show the methods that were called.

Isolate Sub-Tree

Select Isolate Sub-Tree to isolate the group node on which you right-clicked and its sub-tree. Selecting this option recolors this node and its sub-tree accordingly: the range of values for the active metric that you selected does not include values from pruned nodes.

Depending on whether or not you checked the Hide Pruned Sub-Trees checkbox in the Edit Options dialog (View > Options... > Graphs), this node’s previously pruned sub-trees will either remain hidden or continue to display as ghosted when you select Isolate Sub-Tree. If you did not check the Hide

Pruned Sub-Trees checkbox in the Edit Options dialog, selecting Isolate Sub-

Tree will cause all other (non-isolated) nodes and sub-trees to display as ghosted.

Request Tree Browser 355

Prune Node

Click Prune Node to prune a group node. If this node is in the path between two nodes that have not been pruned, it will display as ghosted.

Tip: The range of values for the active metric that you selected does not include values from pruned nodes. Prune the most expensive node to exclude it from this range of values. The call tree will be recolored, allowing you to use the new maximum value to highlight slightly less expensive—but still problematic—nodes that might otherwise have been overshadowed.

If you did not check the Hide Pruned Sub-Trees checkbox in the Edit Options dialog (View > Options... > Graphs), selecting this option will cause the node to display as ghosted.

Un-Prune Node

Click Un-Prune Node to un-prune a group node.

Tip: If you want to un-prune a node that is not displayed in the request tree because you checked the Hide Pruned Sub-Trees checkbox in the

Edit Options dialog (View > Options...), right-click on its parent node.

A context menu will appear in which Un-Prune Sub-Tree is enabled.

Select this option.

If you did not check the Hide Pruned Sub-Trees checkbox in the Edit Options dialog (View > Options... > Graphs), selecting this option will cause this node to no longer display as ghosted.

Prune Sub-Tree

Click Prune Sub-Tree to prune a group node and, if applicable, its sub-trees.

If you did not check the Hide Pruned Sub-Trees checkbox in the Edit Options dialog (View > Options... > Graphs), selecting this option will cause the node and its sub-tree to display as ghosted.

Un-Prune Sub-Tree

Click Un-Prune Sub Tree to un-prune a group node and, if applicable, its subtrees. This item is disabled if neither the node nor its sub-trees have been pruned.

If you did not check the Hide Pruned Sub-Trees checkbox in the Edit Options dialog (View > Options... > Graphs), selecting this option will cause this node and its sub-trees to no longer display as ghosted.

356 PerformaSure: User’s Guide

Un-Prune All

Click Un-Prune All to un-prune all nodes and sub-trees. This item is disabled if no nodes or sub-trees have been pruned.

Copy Node Name

Click Copy Node Name if you want to be able to paste class names, method names, or SQL queries into another application, such as a spreadsheet.

View Response Times

Click View Response Times to launch a new Request Time browser based on the request to which the node on which you right-clicked belongs.

View SQL Response Times

The menu item View SQL Response Times is enabled in JDBC group nodes and in all group nodes in a request tree that includes one or more JDBC group node. Select this option to display a submenu with two choices: For All

Statements in Request and For Selected Statements. Select For All

Statements in Request to launch a new SQL browser based on this request.

Select For Selected Statements to launch a new SQL browser based on the statements that you selected. The option For Selected Statements is only enabled in JDBC group nodes with statements.

View Related Metrics

Select this option to launch a new Metrics browser based on metrics associated with the node on which you right-clicked. The specific metrics graphed in the new browser will depend on the node’s component type, but will include response time metrics for the root request and for the component technology within that request.

Performance Diagnostics

The menu item Performance Diagnostics is enabled in JDBC group nodes.

Selecting the Performance Diagnostics menu item displays a submenu with one option: Spotlight

®

in Quest Central. This option is enabled if Quest Central is installed. When you select this option, the version of Spotlight

®

included with

Quest Central is launched.

Request Tree Browser 357

Export JProbe Launcher File

The option Export JProbe

Launcher File is disabled in JDBC group nodes but

enabled in the context menus for other group nodes. See “ Creating a JProbe

Launcher File ” on page 368 for more information.

Right-clicking a Method Node

Right-click on a method node (displayed as a rectangular box within the group

node) to make its context menu appear (Figure 141). The choices in this menu are

similar to those in the context menu for an entry-point node.

Note: The options Expand All Children, Hide Children, Show Children, and Collapse All Children are only available in the context menus for method nodes with child nodes.

Figure 141

Figure 141 The context menu for a method node

Expand All Children

If a method’s child nodes have been hidden or collapsed, the choice Expand All

Children is available. Select this option to display all the methods that were called in this method’s child nodes.

Hide Children

If a method’s child nodes are visible, the choice Hide Children is available.

Select this option to hide the child nodes in their current state.

358 PerformaSure: User’s Guide

Show Children

If a method’s child nodes are hidden, the choice Show Children is available.

Select this option if you want to display the child nodes in the state in which they were hidden.

Collapse All Children

If a method’s child nodes are visible, the choice Collapse All Children is available. Select this option to hide and collapse the child nodes.

Isolate Sub-Tree

Click Isolate Sub-Tree to isolate a method node and, if applicable, its sub-tree.

Selecting this option recolors the method node and its sub-tree’s nodes accordingly. If the method node on which you right-click is the only member of a group node, selecting Isolate Sub-Tree isolates the whole group node and, if applicable, the method node’s sub-tree.

If you have not checked the Hide Pruned Sub-Trees checkbox in the Edit

Options dialog (View > Options... > Graphs), selecting Isolate Sub-Tree causes all other nodes and sub-trees to display as ghosted.

Prune Node

Click Prune Node to prune the method node. If the method node on which you right-click is the only member of a group node, selecting Prune Node prunes the whole group node. If the whole node or the method node is in the path between two nodes that have not been pruned, it will display as ghosted.

If you did not check the Hide Pruned Sub-Trees checkbox in the Edit Options dialog (View > Options... > Graphs), selecting Prune Node will cause the whole node or the method node to display as ghosted.

Un-Prune Node

Click Un-Prune Node to un-prune a method node.

Tip: If you want to un-prune a method node that is not displayed in the request tree because you checked the Hide Pruned Sub-Trees checkbox in the Edit Options dialog (View > Options...), right-click on the group node’s header. A context menu will appear in which Un-

Prune Sub-Tree is enabled. Select this option.

If you did not check the Hide Pruned Sub-Trees checkbox in the Edit Options dialog (View > Options... > Graphs), selecting this option will cause the method node to no longer display as ghosted.

Request Tree Browser 359

Prune Sub-Tree

Click Prune Sub-Tree to prune a method node and, if applicable, its sub-trees. If the method node on which you right-click is the only member of a group node, selecting Prune Sub-Tree causes the whole group node to be pruned.

If you did not check the Hide Pruned Sub-Trees checkbox in the Edit Options dialog (View > Options... > Graphs), selecting Prune Sub-Tree will cause the method node (or the whole node) and its sub-trees to display as ghosted.

Un-Prune Sub-Tree

Click Un-Prune Sub Tree to un-prune a method node and, if applicable, its subtrees. This item is disabled if neither the method node nor its sub-trees have been pruned.

If you did not check the Hide Pruned Sub-Trees checkbox in the Edit Options dialog (View > Options... > Graphs), selecting this option will cause the method node and its sub-trees to no longer display as ghosted.

Un-Prune All

Click Un-Prune All to un-prune all nodes and sub-trees. This item is disabled if no nodes or sub-trees have been pruned.

Copy Node Name

Click Copy Node Name if you want to be able to paste class names, method names, or SQL queries into another application, such as a spreadsheet.

View Response Times

Click View Response Times to launch a new Request Time browser based on the request to which the node on which you right-clicked belongs.

View SQL Response Times

The menu item View SQL Response Times is enabled in JDBC group nodes and in all group nodes in a request tree that includes one or more JDBC node.

Select this option to display a submenu with two choices: For All Statements in

Request and For Selected Statements. Select For All Statements in Request to launch a new SQL browser based on this request. Select For Selected

Statements to launch a new SQL browser based on the statements that you selected. The option For Selected Statements is only enabled in JDBC group nodes with statements.

360 PerformaSure: User’s Guide

View Related Metrics

Select this option to launch a new Metrics browser based on metrics associated

with this node. See “ View Related Metrics ” on page 357 for more information.

Performance Diagnostics

The menu item Performance Diagnostics is enabled in JDBC group nodes.

Selecting the Performance Diagnostics menu item displays a submenu with one option: Spotlight

®

in Quest Central. This option is enabled if Quest Central is installed. When you select this option, the version of Spotlight

®

included with

Quest Central is launched.

Export JProbe Launcher File

The option Export JProbe

Launcher File menu item is enabled in the context

menus for all method nodes. See “ Creating a JProbe Launcher File ” on page 368

for details.

Right-clicking a Disclosure Triangle

Right-click on a Disclosure Triangle and a context menu appears (Figure 142). This

menu contains some of the same options as the context menu for a group node.

See “ Hide Group Items ” on page 355 and “ Show Group Items ” on page 355 for

details.

Figure 142

Figure 142 The context menu for a Disclosure Triangle

Right-clicking a Show/Hide Child Node Button

Right-click on the round Show/Hide Child Node button (located on the right side of an entry-point node or a group node) and a context menu appears. This menu contains some of the same options as the context menu for a method node. See

“ Expand All Children ” on page 358, “ Hide Children

” on page 358, “ Show

Children ” on page 359, and “ Collapse All Children ” on page 359 for details.

Request Tree Browser 361

Figure 143

Figure 143 The context menu for a Show/Hide Child Node button.

Zooming the Request Tree

To zoom in to or out from the request tree, Ctrl-Click and drag on the request tree or use the Zoom Control slider.

Request Tree Browser Detail Pane

The Request Tree browser’s detail pane provides an explorer view of the requests that are depicted graphically in the graph pane. The detail pane shows information including method names, cumulative times, and call counts in a tabular fashion.

Tip: Double-click a node in the request tree to transfer focus to the corresponding item in the Request Tree detail pane. You don’t have to spend time searching for the item.

The process works in reverse as well. Double-click an item in the

Request Tree detail pane to transfer focus to the corresponding node in the request tree. Because multiple methods of one type may exist in the tree, the most expensive one is selected based on the active metric.

Note that focus will not be transferred to nodes that were pruned or excluded and are hidden; however, focus will be transferred to nodes that were pruned or excluded and are displayed as ghosted.

Transferring focus to a hidden child node will cause it to be displayed again.

362 PerformaSure: User’s Guide

Figure 144

Figure 144 The detail pane in the Request Tree browser

Detail Pane Columns

The columns in the detail pane are described next.

Tip: Click on a column header in the detail pane to sort the rows based on the values in that column.

Name

The Name column lists the URLs that were called during the interval spanned by

the Time Control panel’s Zonar; see “ Time Control Panel ” on page 253 for more

information. Each URL listed in the Name column can be expanded to show the methods that have been called.

Agent

The Agent that collected the data.

Note: This column is hidden by default. To display this column in the detail pane, select Show/Hide Columns... from the detail pane context menu or from the View menu and then select the Agent checkbox.

Avg Call Count

The Avg Call Count column lists the number of times the method was called per request during the interval spanned by the Zonar.

Call Count

The Call Count column lists the total number of times the object was called during the interval spanned by the Zonar.

Request Tree Browser 363

The call count for a root node is the number of requests that executed to completion during the interval spanned by the Zonar. All requests are counted, even when the number of sampled requests is less than 100%.

Called in Requests

The Called in Requests column lists the number of requests in which the object was called during the interval spanned by the Zonar.

For root nodes, the Called in Requests column always displays the same value as the call count.

Avg Cumulative Time

The Avg Cumulative Time is the Total Cumulative Time divided by the call count. It is the average time taken by the method (and its children) during the interval spanned by the Zonar. Depending on the Metric Display option (Per Request or

Per Call) that you selected (View > Metric Display or from the toolbar), the Avg

Cumulative Time is displayed in seconds per request or seconds per call.

Max Cumulative Time

The Max Cumulative Time column lists the longest total time taken by all calls to the selected method (and its children) during the interval spanned by the Zonar.

Depending on the Metric Display option (Per Request or Per Call) that you selected (View > Metric Display or from the toolbar), the Max Cumulative Time is displayed in seconds per request or seconds per call.

This value is unknown when the row shows an aggregate of multiple nodes in the request tree. In this case, a dash (-) is listed in this column.

Note: This column is hidden by default. To display this column in the detail pane, select Show/Hide Columns... from the detail pane context menu or from the View menu and then select the Max Cumulative Time checkbox.

Min Cumulative Time

The Min Cumulative Time column lists the shortest total time taken by all calls to the selected method (and its children) during the interval spanned by the

Zonar. Depending on the Metric Display option (Per Request or Per Call) that you selected (View > Metric Display or from the toolbar), the Min Cumulative

Time is displayed in seconds per request or seconds per call.

This value is unknown when the row shows an aggregate of multiple nodes in the request tree. In this case, a dash (-) is listed in this column.

364 PerformaSure: User’s Guide

Note: This column is hidden by default. To display this column in the detail pane, select Show/Hide Columns... from the detail pane context menu or from the View menu and then select the Min Cumulative Time checkbox.

Total Cumulative Time

The Total Cumulative Time column lists the total time (in seconds) taken by all requests that completed during the interval spanned by the Zonar. If requests were sampled at less than 100% of the Nexus’ ability, Total Cumulative Time is an

extrapolated value. See “ Sampling Tab

” on page 211 and “ Sampling Parameters ” on page 233 for more information about setting the sampling rate in the Recording

Settings dialog or using nexusctl.

Avg Exclusive Time

The Avg Exclusive Time column lists the average time taken by the method, excluding its children, during the interval spanned by the Zonar. Depending on the Metric Display option (Per Request or Per Call) that you selected (View >

Metric Display or from the toolbar), the Avg Exclusive Time is displayed in seconds per request or seconds per call.

Avg Parameter Data Serialized

The Avg Parameter Data Serialized column lists the average number of bytes for any serialized objects that were passed as parameters as the result of an RMI method call. Averaging takes place over the requests that completed during the interval spanned by the Zonar. Depending on the Metric Display option (Per Request or

Per Call) that you selected (View > Metric Display or from the toolbar), the number of bytes is displayed per request or per call.

Max Parameter Data Serialized

The Max Parameter Data Serialized column lists the number of bytes of the largest of the serialized objects that were passed as parameters as the result of all calls to the RMI method during any service request instance. This maximum applies to the requests that completed during the interval spanned by the Zonar. Depending on the Metric Display option (Per Request or Per Call) that you selected

(View > Metric Display or from the toolbar), the number of bytes is displayed per request or per call.

This value is unknown when the row shows an aggregate of multiple nodes in the request tree. In this case, a dash (-) is listed in this column.

Note: This column is hidden by default. To display this column in the detail pane, select Show/Hide Columns... from the detail pane context menu

Request Tree Browser 365

or from the View menu and then select the Max Parameter Data

Serialized checkbox.

Min Parameter Data Serialized

The Min Parameter Data Serialized column lists the number of bytes of the smallest of the serialized objects that were passed as parameters as the result of all calls to the RMI method during any service request instance. This minimum applies to the requests that completed during the interval spanned by the Zonar. Depending on the Metric Display option (Per Request or Per Call) that you selected (View

> Metric Display or from the toolbar), the number of bytes is displayed per request or per call.

This value is unknown when the row shows an aggregate of multiple nodes in the request tree. In this case, a dash (-) is listed in this column.

Note: This column is hidden by default. To display this column in the detail pane, select Show/Hide Columns... from the detail pane context menu or from the View menu and then select the Min Parameter Data

Serialized checkbox.

Avg Return Data Serialized

The Avg Return Data Serialized column lists the average number of bytes for any serialized objects that were received as the result of an RMI method call.

Averaging takes place over the requests that completed during the interval spanned by the Zonar. Depending on the Metric Display option (Per Request or

Per Call) that you selected (View > Metric Display or from the toolbar), the number of bytes is displayed per request or per call.

Max Return Data Serialized

The Max Return Data Serialized column lists the number of bytes of the largest of the serialized objects that were received as the result of all calls to the RMI method during the service request instance. This maximum applies to the requests that completed during the interval spanned by the Zonar. Depending on the Metric Display option (Per Request or Per Call) that you selected (View >

Metric Display or from the toolbar), the number of bytes is displayed per request or per call.

This value is unknown when the row shows an aggregate of multiple nodes in the request tree. In this case, a dash (-) is listed in this column.

Note: This column is hidden by default. To display this column in the detail pane, select Show/Hide Columns... from the detail pane context menu or from the View menu and then select the Max Return Data

Serialized checkbox.

366 PerformaSure: User’s Guide

Min Return Data Serialized

The Min Return Data Serialized column lists the number of bytes of the smallest of the serialized objects that were received as the result of all calls to the RMI method during the service request instance. This minimum applies to the requests that completed during the interval spanned by the Zonar. Depending on the

Metric Display option (Per Request or Per Call) that you selected (View >

Metric Display or from the toolbar), the number of bytes is displayed per request or per call.

This value is unknown when the row shows an aggregate of multiple nodes in the request tree. In this case, a dash (-) is listed in this column.

Note: This column is hidden by default. To display this column in the detail pane, select Show/Hide Columns... from the detail pane context menu or from the View menu and then select the Min Return Data

Serialized checkbox.

Avg Exceptional Exits

The Avg Exceptional Exits column lists the average number of exceptional exits that occurred. Averaging takes place over the requests that completed during the interval spanned by the Zonar. Depending on the Metric Display option (Per

Request or Per Call) that you selected (View > Metric Display or from the toolbar), this number is displayed per request or per call.

Exceptions that are caught or handled within the method do not cause exceptional exits.

Incomplete %

The Incomplete % column lists the percentage of incomplete calls to the method that occurred during the interval spanned by the Zonar. Depending on the Metric

Display option (Per Request or Per Call) that you selected (View > Metric

Display or from the toolbar), this percentage is displayed per request or per call.

List/Tree Toggle Button

Use the list/tree toggle button ( ) at the far right of the header row to switch between a tree view and a list view of the metric data. The way the lines are drawn inside the button does not indicate the mode of the current view, instead it indicates which view will appear when you click on the button. In the list view, all the methods associated with a given request are listed in a single column. In the

Request Tree Browser 367

tree view, calling relationships are preserved. In either view, the items in the detail pane are the same as those diagrammed in the graph pane.

Tip: You may have tried to find where a method was called by entering its name in the Filter Requests text field at the bottom of the graph pane and then clicking Apply. Subsequently, you saw that a request tree did appear in the graph pane, indicating that the method is somewhere in that request tree. Yet upon searching the call tree, the method did not seem to be there, or anywhere in the list of names in the detail pane.

The solution is to select Method from the Bundling Mode drop-down menu (View > Bundling Mode or in the toolbar). When you select this option, methods that call other methods in the same class will be shown.

Creating a JProbe Launcher File

By using PerformaSure, you may have found that a certain method or method group node is taking a long time to complete. Now that you have determined the node, how do you examine the internal behavior of the method to see where it is spending its time? You can use JProbe to examine the details of the method’s operation.

Creating a JProbe Launcher File

1.

Open the Edit Options dialog (Tools > Options...) and select Request Tree from the pane on the left-hand side.

2.

Select JProbe x from the JPL File Format drop-down menu in the Request

Tree pane.

3.

Click OK to confirm your selection and close the dialog.

4.

Select one or more method nodes in the Request Tree browser.

Important: If you export a JPL file for method calls in a session recorded from clustered servers, the JPL file that you create will not show the name of the server from which you collected this data.

Instead, the name of the server will appear as _OtherServer.

5.

Select Export JProbe

Launcher File from the Browser menu or from the context menu obtained by right-clicking one of the method nodes you selected.

368 PerformaSure: User’s Guide

6.

From the submenu that appears, choose either Profile Selected Package(s)... or Profile Selected Class(es)....

7.

The Export JProbe Launcher File dialog will open (see Figure 145). The options

in this dialog are specific to JProbe. See its manual for details.

Figure 145

Figure 145 The JProbe Launcher options dialog

Click Continue to open a Save dialog from which you can choose a name for the launcher file and then click Save to create it. The .jpl file extension is automatically appended.

To close the Export JProbe Launcher File dialog, click Cancel; to launch contextsensitive help, click Help.

Now that you have a JProbe launcher file, you can use it to run JProbe Profiler.

See “ JProbe Integration ” on page 134 for more information.

Request Tree Browser FAQ

What do the tree nodes represent?

A node represents an entry into an instrumented object. It can be an HTTP request, an RMI call, a JDBC call, or a method entry.

Why do I see a tree node labelled “External System”?

An External System node (shown in Figure 146) appears in the request tree if an

instrumented server has crashed or failed and other instrumented servers attempt to call that server while the session is being recorded.

Figure 146

Figure 146 An External System node

What’s in a JDBC node?

Request Tree Browser 369

PerformaSure breaks down JDBC calls into the underlying operations that the application must complete with the database in order to service a request. This includes both the time spent and number of calls required to

• Set up the connection,

• Prepare and pass parameters to a SQL statement,

• Execute the statement,

• Manipulate the returned ResultSet

• Commit or roll back the changes to the database.

JDBC nodes are tracked as separate entities. They have a cylindrical shape to distinguish them from the other group nodes.

Why do I see a JDBC node as an isolated (root) request?

It is likely that nodes of this type are associated with a JMS call. Figure 147 shows

a request that makes a JMS call (the node at the top right). Since the JMS specification demands that messages must not be lost, the application server persists them in some way. In this case, the application server has saved the message to a database.

Figure 147

Figure 147 A JDBC node as an isolated root request

The database activity is not the direct result of a method call in the call path of the request. Instead, it is a result of an internal configuration of the application server and the way it handles JMS persistence, so it is not tracked as part of the Tag and

Follow

mechanism for the request. Internal application server methods are not tracked, but JDBC calls are, so it shows up as an isolated node.

Can I exclude classes from being instrumented by PerformaSure?

See “ Including and Excluding Classes ” on page 70 for information on how to

modify PerformaSure defaults in order to include or exclude specific classes.

370 PerformaSure: User’s Guide

Chapter 16

Metrics Browser

The following topics are covered in this chapter:

Metrics Browser

Metric Types

Menus and Toolbar—Summary

Menus and Toolbar—Full Detail

Time Control Panel

Metrics Browser Navigation Pane

Metrics Browser Graph Pane—Summary

Metrics Browser Graph Pane—Full Detail

Metrics Browser FAQ

Metrics Browser

The Metrics browser allows you to visually correlate multiple metrics displayed in the same chart, to examine charts to see if certain metrics exceed the minimum or maximum thresholds you have set for them, to observe the duration of threshold violations, and to check for any anomalous behavior. This browser also provides access to the Threshold Editor, the dialog in which you set metric thresholds. See

“ Threshold Editor ” on page 408 for more information about setting thresholds.

If you have set a threshold for a metric and the metric exceeds that threshold during the interval spanned by the Zonar, the chart shows a diagonally striped, rectangular strip at the right-hand edge of the chart. This strip indicates the range on the y-axis in which the metric exceeds its normal bounds; a threshold line is drawn across the chart to indicate the threshold boundary.

371

The Metrics Browser contains a Time Control panel, the full list of available metrics organized in a collapsible tree hierarchy (the navigator pane), and a graph pane in which you can open a variable number of metric charts.

Figure 148

Figure 148 The Metrics browser

Metric Types

PerformaSure divides metrics into two broad categories: raw and derived. Raw metrics are those that are reported from the operating system, and application servers. They may be further divided into periodic metrics, network metrics, and service request metrics. Some of these may not be directly useful. For example, there are a number of never-decreasing metrics that are reported. Knowing the value of such a metric is not useful in itself, but knowing the time rate of increase of the metric is useful, and a sharp spike in the rate may indicate an area for further investigation. Derived metrics are calculated by PerformaSure from one or more raw metrics, and possibly from other derived metrics.

372 PerformaSure: User’s Guide

Raw Metrics

Periodic metrics are collected by PerformaSure by polling the system under test.

Operating system and application server metrics are collected at set intervals.

Other approaches are used for collecting network metrics and service request metrics.

By default, raw metrics are not listed in the Metrics browser. Follow the instructions below to cause raw metrics to be displayed in the Metrics browser’s navigation pane.

To display raw metrics:

1.

Select Tools > Options... from the menu bar. The Edit Options dialog will open.

2.

In the tree view, click on Browsers > Metrics.

3.

Select Show Raw Metrics.

4.

Click OK to apply this change and close the dialog. Raw metrics will be listed at the bottom of the navigation pane.

Derived Metrics

Derived metrics are calculated by PerformaSure, usually from raw metrics.

Multiple derived metrics can be displayed on the same chart. Naturally, the metrics should be comparable for such a chart to be useful.

Menus and Toolbar—Summary

Menu Bar

The Metrics browser’s menu bar is located along the top of the browser window.

The following tables describe the controls available from the different menus in the menu bar.

Metrics Browser Menu Bar—Browser Menu

Control

New Browser

Type Default Value Description

Menu item Enabled Opens the New Browser dialog. Use this dialog to choose the type of browser you want to launch.

Metrics Browser 373

Metrics Browser Menu Bar—Browser Menu

Control

Add New

Browser To

Project

Export Report

Type Default Value

Menu item Enabled

Description

Adds the browser to your PerformaSure Project. A Metrics browser icon will appear in the Browsers area of the Project window.

Menu item Enabled

Properties

Close

Exit

PerformaSure

Menu item Enabled

Menu item Enabled

Menu item Enabled

Begins the process of generating a print version of the browser suitable for inclusion in a report.

Launches the Browser Properties dialog. See “ Properties ” on page

377 for details.

Closes the browser.

Closes all open Projects and browsers and shuts down the

Workstation.

Metrics Browser Menu Bar—View Menu

Control

Close All Charts

Type

Menu item

Default Value

N/A

Description

Closes all metric charts in the graph pane.

Metrics Browser Menu Bar—Tools Menu

Control Type

Recording Control Window Menu item

Session Management Menu item

Thresholds

Change Password

User Management

Menu item

Menu item

Menu item

Performance Diagnostics Menu item

Options Menu item

Default Value

Enabled

Enabled

Enabled

Enabled

Disabled

N/A

Enabled

Description

Launches the Recording Control window.

Opens the Session Management dialog.

Launches the Threshold Editor.

Opens the Change Password dialog.

Launches the User Management window. This menu item is enabled if you have the required permissions.

Displays a submenu with one option. See

“ Performance Diagnostics ” on page 378 for more

information.

Launches the Edit Options dialog.

374 PerformaSure: User’s Guide

Metrics Browser Menu Bar—Windows Menu

Control

Bring All To Front

[Switch to a Project window]

[Switch to a browser]

Type Default Value Description

Menu item Enabled

Menu item Enabled

Menu item Enabled

Ensures that all open PerformaSure windows have a higher stacking order than non-PerformaSure windows.

Switches to the Project window that you select. Each menu item of this type will display the name of an open Project.

Switches to the open browser that you select. Each menu item of this type will display the name of an open

PerformaSure browser.

Metrics Browser Menu Bar—Help Menu

Control

Help

About

Type Default Value Description

Menu item Enabled

Menu item Enabled

Launches context-sensitive help for this browser.

Opens a new window that displays product information about PerformaSure.

Toolbar

Add New Browser To

Project

Export Report

Button

Button

Under the Metrics browser’s menu bar is a toolbar with controls for opening new

PerformaSure browsers, launching Spotlight

®

and Quest database tools, and performing other actions like exporting a report. The following table describes the controls available from the toolbar.

Metrics Browser Toolbar

Control

New Browser

Type

Button and drop-down menu

Default Value

Enabled

Enabled

Enabled

Description

Clicking on the left-hand side of this button launches the

New Browser dialog. See “ New Browser ” on page 182

for details. Clicking on the right-hand displays a dropdown menu from which you can choose the type of new

browser that you want to open. See “ New Browser ” on page 379 for details.

Adds the browser to the Project. This button is disabled if you have already added the browser to the Project.

Begins the process of generating a print version of the browser suitable for inclusion in a report.

Metrics Browser 375

Metrics Browser Toolbar

Control

Properties

Type

Button

Performance

Diagnostics

Get Live Updates

Button and drop-down menu

Check box

Update Browser Data Button

Link Browsers To Use

Same Zone/Break

Link Between

Browsers

Button

Default Value

Enabled

N/A

On

N/A

Enabled

Description

Launches the Browser Properties dialog. See

“ Properties ” on page 380 for details.

Displays a drop-down menu with one option. See

“ Performance Diagnostics ” on page 380 for more

information.

Launches an automatic data collection update and

refreshes the display of data in a browser. See “ Live

Data Updates ” on page 259 for more details.

Forces a live data collection update. See “ Live Data

Updates ” on page 259 for more details.

Toggles whether or not the Time Control panels of all existing and newly created browsers are linked. Clicking this button affects the browsers in the current Project

only. See “ Link Browsers to Use Same Zone/Break Link

Between Browsers ” on page 380 for more information.

Menus and Toolbar—Full Detail

Menu Bar—Browser Menu

New Browser

Choose New Browser... to launch the New Browser dialog, which allows you to select and open a new browser of a specific type. The new browser is not automatically added to the Project or listed in the Project window.

Keyboard accelerator: Ctrl-B.

Add New Browser To Project

The Add New Browser To Project menu item is enabled if you have not yet added this browser to the Project. Click this item to add the browser to the

Project. A new Metrics browser icon will appear in the Browsers area of the Project

Window.

Keyboard accelerator: Ctrl-A.

Export Report

Select Export Report... to begin the process of generating a print version of the browser suitable for inclusion in a report. When you select this option, a Save file

376 PerformaSure: User’s Guide

chooser is launched so that you can supply a file name for the report. See

“ PerformaSure Reports ” on page 411 for a discussion of the reports that

PerformaSure can provide.

Keyboard accelerator: Ctrl-R.

Properties

Choose Properties... to launch the Browser Properties dialog. This dialog allows you to rename the browser, provide a description of the problems that you have found by using this browser and its settings, and select whether you would like this browser to open automatically when you open the Project.

Close

Select the Close menu item to close the browser but leave the Project open.

Keyboard accelerator: Ctrl-W.

Exit PerformaSure

Choose Exit PerformaSure to close all open Projects and browsers and shut down the Workstation. When you select this menu item, you may be prompted to save the Projects that are open or add new browsers to these Projects before exiting PerformaSure.

Menu Bar—View

Close All Charts

Click Close All Charts to close all metric charts that are currently displayed in the graph pane.

Menu Bar—Tools

Recording Control Window

Select Recording Control Window... to launch the Recording Control window.

See “ Recording Control Window ” on page 197 for more information about using

the controls in this window.

Session Management

Select Session Management... to open the Session Management dialog. See

“ Session Management ” on page 164 for more information about using this dialog.

Metrics Browser 377

Thresholds

Select Thresholds... to launch the Threshold Editor. See “ Threshold Editor ” on page 408 for more information.

Change Password

Select Change Password... to open the Change Password dialog. See “ Changing a

Password ” on page 154 for more information about using this dialog.

User Management

Select User Management... to launch the User Management window. See “ User

Management ” on page 154 for details about using this window.

Note: This item is disabled if you do not have the required permissions.

Performance Diagnostics

Selecting the Performance Diagnostics menu item displays a submenu with one option: Spotlight

®

in Quest Central. This option is enabled if Quest Central is installed. When you select this option, the version of Spotlight

®

included with

Quest Central is launched.

Options

Selecting the Options... menu item launches the Edit Options dialog. See “ Edit

Options Dialog ” on page 247 for details about using this dialog.

Menu Bar—Windows

The Windows menu’s one static choice is Bring All To Front, which ensures that all open PerformaSure windows have a higher stacking order than non-

PerformaSure windows.

The other items in the Windows menu allow you to switch from one open Project window or from one open browser to another. In addition to Bring All To Front, the Windows menu will always contain at least two items: one for the Project window and one for this browser.

378 PerformaSure: User’s Guide

Menu Bar—Help

Help

The Help... menu item launches context-sensitive help for this browser.

About

The About... menu item opens a new window in which product information about PerformaSure is displayed.

Toolbar

The Metrics browser’s toolbar is located directly below the menu bar.

Figure 149

Figure 149 The toolbar in the Metrics browser

New Browser

The New Browser... button has two parts. Click on the left-hand side of this button to launch the New Browser dialog, from which you can select the type of

browser that you want and assign it a name; see “ New Browser ” on page 182 for

more information about the New Browser dialog. Click on the right-hand side of the New Browser... button to display a drop-down menu from which you can choose the type of browser that you want.

Add New Browser to Project

The Add New Browser to Project button is enabled if you have not yet added this browser to the Project. Click this button to add the browser to the

Project. A new Metrics browser icon will appear in the Browsers area of the Project window.

Export Report

Click the Export Report button to begin the process of generating a print version of the browser suitable for inclusion in a report. When you select this option, a Save file chooser is launched so that you can supply a file name for the

report. See “ PerformaSure Reports ” on page 411 for a discussion of the reports

that PerformaSure can provide.

Metrics Browser 379

Properties

Click the Properties button to launch the Browser Properties dialog. This dialog allows you to rename the browser, provide a description of the problems that you have found by using this browser and its settings, and select whether you would like this browser to open automatically when you open the Project.

Performance Diagnostics

Clicking the Performance Diagnostics button displays a drop-down menu with one option: Spotlight

®

in Quest Central. This option is enabled if Quest

Central is installed. When you select this option, the version of Spotlight

® included with Quest Central is launched.

Link Browsers to Use Same Zone/Break Link Between Browsers

Every PerformaSure browser contains a button that allows you to toggle whether or not the Time Control panels of all existing and newly created browsers are linked. Clicking this button affects the browsers in the current Project only.

Click the Link Browsers to Use Same Zone button to link the browsers’

Time Control panels. When linked, the Zonar and (where applicable) the Sightline in each browser are in the same state as the browser in which the button was clicked. Using the Zonar or (where applicable) the Sightline in one browser will impact all other browsers as well. If a problem occurs during a specific interval spanned by the Zonar, linking the browsers can help you track this problem across different browsers.

Click the Break Link Between Browsers button to return the browsers’

Time Control panels to an unlinked state. This allows each browser’s Zonar and

Sightline to function independently.

Time Control Panel

The Time Control panel is located directly below the Metrics browser’s toolbar. This

panel has the same controls in all PerformaSure browsers. See “ Time Control

Panel ” on page 253 for a detailed description of its controls.

380 PerformaSure: User’s Guide

Metrics Browser Navigation Pane

The navigation pane contains a list of metrics organized in a tree hierarchy. All the metrics available for the session that you are currently analyzing are listed in this pane. The metrics available in a session will vary depending on several

factors, such as the application server(s) that you are instrumenting. See “ The

Metric Hierarchy ” on page 464 for a description of the structure of the metric

hierarchy that is displayed in the navigation pane.

Exploring the Tree Hierarchy

Double-click a node in the tree or click the square ( ) to the left of the node to expose the next level in the hierarchy.

Tip: You can navigate the metric hierarchy using your keyboard. To select or deselect entries in the tree, press the spacebar. To expand or close folders, use the right and left arrow keys. To move from node to node, use the up and down arrow keys.

Selecting Metrics For Display

There are several ways that you can select metrics from the tree hierarchy for presentation in the graph pane.

To open a metric chart:

■ Select a metric in the tree and press Enter or double-click a metric. You can also click and drag a metric from the navigation pane to a blank space in the graph pane or to the edge of a chart in the graph pane. Performing any one of these actions causes the metric to be displayed in its own chart.

To add a metric to an existing chart:

■ Click on the metric in the tree hierarchy and drag it to a chart in the graph pane.

Tip: Charting a metric in the same chart as another makes it easier to compare the trend of several metrics.

To open a chart with multiple metrics:

Ctrl-click or Shift-click the metrics in the navigation pane and press Enter

Metrics Browser 381

Ctrl-click or Shift-click the metrics in the navigation pane and right-click on the selected metrics to cause a context menu to appear. This menu contains three options: Open, Open in Overlap Mode, Open in Stacked Mode.

When you select Open, the metrics are charted together in Default mode. See

“ Changing the Chart Type ” on page 385 for more information about chart

types.

To reposition a metric chart within the graph pane:

■ Click the top portion of the chart and drag it to another spot in the graph pane.

To remove a metric chart from the graph pane:

■ Click the Close Chart button or right-click below the top portion of the chart and select Close Chart from the context menu that appears.

Metrics Browser Graph Pane—Summary

The following tables describe the controls and the context (right-click) menus available in each chart in the graph pane.

Metrics Browser Graph Pane

Control

Chart header

Function Set chooser

Plot Type chooser

Type Default Value Description

Drop-down menu Enabled

Drop-down menu Enabled

Drop-down menu Enabled

Maximize Chart Button

Restore Chart Button

Close Chart

Sightline slider

Button

Slider

Enabled

Enabled

Enabled

Enabled

Displays the name of the metric (in a single-metric chart) or the active metric (in a multiple-metric chart). Click it to display a menu from which you can select a different metric (in a multiplemetric chart).

Displays a menu from which you can select the function applied to one or more metrics in the chart.

Displays a menu from which you can select the plot type applied to the metric (in a single-metric chart) or to the active metric (in a multiple-metric chart).

Maximizes the chart.

Restores a maximized chart to its former size. This button is only available when you have maximized a chart.

Closes the chart.

Changes the position of the Sightline in all charts in the graph pane.

382 PerformaSure: User’s Guide

Metrics Browser Graph Pane

Control Type Default Value

Legend entries Metric Indicators Enabled

Description

Clicking an Indicator changes the active metric (in a multiple-

metric chart). See “ Using the Legend ” on page 385 for more

information.

Displays a menu from which you can select the chart type.

Chart Type chooser

Drop-down menu

Edit Thresholds Button

Enabled

Enabled Opens the Threshold Editor for the metric (in a single-metric chart) or for the active metric (in a multiple-metric chart).

Metrics Browser Graph Pane—Context Menus

Control

Function for Selected Metric

Type

Drop-down menu

Description

Displays a menu from which you can select the function applied to the active metric.

Plot Type for Selected Metric

Find Selected Metric in Hierarchy Menu item

Copy

Paste

Delete

Menu item

Menu item

Menu item

Maximize Chart

Drop-down menu

Displays a menu from which you can select the plot type applied to

the active metric. See “ Plot Type For Selected Metric ” on page 389

for more information.

Highlights the active metric in the metric hierarchy.

Menu item

Copies the active metric.

Pastes the metric that you copied.

Removes the active metric from the chart (in a multiple-metric chart) or clears the chart (in a single-metric chart).

Maximizes the chart. This option is only available when the chart has not been maximized.

Restore Chart

Close Chart

Close All Charts

Menu item

Menu item

Menu item

Restores a maximized chart to its former size. This option is only available when you have maximized the chart.

Closes the chart.

Closes all charts in the graph pane.

Metrics Browser 383

Metrics Browser Graph Pane—Full Detail

The Metrics browser’s graph pane includes several elements.

Figure 150

Figure 150 Elements in the Metrics browser’s graph pane

Charts in the Graph Pane

You can open a collection of charts in the Metrics browser’s graph pane. Each chart that you open illustrates the history of one or more metrics during the interval spanned by the Zonar. The metrics that are available for display in the

graph pane are listed in the tree hierarchy in the navigation pane. See “ Selecting

384 PerformaSure: User’s Guide

Metrics For Display ” on page 381 for details about how to select metrics from the

tree hierarchy for display in the graph pane.

Tip: Hold down the Shift key and drag the mouse between two points in a chart to cause the Zonar to zoom in to a smaller portion of the Timeline.

When you perform this action, the metric data displayed in all charts in the graph pane will be for the new interval spanned by the Zonar.

Using the Metric Drop-Down Menu

The header for each chart in the graph pane displays the name of the metric that is currently selected in that chart.

Tip: Hover the cursor over the chart header to make a tooltip appear that displays the full name of the active metric.

Using the Legend

As shown in Figure 150, the legend in each chart contains a group of Metric

Indicators. Click a Metric Indicator to select a new active metric. A dark square appears around the Metric Indicator that corresponds to the active metric in that chart.

Changing the Chart Type

The header for the Chart Type chooser displays the chart type that is currently selected. Click this header to display a drop-down menu from which you can select a new chart type. The options available in this menu are described below.

Default

When you select the Default chart, all metrics in the chart are charted using a single y-axis.

Tip: Select the Default chart if you want to compare multiple metrics with similar ranges in the same chart.

Overlap

When you select the Overlap chart, a separate y-axis is used to graph each metric in the chart; a Metric Indicator appears next to the Chart Type chooser to indicate to which metric the current y-axis applies. Select a metric in the chart or

Metrics Browser 385

click its corresponding Indicator in the legend to cause the range of values for that metric to be shown on the y-axis.

Tip: Select the Overlap chart when you want to compare the trend of two multiple metrics with very different ranges in the same chart.

Example: Three metrics are charted in the same chart in the graph pane.

For the interval spanned by the Zonar, Metric A has a range of 0 to

0.2 milliseconds, Metric B has a range of 5 to 45 milliseconds, and

Metric C has a range of 145 to 815 milliseconds. Because of the disparity among their ranges, displaying all three metrics in a

Default chart causes Metric A and Metric B to be shown as a nearly flat lines near 0. If you use an Overlap chart instead, Metric A can be charted with a y-axis range of approximately 0 to 250 microseconds, Metric B can be charted with a y-axis range of approximately 0 to 45 milliseconds, and Metric C can be charted with a y-axis range of approximately 100 to 900 milliseconds.

The scale shown on the y-axis will thus correspond more closely to the values for each metric. As a result, Metric A and Metric B can be charted a way that provides you with a better visual indication of each metric’s trend.

Stacked

When you select the Stacked chart, the metrics in the chart are displayed as additive metrics and are charted using a single y-axis. In this type of chart, the broken line that extends horizontally from the y-axis and intersects the Sightline is aligned with the top (the sum) of the stacked metrics.

Tip: Select the Stacked chart when you want to compare the total of multiple metrics and to compare the relative breakdown of this total on a permetric basis.

Changing the Function Set

Click the Function Set chooser icon to display a drop-down menu from which you can select the function applied to one or more metrics in the chart.

The options listed in this menu are the functions that exist for the active metric.

When you select a new function using the Function Set chooser, however, this function will be applied to all metrics in the chart whose function sets include this

386 PerformaSure: User’s Guide

function. The functions available for a given metric can vary depending on the underlying application server or operating system.

Tip: Hover the cursor over the Function Set chooser icon to make a tooltip appear that displays the function currently applied to the active metric.

Note: To change the function applied to a single metric in the chart, right-click the metric to cause a context menu to appear. You can then select a new function from the Function submenu.

Changing the Plot Type

Click the Plot Type chooser icon to display a drop-down menu from which you can select the plot type. When Default or Overlap is selected from the

Chart Type chooser, the options available in this menu are Line, Bar, and Area.

When Stacked is selected from the Chart Type chooser, the options available in this menu are Stacked Bar and Stacked Area. The plot type that you select is applied to all metrics in the chart.

Tip: Hover the cursor over the Plot Type chooser icon to make a tooltip appear that displays the plot type that is currently selected.

Using the Sightline and the Sightline Slider

Each chart in the Metrics browser contains its own Sightline and Sightline slider. All

Sightlines and Sightline sliders in the same Metrics browser are linked: when you adjust the position of the Sightline in one chart, the Sightlines in the other charts

move as well. See “ Sightline ” on page 256 for more information about the

Sightline.

In addition to using the slider, you can move the Sightline to any point in a chart by double-clicking that point.

Note: The Sightline snaps to time slice boundaries. If the point on which you double-clicked does not correspond to a time slice boundary, the

Sightline will be repositioned to the point that corresponds to the closest

boundary. See “ Time Slice Size

” on page 200 and “ Timeline ” on page

253 for more information about time slices and time slice boundaries.

Metrics Browser 387

Edit Thresholds Button

Click the Edit Thresholds... button to launch the Threshold Editor for the charted metric (in a single-metric chart) or for the active metric (in a multiple-

metric chart). See “ Threshold Editor ” on page 408 for details about the Threshold

Editor. See “ Thresholds Browser FAQ ” on page 410 for information about the

availability of the Edit Thresholds button.

Repositioning a Chart

Click the top portion of the chart and drag it to another spot in the graph pane.

Maximizing a Chart

Click the Maximize Chart button to maximize a chart in the graph pane.

Restoring a Chart

Click the Restore Chart button to restore a maximized chart to its former size.

Closing a Chart

Click the Close Chart button to close a chart in the graph pane.

Tooltips in the Graph Pane

Indicator Tooltips

Hover the cursor over a Metric Indicator to cause a tooltip to appear in which the name of the corresponding metric and the function applied to that metric are displayed.

Figure 151

Figure 151 The tooltip for a Metric Indicator

Chart Tooltips

Hover the cursor over a data point in the chart to cause the x- and y-axis values charted at that point to appear in a tooltip. The tooltip will also include the

Metric Indicator for that metric.

388 PerformaSure: User’s Guide

Figure 152

Figure 152 The tooltip for a data point

Context Menus in the Graph Pane

You can right-click anywhere in a chart in the graph pane to make a context menu appear.

Function for Selected Metric

Click Function for Selected Metric to cause a submenu to appear from which you can select the function applied to the active metric.

Plot Type For Selected Metric

Click Plot Type for Selected Metric to cause a submenu to appear from which you can select the plot type applied to the active metric. When Default or

Overlap is selected from the Chart Type chooser, the options available in this menu are Line, Bar, and Area. When Stacked is selected from the Chart Type chooser, the options available in this menu are Stacked Bar and Stacked Area.

Find Selected Metric in Hierarchy

Click Find Selected Metric in Hierarchy to cause the active metric to be highlighted in the metric hierarchy in the Metrics browser’s navigation pane.

Copy

Click Copy to copy the active metric, allowing you to paste it into another metric chart. You can also paste the metric name into another application, such as a spreadsheet.

Paste

Click Paste to paste the metric that you copied.

Delete

Select Delete to remove the active metric from the chart on which you rightclicked. If there is only one metric displayed in the chart, selecting this option

Metrics Browser 389

clears the chart but does not cause it to be removed from the graph pane.

Keyboard accelerator: Delete.

Note: Removing a metric from a chart in the graph pane does not cause the entry for that metric to be deleted from the navigator pane’s tree hierarchy.

Maximize Chart

Select this menu item to maximize the chart on which you right-clicked in the graph pane.

Restore Chart

This menu item becomes available when you maximize a chart. Select it to restore the chart to its former size and make the other charts in the graph pane visible again.

Close Chart

Select this menu item to close the chart on which you right-clicked.

Close All Charts

Select this menu item to close all charts in the graph pane.

Metrics Browser FAQ

How can I tell which metrics listed in the hierarchy have been charted in the graph pane?

When you chart a metric in the graph pane, the icon for the metric displayed in the hierarchy ( ) changes to this icon: .

390 PerformaSure: User’s Guide

Chapter 17

Thresholds Browser

The following topics are covered in this chapter:

Thresholds Browser

Menus and Toolbar—Summary

Menus and Toolbar—Full Detail

Time Control Panel

Thresholds Browser Graph Pane—Summary

Thresholds Browser Graph Pane—Full Detail

Charts in the Graph Pane

Tooltips in the Graph Pane

Context Menus in the Graph Pane

Thresholds Browser Detail Pane

Detail Pane Columns

Bar Charts in the Detail Pane

Context Menus in the Detail Pane

Threshold Editor

Thresholds Browser FAQ

Thresholds Browser

The Thresholds browser contains information about metrics with threshold violations, such as operating system metrics, application metrics, server metrics,

SQL statement metrics, and service request metrics. This last category includes response times, the percentage of sampled requests and incomplete requests, exceptional exit counts, and JDBC times aggregated across all tiers.

391

As shown in Figure 153, the display name used as the header for the graph pane

identifies the metric that is selected in the detail pane.

Figure 153

Figure 153 The Thresholds browser

The Thresholds browser contains a Time Control panel, a menu bar, a toolbar, a detail pane in which the metrics that have exceeded their thresholds are listed, and a graph pane in which metrics with threshold violations can be charted.

Clicking on any row in the detail pane causes the chart for that metric to appear in the graph pane and its name to be displayed in the header at the top of the graph pane. The diagonally striped, rectangular strip on the right-hand side of the chart indicates the range on the y-axis in which the metric exceeded its bounds. A threshold boundary is represented by a threshold line drawn across the chart.

Note: You can select metrics sequentially by pressing the Tab key, or Shift-Tab to move in the opposite direction.

392 PerformaSure: User’s Guide

The Thresholds browser can help you identify problem areas that should be investigated further. Once you have pinpointed intervals in the session during which metric thresholds were exceeded, you can continue your investigation in other PerformaSure browsers to determine the cause of these threshold violations.

Menus and Toolbar—Summary

Menu Bar

The Thresholds browser’s menu bar is located along the top of the browser window. The following tables describe the controls available from the different menus in the menu bar.

Thresholds Browser Menu Bar—Browser Menu

Control

New Browser

Add New

Browser To

Project

Export Report

Type Default Value Description

Menu item Enabled Opens the New Browser dialog. Use this dialog to choose the type of browser you want to launch.

Menu item Enabled Adds the browser to your PerformaSure Project. A Thresholds browser icon will appear in the Browsers area of the Project window.

Menu item Enabled

Properties

Close

Exit

PerformaSure

Menu item Enabled

Menu item Enabled

Menu item Enabled

Begins the process of generating a print version of the browser suitable for inclusion in a report.

Launches the Browser Properties dialog. See “ Properties ” on page

396 for details.

Closes the browser.

Closes all open Projects and browsers and shuts down the

Workstation.

Thresholds Browser Menu Bar—View Menu

Control Type

Auto-Fit All Columns Menu item

Default Value

Enabled

Show/Hide Columns Menu item Enabled

Description

Resizes the width of all columns in the table so that all values within each column are visible.

Opens a dialog containing a group of checkboxes. Select or deselect these checkboxes to toggle the display of certain metric properties in the detail pane.

Thresholds Browser 393

Thresholds Browser Menu Bar—View Menu

Control

Show/Hide Bar

Charts

Type

Menu item

Default Value

Enabled

Show Filter Bar Menu item with checkbox

Selected

Description

Opens a dialog containing a group of checkboxes. Select or deselect these checkboxes to toggle the display of certain bar charts in the detail pane columns.

Toggles the display of the Filter Bar at the bottom of the

graph pane. See “ Show Filter Bar ” on page 397 for more

information about using the controls in the Filter Bar.

Thresholds Browser Menu Bar—Tools Menu

Control Type

Recording Control Window Menu item

Session Management Menu item

Thresholds

Change Password

User Management

Menu item

Menu item

Menu item

Default Value

Enabled

Enabled

Enabled

Enabled

Disabled

Performance Diagnostics Menu item

Options Menu item

N/A

Enabled

Description

Launches the Recording Control window.

Opens the Session Management dialog.

Launches the Threshold Editor.

Opens the Change Password dialog.

Launches the User Management window. This menu item is enabled if you have the required permissions.

Displays a submenu with one option. See

“ Performance Diagnostics ” on page 398 for more

information.

Launches the Edit Options dialog.

Thresholds Browser Menu Bar—Windows Menu

Control

Bring All To Front

[Switch to a Project window]

[Switch to a browser]

Type Default Value Description

Menu item Enabled Ensures that all open PerformaSure windows have a higher stacking order than non-PerformaSure windows.

Menu item Enabled

Menu item Enabled

Switches to the Project window that you select. Each menu item of this type will display the name of an open Project.

Switches to the open browser that you select. Each menu item of this type will display the name of an open

PerformaSure browser.

394 PerformaSure: User’s Guide

Thresholds Browser Menu Bar—Help Menu

Control

Help

About

Type Default Value Description

Menu item Enabled

Menu item Enabled

Launches context-sensitive help for this browser.

Opens a new window that displays product information about PerformaSure.

Toolbar

Thresholds Browser Toolbar

Control

New Browser

Type

Button and drop-down menu

Add New Browser To

Project

Export Report

Button

Button

Properties

Performance

Diagnostics

Get Live Updates

Under the Thresholds browser’s menu bar is a toolbar with controls for opening new PerformaSure browsers, launching Spotlight

®

and Quest database tools, controlling the view in the Thresholds browser’s graph and detail panes, and performing other actions like exporting a report. The following table describes the controls available from the toolbar.

Button

Button and drop-down menu

Check box

Update Browser Data Button

Default Value

Enabled

Enabled

Enabled

Enabled

N/A

On

N/A

Description

Clicking on the left-hand side of this button launches the

New Browser dialog. Clicking on the right-hand displays a drop-down menu from which you can choose the type

of new browser that you want to open. See “ New

Browser ” on page 399 for details.

Adds the browser to the Project. This button is disabled if you have already added the browser to the Project.

Begins the process of generating a print version of the browser suitable for inclusion in a report.

Launches the Browser Properties dialog. See

“ Properties ” on page 400 for details.

Displays a drop-down menu with one option. See

“ Performance Diagnostics ” on page 400 for more

information.

Launches an automatic data collection update and

refreshes the display of data in a browser. See “ Live

Data Updates ” on page 259 for more details.

Forces a live data collection update. See “ Live Data

Updates ” on page 259 for more details.

Thresholds Browser 395

Thresholds Browser Toolbar

Control Type

Link Browsers To Use

Same Zone/Break

Link Between

Browsers

Button

Default Value

Enabled

Description

Toggles whether or not the Time Control panels of all existing and newly created browsers are linked. Clicking this button affects the browsers in the current Project

only. See “ Link Browsers to Use Same Zone/Break Link

Between Browsers ” on page 400 for more information.

Menus and Toolbar—Full Detail

Menu Bar—Browser Menu

New Browser

Choose New Browser... to launch the New Browser dialog, which allows you to select and open a new browser of a specific type. The new browser is not automatically added to the Project or listed in the Project window.

Keyboard accelerator: Ctrl-B.

Add New Browser To Project

The Add New Browser To Project menu item is enabled if you have not yet added this browser to the Project. Click this item to add the browser to the

Project. A new Thresholds browser icon will appear in the Browsers area of the

Project Window.

Keyboard accelerator: Ctrl-A.

Export Report

Select Export Report... to begin the process of generating a print version of the browser suitable for inclusion in a report. When you select this option, a Save file chooser is launched so that you can supply a file name for the report. See

“ PerformaSure Reports ” on page 411 for a discussion of the reports that

PerformaSure can provide.

Keyboard accelerator: Ctrl-R.

Properties

Choose Properties... to launch the Browser Properties dialog. This dialog allows you to rename the browser, provide a description of the problems that you have found by using this browser and its settings, and select whether you would like this browser to open automatically when you open the Project.

396 PerformaSure: User’s Guide

Close

Select the Close menu item to close the browser but leave the Project open.

Keyboard accelerator: Ctrl-W.

Exit PerformaSure

Choose Exit PerformaSure to close all open Projects and browsers and shut down the Workstation. When you select this menu item, you may be prompted to save the Projects that are open or add new browsers to these Projects before exiting PerformaSure.

Menu Bar—View

Auto-Fit All Columns

Click Auto-Fit All Columns to resize the width of all columns in the table so that all values within each column are visible.

Show/Hide Columns

You can choose whether or not to display certain metric properties in the detail pane. Select Show/Hide Columns... to open a dialog that contains a group of checkboxes. Each checkbox controls the display of the associated metric property in a column in the detail pane.

Show/Hide Bar Charts

You can choose whether or not to display certain bar charts in the detail pane columns. Select Show/Hide Bar Charts to open a dialog that contains a group of checkboxes. Each checkbox controls the display of the associated bar chart.

Show Filter Bar

Select or deselect the checkbox associated with the menu item Show Filter Bar to toggle the display of the Filter Metrics bar at the bottom of the graph pane.

Using the Thresholds browser’s Filter Metrics bar

You can enter a literal string or a regular expression in the Filter Metrics bar’s

Filter Metrics text field. When you click the Apply button, the string or expression that you entered is matched against the metric names listed in the detail pane; only the metrics that match are displayed in the graph pane and in the detail pane. By default, the Filter Metrics text field contains an empty literal

Thresholds Browser 397

string so that all metrics are selected. See “ Appendix D—Regular Expressions ” on page 489 for more information about using regular expressions.

Tip: If you enter a regular expression in the Filter Metrics text field, ensure that the Regular Expression checkbox is selected before you click

Apply.

Menu Bar—Tools

Recording Control Window

Select Recording Control Window... to launch the Recording Control window.

See “ Recording Control Window ” on page 197 for more information about using

the controls in this window.

Session Management

Select Session Management... to open the Session Management dialog. See

“ Session Management ” on page 164 for more information about using this dialog.

Thresholds

Select Thresholds... to launch the Threshold Editor. See “ Threshold Editor ” on page 408 for more information.

Change Password

Select Change Password... to open the Change Password dialog. See “ Changing a

Password ” on page 154 for more information about using this dialog.

User Management

Select User Management... to launch the User Management window. See “ User

Management ” on page 154 for details about using this window.

Note: This item is disabled if you do not have the required permissions.

Performance Diagnostics

Selecting the Performance Diagnostics menu item displays a submenu with one option: Spotlight

®

in Quest Central. This option is enabled if Quest Central is installed. When you select this option, the version of Spotlight

®

included with

Quest Central is launched.

398 PerformaSure: User’s Guide

Options

Selecting the Options... menu item launches the Edit Options dialog. See “ Edit

Options Dialog ” on page 247 for details about using this dialog.

Menu Bar—Windows

The Windows menu’s one static choice is Bring All To Front, which ensures that all open PerformaSure windows have a higher stacking order than non-

PerformaSure windows.

The other items in the Windows menu allow you to switch from one open Project window or from one open browser to another. In addition to Bring All To Front, the Windows menu will always contain at least two items: one for the Project window and one for this browser.

Menu Bar—Help

Help

The Help... menu item launches context-sensitive help for this browser.

About

The About... menu item opens a new window in which product information about PerformaSure is displayed.

Toolbar

The Thresholds browser’s toolbar is located directly below the menu bar.

Figure 154

Figure 154 The toolbar in the Thresholds browser

New Browser

The New Browser... button has two parts. Click on the left-hand side of this button to launch the New Browser dialog, from which you can select the type of browser that you want and assign it a name. Click on the right-hand side of the

New Browser... button to display a drop-down menu from which you can choose the type of browser that you want.

Thresholds Browser 399

Add New Browser to Project

The Add New Browser to Project button is enabled if you have not yet added this browser to the Project. Click this button to add the browser to the

Project. A new Thresholds browser icon will appear in the Browsers area of the

Project window.

Export Report

Click the Export Report button to begin the process of generating a print version of the browser suitable for inclusion in a report. When you select this option, a Save file chooser is launched so that you can supply a file name for the

report. See “ PerformaSure Reports ” on page 411 for a discussion of the reports

that PerformaSure can provide.

Properties

Click the Properties button to launch the Browser Properties dialog. This dialog allows you to rename the browser, provide a description of the problems that you have found by using this browser and its settings, and select whether you would like this browser to open automatically when you open the Project.

Performance Diagnostics

Clicking the Performance Diagnostics button displays a drop-down menu with one option: Spotlight

®

in Quest Central. This option is enabled if Quest

Central is installed. When you select this option, the version of Spotlight

® included with Quest Central is launched.

Link Browsers to Use Same Zone/Break Link Between Browsers

Every PerformaSure browser contains a button that allows you to toggle whether or not the Time Control panels of all existing and newly created browsers are linked. Clicking this button affects the browsers in the current Project only.

Click the Link Browsers to Use Same Zone button to link the browsers’

Time Control panels. When linked, the Zonar and (where applicable) the Sightline in each browser are in the same state as the browser in which the button was clicked. Using the Zonar or (where applicable) the Sightline in one browser will impact all other browsers as well. If a problem occurs during a specific interval spanned by the Zonar, linking the browsers can help you track this problem across different browsers.

400 PerformaSure: User’s Guide

Click the Break Link Between Browsers button to return the browsers’

Time Control panels to an unlinked state. This allows each browser’s Zonar and

Sightline to function independently.

Time Control Panel

The Time Control panel is located directly below the Thresholds browser’s toolbar.

This panel has the same controls in all PerformaSure browsers. See “ Time

Control Panel ” on page 253 for a detailed description of its controls.

Thresholds Browser Graph Pane—Summary

The following table describes the controls available in the graph pane.

Thresholds Browser Graph Pane

Control Type

Chart header

Function Set chooser

Plot Type chooser

Drop-down menu

Drop-down menu

Drop-down menu

Enabled

Enabled

Enabled

Sightline slider

Chart Type chooser

Slider

Edit Thresholds Button

Enabled

Drop-down menu Enabled

Enabled

Default Value Description

Displays the name of the active metric.

Displays a menu from which you can select the function applied to the metric charted in the graph pane.

Displays a menu from which you can select the plot type applied to the active metric.

Changes the position of the Sightline.

Displays a menu from which you can select the chart type.

Opens the Threshold Editor for the active metric.

Thresholds Browser Graph Pane—Context Menus

Control

Function for Selected Metric

Plot Type for Selected Metric

Copy

Type Description

Drop-down menu

Drop-down menu

Menu item

Displays a menu from which you can select the function applied to the metric charted in the graph pane.

Displays a menu from which you can select the plot type applied to the metric charted in the graph pane.

Copies the metric charted in the graph pane.

Thresholds Browser 401

Thresholds Browser Graph Pane—Full Detail

The Thresholds browser’s graph pane includes several elements.

Figure 155

Figure 155 Elements in the Thresholds browser’s graph pane; the Chart Type is set to Default and the Plot Type is set to Line.

Charts in the Graph Pane

In the Thresholds browser graph pane, you can view a chart for every metric with threshold violations. To view the chart for a metric in the graph pane, click on the entry for that metric in the detail pane.

Tip: Hold down the Shift key and drag the mouse between two points in the graph pane to cause the Zonar to zoom in to a smaller portion of the

Timeline. When you perform this action, the metric data displayed in the graph pane will be for the new interval spanned by the Zonar.

402 PerformaSure: User’s Guide

Chart Header

The chart header displays the name of the metric that is currently charted in the graph pane.

Tip: Hover the cursor over the chart header to make a tooltip appear that displays the full name of the active metric.

Changing the Function Set

Click the Function Set chooser icon to display a drop-down menu from which you can select the function applied to the metric that is charted in the graph pane.

Tip: Hover the cursor over the Function Set chooser icon to make a tooltip appear that displays the function that is currently applied to the metric charted in the graph pane.

Changing the Plot Type

Click the Plot Type chooser icon to display a drop-down menu from which you can select the plot type. When Default or Overlap is selected from the

Chart Type chooser, the options available in this menu are Line, Bar, and Area.

When Stacked is selected from the Chart Type chooser, the options available in this menu are Stacked Bar and Stacked Area.

Tip: Hover the cursor over the Plot Type chooser icon to make a tooltip appear that displays the plot type that is currently selected.

Edit Thresholds Button

Click the Edit Thresholds... button to launch the Threshold Editor. See

“ Threshold Editor ” on page 408 for details about the Threshold Editor. See

“ Thresholds Browser FAQ ” on page 410 for information about the availability of

the Edit Thresholds button.

Thresholds Browser 403

Tooltips in the Graph Pane

Indicator Tooltips

Hover the cursor over a Metric Indicator to cause a tooltip to appear in which the name of the corresponding metric and the function applied to it are displayed.

Figure 156

Figure 156 The tooltip for a Metric Indicator

Chart Tooltips

Hover the cursor over a data point in the chart to cause the x- and y-axis values charted at that point to appear in a tooltip.

Figure 157

Figure 157 The tooltip for a data point

Context Menus in the Graph Pane

You can right-click anywhere in a chart in the graph pane to make a context menu appear.

Function for Selected Metric

Click Function for Selected Metric to cause a submenu to appear from which you can select the function applied to the metric that is charted in the graph pane.

Plot Type For Selected Metric

Select Plot Type for Selected Metric to cause a submenu to appear from which you can select the plot type applied to the metric that is charted in the graph pane. When Default or Overlap is selected from the Chart Type chooser, the options available in this menu are Line, Bar, and Area. When Stacked is selected from the Chart Type chooser, the options available in this menu are

Stacked Bar and Stacked Area.

404 PerformaSure: User’s Guide

Copy

Click Copy to copy the metric that is charted in the graph pane, allowing you to paste it into a chart in the Metrics browser. You can also paste the metric name into another application, such as a spreadsheet.

Thresholds Browser Detail Pane

The Thresholds browser’s detail pane provides an explorer view of the metrics that are charted in the graph pane. Metric properties are displayed in the detail pane in tabular form.

Tip: Selecting a row in the detail table and putting it in the operating system’s copy buffer allows for further processing. (Select the row in

Unix, or Ctrl-C in Windows.) After the row is copied, you can paste it into another application, such as a spreadsheet.

Figure 158

Figure 158 The detail pane in the Thresholds browser

Detail Pane Columns

The columns in the detail pane are described below.

Figure 159

Figure 159 The column headers in the Thresholds browser’s detail pane

Name

The Name column lists the names of the metrics with threshold violations during the interval spanned by the Zonar.

Tip: Hover the cursor over an entry in the Name column to display the full name of the metric.

Thresholds Browser 405

Function

The Function column lists the function applied to the metric with threshold

violations. See “ Setting Thresholds ” on page 410 for more information about how

metrics with threshold violations are listed in the Thresholds browser’s detail pane.

Violation Count

The Violation Count column lists the total number of threshold violations for the function applied to the metric.

This count includes the point(s) during the interval spanned by the Zonar at which the measurement crosses the maximum threshold line or the minimum threshold line, but not the subsequent points at which the measurement exceeds one of these lines. If the measurement already exceeds one of these lines at the beginning of the interval spanned by the Zonar, the initial measurement point for this interval will be counted as a threshold violation.

Total Duration

The Total Duration column lists the total length of time during which the thresholds for the function applied to the metric have been exceeded during the interval spanned by the Zonar.

The total duration of a threshold violation is calculated by multiplying the number of time slices in which a threshold violation occurs by the sample rate of the metric. If the sample rate is unavailable for a certain metric, the number of time slices in which a threshold violation occurs is multiplied by the session’s time slice size. For example, if a threshold violation occurs in five time slices during the interval spanned by the Zonar and the sample rate for the metric is 20 seconds, then the value listed in the Total Duration column will be 100 .

Bar Charts in the Detail Pane

The bar charts in the Violation Count and Total Duration columns in the Thresholds browser’s detail pane allow you to visually compare the values listed in these

columns for multiple metrics with threshold violations (see Figure 158).

Context Menus in the Detail Pane

You can right-click anywhere in the detail table to make a context menu appear.

The items in these menus are described below.

406 PerformaSure: User’s Guide

Figure 160

Figure 160 A context menu in the detail pane

Auto-Fit Column

Click Auto-Fit Column to resize the width of that column so that all values within the column are visible.

Auto-Fit All Columns

Click Auto-Fit All Columns to resize the width of all columns in the table so that all values within each column are visible.

Hide Column

Click Hide Column if you do not want the column on which you right-clicked to be displayed in the table.

Show/Hide Columns...

You can choose whether or not to display certain metrics in the detail pane. Select

Show/Hide Columns... to open a dialog that contains a group of checkboxes.

Each checkbox controls the display of the associated metric in a column in the detail pane.

Hide Bar Chart

Click Hide Bar Chart if you do not want bar charts displayed in that column.

Show/Hide Bar Charts...

You can choose whether or not to display certain bar charts in the detail pane columns. Select Show/Hide Bar Charts to open a dialog that contains a group of checkboxes. Each checkbox controls the display of the associated bar chart.

Thresholds Browser 407

Threshold Editor

To launch the Threshold Editor, click the Edit Thresholds button in the Metrics,

Request Time, SQL, or Thresholds browser or select Tools > Thresholds... from any browser’s menu bar. The Edit Thresholds button is only available when you

have a Default or Overlap chart open in one of these browsers. See “ Thresholds

Browser FAQ ” on page 410 for more information.

Figure 161

Figure 161 A response time metric displayed in the Threshold Editor

Using the Threshold Editor

Selecting Metrics from the Navigator Pane

Metrics are listed in a tree hierarchy in the navigator pane on the left-hand side of

the Threshold Editor (see Figure 161). The metrics that are listed in this pane

include default metrics and all metrics available within the session that you are currently analyzing, such as operating system metrics, application metrics, Java virtual machine metrics, application server metrics, SQL statement metrics and

408 PerformaSure: User’s Guide

request metrics. You can examine or change the thresholds for a metric by clicking on the entry for that metric in the tree hierarchy.

Important: The metrics listed in the navigator pane will vary depending on

the application server(s) that you are instrumenting. See “ The

Metric Hierarchy ” on page 464 for more information about the

structure of the metric hierarchy displayed in the Threshold

Editor and in the Metrics browser.

Editing Metric Thresholds

A set of threshold properties is associated with each metric. When you select a metric in the tree hierarchy, the properties associated with that metric (Function,

Min Threshold, Max Threshold, and Unit) are listed in a table on the right-hand side of the Threshold Editor. The columns in this table are described below.

Function

Function sets vary between metrics. A separate entry appears in the table for each function applied to the metric that you selected.

Max Threshold and Min Threshold

Some metrics have default Max Threshold and Min Threshold settings, while other metrics default to undefined. Double double-click the appropriate field in one of

these columns to set a new threshold. See “ Setting Thresholds ” below for more

information.

Unit

The units of measurement from which you can choose vary between metrics. To select a different unit of measurement, click on the entry in the Unit column to display a drop-down menu in which the options available for that metric are listed.

Reset to Default Values

Click the Reset To Default Values checkbox to restore the threshold properties listed in the table to their default values. This checkbox will be selected and disabled if the properties have not been changed from their default values.

Caution: Clicking the Reset to Default Values checkbox will reset all values listed for every entry in the table, not just the values in the row that you have selected.

Thresholds Browser 409

Setting Thresholds

Editing the Max Threshold and Min Threshold properties associated with a metric allows you to set bounds which, if exceeded, indicate a possible performance bottleneck that may contribute to an underperforming system. You set maximum and minimum thresholds for each function applied to a metric. When a metric exceeds the bounds that you set in the Threshold Editor, the entry that appears in the table in the Thresholds browser’s detail pane corresponds to a specific function of that metric.

You can edit the Max Threshold field to contain the value that should not be exceeded during normal operation. Values greater than the one you set here indicate a system under stress. The Min Threshold field allows you to set a minimum value that should always be exceeded during normal operation. Values less than the one set here indicate that the chosen metric is being underutilized.

Important: Threshold settings are saved on a per-Workstation basis. This means that the threshold settings that you save using one

PerformaSure Workstation will be available in all Projects that you open using that Workstation. This feature allows you to compare the metrics collected in multiple sessions (when some or all of the same metrics are available), making it easier to track performance problems across sessions. When you open a

Project on a new Workstation, the threshold settings will be returned to their default values.

Thresholds Browser FAQ

I’ve charted a metric in the graph pane using the Stacked chart, and I want to edit the thresholds for this metric, but the Edit Thresholds button has disappeared. How do I make this button appear so that I can access the Threshold Editor?

You cannot edit metric thresholds when you are using a Stacked chart in the

Request Time, SQL, Metrics or Thresholds browsers; this is why the Edit Thresholds button is unavailable. Switch to a Default or Overlap chart to make this button appear.

410 PerformaSure: User’s Guide

Chapter 18

PerformaSure Reports

The following topics are covered in this chapter:

PerformaSure Reports

Generated Reports

Customizing Reports

Choosing the Report Option

PDF Reports

CSV Format

XML Format

Threshold Report

Request Time Report

SQL Report

Request Tree Report

Metric Report

PerformaSure Reports FAQ

PerformaSure Reports

Reports are useful for communicating the data contained in session files to those who need to see the results of an investigation, but who may not want to use the

Workstation and open the various browsers. Reports can be distributed widely and they can contain just the information you need to convey.

You can create PDF reports, which can be incorporated into other company reports, or you can create CSV- or XML-based reports, which are suitable for further processing by spreadsheets and the like.

411

Generated Reports

Before you generate a report, you must first select report options, then configure the browser on which the report will be based.

Customizing Reports

The Edit Options dialog contains several options for customizing generated reports. To access these options, select Tools > Options... from the menu bar in the Project window or in any browser, then select Reports from the left-hand side of the dialog. The options in the Reports pane are described below.

Figure 162

Figure 162 Choices for customizing reports in the Edit Options dialog

Customizing PDF Reports

The header of a PDF report contains, on the left, the report type, the generation date, and the name of the session file. You can add a custom image or custom text to the right-hand side of the report’s header. The area on the right is 4.5 inches wide by 0.625 inches high and it can contain the default PerformaSure image, your own custom image, text of your choice, or it can be left blank.

You select these options in the Reports pane of the Edit Options dialog (Tools >

Options... > Reports). These options are described below.

Default PerformaSure Image

The option Default PerformaSure Image is selected by default. When this option is selected, the area on the right-hand side of the report contains a

PerformaSure image.

412 PerformaSure: User’s Guide

Image

Selecting Image allows you to include an image of your choice. GIF, JPEG, or

PNG images are supported. Your image should have a size of 324 by 45 pixels if you want it to completely fill the available rectangle. Larger images are scaled to fit, and the aspect ratio of the original image is maintained. Smaller images are placed in the top right-hand corner of the frame. Use padding to place a small image at another location within the frame.

Text

Select Text to include custom text in the report’s header. Font size depends on the amount of text. Text is auto-scaled to fit in the available area.

None

Select None if you want to leave the area blank.

Customizing CSV and XML Reports

You can choose whether or not to round values in CSV and XML reports in the

Reports pane of the Edit Options dialog (Tools > Options... > Reports). The checkbox Do Not Round Values In CSV Or XML Reports is selected by default. Deselect this checkbox if you would like the values in CSV and XML reports to be rounded. Rounded values have a maximum of three decimal places.

Choosing the Report Option

To generate a report:

1.

Set up the PerformaSure browser the way you want it to look in the report.

2.

Click the Export Report button in the browser’s toolbar, select Browser

> Export Report... from the menu bar, or type Ctrl-R.

• If you are generating a report from the Request Tree browser, the Request

Tree Report dialog opens at this point; see “ Request Tree Report Dialog ” on page 420 for information about the controls in this dialog.

Clicking the Continue button in the Request Tree Report dialog launches the

Save dialog.

3.

The Save dialog appears. Select the directory in which you want the report to be saved, supply a filename for the report, and select the format for the generated report from the Files of Type drop-down menu.

PerformaSure Reports 413

The appearance and structure of a report depends on the type of report that you

generate and the file format you select (PDF, CSV, or XML). See “ PDF Reports ”,

“ CSV Format ”, and “ XML Format ”, below for more information about the

different file formats. See “ Threshold Report

” on page 421, “ Request Time

Report ” on page 418, “ SQL Report

” on page 418, and “ Request Tree Report ” on page 419, and “

Metric Report ” on page 420 for more information about the

different types of reports.

PDF Reports

In PDF format, generated reports contain a header and a body. See “ Customizing

PDF Reports ” on page 412 for more information about PDF report headers.

In all types of reports, the body of the report begins with a Reporting Period line stating the date and time interval covered by the report; the start time and end time listed in this line are based on the interval spanned by the browser’s Zonar.

In all reports except the Request Tree Report and the Reporting Period line is followed by a printer-friendly replica of the view in the graph pane when you generated the report and a table with details about the session data displayed in this view;

see Figure 164 for an example of a PDF Request Tree Report. In the PDF version of

the Metrics Browser Report, for example, there is a replica of each metric graph that was open in the Metrics browser when you generated the report. Each graph is preceded by a Reporting Period line and followed by a table that lists the metrics charted in that graph. Details about these metrics are also included in the table.

In certain types of PDF reports, such as the Request Time Report, the SQL Report, and the Threshold Report, the first graph and table are followed by one or more other tables. The information listed in these tables is based on the data displayed in the detail pane of the browser from which you generated the report. The number of tables included in the report and the information that they contain varies depending on the type of report that you generate.

414 PerformaSure: User’s Guide

Figure 163

Figure 163 A report in PDF format

Tip: When there are many items displayed in the browser, the PDF version of the Request Tree Report (and to a lesser extent, all reports) may require a significant amount of memory and may cause an out of memory error on some systems. As well, the time required to generate a report may be long, perhaps running to a minute or two. Very large PDF file sizes could well be the result.

In the Request Tree, for example, you are likely only interested in the top few potential offenders in each request. To reduce the size of the report, you can adjust the settings in the browser’s Time Control panel to focus on the part of the session that is of most interest to you and use the Request Tree Report dialog to limit the of number request items

included in the report; see “ Request Tree Report ” on page 419 for

more information about using this dialog.

PerformaSure Reports 415

CSV Format

The Comma Separated Values form is useful for importing into spreadsheets.

Data is presented in tabular format in a generated report saved as a CSV file. The basic structure of a CSV file is as follows:

Report Title

Report Generation Date

Session Name

Reporting Period Start date and time

Reporting Period End date and time

Data Series line(s)

Example: Threshold Report

Generated on:,2006/03/06 09:12

Session:,TestSession_2006-Mar-04 11:12:13

Reporting Period Start:,03/04/2006 11:12

Reporting Period End:,03/04/2006 11:14

Time (ms),1.06753E+12,1.06753E+12

% JVM heap used for all servers in Unclustered

Servers; function:Percent; unit:percent,397.906,63.46

Name,Function,Violation Count,Total Duration (s)

% JVM heap used for Unclustered

Servers/examplesServer

(WebLogic),Percent/Min/Max,1,60

% JVM heap used for Unclustered

Servers/examplesServer (WebLogic),Percent,1,60

% JVM heap used for all servers in Unclustered

Servers,Percent/Min/Max,1,60

% JVM heap used for all servers in Unclustered

Servers,Percent,1,60

XML Format

All generated reports saved in XML format include an XML header, the report root element with name , generated-on , and timezone attributes, as well as session and data elements. The session element contains name , start-time , and end-time attributes. The data element contains different elements and attributes depending on the browser from which you generated the report.

416 PerformaSure: User’s Guide

Example: <?xml version="1.0" encoding="UTF-8" ?>

<report name="Threshold Report" generated-on="Mar 6,

2006 9:12:15 AM" timezone="EDT">

<session name="TestSession_2006-Mar-04 11:12:13" start-time="Mar 04, 2006 11:12:13 AM" end-time="Mar

04, 2006 12:13:14 PM" />

<data>

<metric-group>

<metric name="% JVM heap used for all servers in Unclustered Servers" function="Percent" unit="percent">

<data-point time="1067526929426" value="397.906" />

<data-point time="1067526989426" value="63.46" />

</metric>

</metric-group>

<threshold-violations>

<metric name="% JVM heap used for Unclustered

Servers/examplesServer (WebLogic)" function="Percent/Min/Max">

<count>1</count>

<total-duration-seconds>60.0</totalduration-seconds>

</metric>

<metric name="% JVM heap used for Unclustered

Servers/examplesServer (WebLogic)" function="Percent">

<count>1</count>

<total-duration-seconds>60.0</totalduration-seconds>

</metric>

<metric name="% JVM heap used for all servers in Unclustered Servers" function="Percent/Min/Max">

<count>1</count>

<total-duration-seconds>60.0</totalduration-seconds>

</metric>

...

</threshold-violations>

</data>

</report>

PerformaSure Reports 417

Request Time Report

A Request Time Report is based on a Request Time browser. It is available in PDF,

CSV, and XML file formats. In all three formats, it begins with the name of the report, the date on which it was generated, the name of the session, the reporting period start date and time and the reporting period end date and time.

Depending on the option that was selected from the Display By drop-down menu in the Request Time browser when you generated the report, the body of the

Request Time Report lists either tier or component technology response times for all service requests that entered the instrumented system during the reporting period. The body of the report also includes detailed response time information for the request that you selected broken down either by tier or by component technology. If Show Response Time for All Requests was selected in the browser when you generated the report, the metric Response Time is included with the information for the selected request. This metric is the aggregate response time for all requests.

If you have drilled down into the selected request to investigate response time by component technology, tier, or server, the report will also include the drill-down history and details about the response time metrics available for the request at that drill-down level.

SQL Report

A SQL Report is based on a SQL browser. It is available in PDF, CSV, and XML file formats. In all three formats, it begins with the name of the report, the date on which it was generated, the name of the session, the reporting period start date and time and the reporting period end date and time.

In the body of the report, there is a list of the SQL statements used in your application and response time metrics for these statements. The report also includes detailed response time information for the SQL statement that you selected broken down by operation (prepare, execute, and retrieve). If Show

Response Time for All Statements was selected in the browser when you generated the report, the metric Total Response Time is included with the information for the selected statement. This metric is the aggregate response time for all SQL statements.

418 PerformaSure: User’s Guide

Request Tree Report

A Request Tree Report is based on a Request Tree browser. It is available in PDF,

CSV, and XML file formats. In all three formats, it begins with the name of the report, the date on which it was generated, the name of the session, the reporting period start date and time, the reporting period end date and time, the number of items included in each request, the active metric (the metric by which requests are ordered in the report, for example, Average Cumulative Time), the metric display mode (Per Request or Per Call), and the bundling mode (Component, Class, or

Method). The active metric, the metric display mode and the bundling mode are

set in the Request Tree browser. See “ Active Metric ” on page 328, “ Metric Display ”

on page 328, and “ Bundling Mode ” on page 331 for more information. The

number of items included in each request is set in the Request Tree Report dialog.

See “ Request Tree Report Dialog ” below for more information.

In the body of the Request Tree Report, there is a numbered list of the service requests that entered the instrumented system during the reporting period.

Requests are ranked in descending order according to the most expensive item in each request. The items within each request are also ranked in descending order in a numbered list. Both rankings are based on the active metric that you selected

from the Active Metric drop-down menu in the Request Tree browser. See “ Active

Metric ” on page 328 for a description of the options available from this menu.

Metrics are listed in tabular form for each item within a request.

A sample Request Tree Report in PDF format is shown in Figure 164.

Figure 164

Figure 164 A sample Request Tree Report in PDF format

PerformaSure Reports 419

Request Tree Report Dialog

This dialog allows you to select how many items within each service request are included in the Request Tree Report. The controls in this dialog are listed below.

Request Tree Items

Limit Report to Top n Items in each Service Request

Select this option and adjust the setting in the editable spin box to include only the top n most expensive items within each request (based on the active metric) in the report. The default setting is 10 .

All Service Request Items

Select this option to include all items within each service request in the report.

Continue

After you have selected one of the two options in the Request Tree Items box, click

Continue to launch the Save file chooser. Use this file chooser to provide a filename for the report, select a file format, and navigate to the directory in which you want to save the report.

Metric Report

A Metric Report is based on a Metrics browser. It is available in PDF, CSV, and

XML file formats. In all three formats, it begins with the name of the report, the date on which it was generated, the name of the session, the reporting period start date and time and the reporting period end date and time.

Detailed information is included in the body of the report for each metric graph that was open in the Metrics browser. The name of each charted metric, the function applied to it, its unit of measurement, and the maximum and minimum values charted for that metric during the reporting period are listed in tabular form.

The CSV and XML versions of the Metric Report are more useful for data reduction. It is likely that you will want to produce Metric reports in one of these file formats so you can import them into your data reduction and analysis software.

420 PerformaSure: User’s Guide

Threshold Report

A Threshold Report is based on a Thresholds browser. It is available in PDF, CSV, and XML file formats. In all three formats, the report begins with the name of the report, the date on which it was generated, the name of the session, the reporting period start date and time and the reporting period end date and time.

The body of the Threshold Report contains details about the metric with threshold violations that you selected in the browser, followed by a list of all metrics whose threshold settings were exceeded during the reporting period and details about these metrics.

PerformaSure Reports FAQ

Can I customize generated reports?

You can customize reports in the Edit Options dialog. To launch this dialog, select

Tools > Options... from the menu bar in the Project window or in any browser.

See “ Customizing Reports ” on page 412 for more information.

PerformaSure Reports 421

422 PerformaSure: User’s Guide

Part

III

Reference

Appendices

Appendix A—Configuring

PerformaSure

The Configuration File Hierarchy

Configuration files are located in <performasure_home>/config/ and its subfolders.

The configuration file hierarchy is illustrated in Figure 165.

Figure 165

Figure 165 The folders in <performasure_home>/config

Configuring Agents

An Agent must know:

■ The hostname or IP address and port of the Nexus. The default value of the port is 41705.

425

How long it should wait between attempts to reconnect to the Nexus if it was not able to connect successfully at startup, or if the connection was subsequently lost.

How long the Agent should wait for authentication approval during its initial attempt to connect to the Nexus.

Whether it will be taking JDBC data into account in Monitoring Mode.

Whether it can launch a System Agent if the Nexus requests it.

You can also specify:

■ A unique Agent name.

You set all the parameters mentioned above in

<performasure_home>/config/agent.config.

The Parameters in agent.config

The file <performasure_home>/config/agent.config contains the parameters used in configuring the properties of both Service Request and System Agents. The configuration sections in this file are described below.

Important: You must restart the Agents and your instrumented application servers after editing agent.config.

Specifying an Agent Name

AgentName

A configuration option that allows you to specify your choice of name for an

Agent.

What it is used for:

This configuration option allows you to specify a unique Agent name of your own choosing. By default, the Agent name is constructed automatically from the host or server name, so in most cases you do not need to change it. To set a custom name, uncomment the AgentName configuration section in

<performasure_home>/config/agent.config (delete the # that precedes it) and then edit it.

426 PerformaSure: User’s Guide

Example usage:

AgentName = “Some Agent Name”;

Specifying the Location of the Nexus

NexusHost

The hostname or IP address of the Nexus machine to which Agents must connect.

What it is used for:

Agents send the data that they have collected to the Nexus using the

PerformaSure Proprietary Protocol (PaSPP). At startup, Agents read this configuration section to find the location of the Nexus.

Important: You must edit NexusHost , which tells the Agent where to find the Nexus. The default setting is localhost , which assumes that all PerformaSure components are on the same machine as the Nexus. While this is possible, it is not recommended. The

Nexus should be on its own machine and it is expected that your Web and application servers occupy a cluster of machines on your network.

Example usage:

NexusHost = “localhost”;

NexusPort

The port number that Agents use to communicate with the Nexus.

What it is used for:

Agents send the data that they have collected to the Nexus using the

PerformaSure Proprietary Protocol (PaSPP). At startup, Agents read this configuration section to find the location of the Nexus.

Example usage:

NexusPort = 41705;

Appendix A—Configuring PerformaSure 427

Attempting to Restore the Agent-Nexus Connection

NexusRetryInterval

Sets the interval after which an Agent will try to re-establish a broken connection with the Nexus.

What it is used for:

If the connection between an Agent and the Nexus is broken or if the Agent fails on its initial attempt to connect to the Nexus, the Agent tries to reconnect at regular intervals. This configuration section specifies the time in milliseconds between such attempts. The default setting is 5000 (5 seconds).

Example usages:

To try the connection every five seconds:

NexusRetryInterval = 5000;

To prevent the connection from being retried if it is dropped:

NexusRetryInterval = 0;

Attempting to Reconnect to the Nexus After an Authentication

Failure

NexusAuthFailureRetryInterval

Sets the amount of time that the Agent will wait before trying to connect to the

Nexus after an authentication failure. This setting is required.

What it is used for:

If the Agent fails on its initial attempt to connect to the Nexus due to an authentication failure (such as a build number mismatch or expired licensing), it tries to connect at regular intervals. NexusAuthFailureRetryInterval sets the interval in milliseconds between such attempts. A value of 0 will prevent the

Agent from attempting to reconnect after an authentication failure. The default setting is 120000 (2 minutes).

Example usages:

To try the connection every two minutes:

NexusAuthFailureRetryInterval = 120000;

To prevent the connection from being retried after an authentication failure:

NexusAuthFailureRetryInterval = 0;

428 PerformaSure: User’s Guide

Setting the Authentication Timeout

AuthenticateTimeout

The time that an Agent will wait for a response from the Nexus after an authentication request. The default is 30 seconds. If the Nexus does not respond within this time, the Agent drops the connection.

What it is used for:

There are three stages to authentication of the Agent by the Nexus:

1.

The Agent sends an authentication request to the Nexus.

2.

The Nexus checks the license number for the Agent and responds with the message, “ Authentication approved ”.

3.

The Agent sends a message indicating that it acknowledges the Nexus’ authentication approval. The Agent is now ready to collect data.

The AuthenticateTimeout configuration option specifies the time to wait before a failure message is generated. If the authentication reply is not sent before the timeout, the connection is broken. The Agent retries the connection at regular intervals based on the value of NexusRetryInterval .

Example usage:

To cause the Agent to wait 30 seconds for a response from the Nexus:

AuthenticateTimeout = 30000;

Taking JDBC Data Into Account

JdbcMonitoringEnabled

May have a boolean value of either true or false . This configuration option determines whether the Agent will be taking JDBC data into account when it is in

Monitoring Mode. This setting does not affect the data recorded in a session.

Example usage:

The default setting is:

JdbcMonitoringEnabled = false;

Appendix A—Configuring PerformaSure 429

Launching a System Agent

CanLaunchSystemAgent

May have a boolean value of either true or false . This configuration option determines whether the Agent can launch a System Agent if the Nexus requests it.

Example usage:

The default setting is:

CanLaunchSystemAgent = true;

Configuring the Nexus

Many runtime parameters can be set for the Nexus. For example, you can:

• Specify a location for the sessions directory other than the default.

• Change the default settings for the port that the Nexus uses to communicate with the Agents, the Workstations, and nexusctl.

• Turn the Nexus System Agent on to benchmark Nexus performance.

You configure the Nexus by editing its configuration file,

<performasure_home>/config/nexus.config.

The Parameters in nexus.config

Important: You must restart the Nexus after editing

<performasure_home>/config/nexus.config. You must restart the

Nexus, the Agents, and your instrumented application servers after editing ListenHost or ListenPort .

Changing the Sessions Directory

SessionDirectory

Sets the location of the data collected in a session.

430 PerformaSure: User’s Guide

What it is used for:

The data collected by PerformaSure is kept in session files on the machine hosting the Nexus. By default, they are stored in <performasure_home>/sessions

( SessionDirectory is set to “sessions” ). Edit the SessionDirectory configuration section to change the location where session files are kept.

For improved performance, consider reserving a drive or a partition of a drive on the same machine as the Nexus solely for session files.

Example usages:

SessionDirectory = “D:\\Users\\User1\\Sessions”;

SessionDirectory = “/tmp/PerformaSure”;

SessionDirectory = “E:\\Data”;

SessionDirectory = “/usr/ps/sessions”;

The SessionDirectory configuration option should contain a single directory name. Absolute or relative paths are allowed.

Important: The directory where the Nexus stores sessions must be on a local drive. The Nexus cannot be run from a network mounted drive using protocols such as NFS (Network Filesystem) or

SMB (Server Message Block). If necessary, edit

<performasure_home>/config/nexus.config to ensure that this is the case.

Appendix A—Configuring PerformaSure 431

Configuring the Communication Ports Used by the Nexus

ListenHost and ListenPort

Set the host and port that the Nexus uses to communicate with Agents,

Workstations, and nexusctl using the NexusTalk 2 protocol (NT2).

Important: If the Nexus is behind a firewall, then the firewall must be configured to allow connections to be made from any Agents or

Nexus clients (the Workstation or nexusctl) that are on the other side of the firewall to the Nexus on the port number specified by ListenPort .

If there is no firewall between the Nexus and the Agents and the Nexus and Nexus clients (the Workstations or nexusctl), then

ListenPort in <performasure_home>/config/nexus.config,

NexusPort in <performasure_home>/config/agent.config, and the

Port field in the Workstation’s Define Nexus dialog (for the

Nexus instance that you have selected) must always be set to the same port number. If you change the value of ListenPort , you must follow the steps listed below.

1.

Update the value of NexusPort in the agent.config files for all Agents to match the new value of ListenPort .

2.

Logout from the Workstation if it is running (click the Logout button in the Startup window). Launch the Workstation if it is not running.

• From the Login window, click Define... to open the Define Nexus dialog. Select the Nexus instance that you want to edit and click

Edit....

• Update the Port field in the Edit Nexus dialog to match the new value of ListenPort . Click OK to save your changes and close the Edit

Nexus dialog, then click OK to close the Define Nexus dialog.

• Click Exit in the Startup window to shut down the Workstation.

• Repeat these steps for all Workstations that will connect to the Nexus on the new port number.

3.

Restart the Nexus, the Agents, and your instrumented application servers. If necessary, restart the Workstation. When using nexusctl, specify the new port number by including the -r URI

parameter; see “ -r

URI ” on page 238 for more information.

What they are used for:

ListenHost has a default value of “*” . This setting causes the Nexus to listen for connections on all available IP addresses . If you substitute a hostname or IP

432 PerformaSure: User’s Guide

address (such as, for example, “123.45.67.8” ) for the default value, the Nexus will listen for connections only on the IP address that you specify.

Tip: Substitute a hostname or IP address for “*” if you have multiple network cards on the Nexus machine and you want to only allow connections to the Nexus through one.

You would want to change the default value of ListenPort in the unlikely event that you are already using the port number for another purpose.

Example usage:

The default settings are:

ListenHost = “*”;

ListenPort = 41705;

If you need to change the port number, choose one that is greater than 1024.

Specifying the Agent Order Interval

AgentOrderInterval

Specifies in milliseconds how often the Nexus will place orders with the Agents for service request samples. The default value is 2000 (2 seconds).

What it is used for:

The Nexus regularly places orders with the Agents to collect a certain number of service request samples. The interval at which the Nexus places these orders is determined by the value of AgentOrderInterval . This interval is also called the

sampling interval. After the Nexus places an order, the Agents determine which service requests to sample.

It is not recommended that you edit this configuration option. Decreasing the value of AgentOrderInterval will make the Nexus more responsive to changes in load and will cause the Agents to collect more samples when the Few

Samples... Many Samples slider in the Sampling tab of the Recording Settings dialog is set to the far left in the recording settings configuration that you are using. Increasing this value will make the Nexus less responsive to changes in load and will cause the Agents to collect fewer samples when the Few Samples...

Many Samples slider is set to the far left.

Appendix A—Configuring PerformaSure 433

Example usage:

The default setting is:

AgentOrderInterval = 2000;

Changing the Commit Timeout Setting

CommitTimeout

The length of time in milliseconds that the Nexus waits before committing a service request to the session data file even if there is missing performance information from an external system. The default value is 4000 (4 seconds).

What it is used for:

A service request usually spends time in various containers. The part of the request that is processed in a specific container is called a request fragment. The

Nexus starts a timer when a request enters a container and it waits for that part of the request to finish. The timer is reset whenever an Agent reports data for the service request. In your environment, some request fragments may be slow. You can increase the value of CommitTimeout if you are seeing a number of fragmented requests; increasing this value can help prevent fragmented requests.

If your application calls out to an uninstrumented server, however, such requests will always be fragmented. The reason for this is that PerformaSure records the call from the instrumented component, but after that the correlation is lost because the information coming back from the uninstrumented server can’t be identified with the call. The request completes, and PerformaSure notes the completion, but recognizes that part of the request data is missing. In this case, increasing the value of CommitTimeout is not helpful, so it should not be changed.

Tip: PerformaSure is more efficient when the value of CommitTimeout is only slightly greater than the longest service request being instrumented. If you expect to make repetitive tests on a relatively stable environment, it may be worthwhile decreasing the value of

CommitTimeout until you begin to see fragmented requests, using

150% of this value.

Example usage:

CommitTimeout = 15000;

434 PerformaSure: User’s Guide

Launching System Agents Automatically

AllowAutomaticSystemAgentLaunching

Has a boolean value of either true or false . This configuration section controls whether the Nexus will attempt to ensure that a System Agent is launched on every host from which another type of Agent has connected.

What it is used for:

When set to true , the host machine of each instrumented application server will run its own System Agent along with its Service Request Agent or along with the

X-Agent. System Agents measure operating system and network metrics.

Collecting these types of metrics allows you to monitor the performance of the machines running your application servers.

Example usage

The default setting is:

AllowAutomaticSystemAgentLaunching = true;

Enabling a System Agent on the Nexus Machine

LaunchNexusSystemAgent

May have a boolean value of either true or false . This configuration section controls whether a System Agent should be launched for the Nexus machine.

What it is used for:

An instrumented application server runs its own System Agent along with its

Service Request Agent. You can choose to run a System Agent on the Nexus machine. The default setting is false , but Quest Software recommends that you run a System Agent on the Nexus machine periodically to ensure that the Nexus is not overtaxing its machine.

Example usage:

The default setting is:

LaunchNexusSystemAgent = false;

Appendix A—Configuring PerformaSure 435

Preventing a Firewall from Closing Nexus Connections

MessageTrafficTimeout

Ensures that a firewall does not close Nexus connections due to inactivity. This setting is optional; the value for this setting is specified in milliseconds.

Note: This setting applies to all Nexus connections, whether from the Agents,

Workstations, or nexusctl.

What it is used for:

Some firewalls and NAT devices automatically close connections after a certain period of inactivity. Uncommenting and setting MessageTrafficTimeout configures both endpoints of a Nexus connection to ensure that the idle timeout is not exceeded. A connection will be closed if it is idle for longer than this timeout.

The value that you specify in milliseconds for MessageTrafficTimeout should be equivalent to the firewall’s timeout for idle connections. You can leave this setting commented out if there is no firewall between the Nexus and Agents or between the Nexus and the Workstations or nexusctl or if the firewall does not close idle connections.

Example usage:

The default setting is:

MessageTrafficTimeout = 30000;

Configuration Lookup Sequence

PerformaSure has a four-stage configuration lookup sequence that provides the ability to locally override Agent configurations and allows the Agent to look for configuration information in several locations, including a default location. The lookup sequence is as follows:

1.

Override: The Agent looks locally in <performasure_home>/config/client- override/<name>.

2.

Global: If it is connected to the Nexus, the Agent asks the Nexus to send the file config/client/agent-type/<name> and waits for a reply. The Nexus maps this to <performasure_home>/config/client/agent-type/<name>. The Agent saves the result locally in <performasure_home>/state/<userID>/config-cache/agent-

type/<name>.

436 PerformaSure: User’s Guide

3.

Cached: The Agent looks locally in

<performasure_home>/state/<userID>/config-cache/agent-type/<name>.

4.

Default: The Agent looks locally in <performasure_home>/config/client/agent-

type/<name>.

Note: In the steps described above, <name> signifies the configuration file (for example, weblogic-81.config).

If the Agent does not find anything after performing all four steps in the lookup sequence, PerformaSure will log an ERROR message (which is written to the log

target that you specified) and the Agent may be shut down. See “ Logging ” below

for more information about configuring log targets and setting the log level.

Important: If there are multiple files in the locations described above, only the first one in the lookup order will be used; multiple files will not be merged. If an overriding configuration file (for example, a file in <performasure_home>/config/client-override or on the

Nexus machine) needs to be based on the default configuration file, the contents of the default file must be copied to the overriding configuration file.

Caution: The <performasure_home>/state directory does not contain any user-editable files. Do not edit any of the files in the /state directory or in any of its subdirectories.

Logging

The Parameters in log.config

Important: You must restart the Nexus, the Agents and your instrumented application servers after editing

<performasure_home>/config/log.config.

Appendix A—Configuring PerformaSure 437

Setting the Locale

Locale

Changing the value of Locale allows you to log messages in a language other than the default.

What it is used for:

PerformaSure writes log messages to the following locations:

The Nexus and Agent consoles.

Log files stored in <performasure_home>/logs (the default location), or in the directory that you specify using the directory property in

<performasure_home>/config/log.config. See the description of the directory log

target property in “ Additional properties for log targets ” on page 441 for

information about changing the directory in which log files are created.

To other targets that you set. See “ Target ” on page 438 for more information.

These messages inform you about the operation of PerformaSure. When you change the value of Locale , log messages are written in the language that you specify (using the format shown below).

Example usages:

You must specify the value of Locale using one of the following formats:

“xx”

“xx_yy”

“xx_yy_zz”

In these formats, xx is an ISO language code, yy is an ISO country code and zz is a vendor-specific variant. For example, to switch to the Canadian English locale:

Locale = “en_CA”;

Configuring Log Targets

Target

Sets the defined log targets: CONSOLE , FILE , SERIALIZED_FILE , NEXUS , NATIVE ,

SESSION , and WEBSPHERE .

What it is used for:

Log messages include errors and exceptions and information such as the version numbers for PerformaSure, the platform, operating system, JDK, and JVM. Each target specifies an output location for log messages.

438 PerformaSure: User’s Guide

CONSOLE : Outputs log messages to the console in which PerformaSure was started (the Nexus or Agent console).

FILE : Outputs log messages to a file in the logs subdirectory of the

PerformaSure home directory or in the directory that you specify using the directory property in log.config.

SERIALIZED_FILE : Outputs log messages to a serialized object file in the logs subdirectory of the PerformaSure home directory or in the directory that you specify using the directory property in log.config.

Note: See the description of the directory log target property in

“ Additional properties for log targets ” on page 441 for information

about changing the directory in which log files are created.

NEXUS : Forwards Agent messages to the Nexus for echoing on the Nexus.

NATIVE : Forwards Agent messages to a native (non-Java) logging system like

Apache.

SESSION : Outputs Nexus messages to the session that is being recorded.

WEBSPHERE : Forwards Agent messages to the WebSphere log system.

Default target configuration

The table below shows the standard target configuration for the Agents, Nexus, and Workstation.

Target

CONSOLE

FILE

SERIALIZED_

FILE

NEXUS

NATIVE

SESSION

WEBSPHERE

All

Agents

Active

Active

Active

Active

WebSphere

Agent

Apache Agent

Active

Active

Active

Active

Active

Active

Nexus

Active

Active

Active

Active Active

Active

Active

Workstation

Active

Active

Active

Active

Each target has properties that can be configured to modify its behavior. See

“ Default target log levels

” and “ Additional properties for log targets ” below for

more information.

Appendix A—Configuring PerformaSure 439

Default target log levels

All targets have one common property, the threshold log level for the target. A target ignores log messages that are a level below this threshold. The default log levels for the targets are shown in the chart below. DEBUG is the most verbose level

and results in a rapidly-growing log file. See “ Log Levels ” below for more

information.

As shown in the table in “ Default target configuration ” above, the

SERIALIZED_FILE target is automatically active for all PerformaSure applications. However, its threshold is set to OFF in release mode and set to ALL in

debug mode (see the tables below). See “ Log Levels ” below for more information

about these two log levels. You can override the default release mode setting for

SERIALIZED_FILE by setting the threshold to something other than OFF , preferably ALL .

Default log levels for release mode

CONSOLE FILE Log Level

DEBUG

VERBOSE

INFO

WARN

ERROR

FATAL

ALL

OFF

Default

Default

SERIALIZED_FILE NEXUS NATIVE SESSION WEBSPHERE

Default

Default

Default

Default

Default

Default log levels for debug mode

Log Level

DEBUG

VERBOSE

INFO

WARN

ERROR

CONSOLE

Default

FILE

Default

SERIALIZED_FILE NEXUS NATIVE SESSION WEBSPHERE

Default

Default

Default

Default

440 PerformaSure: User’s Guide

Default log levels for debug mode

CONSOLE FILE Log Level

FATAL

ALL

OFF

SERIALIZED_FILE NEXUS

Default

NATIVE SESSION WEBSPHERE

Additional properties for log targets

The FILE and SERIALIZED_FILE log targets have the following additional properties:

■ compressBackups : Boolean. This property controls whether old log files are compressed using the gzip method when the maximum log file size is reached and a new log file is opened. This property defaults to false .

■ directory : String. This property sets the directory in which log files are created. If you specify a relative path, it is resolved from the PerformaSure home directory. The directory that you specify and all its parent directories are created if they do not exist. This property defaults to the logs subdirectory of the PerformaSure home directory.

Note: When specifying a value for this property, backslashes used as path separators must be escaped. For example,

"C:\\SystemLogs\\PerformaSure"

■ maxBackupCount : Integer. This property controls how many old log files are retained when the maximum log file size is reached and a new one is opened.

-1 sets maxBackupCount to infinite. This property defaults to 50 .

maxFileSize : Long. This property controls the maximum size of a log file before it is closed and a new log file is opened. The size is checked after each log message is written, so the actual size may exceed the maximum slightly. 0 sets maxFileSize to infinite. This property defaults to 20000000 (20MB).

The FILE log target also has the following property:

■ charset : String. The character set in which to write to the file. This property defaults to “UTF-8” .

CONSOLE and FILE are formatting log targets. That is, they apply a formatting specification to the log message before writing it. Each of these targets has a default formatter:

■ CONSOLE uses WrappingLogMessageFormatter , which is based on

DefaultLogMessageFormatter . WrappingLogMessageFormatter wraps the formatted log message to a right margin. It will also optionally indent the subsequently wrapped lines.

■ FILE uses DefaultLogMessageFormatter .

Appendix A—Configuring PerformaSure 441

The formatter is controlled using the formatter subset of properties. The formatter.class

property sets the class name for a new instance of a formatter that must be created and assigned to that log target. If the formatter.class

property is not present, the remaining properties are applied to the existing formatter.

The DefaultLogMessageFormatter has the following properties:

■ suppressImplDetails include implementation details (thread name, category class and exception stacktrace).

: Boolean. When set to true , the formatter does not

■ suppressTimestamp : Boolean. When set to true , the formatter does not include the timestamp. This property is used by log targets which have their own timestamping mechanism, such as NATIVE .

The WrappingLogMessageFormatter has the following properties:

■ columns per line.

: Integer. This property controls the maximum number of characters

■ indentWrappedLines : Boolean. This property controls whether wrapped lines are indented by four spaces.

Example usages:

Target.CONSOLE.formatter.columns = 120;

Target.FILE.threshold = "DEBUG";

Target.FILE.compressBackups = true;

Target.FILE.maxBackupCount = 100;

Target.FILE.maxFileSize = 10000000;

Target.FILE.charset = "EUC-JP";

Target.FILE.formatter.class =

“com.sitraka.pas.common.log.WrappingLogMessageFormatter";

Target.FILE.formatter.indentWrappedLines = false;

Target.NEXUS.threshold = "OFF";

Log Levels

The log levels that are used to set a target’s threshold are as follows:

■ DEBUG – All messages will be logged. Not used for normal operation, debug messages provide the highest level of reporting at the expense of a rapidly growing log file and some performance degradation. You’ll see messages at this level when Quest Software support engineers request extra information to assist you with a problem that you have encountered.

442 PerformaSure: User’s Guide

VERBOSE — Logs configuration information and other detailed information.

For example, when the target NEXUS is set to this level, the Nexus console displays Agent system information such as the OS of the machine from which the Agent connects. When you start recording, session details are also logged at this level.

INFO — The default level for logging messages. This category excludes debug messages. These messages are used for reporting information about normal operations, such as the location of the PerformaSure home directory, the current Java VM heap size options, the location of the JRE used by

PerformaSure, and many other operational details.

WARN – Warning messages indicate that some suspicious operation or configuration has been noted, but it may not have an impact on normal operation.

ERROR – Error messages indicate a serious condition which will affect datacollection and other important aspects of the operation of PerformaSure.

FATAL — The system writes this message to the log file when some unrecoverable error has occurred, which usually results in PerformaSure shutting down.

ALL — The target accepts all log messages ( DEBUG , VERBOSE , INFO , WARN ,

ERROR , and FATAL ).

OFF — The target does not accept any log messages. In addition, when the target SERIALIZED_FILE is set to this log level, no .pslog file is created.

Tip: PerformaSure log events are written to the WebSphere console.

WebSphere has three levels. The mapping of PerformaSure log levels to these WebSphere levels is as follows:

DEBUG: 3

INFO: 3

WARN: 2

ERROR: 1

FATAL: 1

Instrumentation

PerformaSure is a tool with multiple uses. It can be used in development, for QA, and in production. There are times when you want to look at a high-level overview of your system’s behavior rather than looking at the method-by-method level. Seeing too much detail before you are ready may make it harder to make some problems stand out. Furthermore, in your deployed application you want to see an overview of your system’s behavior without incurring the overhead of full detail.

Appendix A—Configuring PerformaSure 443

When you are ready, being able to see the full detail of your application allows you to isolate the particular method that is consuming the most time.

PerformaSure can track every method in your Java EE application, and it can track a large number of application server, JMS, JNDI, HTTP, and RMI methods as well, including threads spawned by a servlet.

Important: If a class is sufficiently large that, when instrumented, the constant pool size exceeds 64Kb, PerformaSure will not instrument that class. This is to prevent the defineClass() method from failing.

PerformaSure gives you the option of recording a session at two levels: Full

Detail or Component Detail. You can set the detail level in the Workstation or

using nexusctl. See “ Sampling Tab

” on page 211 and “ Sampling Parameters ” on page 233 for more information.

Important: The recording level is set to full detail or component detail in the Sampling tab of the Recording Settings dialog or using

nexusctl. This task no longer requires editing one of the configuration files. To force the component-only mode or include custom components, however, you must edit

<performasure_home>/config/client/instrumentation.config. See

“ Forcing the Component-Only Mode ” on page 457 and

“ Customizing Component-Level Data Collection ” on page 456

for more information.

Even if you have recorded a session at full detail, you can choose to view the call trees in the Request Tree browser in component detail by setting the Bundling

Mode to Component. When you record a session at full detail and then view the call trees with the Bundling Mode set to Method, you can see every class that is called and every method call—even those that call methods within the same class.

At the expense of some complexity, this view allows you to see fine-grained detail within a given request.

The component detail setting limits data-collection to important Java EE components or to a custom set of components that you select. Recording a session at the Component Detail level reduces the volume of performance data that is collected and creates an architectural view of each type of service request. This high-level view can help you identify performance problems that may not immediately be apparent when viewing a session recorded in full detail. See

“ Component Instrumentation ” below for more information on collecting data at

this level.

444 PerformaSure: User’s Guide

Application Methods in Full Detail

PerformaSure instruments all the classes and methods in your application unless you explicitly choose to exclude some.

• At the package or class level, you can control which packages or classes are included or excluded by editing UserClasses in

<performasure_home>/config/client/instrumentation.config. See “ Including and

Excluding Classes ” on page 452 for more information.

• Within a class, you can control the number of recursive calls that are fully instrumented by PerformaSure by editing RecursionCount in

instrumentation.config. See “ Setting the Recursion Limit ” on page 458 for

more information.

Component Instrumentation

There are many reasons why taking a ‘bird’s eye view’ of your application is the best way to begin looking for potential performance problems. Focusing on a few crucial methods permits you to localize a potential trouble spot. Then you can add instrumentation targets to expand your search. Afterwards, by switching to full instrumentation mode, you can collect performance data on each class in your application.

Component instrumentation also reduces overhead. By collecting data only on a limited set of important classes, you can run PerformaSure with little degradation to your system’s response time.

To implement component instrumentation, PerformaSure measures selected methods in Servlets, JSPs, EJBs, JMS, JNDI, HTTP, and JDBC, and you can include your own choice of custom components by editing the

CustomComponents configuration section in the file

<performasure_home>/config/client/instrumentation.config. See the comments in this

section of instrumentation.config and “ Customizing Component-Level Data

Collection ” on page 456 for more information.

Application Methods in Component-Level Detail

When you choose component-level detail, only the classes listed in the following sections are instrumented. Therefore, any of your application’s classes that do not implement or extend the interfaces listed in this section are not tracked using Tag and Follow. When you need specific information about all the classes in your application, record in full detail. When you want to gather data on key Java EE

Appendix A—Configuring PerformaSure 445

classes, record in component-level detail. You can also extend the componentlevel view to include custom components.

Important: Depending on how your application server implements them, certain methods listed below may not appear in a session recorded with component-level detail.

Component-level Classes for Servlets

For classes that implement the javax.servlet.Servlet

interface, PerformaSure records:

void destroy()

void init(ServletConfig)

void service(ServletRequest, ServletResponse)

For classes that implement the javax.servlet.http.HttpServlet

interface,

PerformaSure records:

void doDelete(HttpServletRequest, HttpServletResponse)

void doGet(HttpServletRequest, HttpServletResponse)

void doHead(HttpServletRequest, HttpServletResponse)

void doOptions(HttpServletRequest, HttpServletResponse)

void doPost(HttpServletRequest, HttpServletResponse)

void doPut(HttpServletRequest, HttpServletResponse)

void doTrace(HttpServletRequest, HttpServletResponse)

long getLastModified(HttpServletRequest)

void service(ServletRequest, ServletResponse)

void service(HttpServletRequest, HttpServletResponse)

For classes that implement the javax.servlet.Filter

interface, PerformaSure records:

void doFilter(ServletRequest, ServletResponse, FilterChain)

Component-Level Classes for JSPs

For classes that implement the javax.servlet.jsp.HttpJspPage

interface,

PerformaSure records:

void _jspService(HttpServletRequest, HttpServletResponse)

Component-level Classes for EJBs

Session beans, entity beans, and message-driven beans are instrumented. As well, all classes that implement the javax.ejb.EJBLocalHome

interface or the javax.ejb.EJBHome interface are recorded, excluding RMI stub classes.

WebLogic or WebSphere EJB wrapper classes are excluded from componentlevel instrumentation. For example, in a PetStore session, the productdetails tree has a node for the class named InventoryEJB_ripg5n_Impl . This class contains methods such as __WL_setBusy(Boolean) and __WL_isBusy() . This

446 PerformaSure: User’s Guide

class is a WebLogic-generated wrapper class for the InventoryEJB and is not instrumented in component mode.

Generic EJB Classes

For classes that implement the javax.ejb.EJBLocalHome

interface, or the javax.ejb.EJBHome

interface, but excluding RMI stub classes, PerformaSure records:

<unknown> create<METHOD>(args)

void remove(java.lang.Object)

<unknown> find<METHOD>(args)

WebLogic and WebSphere wrapper classes are excluded from component instrumentation.

Component-level Classes for Session EJBs

For classes that implement the javax.ejb.SessionBean

interface, PerformaSure records all public methods, including:

void ejbCreate<METHOD>(args)

void ejbActivate()

void ejbPassivate()

void ejbRemove()

PerformaSure records all the public methods that your application has added to the bean to support your custom business logic.

PerformaSure does not record:

void setSessionContext(SessionContext)

Component-level Classes for Entity EJBs

For classes that implement the javax.ejb.EntityBean

interface, PerformaSure records all public methods, including:

void ejbCreate<METHOD>(args)

void ejbPostCreate<METHOD>(args)

void ejbRemove()

void ejbLoad()

void ejbStore()

void ejbFind<METHOD>(args)

void ejbSelect<METHOD>(args)

void ejbPassivate()

PerformaSure does not record:

void setEntityContext(EntityContext)

void unsetEntityContext()

Appendix A—Configuring PerformaSure 447

Component-level Classes for Message-driven EJBs

For classes that implement the javax.ejb.MessageDrivenBean

interface, and the javax.jms.MessageListener

interface, PerformaSure records all public methods, including:

void onMessage(javax.jms.Message)

void ejbRemove()

PerformaSure does not record:

void setMessageDrivenContext(MessageDrivenContext)

Component-level Classes for EJB3 Annotations

For classes that are annotated with javax.ejb.Stateless

, PerformaSure records all public methods, including methods that are annotated with the following: javax.annotation.PostConstruct

javax.annotation.PreDestroy

For classes that are annotated with javax.ejb.Stateful

, PerformaSure records all public methods, including methods that are annotated with the following: javax.annotation.PostConstruct

javax.annotation.PreDestroy

javax.ejb.PostActivate

javax.ejb.PrePassivate

javax.ejb.Init

javax.ejb.Remove

For classes that are annotated with javax.ejb.MessageDriven

, PerformaSure records all public methods, including methods that are annotated with the following: javax.annotation.PostConstruct

javax.annotation.PreDestroy

For classes that are annotated with javax.interceptor.Interceptors

,

PerformaSure records all public methods, including methods that are annotated with the following: javax.annotation.PostConstruct

javax.annotation.PreDestroy

javax.ejb.PostActivate

javax.ejb.PrePassivate

For classes that are annotated with javax.persistence.Entity

, PerformaSure records all public methods, including methods that are annotated with the following: javax.persistence.PrePersist

javax.persistence.PostPersist

javax.persistence.PreRemove

javax.persistence.PostRemove

javax.persistence.PreUpdate

448 PerformaSure: User’s Guide

javax.persistence.PostUpdate

javax.persistence.PostLoad

For classes that are annotated with javax.persistence.EntityListeners

,

PerformaSure records all public methods, including methods that are annotated with the following: javax.persistence.PrePersist

javax.persistence.PostPersist

javax.persistence.PreRemove

javax.persistence.PostRemove

javax.persistence.PreUpdate

javax.persistence.PostUpdate

javax.persistence.PostLoad

For classes that are annotated with javax.persistence.MappedSuperclass, PerformaSure records all public methods, including methods that are annotated with the following: javax.persistence.PrePersist

javax.persistence.PostPersist

javax.persistence.PreRemove

javax.persistence.PostRemove

javax.persistence.PreUpdate

javax.persistence.PostUpdate

javax.persistence.PostLoad

JDBC Component-level Detail

For classes that implement the java.sql.Connection

interface, PerformaSure records:

void close()

void commit()

void releaseSavepoint(Savepoint)

void rollback()

void rollback(Savepoint)

Savepoint setSavepoint()

Savepoint setSavepoint(String)

For classes that implement the java.sql.Driver

interface, PerformaSure records:

Connection connect(String, Properties)

For classes that implement the java.sql.PreparedStatement

interface,

PerformaSure records:

void addBatch()

boolean execute()

ResultSet executeQuery()

int executeUpdate()

getMetaData()

getParameterMetaData()

Note: If you are using a ResultSet implementation with scrollable and sensitive to changes ( TYPE_SCROLL_SENSITIVE ) enabled, you may see unexpected database activity in the tree view if while collecting

Appendix A—Configuring PerformaSure 449

session data your users employed cursor movement methods such as, for example, last() or next() . This is because a ResultSet marked as scrollable and sensitive can require internal calls back to the database to fetch data as a result of method calls that move the cursor.

For classes that implement the java.sql.ResultSet

interface, PerformaSure records:

void deleteRow()

void insertRow()

void RefreshRow()

void UpdateRow()

For classes that implement the java.sql.Statement

interface, PerformaSure records:

void addBatch(String)

boolean execute(String)

boolean execute(String, int)

boolean execute(String, int[])

boolean execute(String, String[])

int[] executeBatch()

ResultSet executeQuery(String)

int executeUpdate(String)

int executeUpdate(String, int)

int executeUpdate(String, int[])

int executeUpdate(String, String[])

For classes that implement the javax.sql.ConnectionPoolDataSource

interface, PerformaSure records:

PooledConnection getPooledConnection()

PooledConnection getPooledConnection(String, String)

For classes that implement the javax.sql.DataSource

interface, PerformaSure records:

Connection getConnection()

Connection getConnection(String, String)

For classes that implement the javax.sql.PooledConnection

interface,

PerformaSure records:

void close()

Connection getConnection()

For classes that implement the javax.sql.XADataSource

interface,

PerformaSure records:

XAConnection getXAConnection()

XAConnection getXAConnection(String, String)

JMS, JNDI, HTTP, and RMI Component-level Classes

PerformaSure records the same information in component detail as it does for the full detail level.

450 PerformaSure: User’s Guide

JMS Component-level Detail

PerformaSure records calls to methods in JMS interfaces as follows:

■ javax.jms.QueueSender

• all send(...) methods

■ javax.jms.TopicPublisher

• all publish methods

■ javax.jms.MessageConsumer

• all receive methods

■ javax.jms.MessageListener

• all onMessage methods

■ javax.jms.Message

• all methods

■ javax.jms.Destination

• all methods

■ javax.jms.Queue

• all methods

■ javax.jms.Topic

• all methods

■ javax.jms.TopicSubscriber

• all methods

■ javax.jms.QueueReceiver

• all methods

JNDI Component-level Detail

PerformaSure records calls to all methods of these interfaces:

■ javax.naming.Context

javax.naming.NamingEnumeration

javax.naming.directoryDirContext

HTTP Component-level Detail

PerformaSure tracks all the services requests that enter your instrumented

application server unless you explicitly choose to exclude some. See “ Service

Request Filtering

” on page 84 and “ Filters Tab ” on page 216 for more

information. You also have the option of splitting one service request and tracking

each part separately. See “ Service Request Separation ” on page 77 and

“ Separators Tab ” on page 213 for more information.

RMI Component-level Detail

PerformaSure instruments all the RMI calls that enter your instrumented system.

Appendix A—Configuring PerformaSure 451

The Parameters in instrumentation.config

Important: You must restart the Agents and your instrumented application servers after editing

<performasure_home>/config/client/instrumentation.config.

Including and Excluding Classes

UserClasses

Edit this attribute to explicitly exclude or include packages or classes from monitoring.

What it is used for:

By default, PerformaSure does not instrument classes that belong to the server itself. The reason for this is that it is usually not possible to alter these classes, so the detailed information about their execution is superfluous. Thus, classes in the server packages and in the JDK are excluded. All others are assumed by

PerformaSure to be user code and are instrumented. In most cases, you should not need to alter these settings.

If there are times when you would like to instrument a class that is inside a package that has been marked as server code, you can edit the UserClasses configuration section in <performasure_home>/config/client/instrumentation.config to tell the Agents to include that class in their monitoring. This configuration section is used to customize the packages and classes that are fully instrumented by

PerformaSure. You can include additional packages and classes for instrumentation and you can exclude packages and classes that are normally included. To include or exclude packages or classes, specify the class or package name in a class list alongside an include or exclude element as shown below.

Tip: It is not recommended that you do so, but you can edit the

CustomComponents configuration section in the instrumentation.config file for one particular Agent to modify which classes are instrumented for that Agent only. Since the change does not apply to all Agents, the resulting call tree in the Request Tree browser could be confusing. If this procedure is used, the CustomComponents configuration section should be re-edited to match the sections in the other

instrumentation.config files as soon as the test for which the procedure was designed is completed.

452 PerformaSure: User’s Guide

Example usage:

To include just one class while excluding the rest of the package:

UserClasses= ClassList( include “com.globex.plan.DominateWorld”, exclude “(\.|^)globex\.”, exclude /.*globex\..*/,

);

Using regular expressions

Regular expressions can be used to select a group of classes or packages that match a given pattern. This approach can help you avoid giving a long list of classes. It can also help you when the exact names of the classes are not known, but they fit a known pattern. If the class names contain an identifying substring, it can be specified in the regular expression. For more information about using

regular expressions, see “ Appendix D—Regular Expressions ” on page 489.

Using multiple include and exclude elements

When you use multiple include and exclude elements, it is the first element that matches that will control the outcome. For example:

UserClasses = ClassList( exclude “foo.bar.Baz” include “foo.bar.” exclude “foo.bar.Boing”

);

In this example, the class foo.bar.Baz

is excluded, but foo.bar.Boing

is included, because the generic foo.bar.

include pattern matches it first. Note that packages are specified with a trailing (.), as the entry foo.bar.

indicates.

InstrumentedClasses

Can be used to completely exclude certain classes from instrumentation.

What it is used for:

One possible use for the InstrumentedClasses setting is to exclude a class because instrumenting it is causing errors. You can use regular expressions to

specify which classes should be excluded; see “ Using regular expressions ” on page 453 for more information. Multiple

exclude elements can be used in the block (as shown in the example below), but it is the first element that matches that will control the outcome.

Appendix A—Configuring PerformaSure 453

Example:

InstrumentedClasses = ClassList ( exclude "com.globex.plan.DominateWorld", exclude "com.globex.scheme."

);

In the example above, the class com.globex.plan.DominateWorld

would be excluded, as well as all classes in the package com.globex.scheme

.

Important: Do not use the InstrumentedClasses setting to exclude classes from instrumentation except at the recommendation of a Quest Software customer support representative.

AllowedClassesByPlugin

Can be used to exclude classes from instrumentation by a specific plugin.

What it is used for:

One possible use for the AllowedClassesByPlugin setting is to exclude a class because instrumenting it is causing errors. You can use regular expressions to

specify which classes should be included or excluded; see “ Using regular expressions ” on page 453 for more information. Multiple

include and exclude elements can be used in the block, but it is the first element that matches that will control the outcome.

Note: The full names of the plugins taking part in the instrumentation of a particular application server can be found in the configuration file that corresponds to that server. These configuration files are located in the

agent-type subdirectory of the PerformaSure home directory.

Example:

AllowedClassesByPlugin.com.sitraka.pas.agent.plugin.instrumentor

.method.JndiInstrumentor = ClassList ( include "com.evermind.naming.file.FileContext", exclude /./

);

454 PerformaSure: User’s Guide

In the example above, only com.evermind.naming.file.FileContext

will be examined (and possibly instrumented) by JndiInstrumentor .

Important: Do not use the AllowedClassesByPlugin setting to exclude classes from instrumentation except at the recommendation of a Quest Software customer support representative.

Customizing the Collection of Data on Long Running Methods

LongRunningUserMethods and LongRunningUserMethodWaypoints

Customize the collection performance information on methods that execute over a long period of time.

What they are used for:

By default, PerformaSure waits for a method to finish executing before treating the collected data as complete. However, it can sometimes be preferable to consider the data complete at specific points in the code, such as when instrumenting the run() method of a background thread and other methods that execute over a long period of time. When you set the LongRunningUserMethods and LongRunningUserMethodWaypoints configuration options, PerformaSure will pause at the waypoint methods to treat the data as complete before continuing. This makes the data available in smaller increments as the long running method executes instead of all at once when it completes. A minimal set of waypoint methods allows for the best possible performance.

Example:

LongRunningUserMethods = MethodList( include "com.globex.plan.DominateWorldThread.run"

);

LongRunningUserMethodWaypoints = MethodList( include "com.globex.plan.DominateWorldThread.executeProject"

);

In the example above, the method com.globex.plan.DominateWorldThread.run

will treat the data as complete each time the method executeProject() is called from run() .

Appendix A—Configuring PerformaSure 455

Customizing Component-Level Data Collection

CustomComponents

Extends the default set of Java EE components that are included when you record a session at the component detail level.

What it is used for:

Java EE applications have very well-defined interfaces that provide natural points at which to limit the collection of performance data. Collecting data at these points—by recording a session at the component detail level—has the benefit of reducing the volume of data (and hence reducing the overhead associated with running PerformaSure) while also creating a high-level, architectural view of each type of service request.

Your application may contain other classes that you deem suitable for inclusion in component-level instrumentation. You can add more items to be fully instrumented by editing the CustomComponents configuration section.

The following frameworks and libraries are included in the default set of custom components defined in <performasure_home>/config/client/instrumentation.config:

Apache Beehive

Apache Struts

Apache TagLibs

Oracle WebLogic Integration

Hibernate

IBM Commerce Server

IBM Portal

OpenSymphony

Oracle TopLink

Spring

Note: Apache TagLibs is included in the CustomComponents configuration section but is commented out by default.

See the comments in the CustomComponents configuration section in

instrumentation.config for more information about the default set of custom components.

Example usage:

To include custom components:

CustomComponents = {

"MQSeries": MethodList(include /com\.ibm\.mq\..*/),

456 PerformaSure: User’s Guide

};

"TopLink": MethodList(include "oracle.toplink."),

"Globex": MethodList( include "com.globex.plan.DominateWorld", include "com.globex.pocket.Sugar", include "com.globex.cypresscreek.HammockHut.sit",

)

As shown in this example, the package or class name of each component must be specified in a method list. You can do so either by entering the component’s name or by forming a regular expression that matches the name or pattern. Enter the include

element before each item in the list. See “ Appendix D—Regular

Expressions ” on page 489 for more information about using regular expressions.

Forcing the Component-Only Mode

InstrumentAtComponentLevel

Has a boolean value of either true or false . When set to true , the detail level will be clamped to component no matter what setting you choose in the

Workstation or using nexusctl.

What it is used for:

This configuration section is set to false by default. When it is set to false , you can set the recording detail level to either Component Detail or Full Detail in the Sampling tab of the Workstation’s Recording Settings dialog or using nexusctl.

See “ Sampling Tab

” on page 211 and “ Sampling Parameters ” on page 233 for

more information.

Setting InstrumentAtComponentLevel to true ensures that Agents collect component detail only, no matter what setting you choose in the Recording Settings dialog or using nexusctl.

Example usage:

The default setting is:

InstrumentAtComponentLevel = false;

Note: It is recommended that you leave InstrumentAtComponenetLevel with its default boolean value of false . That way, you can record sessions at the full or component detail level without having to edit

<performasure_home>/config/client/instrumentation.config and then restart the Agents and your instrumented application servers.

Appendix A—Configuring PerformaSure 457

Setting the Recursion Limit

RecursionLimit

Sets the maximum number of recursive calls that are fully instrumented.

What it is used for:

It is generally not very interesting to collect detailed information on each instance of a recursive call. By default, PerformaSure only measures the first five then continues to collect timing information for the entire recursive sequence, which it aggregates. In the Request Tree browser, PerformaSure labels the terminal node in a recursive sequence with the recursive call icon ( ) to indicate that there are more calls that are not being drawn.

Figure 166

Figure 166 Recursive calls in the Request Tree browser

If you want to see detailed timing information about each recursive call, increase the value of RecursionLimit , restart the Agents and your instrumented application servers, and record a new session. After recording a session that measures each recursive call and determining that the recursive calls are not a performance problem, you can return RecursionLimit to its default setting. This will decrease the load on the Agents and the Nexus.

Example usage:

The default setting is:

RecursionLimit = 5;

To see none of the recursive calls:

RecursionLimit = 0;

When RecursionLimit is set to 0 , you will see the method that calls itself in the

Request Tree browser. This method will be labeled with the recursive call icon to indicate that recursive calls have occured.

Setting the Remote Invocation Limit

RemoteInvocationLimit

Sets the maximum number of calls that PerformaSure will track from a single method to a remote system. The default value is 10 .

458 PerformaSure: User’s Guide

What it is used for:

Once the number set by RemoteInvocationLimit has been exceeded,

PerformaSure will collect performance information for the remote system invocations and aggregate it. This is done for two reasons:

1.

A large number calls to remote systems from a single method is highly likely to produce a performance problem.

2.

It is expensive for the PerformaSure Nexus to process Tag and Follow

™ information for a large number of remote invocations on a single request.

If this limit is exceeded, PerformaSure will produce a WARN log message that identifies the method where the remote invocations are taking place.

Example usage:

The default setting is:

RemoteInvocationLimit = 10;

Increase the value of RemoteInvocationLimit if you are receiving WARN log messages and you require more detail on the remote invocations. Decrease this value if you are receiving the WARN log messages but the Nexus is exhibiting symptoms of excessive use of memory.

Note: Increasing the value of RemoteInvocationLimit will cause the Nexus to increase its use of CPU and memory.

Tracking Objects

Important: As with all other changes to instrumentation.config, you must restart the Agents and your instrumented application servers after editing any of the configuration options in the Object

Tracking section of instrumentation.config.

In addition, if you have integrated PerformaSure with Oracle

Application Server or with Tomcat 5 running as a Windows service, you must manually run the preinstrumentor shell script or cmd file (located in the scripts directory of your PerformaSure installation) on all Agent machines after editing any of the configuration options in the Object Tracking section.

Appendix A—Configuring PerformaSure 459

ObjectTrackerClasses

Allows you to specify groups of classes for which allocated object instances will be tracked during a sampled request.

What it is for:

The ObjectTrackerClasses configuration option is used to watch for objects that are never reclaimed by the garbage collector.

For details, see the comments in the Object Tracking section in

<performasure_home>/config/client/instrumentation.config.

ObjectTrackerWeightMethods

Allows you to collect an optional weight metric for sampled instances of the classes specified by ObjectTrackerClasses .

What it is for:

The ObjectTrackerWeightMethods configuration option allows you to specify a method that is invoked on live instances of the classes included in one of the groups listed in ObjectTrackerClasses . The value returned from calling the specified method is included in the information collected about the classes in that group that are allocated during a sampled request.

For details, see the comments in the Object Tracking section in

<performasure_home>/config/client/instrumentation.config.

ObjectTrackerSampleRatio

Sets the ratio of sampled requests to requests that are sampled for object tracking.

What it is for:

The ObjectTrackerSampleRatio parameter is used to limit the number of sampled objects that will be tracked. For example, using this parameter’s default value of 10 will cause PerformaSure to track 1 in 10 of the sampled requests that are processed per thread.

ObjectTrackerSampleRatio is commented out by default. If you want to use this parameter with its default value of 10, you do not need to uncomment it.

However, if you want to use a value other than 10, you must uncomment this parameter in instrumentation.config on the Nexus machine and change its value

The random request distribution provided by ObjectTrackerSampleRatio will limit the memory overhead that is incurred while collecting data and can be

460 PerformaSure: User’s Guide

adjusted based on your performance diagnosis requirements. Setting

ObjectTrackerSampleRatio to a higher value will result in fewer tracked objects for sampled requests and decreased system overhead; using a lower value will cause more objects to be tracked, but at the expense of a higher overhead on the application server.

For details, see the comments in

<performasure_home>/config/client/instrumentation.config.

Configuration FAQ

Large class instrumentation

If a class is sufficiently large that, when instrumented, the constant pool size exceeds 64K entries, PerformaSure will not instrument that class. This is to prevent the defineClass() method from failing.

What happens if an Agent plug-in fails to load?

PerformaSure catches the exception, handles it, and moves on to the next plug-in.

It doesn’t halt the entire system, but a log message is generated to record the event. PerformaSure generates an exception in the case of a catastrophic failure that it deems too risky for other parts of the system to have it continue.

Note: Even though execution will continue, some functionality will be disabled.

Error Recovery/Handling Mechanism

The following are potential errors that can occur when starting or running

Agents:

The Agent is disconnected from the Nexus

This error is handled by the communications layer of PerformaSure. When the data is sent to the communications layer and the broken connection is detected, the communications layer automatically tries to reconnect, without any intervention from the other Agent components. However, if the connection cannot be re-established, the Agent instructs the communications layer to periodically attempt to re-establish connection with the Nexus. The repetition interval is set by NexusRetryInterval in

<performasure_home>/config/agent.config. See “ Attempting to Restore the Agent-

Nexus Connection ” on page 428 for details.

Fatal error occurs inside one of the Agent Threads

Appendix A—Configuring PerformaSure 461

Although rare, a fatal error, like an uncaught NullPointerException , is sent to the log file, and the Agent is shut down. The server that the Agent is monitoring continues to run, but no data is collected by PerformaSure. The best course of action to take in this case is to restart the application server, which restarts its Service Request Agent, then record the session from the beginning.

What happens if the Agent becomes disconnected from the Nexus while it is recording data?

If the Nexus is stopped, all Agents stop recording. This ensures that when the

Nexus is restarted, Agents will not try to send data to a Nexus that is not in the recording state.

Should I run a System Agent on my load-testing machine?

It’s a good idea to do so. There could be a bottleneck here that might be interpreted as a problem with the application. By adding a System Agent to your load test machine you can be sure that it is not operating in an overloaded condition.

462 PerformaSure: User’s Guide

Appendix B—Metrics in

PerformaSure

What Metrics do Agents Measure?

PerformaSure divides metrics into two broad categories: raw and derived. Raw metrics are those that are reported from the operating system, and application servers. They may be further divided into periodic metrics, network metrics, and service request metrics. Some of these may not be directly useful. For example, there are a number of never-decreasing metrics that are reported. Knowing the value of such a metric is not useful in itself, but knowing the time rate of increase of the metric is useful, and a sharp spike in the rate may indicate an area for further investigation. Derived metrics are calculated by PerformaSure from one or more raw metrics, and possibly from other derived metrics.

Raw Metrics

Periodic metrics are collected by PerformaSure by polling the system under test.

Operating system, and application server metrics are collected at set intervals.

Other approaches are used for collecting network metrics and service request metrics.

By default, raw metrics are not listed in the navigation pane of Metrics browser or the Threshold Editor. Follow the instructions below to cause raw metrics to be displayed.

To display raw metrics:

1.

Select Tools > Options... from the menu bar of the Project window or any browser. The Edit Options dialog will open.

2.

In the tree view, click on Browsers > Metrics.

3.

Select Show Raw Metrics.

4.

Click OK to apply this change and close the dialog. Raw metrics will be listed at the bottom of the navigation pane of the Metrics browser and the Threshold

Editor.

463

Derived Metrics

Derived metrics are calculated by PerformaSure, usually from raw metrics.

Multiple derived metrics can be displayed on the same chart. Naturally, the metrics should be comparable for such a chart to be useful.

The Metric Hierarchy

In order to help you analyze performance problems, PerformaSure organizes derived metrics into a metric hierarchy and also provides a description of and unit of measure for each derived metric.

Metrics are organized in this hierarchy in the navigation panes of the Metrics browser and the Threshold Editor. Click on the root node and each subsequent node within the hierarchy that contains a folder icon ( ) to display the items available in that sub-tree. To select a metric, double-click the metric icon ( ). In the Metrics browser, this icon( ) appears next to the entry in the navigation pane for each metric that is charted in the graph pane.

Important: The metrics that are available for display and analysis varies depending on your operating system and on the application server(s) that you are instrumenting. The following sections in this chapter illustrate the general form of the derived metric hierarchy and the nodes and sub-trees that may be available within it.

Request Metrics

Requests Root Node

Click on the Requests root node and its sub-nodes to display the following subtrees:

• Requests

Response Time

Call Count

Calls per Second

464 PerformaSure: User’s Guide

Exceptional Exits

% Incomplete

% Sampled

All Requests

See“ Request and All Requests Sub-Trees ” below.

for each [Request]

• Response Time

Call Count

Calls per Second

Exceptional Exits

% Incomplete

• % Sampled

See “ Request and All Requests Sub-Trees ” below.

Request and All Requests Sub-Trees

Click on an All Requests node or a node described above as for each [Request] to expose the following sub-tree:

• All Tiers

• All Servers

for each [Component Technology]

Response Time

Call Count

Calls per Second

Exceptional Exits

% Incomplete

for each [Component]

Response Time

Call Count

Calls per Second

Exceptional Exits

% Incomplete

for each [method]

• Response Time

Call Count

Calls per Second

Appendix B—Metrics in PerformaSure 465

• Exceptional Exits

for each [Server]

% Incomplete

Response Time

Call Count

Calls per Second

Exceptional Exits

% Incomplete

for each [Component Technology]

Response Time

Call Count

Calls per Second

Exceptional Exits

% Incomplete

for each [Component]

Response Time

Call Count

Calls per Second

Exceptional Exits

% Incomplete

for each [method]

for each [Tier]

• Response Time

Response Time

Call Count

Calls per Second

Exceptional Exits

% Incomplete

Call Count

Calls per Second

Exceptional Exits

% Incomplete

All Servers

for each [Component Technology]

• Response Time

466 PerformaSure: User’s Guide

Call Count

Calls per Second

Exceptional Exits

% Incomplete

for each [Component]

Response Time

Call Count

Calls per Second

Exceptional Exits

% Incomplete

for each [method]

Response Time

Call Count

Calls per Second

Exceptional Exits

for each [Server]

% Incomplete

Response Time

Call Count

Calls per Second

Exceptional Exits

% Incomplete

for each [Component Technology]

Response Time

Call Count

Calls per Second

Exceptional Exits

% Incomplete

for each [Component]

• Response Time

Call Count

Calls per Second

Exceptional Exits

% Incomplete

for each [method]

Appendix B—Metrics in PerformaSure 467

Response Time

Call Count

Calls per Second

Exceptional Exits

% Incomplete

Note: The aggregate Call Count metric for a component technology is not a sum of the Call Count metrics for the components listed under it. For example, Requests / [Request] / [Tier] / [Server] / EJB / Call Count is a count of entry points into EJB technology, not a sum of all individual EJB Call

Count metrics. Thus, when one EJB calls directly into another, the call to the second EJB will not be included in this aggregate metric.

SQL Statement Metrics

SQL Statements Root Node

Click on the SQL Statements root node and its sub-nodes to display the following sub-trees:

• SQL Statements

Execute Count

Total Response Time

Average Response Time

All SQL Statements

See“ SQL Statement and All SQL Statements Sub-Trees ” below.

for each [SQL Statement]

Execute Count

Total Response Time

• Average Response Time

See“ SQL Statement and All SQL Statements Sub-Trees ” below.

SQL Statement and All SQL Statements Sub-Trees

Click on an All SQL Statements node or a node described above as for each [SQL

Statement] to expose the following sub-tree:

• Execute

• Maximum Response Time

468 PerformaSure: User’s Guide

Total Response Time

• Average Response Time

Prepare

Total Response Time

• Average Response Time

Retrieve

Total Response Time

Average Response Time

Application Metrics

Applications Root Node

The Applications root node contains performance information on the deployed components sorted by application and component technology. Servlets and JSPs are both listed in the Servlets sub-tree.

Click on the Applications root node and its sub-nodes to display the following sub-trees:

• Applications

for each [Application]

• Sessions

for each [Metric Group]

for each [Cluster]

• All Servers

for each [Server]

EJBs

• All EJBs

for each [Metric Group]

for each [Cluster]

• All Servers

for each [Server]

for each [EJB]

for each [Metric Group]

for each [Cluster]

• All Servers

Appendix B—Metrics in PerformaSure 469

Servlets

• All Servlets

for each [Server]

for each [Metric Group]

for each [Cluster]

• All Servers

for each [Server]

for each [Servlet]

for each [Metric Group]

for each [Cluster]

• All Servers

Work Managers

for each [Server]

for each [Metric Group]

for each [Manager]

for each [Cluster]

All Servers

for each [Server]

Application Server Metrics

Application Servers Root Node

The Application Servers root node contains metrics specific to the application server(s) organized by category.

Click on the Application Servers root node and its sub-nodes to display the following sub-trees:

• Application Servers

• Performance

• JVM

Garbage Collection

[Sub-Groups]

Heap

[Sub-Groups]

Objects

470 PerformaSure: User’s Guide

[Sub-Groups]

for each other [Metric Group]

See “ Performance > Metric Group Sub-Trees ” below.

JDBC

for each [Metric Group]

for each [Pool]

for each [Cluster]

• All Servers

for each [Server]

JCA

for each [Metric Group]

for each [Pool]

for each [Cluster]

• All Servers

for each [Server]

for each [Pool Instance]

for each [Cluster]

• All Servers

for each [Server]

JMS

for each [Metric Group]

See “ JMS > Metric Group Sub-Trees ” below.

JTA

See “ JTA Sub-Trees ” below.

MDB

for each [Metric Group]

for each [MDB]

for each [Cluster]

• All Servers

for each [Server]

Work Managers

for each [Metric Group]

for each [Manager]

for each [Cluster]

• All Servers

for each [Server]

Thread Pool

for each [Metric Group]

Appendix B—Metrics in PerformaSure 471

for each [Cluster]

• All Servers

for each [Server]

Note: The metric /Application Servers/Performance/CPU Utilization is not available for sessions recorded with WebSphere ND.

Performance > Metric Group Sub-Trees

The category for each other [Metric Group] represents metric groups other than

JVM in the sub-tree Application Servers > Performance. When you click on a node described above as for each other [Metric Group], you will expose one or more of the following sub-trees:

for each [Sub-Group]

for each [Cluster]

All Servers

for each [Server] or

for each [Queue]

for each [Cluster]

All Servers

for each [Server] or

for each [Thread Pool]

for each [Cluster]

All Servers

for each [Server] or

for each [Cluster]

• All Servers

for each [Server]

472 PerformaSure: User’s Guide

JCA > Metric Group > Pool Sub-Trees

When you click on a node described in “ Application Servers Root Node ” as for

each [Pool] (in the sub-tree Application Servers > JCA > for each [Metric

Group]), you will expose one of the two following sub-trees:

for each [Cluster]

• All Servers

for each [Server] or

for each [Cluster]

• All Servers

for each [Server]

for each [Pool Instance]

for each [Cluster]

All Servers

for each [Server]

JMS > Metric Group Sub-Trees

When you click on a node described in “ Application Servers Root Node ” as for

each [Metric Group] (in the sub-tree Application Servers > JMS), you will expose one of the two following sub-trees:

for each [JMS Server]

for each [Cluster]

See “ JMS > Metric Group > JMS Server > Cluster Sub-Trees ” below.

or

for each [Cluster]

See “ JMS> Metric Group > Cluster Sub-Trees ” below.

JMS > Metric Group > JMS Server > Cluster Sub-Trees

When you click on a node described in “ JMS > Metric Group Sub-Trees ” as for

each [Cluster] (in the sub-tree Application Servers > JMS > for each [Metric

Group] > for each [JMS Server]), you will expose one of the two following lists of metrics:

All Servers

for each [Server]

Appendix B—Metrics in PerformaSure 473

or

for each [Server]

JMS> Metric Group > Cluster Sub-Trees

When you click on a node described in “ JMS > Metric Group Sub-Trees ” as for

each [Cluster] (in the sub-tree Application Servers > JMS > for each [Metric

Group]), you will expose one of the two following lists of metrics:

All Servers

for each [Server] or

for each [Server]

JTA Sub-Trees

When you click on the JTA node, you will expose one or more of the three following sub-trees:

for each [Metric Group]

for each [Cluster]

All Servers

for each [Server]

• Client Transactions

for each [Metric Group]

for each [Cluster]

• All Servers

for each [Server]

• Global Transactions

for each [Metric Group]

for each [Cluster]

All Servers

for each [Server]

• Local Transactions

474 PerformaSure: User’s Guide

for each [Metric Group]

for each [Cluster]

All Servers

for each [Server]

Machine Metrics

Machines Root Node

The Machines root node contains metrics specific to the physical machines in the system organized by System Agent.

Click on the Machines root node and its sub-nodes to display the following subtrees:

• Machines

for each [System Agent]

• Processors

for each [Metric Group]

All Processors

for each [Processor]

Disks

for each [Metric Group]

All Disks

for each [Disk]

Partitions

for each [Metric Group]

• All Partitions

for each [Partition]

Memory

[OS-specific Metrics]

System

[OS-specific Metrics]

Network

• Bytes Sent

• From [each local IP address]

• All IP Addresses

Appendix B—Metrics in PerformaSure 475

• To [each remote IP address]

Bytes Received

• At [each local IP address]

• All IP Addresses

• From [each remote IP address]

Metrics in PerformaSure FAQ

Why are the values for some metrics displayed as negative percentages?

At certain points in time, the value that is charted for a metric in the Metrics browser or the Thresholds browser may be a negative percentage. When this occurs, it is due to the relative timing intervals of the metric’s numerator and denominator. For example, you may see a negative value for the metric

Application Servers/JTA/% Non-Application Rollbacks if the number of total rollbacks drops below the number of application rollbacks.

476 PerformaSure: User’s Guide

Appendix C—Lexicon

Term

Active Metric

Agent

Application

Server

AutoCapture

Benchmark

Benchmark

Factory

BLOB

Context

Request Tree browser

PerformaSure

General

Foglight/

PerformaSure

General

Concept

Nodes in the Request Tree are ranked against a number of user-selected metrics, such as average exclusive time. The ranking is used to assign a color to the node. The Active Metric is the one that is currently in effect, and is being used as the basis for the ranking.

PerformaSure Agents collect data, either by monitoring events in instrumented servers (Service

Request Agents) or by using OS and Java VM APIs

(System Agents). PerformaSure also features the X-

Agent, which can be used to instrument standalone

Java applications and Java application servers other than those supported by PerformaSure.

Also called a Component Transaction Monitor, an application server is a program running on a computer in a distributed network that manages the interaction among browser-based data terminals, business logic servers, and database back-ends, as well as connectivity for application programs.

You can use Foglight to trigger a PerformaSure session. For more information, see the Getting

Started Guide for your Foglight cartridge.

A standard against which some product or process can be measured.

Quest Software Benchmark Factory is Quest’s load-testing solution that scales throughput to virtually unlimited users, helping you discover the limits of your critical environments before you go live.

SQL A BLOB is a SQL built-in type that stores a Binary

Large Object as a column value in fields of a database table.

477

478 PerformaSure: User’s Guide

Term

Bottleneck

Browser

Bundling

Context

General

PerformaSure

Request Tree browser

Concept

A bottleneck is a stage in a process that causes the entire process to slow down or stop.

The data collected in a PerformaSure session can be examined using various browsers. The five types of browser are: Metrics, Request Time, Request Tree,

SQL and Thresholds.

The process of merging a call tree fragment into a single node. Bundling is used to hide data so that performance problems are more apparent. For example, a series of method call nodes of the same class in the call tree can be bundled together so that only the initial method node is visible. To find a problem in that class, you need only look at a single node.

Business Logic

Byte Code call tree

Chart

Designing

Enterprise

Applications

Java Virtual

Machine

PerformaSure and JProbe

General

Business logic refers to the code that implements the functionality of an application. In the Enterprise

JavaBeans model, this logic is implemented by an enterprise bean.

Byte code is Java compiler-generated code that is executed by the Java interpreter.

A call tree is a visual display of method calls showing the caller-callee relationship.

In the Request Tree browser, a call tree can also contain RMI and URL invocations. The call trees displayed in this browser are also referred to as

“request trees”.

A chart represents data visualized in the form of a graph on x, y, and possibly z axes.

Class

CLOB

Java

SQL

A class is a template for objects. It may be regarded as the object’s type.

A CLOB is a SQL built-in type that stores a Character

Large Object as a column value in fields of a database table.

Communication

Services

Communications

Layer

Communication services is the interface to the communications layer that the host application sees.

Term

Complete

Request

Component

Component

Componentlevel instrumentation

Container

Context

Context

Critical Path

Request Tree browser

Request Tree browser

Critical Request Request Tree browser

Enterprise

Application

Integration

(EAI)

Context

PerformaSure

Nexus

Designing

Enterprise

Applications

General

PerformaSure

Designing

Enterprise

Application

PerformaSure

General

Concept

The Nexus considers a service request complete if it has seen all the events that make up the request before the end of the session or the end of the incomplete request timeout period.

A component is an application-level software unit supported by a container. Components are configurable at deployment time. The Java EE platform defines four types of components: enterprise beans, Web components, applets, and application clients.

An object adhering to a component architecture.

Examples are Swing GUI components and Enterprise

Java Beans.

An option in PerformaSure that reduces complexity is to show the key components in a Java EE application rather than showing all classes and methods that were involved. Often, this higher-level view of the application makes it easier to isolate a trouble spot.

A container is an entity that provides life cycle management, security, deployment, and runtime services to components. Each type of container (EJB,

Web, JSP, servlet, applet and application client) also provides component-specific services.

Context refers to the information that must be associated with a particular element in a request to uniquely identify it.

Context is the path taken by a request type through a

series of methods. See “ Critical Path ”.

The set of entities in the Critical Request, one of which may be contributing to a performance bottleneck.

In the Request Tree browser, the critical request is the one that takes the longest time to complete. It is the prime candidate for optimization efforts.

The enterprise application integration allows new Web applications to access data and functions residing on existing systems, such as mainframes.

Appendix C—Lexicon 479

480 PerformaSure: User’s Guide

Term

Enterprise

JavaBeans

(EJB)

Entry-Point

Node

External

System

Extrapolated metric

Context

Java

PerformaSure

Failed request PerformaSure

FastFind

Filtering

Filtering

Request Tree browser

PerformaSure

Request Tree browser

PerformaSure browsers

PerformaSure

Concept

Enterprise JavaBeans (EJB) is an architecture for setting up program components, written in the Java programming language, that run in the servers of a computer network that uses the client/server model.

An entry-point node represents the URL, RMI invocation, or method by which a request type enters the monitored system.

In the context of this document, an external system is one that is not instrumented by PerformaSure, like a bank’s credit card validation system that is called from an instrumented e-business application.

PerformaSure uses sampling when the load on the system is such that every request cannot be tracked using Tag and Follow. In these situations,

PerformaSure uses extrapolation to calculate totals for metrics like cumulative times.

Failed requests are simply completed requests that exited exceptionally from their root node (either because a root method threw an exception, or a root http node returned a result code of 400 or above).

Use the FastFind feature after changing the active metric in the Request Tree to expose the most expensive node with regard to the new metric.

Filtering is done by typing a literal string or regular expression into the Request Time, or Request Tree; into the SQL browser’s Filter Statements bar; or into the Thresholds browser’s Filter Metrics bar. Only those requests, statements, or metrics that match the literal string or regular expression are displayed.

Service request filtering allows you to filter out specified requests using regular expressions or literal strings. Filtering reduces traffic from the Agents to the

Nexus, thus decreasing both overhead and storage requirements. You can configure service request filtering to include or exclude certain requests, regardless of the request type (HTTP, RMI, or JMS).

Term

Fragmented

Request

Garbage

Collection

Gateway or

Common

Gateway

Interface (CGI)

Glob

Context

PerformaSure

Nexus

General

General

Unix/Windows

Concept

It is possible for the Nexus to receive data from some

Agents but not others during the incomplete request timeout period. This situation results in fragmented requests. Both complete and incomplete requests can potentially become fragmented. For example,

PerformaSure would consider a complete request to be fragmented if one part of it did not report back, possibly because that part was being processed by an uninstrumented server.

Garbage Collection is a technique used in Java to eliminate objects that are no longer needed by the program. When no other objects or variables are accessing an object, it can be safely removed, freeing memory allocated to that object. Garbage collection may appear in PerformaSure as an overly-long time for a request to complete.

A gateway is a standard way for a Web server to pass a Web user’s request to an application program and to receive data back, which it then forwards to the user.

Graph General

Group Header Request Tree browser

GUI General

Term for the metacharacter ‘language’ for expanding wild card characters in a path name.

Metacharacters:

* = zero or more characters, for example *.bat

? = any single character

{} indicate alternation of comma-separated alternatives.

Thus config{.xml,cmd} expands to "config.xml" and

"config.cmd". This syntax generates a list of all possible expansions, rather than matching one.

Windows and the various Unix shells all implement their own versions of file globbing.

Synonymous with chart.

The Group Header is the header and background of a request tree node. It contains the name of the class whose methods are being called. Called methods are represented as rectangular boxes within the Group

Header.

Graphical User Interface.

Appendix C—Lexicon 481

482 PerformaSure: User’s Guide

Term

Incomplete

Requests

(Percentage)

Incomplete

Request

Incomplete

Request

Timeout

Instrumented servers

Java EE

JDBC

JRE

JSP

JVM

Load Balancing

Mercury

Interactive

LoadRunner

Method

Context

PerformaSure

PerformaSure

PerformaSure

PerformaSure

Java

Java

Java

Java

Java

Application

Servers

LoadRunner

Java

Concept

PerformaSure calculates the percentage of service requests that do not complete. Incomplete requests are long-running requests that exceed the time limit

set on them. See “ Incomplete Request Timeout ”.

A request is considered incomplete if some of the events that make up the request are unpaired and the request has remained in that state with no other events coming into the Nexus for the duration of the incomplete request timeout period. A request is also considered incomplete if the session ends before the response to the request is recorded.

The time after which the Nexus classifies a service

request as incomplete. See “ Incomplete Request ”.

Performance timing is not recorded for an incomplete request, but enough information is provided to help you identify what the request was doing when

PerformaSure stopped tracking it. A request classified as incomplete may have completed after either the timeout period or the session ended.

Servers that have PerformaSure Agents attached to them so requests can be tracked using Tag and

Follow.

The Java Platform, Enterprise Edition API.

The Java API for database connectivity.

The Java Runtime Environment.

Java Server Pages.

Java Virtual Machine.

Load balancing refers to techniques that aim to spread tasks among the servers assigned to some ebusiness task.

A load-testing tool that emulates a chosen number of users. See the LoadRunner Web page for details.

A method is a programmed procedure that is defined in a class and included in any instance of that class.

Term

Method Call

Tree

Metric Query

Context

PerformaSure

PerformaSure

Concept

See “ call tree ” and “

Request Tree Browser ”.

Metrics PerformaSure

Metrics Browser PerformaSure

Network Time

Protocol (NTP)

Nexus

Performance

General

PerformaSure

General

Metric queries are performed by the Workstation to retrieve information stored in a session.

Collectively, metrics are the measurements taken in an instrumented application.

PerformaSure distinguishes between two types of metrics: periodic metrics and request metrics.

Periodic metrics are measurements related to things that can be quantified about the operating system,

JVMs, and the entities in an application server that measure, for instance, how many beans are loaded.

Other examples are memory available from the operating system, JVM heap size, and the cached beans current count in an application server.

Request metrics are measurements on the methods in an application server that contribute to a request.

Examples are call counts and the various times, bytes, and exceptions associated with the method calls in a request.

The Metrics browser is a specialized PerformaSure window that contains a list of metrics and allows you to select metrics for charting.

Used to synchronize the time of a computer client or server to another server or reference time source. See

NTP

The Nexus is the central repository for PerformaSure; essentially, it is the central manager, the data-store component, and the analysis engine of PerformaSure.

The Nexus collects data from Agents to provide information to Workstations.

1)The speed at which a computer operates.

2) The total effectiveness of a computer system, including throughput, individual response time, and availability.

3) The capability of a Java EE application to service requests promptly. This is the meaning of the word when it is used in this manual.

Appendix C—Lexicon 483

484 PerformaSure: User’s Guide

Term

Project

Query

Request

Request

Instance

Context

PerformaSure

General,

PerformaSure

PerformaSure

PerformaSure

Request Time

Browser

PerformaSure

Request Tree

Browser

PerformaSure

Concept

Projects are one of the central points of control in

PerformaSure. You can add as many browsers of each type as you want to a Project and adjust their settings to focus on the problems that you have unearthed in a certain session. When you reload a

Project that you saved, the browsers that you added to it are ready to be used again.

A query is a request for information. There are two kinds of queries discussed in this manual:

1) SQL queries made through JDBC calls.

2) Queries that a Workstation sends to the Nexus. In this case, the Nexus responds with service request data for display in a browser.

Quest Software’s Tag and Follow

technology defines a request as anything that enters the system causing the application server to spawn a new thread, such as

HTTP or an RMI call, and results in a sequence of method calls that may span multiple VMs and computers.

A request instance is an ordered sequence of observable server-side events that take place between the time the user makes an HTTP request and when they receive a response.

The Request Time browser is a specialized

PerformaSure window that shows the time a service request spends in each container that contributes to its execution; it also shows the total time spent servicing the request. The Request Time browser allows you to view the request by tier, by component technology, or by server.

The Request Tree browser is a specialized

PerformaSure window that shows service requests illustrated in request trees. A request tree starts with the request’s invocation as it enters the system and progresses through the various method and database calls.

Information about the nodes in the request tree is displayed (on a per-method basis) in a table and the tree nodes’ tooltips.

Term

Request Type

Sampling

Server

Service

Request

Metrics

Servlet

Context

PerformaSure

Service

Request Agent

PerformaSure

Session

Session

PerformaSure

General

PerformaSure

General

PerformaSure

General

Concept

1) A use-defined structural (and time-ordered) set of observable events. In the case of URLs, PerformaSure allows you to use separators to separate requests with the same base URL into distinct request types based on GET and POST parameters, cookies, or

HTTP headers.

2) A specific kind of service request (HTTP, RMI, or

JMS).

PerformaSure uses sampling in high load situations when it is impossible collect performance data for every service request that enters the system. An algorithm is used to collect an appropriate number of samples of each service request type so that the actual behavior of the distributed application can be estimated (extrapolated).

A server is a computer program that provides services to other computer programs in the same or other computers. PerformaSure instruments application servers so that service requests can be tracked and analyzed.

Service Request Agents collect metrics on Java EE service requests by instrumenting application servers and by tracking requests from the point that they enter the instrumented system using

Tag and Follow™

technology.

Service Request metrics are the metrics that

PerformaSure measures in instrumented application servers during a recording session.

A Servlet is a Java program that runs on a Web server, generating dynamic content and interacting with Web clients using a request-response paradigm.

The process of collecting data using the capability that PerformaSure has for instrumenting machines and servers is referred to as a session. The data that is collected is referred to as a session, session data, or a session file.

A prolonged connection between a user and a Web application lasting through multiple HTTP requests.

Appendix C—Lexicon 485

486 PerformaSure: User’s Guide

Term

Sightline

SQL Browser

Tag and

Follow

Context

Time Control panel

Synchronized

Time Stamping

PerformaSure

System Agent

System Metrics PerformaSure

System

Performance

TCP/IP

Test Case

PerformaSure

PerformaSure

PerformaSure

PerformaSure

General

PerformaSure

Concept

The Sightline is a user interface control that identifies a point in time in the graph pane of the Request Time,

SQL, and Thresholds browsers and in each of the graphs in the Metrics browser. The Sightline is linked to the Zonar. Using the Sightline’s slider, you can move the Sightline through a range of time that is equivalent to that spanned by the Zonar.

The SQL browser is a specialized PerformaSure window that allows you to view detailed performance information about the SQL statements that are being used in your application. In the browser’s graph and detail panes, you can view response time metrics for individual SQL statements broken down by operation; in the graph pane, you can chart the aggregate response time of all statements listed in the detail pane.

Synchronized Time Stamping is a procedure for getting two or more timestamping threads to give the same results, even on different machines.

System Agents measure operating system and network metrics.

System Metrics are metrics collected by System

Agents. This category of metrics includes operating system parameters. Compare to

Service Request

Metrics .

System performance is a a benchmark against which

applications can be measured by using System

Agent s.

PerformaSure is a performance analysis tool.

Tag and Follow is Quest Software’s technology for monitoring caller-callee relationships, making request tracking possible. Tag and Follow technology is used to build the request call tree shown in the Request

Tree browser.

The standard Ethernet protocols.

Test Case is a session having a restricted set of service requests and other controlled parameters, such as the number of requests of the specified type being issued per time slice.

Term

Throughput

Thresholds

Browser

Time Control panel

Time Slice

Timeline

Transaction

Unmatched

Request

Context

General

PerformaSure

PerformaSure browsers

PerformaSure

Time Control panel

General

PerformaSure

Nexus

Concept

Throughput is the amount of work that a computer can do in a given time period. It is also a measure of the comparative effectiveness of large commercial computers that run many programs concurrently.

The Thresholds browser is a specialized

PerformaSure window that contains information about metrics with threshold violations. Metrics that have exceeded their thresholds are listed in the browser’s detail pane alongside information about these metrics. Metrics with threshold violations can be charted in the graph pane. A diagonally striped, rectangular strip on the edge of the chart indicates the range on the y-axis in which the metric exceeded its bounds; a threshold line is drawn across the chart to represent the threshold boundary.

The Time Control panel contains several elements,

such as the Timeline and the

Zonar

, that allow you to adjust the span of time over which you view session data in a browser. The Time Control panel is the same in all browsers.

A time slice is the smallest unit of time in a session.

All service requests are deemed to have ended in one time slice or another.

The Timeline presents a pictorial representation of the period of time during which a session was recorded.

It shows the time when the session started and ended. The tick marks on the Timeline correspond to time slice boundaries.

A transaction is an atomic unit of work that modifies data. It encloses one or more program statements, all of which either complete or are rolled back.

Transactions enable multiple users to access the same data concurrently.

Unmatched requests are service requests whose parts have become cut off from each other because some intermediate process failed to complete. These

are converted to Fragmented Requests

by

PerformaSure.

Appendix C—Lexicon 487

488 PerformaSure: User’s Guide

Term

Update

Use Case

View

Web Server

Zonar

Context

General

General

PerformaSure

General

Time Control panel

Concept

An update is a modification to an existing transaction.

There are two varieties of updates: insertion of new nodes (insert updates) and addition of incoming metric data to existing nodes (report updates).

The use case is a methodology used in system analysis to identify, clarify, and organize system requirements. It is made up of a set of possible sequences of interactions between systems and users in a particular environment and is related to a particular goal.

A view is a presentation of session data contained in one part of a browser. There are several different kinds of “views” on the data. For example, the presentation of session data in the Request Tree browser’s graph pane is sometimes referred to as the

“tree view”.

A Web server is a program that, using the client/server model and the World Wide Web’s

Hypertext Transfer Protocol, serves the files that form

Web pages to Web users (whose computers contain

HTTP clients that forward their requests).

The Zonar is part of the Time Control panel. It controls the interval of time for which data is displayed in the browsers’ graph and detail panes. You can drag, stretch, and shrink the Zonar within the Timeline and the data displayed in the browser will be adjusted accordingly.

Appendix D—Regular

Expressions

Regular expressions are used throughout PerformaSure to configure components and to select data in queries. For example, you can use regular expressions to filter service requests for display in the Request Tree browser. The Request Tree browser potentially contains a large number of nodes. Of those, some are of immediate interest and some are not. When you have selected the candidates that require further investigation, you can use the Filter Requests text box in the

Filter Requests bar to specify the requests that you would like to see. You can input the names of requests (or the methods that are called as part of a service request) literally or you can use Regular Expression syntax to match a group of names. See

“ Show Filter Bar ” on page 333 for more information about using the Filter

Requests bar in the Request Tree browser. See “ Filtering Data in the Browsers ” on page 107 for information about filtering in other PerformaSure browsers.

Tip: Use regular expressions to select groups of requests, classes, methods, or SQL statements for detailed study in the Request Tree, Request Time, and SQL browsers.

Regular expressions employ metacharacters. A metacharacter is a character with special meaning. It does not denote a normal letter, but instead affects the interpretation of other characters in a regular expression. Metacharacters only occur inside a regular expression; for example, an asterisk (*) in a data string is not a metacharacter. There are only a few metacharacters in the regular expression language, but their effect can be quite powerful.

489

The following table lists the metacharacters in PerformaSure and describes their function.

Metacharacter asterisk (*) alias: star period (.) alias: dot question mark (?) plus (+)

Description and Example of Use in a Regular Expression

The metacharacter that matches zero or more repetitions of the literal character or sub-expression it follows.

Example: the regular expression ‘White *space’ matches ‘Whitespace’, or ‘White space’, or ‘White@@any number of space characters@@space’, but not ‘White *space’

(the string containing a literal asterisk).

Note: ‘nexus*’ does NOT match ‘nexus.bat’, or ‘nexusconfig’.

Path name-style matching (file globbing) is not the same as regular expression syntax.

The period is a metacharacter that matches any single character or sub-expression unless it is enclosed in a character class, in which case it is simply a period.

Examples: The regular expression ‘HTTP1[.]0’ matches

HTTP1.0. Placing the period in a character class removes its metacharacter status.

The regular expression ‘HTTP1.0’ matches ‘HTTP1.0’ (the string containing the literal period), or

‘HTTP1A0’ or ‘HTTP110’, but not ‘HTTP1.x or ‘HTTP1..x’.

The combination ‘dot-star’ matches any string of characters. It is an idiom for ‘the rest of the characters’ in a string, but not including the end of line character.

Example: the regular expression ‘HTTP.*’ matches ‘HTTP1.0’, or

‘HTTP1://www.example.com/index.html’.

Warning: the regular expression ‘mayb.com.*’ matches ‘maybecompletely wrong!’. The dot in the regular expression matches any character, in this case an ‘e’.

Note: Because the dot is a metacharacter, use the character class [.] to match a literal dot in a string. It is more robust than attempting to protect the dot with a backslash (\.).

The question mark metacharacter matches zero or one occurrence of the character or sub-expression it follows.

Examples: the regular expression ‘i?www’ matches ‘www’ or ‘iwww’; the regular expression ‘(ab)?cd’ matches ‘abcd’ and ‘cd’.

The plus sign metacharacter matches one or more occurrences of the character or sub-expression it follows.

Example: the regular expression ‘i+www’ matches ‘iwww’ or ‘iiwww’, but not ‘www’.

490 PerformaSure: User’s Guide

Metacharacter square brackets ([]) A pair of bracket metacharacters enclose a character class. Any character in the class is a suitable character for the match.

Example: the regular expression ‘[bcp]at’ matches ‘bat’, ‘cat’, or ‘pat’, but not ‘mat’.

Note: Which characters are metacharacters and what they do are different inside character classes.

minus (-) alias: dash

The minus sign is a metacharacter only if it occurs between two characters in a character class, in which case it represents a range of characters.

Example: the regular expression ‘[b-h]at’ matches ‘bat’, or ‘cat’, or ‘fat’, or ‘hat’, but not ‘mat’.

caret (^)

Description and Example of Use in a Regular Expression dollar sign ($)

Unless it appears as the first entry in a bracketed character class, the caret metacharacter matches the special character that represents the start of a string. The combination ‘[^...] represents a negated character class. All characters except the ones listed are allowed in the match.

Examples: the regular expression ‘^abc’ matches ‘abcxyz’ but not ‘xyzabc’.

The regular expression ‘[^cpt]at’ matches ‘hat’, or ‘mat’, or any three-letter combination ending in ‘at’ that does not begin with the letters ‘c’, ‘p’, or ‘b’.

Unless it appears as the first entry in a bracketed character class, the dollar metacharacter matches the special character that represents the end of a string.

Note: The dollar sign ($) is a shell metacharacter in Unix. If you are running PerformaSure on a Unix system and want to include the dollar sign as a metacharacter in a regular expression, surround the expression with single quotes.

For example: sh nexusctl.sh start-recording -fir ‘\.[Gg][Ii][Ff]($|\?)/’ vertical bar aliases: or, bar

The vertical bar metacharacter matches either of the expressions it separates.

Example: the regular expression ‘foo|bar’ matches ‘foo’ or ‘bar’, but not ‘foobar’.

Appendix D—Regular Expressions 491

Metacharacter backslash (\)

(reverse solidus) parentheses (())

Description and Example of Use in a Regular Expression

This metacharacter, rarely if ever known except by its alias, enforces the literal interpretation of the character following it. It has no effect when placed before an ordinary character. When placed before a metacharacter, it turns off its metacharacter status, thus reducing the character to its literal meaning.

Example: the regular expression ‘myhost\.com’ matches ‘myhost.com’, but not ‘myhostscom’.

Parentheses are used for grouping, for instance, to limit the scope of the ‘or’ operator.

Example: the regular expression ‘http://(my|our)host\.com’ matches ‘http://myhost.com’ or ‘http://ourhost.com’

Caution: Do not use parenthesized expressions followed by a plus sign (+) or an asterisk (*) in any of the configuration files for PerformaSure, in the Workstation, or as part of a nexusctl command.

How Regular Expressions are Scanned

When ambiguities are possible, use these rules to decide how regular expressions do their matching.

The rules for applying regular expressions to target strings are as follows:

1.

The first match is chosen. If a regular expression could possibly match two different parts of an input string then it will match the one that begins earliest.

Example: if the regular expression is ‘a.*t’ and the target string is ‘cataract’, the match succeeds with everything after the ‘c’.

2.

The leftmost choice in a parenthesized group wins. If a regular expression contains “|” operators, the leftmost matching sub-expression is chosen.

Example: if the regular expression is ‘(cat|dog)’ and the target string is ‘cats and dogs’, the match succeeds with ‘cat’ after the first three letters have been scanned.

3.

The longest match wins. In “*”, “+”, and “?” constructs, longer matches are chosen in preference to shorter ones.

Example: if the regular expression is ‘^He’s ba*’ and the target string is ‘He’s baaaaack!’, the match succeeds with ‘He’s baaaaa’ after the full list of contiguous a’s have been scanned.

492 PerformaSure: User’s Guide

4.

In sequences of expression components, the components are considered from left to right.

Typical Regular Expression Patterns

Matching the Start and End of a String

The caret and dollar represent the start and end, respectively, of a string. They do not represent characters, but simply the abstract notion of begin and end. They are useful as anchors for the rest of the regular expression.

Regular Expression

^www[.]quest[.]com$

^com[.]quest[.].* rmi$

Matches

www.quest.com but not http://www.quest.com or www.quest.com/index.html

com.quest.performasure, but not homedir.com.quest.performasure

java.rmi, but not java.rmi.activation

Note: The meaning of the caret is different if it is the first entry in a character class. In this case it means ‘anything but’ the characters following it. For instance, [^abc] in a regular expression means that some single character must be matched at the position of the character class within the regular expression, but it can’t be ‘a’ or ‘b’ or ‘c’.

If a caret (^) appears anywhere else but the first position in a character class, it simply stands for itself. The same is true for a dollar sign ($) in a character class—it is just a dollar sign, not a metacharacter.

Matching with Character Classes

Character classes let you provide a range of possibilities as well as letting you give a specific list. The first example in the table shows the use of a regular expression to match the American or British spelling of the word ‘analyze.’

Regular Expression

Analy[sz]e this

Matches

Analyze this, and Analyse this

Appendix D—Regular Expressions 493

Regular Expression www[0-9][0-9]?[.]example www0.example, www01.example, but not www001.example

The regular expression matches ‘www’ followed by a numeral, followed by no more than one more numeral, followed by ‘.example’. Thus, 001 fails the match.

www[^a-zA-Z]?\.example

www.example, www1.example, but not wwwx.example

www[.]quest[.]com

Matches

www.quest.com This is the recommended way of matching the dot separator in Java package names and fully qualified names.

Caution: The dash (-) is a metacharacter only when it occurs between two characters in a character class. Otherwise, it is just an ordinary character. The exception to the rule of interpreting a dash as a range operator when it is between two characters is the following: the regular expression [^-*] means ‘exclude dashes and asterisks from a match.’

Warning: since the dot is a metacharacter, real periods in package names and

URLs must be enclosed in square brackets or preceded by backslashes when they are part of a regular expression.

Matching Any Character: the Dot

You use the dot (.) metacharacter when you want to indicate that any character is allowed at this position. Combined with parentheses, dot metacharacters can be used to indicate the number of arbitrary characters to be allowed after another pattern. See the second entry in the table below for an example of this case. The first entry in the table is an illustration of the commonly-seen ‘dot-star’ combination, which matches any number of arbitrary characters. Also, it’s important to remember that dots are not metacharacters when they occur within a character class.

Regular Expression com\.quest\..*

Matches com.quest.the rest of the string, commas, spaces, periods, and all.

As long as the test string contains ‘com.quest.’ followed by any number of additional characters, the match succeeds.

494 PerformaSure: User’s Guide

Regular Expression

[ ]co(.|..|...|....)[ ]

594[-./]1026

Matches

The ‘words’ cod, coal, codes, collar, and even co13

The character classes at both ends of the regular expression contain the space character, which limit the match to space-separated words. The matched word must begin with ‘co’, followed by one, two, three, or four characters.

594-1026, 594.1026, 594/1026

A dot inside a character class is not a metacharacter.

Caution: A forward slash (/) marks regular expression boundaries in the configuration files for PerformaSure. That is, it is used to start and end regular expressions; you can escape with a backslash (\) if you are using a forward slash in a regular expression in a

PerformaSure configuration file. The forward slash is a regular character when it is used outside of the configuration files for

PerformaSure.

A dot in a character class is not a metacharacter.

A dash is not a metacharacter if it is the first or last character in a character class, or if it follows a leading caret.

Alternation

Use the ‘or’ (|) metacharacter to combine several possibilities into a single expression. Usually, the ‘or’ metacharacter is used with parentheses to provide grouping.

Regular Expression Matches

(java|javax)

This is an explicit equivalent to javax?

java, javax.

[(s|t)] com\.(sun|quest|klg)

(, or s, or |, or t, or )

None of these characters are metacharacters when they are part of a character class.

com.sun, com.quest, com.klg

Appendix D—Regular Expressions 495

Using Regular Expressions in PerformaSure

Using Regular Expressions in Request Separation and Filtering

Regular Expressions and Service Request Separation

You can use regular expressions to separate requests with the same base URL into separate request types based on GET and POST parameters, cookies, or HTTP headers in the Separators tab of the Workstation’s Recording Settings dialog or using nexusctl.

To configure service request separators using regular expressions (Workstation instructions):

1.

Open the Recording Control window by selecting Record New Session from the PerformaSure Startup window and then clicking OK. You can also open the Recording Control window by clicking the Recording Control Window button in the Project window’s toolbar or by selecting Tools > Recording

Control Window from the menu bar of the Project window or any browser.

2.

Click the Configure... button in the Recording Control window. The Recording

Settings dialog will appear.

3.

Select the recording settings configuration that you would like to use from the

Settings drop-down menu, or create a new configuration. See “ Configuring

Recording Settings ” on page 207 for details.

4.

Select the Separators tab.

5.

Adjust the controls in this tab to configure service request separation. For example:

5.1

Press the Add new entry button. An editable entry will appear in the

Separate requests that match, in order table.

5.2

The text field in the URL Expression column will be empty. Doubleclick this text field to make it editable and enter a regular expression. For example: estore/portal-.*\.jsp

5.3

5.4

The text field in the Parameters/Cookies/Headers column will also be empty. Double-click this text field to make it editable and enter one or more parameter, cookie, or HTTP header names or name-value pairs.

Multiple items must be entered in a comma-separated list. For example: cmd,LoginName,user-agent,action=AddItem

Make sure that RegEx is selected from the drop-down menu in the

Type column and the checkbox in the far left column is selected (the default settings).

496 PerformaSure: User’s Guide

5.5

Adjust the setting in the Maximum length of value used for

separation editable spin box as desired (the default setting is 32 ).

6.

Click OK to save your selections as part of the recording settings configuration and close the dialog.

To configure service request separators using regular expressions (nexusctl instructions):

1.

When you are ready to start recording, open a command shell, navigate to the

PerformaSure home directory, then to the scripts subdirectory.

2.

Include the option -srr “URIregex” “PARAM” when you issue the command nexusctl start-recording in the command shell. Example usage:

-srr “estore/portal-.*\.jsp” “country”

See “ Separators Tab ” on page 213 or “

Request Separation Parameters ” on page

234 for more information about using the Workstation or nexusctl to configure

service request separators.

Regular Expressions and Service Request Filtering

You can set filtering patterns for requests in the Filters tab of the Workstation’s

Recording Settings dialog or using nexusctl. The filters support regular expressions.

Filtering patterns are used to include or exclude requests that match the given pattern.

Tip: If you have specified request separation on a parameter in the

Separators tab, you can filter requests on that parameter in the Filters tab.

To set request filtering patterns using regular expressions (Workstation instructions):

1.

Open the Recording Control window by selecting Record New Session from the PerformaSure Startup window and then clicking OK. You can also open the Recording Control window by clicking the Recording Control Window button in the Project window’s toolbar or by selecting Tools > Recording

Control Window from the menu bar of the Project window or any browser.

2.

Click the Configure... button in the Recording Control window. The Recording

Settings dialog will appear.

3.

Select the recording settings configuration that you would like to use from the

Settings drop-down menu, or create a new configuration. See “ Configuring

Recording Settings ” on page 207 for details.

4.

Select the Filters tab.

Appendix D—Regular Expressions 497

5.

Adjust the controls found in this tab to configure service request filtering. For example, to exclude GIFs:

5.1

Press the Add new entry button. An editable entry will appear in the

Include or exclude requests that match, in order table.

5.2

The text field in the Expression column will be empty. Double-click this text field to make it editable and enter the following:

\.[Gg][Ii][Ff]($|\?)/

5.3

5.4

Make sure that Exclude is selected from the drop-down menu in the

Action column and the checkbox in the far left column is selected (the default settings).

Make sure that Included is selected from the All other requests

should be drop-down menu (its default setting).

6.

Click OK to save your selections as part of the recording settings configuration and close the dialog.

To set request filtering patterns using regular expressions (nexusctl instructions):

Tip: If you have specified request separation on a parameter by entering a

nexusctl request separation flag, you can filter requests on that parameter by using one of nexusctl’s request filtering options.

1.

When you are ready to start recording, open a command shell, navigate to the

PerformaSure home directory, then to the scripts subdirectory.

2.

To exclude GIFs from the requests, for example, include the option -fxr

“\.[Gg][Ii][Ff]($|\?)/” when you issue the command nexusctl startrecording in the command shell.

See “ Filters Tab

” on page 216 or “ Filtering Parameters ” on page 237 for more

information about using the Workstation or nexusctl to set service request filtering patterns.

Using Regular Expressions in the PerformaSure Browsers

You can use regular expressions to filter items for display in several of the

browsers. See “ Using the Request Time browser’s Filter Requests bar ” on page

273, “ Using the SQL browser’s Filter Statements bar

” on page 301, “ Using the

Request Tree browser’s Filter Requests bar

” on page 333, or “ Using the

Thresholds browser’s Filter Metrics bar ” on page 397 for more information.

498 PerformaSure: User’s Guide

Appendix E—License Credits and Trademarks

The following trademark owners for third-party products used by PerformaSure are listed in this chapter:

ANTLR

Apache Commons, BCEL

JDOM

libpcap my_getopt

WinPcap

Xerces

See “ Trademarks ” on page 505 for a list of trademark owners for materials

referenced by PerformaSure.

License Credits

ANTLR

This product includes software developed by Terence Parr and is distributed subject to the following notice:

Copyright © 2005, Terence Parr. All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

• Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

499

• Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

• Neither the name of the author nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY

EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES

OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT

SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,

INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED

TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR

BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN

CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN

ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

DAMAGE.

Apache Commons, BCEL

This product includes software developed by the Apache Software Foundation

( http://www.apache.org/ ) and is distributed subject to the following notice:

Apache License Version 2.0, January 2004 http://www.apache.org/licenses/

TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

1. Definitions.

"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.

"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.

"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity.

For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.

"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.

"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.

"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.

"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).

"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.

500 PerformaSure: User’s Guide

"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition,

"submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."

"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.

2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, nocharge, royalty-free, irrevocable copyright license to reproduce, prepare

Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.

3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, nocharge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their

Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.

4. Redistribution. You may reproduce and distribute copies of the Work or

Derivative Works thereof in any medium, with or without modifications, and in

Source or Object form, provided that You meet the following conditions:

(a) You must give any other recipients of the Work or Derivative Works a copy of this License; and

(b) You must cause any modified files to carry prominent notices stating that

You changed the files; and c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the

Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and

(d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the

Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative

Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the

License. You may add Your own attribution notices within Derivative Works that

You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License.

You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.

5. Submission of Contributions. Unless You explicitly state otherwise, any

Contribution intentionally submitted for inclusion in the Work by You to the

Appendix E—License Credits and Trademarks 501

Licensor shall be under the terms and conditions of this License, without any additional terms or conditions.

Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.

6. Trademarks. This License does not grant permission to use the trade names, rademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.

7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its

Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A

PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.

8. Limitation of Liability. In no event and under no legal theory, whether in tort

(including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work

(including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.

9. Accepting Warranty or Additional Liability. While redistributing the Work or

Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.

JDOM

This product includes software developed by the JDOM Project

( http://www.jdom.org/ ) and is distributed subject to the following notice:

Copyright © 2000-2002 Brett McLaughlin & Jason Hunter, all rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions, and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions, and the disclaimer that follows these conditions in the documentation and/or other materials provided with the distribution.

3. The name "JDOM" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact [email protected].

4. Products derived from this software may not be called "JDOM", nor may "JDOM" appear in their name, without prior written permission from the JDOM Project

Management ([email protected]).

502 PerformaSure: User’s Guide

THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,

BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A

PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE JDOM AUTHORS OR THE PROJECT

CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR

CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS

OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED

AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT

(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS

SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

libpcap

This product includes software developed by Torsten Landschoff and Sebastian

Krahmer and is distributed subject to the following notice:

Copyright © 2000 Torsten Landschoff and Sebastian Krahmer.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

3. The names of the authors may not be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES,

INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS

FOR A PARTICULAR PURPOSE.

my_getopt

This product includes software developed by Benjamin Sittler

( http://www.geocities.com/bsittler ) and is distributed subject to the following notice:

Copyright 1997-2001, Benjamin Sittler

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,

INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A

PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT

HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF

CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE

OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Appendix E—License Credits and Trademarks 503

WinPcap

This product includes software developed by the University of California,

Lawrence Berkeley Laboratory, Politecnico di Torino, and its contributors, and is distributed subject to the following notice:

Copyright (c) 1999 - 2005 NetGroup, Politecnico di Torino (Italy).

Copyright (c) 2005 - 2009 CACE Technologies, Davis (California).

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

3. Neither the name of the Politecnico di Torino, CACE Technologies nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY

EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES

OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT

SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,

INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED

TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR

BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN

CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN

ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

DAMAGE.

Xerces

This product includes software developed by the Apache Software Foundation

( http://www.apache.org/ ) and is distributed subject to the following notice:

The Apache Software License, Version 1.1

Copyright (c) 2000 The Apache Software Foundation. All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyri