Building a distributed application requires more than just writing code. You also need to ensure that the code works. Debugging distributed applications is a complex task, mainly because so many pieces need to work together—GUI code, Web pages, components, databases, middleware, network infrastructure, and so on. Divide and conquer is the name of the game when it comes to debugging your distributed application.
In this chapter, we will look at some of the techniques you can use to debug your applications during development and testing. We'll focus primarily on techniques for debugging middle-tier components, but we'll also look at tools you can use for diagnosing errors in other parts of the application.