Performance, Monitoring, and Tuning
So, you've now reached a stage where your application has acquired a certain level of maturity. You understand how to apply and benefit from WebLogic's support for various J2EE services. You've set up a working domain, perhaps even several WebLogic clusters that model the various application tiers. You've deployed your application components and ensured that all necessary WebLogic resources and services are available and configured properly. You've also deliberated on the network and hardware infrastructure needs of your production environment. Now you must determine how your application performs under live conditions, monitor its execution, and tune the entire system.
Somehow, you need to verify that your application setup is optimal, and that it performs to its maximum capacity. As this chapter shows, this is as much an art as it is a science. It is beyond the scope of this book to look at all performance-related aspects of your application setup. We would require several books to do justice to tuning your operating system, your hardware resources, and your network infrastructure. Far too many variables are involved, not the least of which include the different platforms, vendors, and architectures we'd need to consider. Instead, we focus on how to improve the performance of WebLogic and the most important WebLogic features your application may use. We do this by examining three topics. First, we examine how to monitor and tune the major J2EE components that your application most likely will use. This includes the HTTP sessions, JDBC pools, JMS server, and EJBs. We then look at how to tune WebLogic itself, which chiefly entails the configuration and monitoring of the execute queues and server threads. Finally, we look at a few optimizations that can be made at the JVM level.