
At a Glance
432 Pages
23.5 x 17.78 x 1.91
Hardcover
$89.99
or 4 interest-free payments of $22.50 with
 orÂShips in 7 to 10 business days
Pro Java EE 5 Performance Management and Optimization features proven methodology to guarantee top-performing Java EE 5 applications, and explains how to measure performance in your specific environment. The book also details performance integration points throughout the development and deployment lifecycles that are crucial for application success.
For quality assurance and preproduction stages, this book guides you through testing and optimally deploying your Java EE 5 applications, with a focus on assessing capacity and discovering saturation points. It defines the concept and application of wait-based tuning--one of the most effective approaches to application server tuning.
The book also helps you assess and improve the health of your applications upon deployment. The topics covered include trending, forecasting, and capacity assessing and planning. When production issues arise, you'll be armed with troubleshooting methodology and solutions to common problems that have been observed in real-world environments. This book even guides you through the creation of a formal Java EE 5 performance management plan customized to your environment to help you interpret and react to changing trends in usage patterns.
| About the Author | p. xv |
| About the Technical Reviewer | p. xvii |
| Acknowledgments | p. xix |
| Introduction | p. xxi |
| Fundamentals | |
| An Introduction to Application Performance Management | p. 3 |
| Impact of Poor Performance | p. 4 |
| Complications in Achieving Application Performance | p. 6 |
| Evolution of Java Applications | p. 6 |
| Layered Execution Model | p. 7 |
| Prebuilt Frameworks | p. 9 |
| Java EE Expertise | p. 10 |
| Development Tools | p. 10 |
| Service-Oriented Architecture and Web Services | p. 11 |
| Application Performance | p. 13 |
| Java EE Performance Problems | p. 14 |
| Application Performance Management | p. 15 |
| APM in Architecture | p. 15 |
| APM in Development | p. 16 |
| APM in QA | p. 17 |
| APM in Preproduction | p. 18 |
| APM in Production | p. 19 |
| The Role of the Java EE System Administrator | p. 19 |
| Application Server Topology Configuration | p. 20 |
| Application Server Tuning | p. 20 |
| Application Deployment | p. 21 |
| Application Production Integration | p. 21 |
| Capacity and Scalability Assessment | p. 22 |
| Trending, Forecasting, and Capacity Planning | p. 22 |
| Application Production Troubleshooting and Triaging | p. 23 |
| Summary | p. 24 |
| Quantifying Performance | p. 25 |
| Defining Performance | p. 25 |
| End-User Response Time | p. 26 |
| Request Throughput | p. 26 |
| REsource Utilization | p. 27 |
| Application Availability | p. 29 |
| Before Quantifying Performance Requirements | p. 29 |
| SLA Stakeholders | p. 29 |
| SLA Properties | p. 29 |
| Measuring Performance | p. 30 |
| Acquiring Data | p. 31 |
| Interpreting Data | p. 32 |
| Costs of Measuring Performance | p. 35 |
| Mitigating the Cost of Performance Monitoring | p. 37 |
| Improving Performance | p. 37 |
| Building a Performance Test Plan | p. 38 |
| Know Your Users | p. 38 |
| Performance Testing Phases | p. 40 |
| Summary | p. 45 |
| Performance Measurements | p. 47 |
| Performance Measurement Prerequisites | p. 47 |
| Performance Monitoring and Management Using Java Management Extensions (JMX) | p. 50 |
| JMX Architecture | p. 51 |
| JSR 77 Architecture | p. 53 |
| Obtaining Application Server Metrics | p. 56 |
| Obtaining Application Metrics | p. 58 |
| Custom Instrumentation | p. 59 |
| Automatic Instrumentation | p. 62 |
| Obtaining JVM Metrics | p. 64 |
| Aggregating Data | p. 66 |
| Correlating Data | p. 67 |
| Visualizing Data | p. 70 |
| Summary | p. 71 |
| Implementing Performance Measurements | p. 73 |
| Reading Application Server Metrics | p. 74 |
| Implementing Code Instrumentation | p. 94 |
| Instrumentation Engine | p. 97 |
| Test Application | p. 109 |
| Instrumentation Command Interface | p. 114 |
| Summary | p. 121 |
| Application Life Cycle Performance Management | |
| Performance Through the Application Development Life Cycle | p. 125 |
| Performance Overview | p. 125 |
| Performance in Architecture | p. 126 |
| SLAs | p. 127 |
| Object Life Cycle Management | p. 129 |
| Application Session Management | p. 130 |
| Performance in Development | p. 132 |
| Unit Testing | p. 133 |
| Unit Performance Testing | p. 140 |
| Performance in Quality Assurance | p. 149 |
| Balanced Representative Load Testing | p. 150 |
| Production Staging Testing | p. 151 |
| Identifying Performance Issues | p. 151 |
| Summary | p. 154 |
| Performance Tuning Methodology | p. 155 |
| Performance Tuning Overview | p. 155 |
| Load Testing Methodology | p. 156 |
| Load Testing Design | p. 157 |
| Load Testing Process | p. 158 |
| Wait-Based Tuning | p. 159 |
| Tuning Theory | p. 160 |
| Tuning Backward | p. 162 |
| JVM Heap | p. 163 |
| Wait-Based Tuning Conclusions | p. 164 |
| Tuning Example | p. 164 |
| Application Bottlenecks | p. 172 |
| Summary | p. 176 |
| Tuning an Application Server | p. 177 |
| Application Server Requirements | p. 178 |
| Biggest Bang: Quickly Grabbing the 80 Percent | p. 180 |
| Tuning the JVM Heap | p. 180 |
| Tuning Thread Pools | p. 197 |
| Tuning Connection Pools | p. 198 |
| Tuning Caches | p. 198 |
| Fine-tuning: Realizing the Remaining 20 Percent | p. 199 |
| Tuning EJB Pools | p. 199 |
| Precompiling JSPs | p. 200 |
| Tuning the JMS | p. 202 |
| Understanding Servlet Pooling and the Impact of Non-Thread-safe Servlets | p. 202 |
| Tuning Prepared Statement Caches | p. 203 |
| Configuring Advanced JDBC Options | p. 204 |
| Summary | p. 205 |
| High-Performance Deployments | p. 207 |
| Deployment Overview | p. 207 |
| Formal Deployment Topology | p. 209 |
| Software Clusters | p. 211 |
| Technical Requirements | p. 212 |
| Architecting Clusterable Applications | p. 213 |
| Horizontal and Vertical Clusters | p. 214 |
| Disaster Recovery | p. 215 |
| Realizing the Logical Configuration | p. 217 |
| Hardware Infrastructure | p. 219 |
| Load Testing Strategy | p. 221 |
| Summary | p. 222 |
| Performance and Scalability Testing | p. 223 |
| Performance vs. Scalability | p. 224 |
| Capacity Assessment | p. 227 |
| Graduated Load Tester | p. 227 |
| Capacity Assessment Usage Mappings | p. 229 |
| Measurements | p. 230 |
| Building a Capacity Assessment Report | p. 234 |
| Executive Summary | p. 234 |
| Test Profile | p. 235 |
| Capacity Analysis | p. 236 |
| Degradation Model | p. 237 |
| Impact Analysis | p. 238 |
| Analysis and Recommendations | p. 239 |
| Sample Capacity Assessment Report | p. 240 |
| Executive Summary | p. 240 |
| Test Profile | p. 241 |
| Capacity Analysis | p. 243 |
| Degradation Model | p. 245 |
| Impact Analysis | p. 248 |
| Final Analysis and Recommendations | p. 250 |
| Summary | p. 251 |
| Performance Management in Production | |
| Java EE Performance Assessment | p. 255 |
| Performance Assessment Benefits | p. 256 |
| Performance Assessment Overview | p. 257 |
| Prerequisites | p. 257 |
| Process | p. 258 |
| Analysis | p. 258 |
| Mitigating Performance Overhead | p. 258 |
| Platform Recording | p. 259 |
| Application Recording | p. 261 |
| Preproduction Strategy | p. 262 |
| Preparing the Production Environment | p. 263 |
| Assessing Usage Patterns | p. 264 |
| Evaluating Critical Mass | p. 265 |
| Determining User Load | p. 265 |
| Recording Metrics | p. 265 |
| Production Strategy | p. 266 |
| Recording at the Right Intervals | p. 267 |
| Environmental Subsets | p. 268 |
| Staged Recording | p. 269 |
| Metric Recording | p. 270 |
| Metric Analysis | p. 271 |
| Environment | p. 271 |
| Application Server | p. 279 |
| Application | p. 287 |
| SQL Report | p. 295 |
| Summary | p. 297 |
| Production Troubleshooting Methodology | p. 299 |
| Performance Issues in Production | p. 300 |
| Prerequisites | p. 301 |
| Production Support Methodology | p. 302 |
| Roles of Support Personnel | p. 302 |
| The Production Support Workflow | p. 304 |
| Triggers | p. 305 |
| Level 1 Support | p. 306 |
| Level 2 Support | p. 308 |
| Level 3 Support | p. 309 |
| Level 4 Support | p. 311 |
| Benefits of a Formal Production Support Methodology | p. 313 |
| Summary | p. 315 |
| Trending, Forecasting, and Capacity Planning | p. 317 |
| Trends | p. 318 |
| Usage Patterns | p. 319 |
| Heap Usage Patterns | p. 321 |
| Resource Utilization Patterns | p. 323 |
| Response Time Patterns | p. 326 |
| Forecasting | p. 327 |
| Capacity Planning | p. 330 |
| Forecast Risk Analysis | p. 331 |
| Capacity Assessment | p. 332 |
| Capacity Plan | p. 333 |
| Summary | p. 335 |
| Assembling a Performance Management Plan | p. 337 |
| Evolution of the Performance Management Plan | p. 338 |
| Performance Management Infrastructure | p. 341 |
| Performance Management Process Document | p. 342 |
| Application Performance Management Document | p. 343 |
| Performance Test Infrastructure | p. 345 |
| Performance Deployment Infrastructure | p. 345 |
| Production Support Infrastructure | p. 346 |
| Capacity Planning Infrastructure | p. 347 |
| PMP Life Cycle | p. 347 |
| Summary | p. 348 |
| Tips and Tricks | |
| Solving Common Java EE Performance Problems | p. 351 |
| Out-of-Memory Errors | p. 352 |
| Causes of Out-of-Memory Errors | p. 352 |
| Resolving Memory Leaks | p. 358 |
| Artificial Memory Leaks | p. 359 |
| Thread Pools | p. 364 |
| Thread Pools That Are Too Small | p. 364 |
| Thread Pools That Are Too Large | p. 366 |
| JDBC Connection Pools | p. 366 |
| JDBC Prepared Statements | p. 367 |
| Entity Bean and Stateful Session Bean Caches | p. 368 |
| Stateless Session Bean and Message-Driven Bean Pools | p. 370 |
| Transactions | p. 370 |
| Summary | p. 371 |
| Next STeps | p. 373 |
| Tools of the Trade | p. 373 |
| Load Tester | p. 373 |
| Performance Profilers | p. 374 |
| Performance Analysis Tools | p. 376 |
| 24x7 Unattended Monitoring | p. 376 |
| End-User Experience Monitors | p. 377 |
| Online Communities | p. 378 |
| Developing a Performance Management Plan | p. 379 |
| Summary | p. 379 |
| Index | p. 381 |
| Table of Contents provided by Ingram. All Rights Reserved. |
ISBN: 9781590596104
ISBN-10: 1590596102
Series: Pro
Published: 1st April 2006
Format: Hardcover
Language: English
Number of Pages: 432
Audience: Professional and Scholarly
Publisher: Springer Nature B.V.
Country of Publication: US
Dimensions (cm): 23.5 x 17.78 x 1.91
Weight (kg): 0.97
Shipping
| Standard Shipping | Express Shipping | |
|---|---|---|
| Metro postcodes: | $9.99 | $14.95 |
| Regional postcodes: | $9.99 | $14.95 |
| Rural postcodes: | $9.99 | $14.95 |
Orders over $79.00 qualify for free shipping.
How to return your order
At Booktopia, we offer hassle-free returns in accordance with our returns policy. If you wish to return an item, please get in touch with Booktopia Customer Care.
Additional postage charges may be applicable.
Defective items
If there is a problem with any of the items received for your order then the Booktopia Customer Care team is ready to assist you.
For more info please visit our Help Centre.
You Can Find This Book In

Architecture Patterns with Python
Enabling Test-Driven Development, Domain-Driven Design, and Event-Driven Microservices
Paperback
RRP $125.75
$60.99
OFF
This product is categorised by
- Non-FictionComputing & I.T.Computer Programming & Software DevelopmentObject-Oriented Programming or OOP
- Non-FictionComputing & I.T.Computer Programming & Software DevelopmentWeb Programming
- Non-FictionComputing & I.T.Computer Programming & Software DevelopmentProgramming & Scripting Languages
- Non-FictionComputing & I.T.Computer Programming & Software DevelopmentSoftware Engineering






















