Home > Articles > Programming > Java

J2EE Performance Tuning, Part 3: Application Server Architecture

  • Print
  • + Share This
  • 💬 Discuss
By understanding what a J2EE application server must do, you can understand how it will do it, which leads directly to how to tune it. Steven Haines delves deep into the internal workings of a J2EE application server by examining the J2EE specification in the context of leading application servers.
From the author of

From the author of

Thus far in this series on J2EE performance tuning, we have quantified what we mean by performance tuning (maximize concurrent users, throughput, and reliability), and we have defined a methodology that we will use when tuning our applications and application servers. Now we need to look under the hood of a generic application server and see what can be tuned and the impact of that component on our environment. In this article, we will look into the J2EE specifications and apply practical knowledge of application server implementation details to identify those tunable components.

Under the Hood: What Does an Application Server Have to Do?

At the time of this writing, most production application servers are J2EE 1.3-compliant, meaning that they satisfy all the requirements defined in the J2EE 1.3 specification. Although there is one J2EE specification, I intentionally referred to it as specifications because the specification refers to a set of other "Application Programming Interfaces" that have their own individual specifications.

Inside the J2EE Specifications

Let's take a look inside the J2EE 1.3 specification. It is available at the following URL: http://java.sun.com/j2ee/download.html.

Depending on when you visit this link, you will notice that the 1.4 specifications are in "Proposed Final Draft 2" (or later), but the reason I am focusing on 1.3 is because application servers do not yet support 1.4.

Chapter 6 of the J2EE specification defines the set and versions of component specifications that must be supported. Those are summarized in Table 1.

Table 1—J2EE Specification Components and Versions





Enterprise JavaBeans(EJBs)




JavaServer Pages (JSP)


Java Messaging Service(JMS)


Java Transaction API (JTA)




J2EE Connection Architecture (JCA)


Authentication and Authorization (JAAS)


You can find links to all the specifications for these technologies inside the J2EE Specification, so we will focus on the important aspects of each with respect to performance.

Because each application server must support the aforementioned APIs, we can look at an application server from a general perspective and understand what we might want to tune. Then, when we look at individual application servers, it is just a matter of finding the implementation of that conceptual technology.

  • + Share This
  • 🔖 Save To Your Account


comments powered by Disqus