Dec 31st – Chapter 9: Action and Pitfall Tips Posted
This chapter contains 10 action and pitfall tips. Action tips provide information about tool usage or techniques and how a tool can be ingeniously used to identify or solve a production issue. Pitfall tips describe common problems that occur in enterprise systems and discuss the symptoms they display. Download the PDF file (ZIP).
Jan 28th – Chapter 5: Profiling
This chapter will survey the landscape of profiling tools. These tools help bridge the gap between understanding what the JVM is doing and what the application that is hosted within the JVM is doing. (Subscribe to the TSS Newsletter via registering or editing your profile to be notified of this new chapter).Download the PDF file (ZIP).
Contribute to Java Doctor
Manning Publications is releasing a new book entitled Java Doctor, in which you can contribute to and get published! How does that work? And what is the book about? Read on!
Java Doctor is a book about diagnosing and troubleshooting enterprise applications, covering the methodologies, techniques and tools needed to successfully identify problems in scalability, performance and availability. No, this is not another performance book. In fact, it’s quite different. Most performance tuning books look at how best to optimize your application. The missing piece is how to best identify the parts of your application that actually need tuning. The difficulty increases exponentially when such an exercise needs to be performed in production (as opposed to development, QA or UAT) environments that are faltering. This book has been written by two Sun Microsystems consultants who have been heavily involved in troubleshooting gigs throughout the world.
Sounds interesting? Would you like to contribute? Here’s how: We’ve dedicated an entire chapter to a series of bite-size tips. We are inviting members of TheServerSide.com community to submit troubleshooting tips for possible inclusion in this book. We’re looking for the best of the best, and in return for your accepted and qualified submission we’ll acknowledge your contribution in the book (and optionally your contact info). Talk about instant exposure!
For more information on what kind of tips we’re looking for and the guidelines you need to follow, take a look at Chapter 9 which is already chock full of tips given to us by community members just like you!
Submit a Tip
To submit your tip, email us at firstname.lastname@example.org. Aside from the tips, we’re looking for feedback on our book, so tell us what you think, we are eager to hear! Hope to see your name in Chapter 9!
Table of Contents
Chapter 1: The Basics—We’re going to rummage through several basic concepts. We’ll discuss what applications are and how you can measure various aspects of an application. We’ll explain what systemic qualities are and also touch on troubleshooting and development methodologies.
Chapter 2: The Operating System—Since we’ll be taking a bottom-up approach toward diagnosing applications, we’ll start the book at the lowest level in the stack: the operating system, such as Solaris, Linux, or Windows. The operating system is your view into the underlying server hardware and network resources. We’ll show you the tools that come with an operating system and how to read, understand, and leverage the abundant information provided by this layer.
Chapter 3: JVM Internals—This chapter will introduce you to the fundamentals of the Java Virtual Machine. Without a doubt, the JVM will play a central role in your ability to understand the behavior of your application. The JVM is the sandbox that sets the rules, policies, and norms for how your application can play. If your application tries to take a shovel and throw out some sand, the JVM will know it, and you should, too. As such, we’ll focus on the inner workings of the JVM as it relates to an applications needs.
Chapter 4: JVM Monitoring—It’s time to get down and dirty with the JVM. Here, we’ll present some advanced concepts and strategies to help you better understand what’s going on in the JVM, what your application is doing to the JVM, and what the JVM is doing to the application!
Chapter 5: Profiling—This chapter will survey the landscape of profiling tools. These tools help bridge the gap between understanding what the JVM is doing and what the application that is hosted within the JVM is doing. Using the tools and the tips and techniques we present will give you a better understanding of what is going on in a higher visual context, because most of these tools present graphical representations of JVM activity. We’ll look at commercial and open-source profilers and some of the interesting SNMP capabilities with JDK 1.5
Chapter 6: The Code—If your applications creeps along, even on a mega server with a fully tuned JVM, then you should target your application code as a potential culprit. This chapter will look at chokepoints that commonly exist in code in production land. Although this isn’t a Java code-tuning book, we’ll examine areas that will give you insight in writing better code and avoiding code that can kill many of the systemic qualities of your architecture.
Chapter 7: Designing with the Three Ms—Here we’ll look at design strategies that are geared toward better manageability, monitorability, and maintainability. These include logging strategies, debugging, and exception handling. Implementing these will give you a better handle on your application when and if it comes time to pull out the microscope.
Chapter 8: Design Patterns for Monitorability and Performance—Continuing from chapter 7, we’ll look at patterns you can use in the design of your application. However, the focus will be on patterns that have strong influence on performance, scalability, and manageability.
Chapter 9: Reality: Action & Pitfall Tips—We’ve saved the best for last. This is a collection of suggestions sent to us by the TheServerSide.com community, packed with juicy troubleshooting tips from the trenches!
Appendix A: Tools
Appendix B: Glimpse of JVM Source Code
Appendix C: Hacks
Appendix D: Installations
Appendix E: GCSpy Introduction, by the Author of GCSpy