Commentary
Stay Up and Running
Stay Up and Running
Mar. 27, 2003 12:00 AM
Everywhere I go developers, operations people, and IT executives ask me how best to keep their mission-critical applications up and running at peak performance. To address these concerns, WebLogic Developer's Journal is introducing a new column to answer questions from real WebLogic users like you on a range of Java application management topics.
Whether it involves the JVM, the application itself, the application server, the operating system, or the connections between your application and back-end supporting systems, submit your questions to "Ask the Expert" today.
Here are some examples of the topics that I'll be covering in this column.
What Are the Most Common Application Performance Issues?
Though I've come across many, I can safely narrow the bulk of performance and availability issues into three categories:
Bottlenecks in back-end systems such as the database or CICS transaction systems: Caused by using potentially expensive resources ineffectively or more often than anticipated.
Application code issues: These are not necessarily coding bugs you identify and tune up with a profiler, but rather higher-level issues related to the overall design of the application itself - how well components are behaving when they're interacting with each other under a real load in a real environment.
Java runtime issues such as the garbage collector, the amount of heap used, and the amount of object thrash: Understanding how to tune your garbage collector is an important aspect of ensuring better application performance. Another issue that affects the Java runtime is a memory leak, which can of course, cause system failure.
What Areas of WebLogic Server Would You Recommend for Tuning?
One of the great advantages of J2EE application environments is that you have a lot of flexibility and freedom to tune a lot of parameters and that's great because those tunable parameters deliver the performance you need. Regarding application servers, focus on the contended resources that if improperly configured could introduce severe performance problems for your application. You must have a handle on:
The number of threads available in your servlet thread pools: Too few and servlet requests can be blocked. Too many and you may be using system resources unnecessarily.
The number of anticipated HTTP sessions in a single JVM: You need to make sure that you have enough execute threads available to support the average number of concurrent users anticipated for the application. If this number is too low, application performance will begin to degrade.
The number of JDBC connections available in the pool: To ensure optimal performance, make sure that the maximum number of JDBC connections in the pool is greater than the maximum anticipated active connections.
How your application is utilizing the heap within the JVM: Your application needs to be monitored over time for rising trends in memory utilization. If allocating more memory doesn't fix the problem, you probably have a memory leak.
The size of entity EJB pools: If your entity bean pools are too large, they may take up too much RAM; too small, and caching is ineffective.
What Is the Typical Production Environment for WebLogic Applications?
One of the real strengths of J2EE and WebLogic is their cross-platform nature. I've seen every type of conceivable production environment in which mission-critical WebLogic applications run. As such there are no clear, standard production hardware or OS environments. I've seen WebLogic running on almost every conceivable platform, including Linux, Solaris, AIX, HP-UX, even the mainframe. The fact is that every J2EE application is built to be unique, and the very nature of J2EE means that there is no standard production environment.
* * *
If you have a question for me, I invite you to send it to asklew@sys-con.com.
About Lewis CirneLewis Cirne, founder and CTO of Wily Technology, invented the company's core, patented Java Agent technology. As Wily's CTO, Lewis takes a leading role in the future technological development of the company and its products, with the goal of extending the services offered by Wily to customers deploying high-performance e-business solutions.