Sun logo      Previous      Contents      Next     

Sun Java™ System Application Server Platform Edition 8 Administration Guide

Chapter 8
J2EE Containers

This chapter explains how to configure the J2EE containers included in the server. This chapter contains following sections:


About the J2EE Containers

Types of J2EE Containers

J2EE containers provide runtime support for J2EE application components. J2EE application components use the protocols and methods of the container to access other application components and services provided by the server. The Sun Java™ System Application Server Platform Edition 8 provides an application client container, an applet container, a Web container, and an EJB container. For a diagram that shows the containers, see the section Application Server Architecture.

The Web Container

The Web Container is a J2EE container that hosts web applications. The web container extends the web server functionality by providing developers the environment to run servlets and Java Server Pages (JSPs).

The EJB Container

Enterprise beans (EJB components) are Java programming language server components that contain business logic. The EJB container provides local and remote access to enterprise beans.

There are three types of enterprise beans: session beans, entity beans, and message-driven beans. Session beans represent transient objects and processes and typically are used by a single client. Entity beans represent persistent data, typically maintained in a database. Message-driven beans are used to pass messages asynchronously to application modules and services.

The container is responsible for creating the enterprise bean, binding the enterprise bean to the naming service so other application components can access the enterprise bean, ensuring only authorized clients have access to the enterprise bean’s methods, saving the bean’s state to persistent storage, caching the state of the bean, and activating or passivating the bean when necessary.


Admin Console Tasks for the J2EE Containers

Configuring the Web Container

In this release, there are no container-wide settings for the Web container in the Admin Console.

Configuring the General EJB Settings

This section describes the following settings, which apply to all enterprise bean containers on the server:

You can override the defaults on a per-container basis by adjusting the values in the enterprise bean’s sun-ejb-jar.xml file. For details, see the Sun Java™ System Application Server Platform Edition 8 Developer’s Guide. (For a link to the guide, see Further Information.)

Session Store Location

The Session Store Location field specifies the directory where passivated beans and persisted HTTP sessions are stored on the file system.

Passivated beans are enterprise beans that have had their state written to a file on the file system. Passivated beans typically have been idle for a certain period of time, and are not currently being accessed by clients.

Similar to passivated beans, persisted HTTP sessions are individual web sessions that have had their state written to a file on the file system.

Pool Settings

The container maintains a pool of enterprise beans in order to respond to client requests without the performance hit that results from creating the beans. These settings only apply to stateless session beans and entity beans.

If you experience performance problems in an application that uses deployed enterprise beans, creating a pool, or increasing the number of beans maintained by an existing pool, can help increase the application’s performance.

By default, the container maintains a pool of enterprise beans.

To adjust the configuration of the container’s pool of enterprise beans:

  1. In the tree component expand the J2EE Containers node.
  2. Expand the EJB Container node.
  3. Under Pool Settings in the Initial and Minimum Pool Size field enter the minimum number of beans the container will create in the pool.
  4. In the Maximum Pool Size field enter the maximum number of beans the container will maintain in the pool at any time.
  5. In the Pool Resize Quantity field enter the number of beans that will be removed from the pool if they are idle for more than the time specified in Pool Idle Timeout.
  6. In the Pool Idle Timeout field enter the time, in seconds, that a bean in the pool can remain idle before it will be removed from the pool.
  7. Restart the Application Server.

Cache Settings

The container maintains a cache of enterprise bean data for the most used enterprise beans. This allows the container to respond more quickly to requests from other application modules for data from the enterprise beans. This section applies only to stateful session beans and entity beans.

Cached enterprise beans are in one of three states: active, idle, or passivated. An active enterprise bean is currently being accessed by clients. An idle enterprise bean’s data is currently in the cache, but no clients are accessing the bean. A passivated bean’s data is temporarily stored, and read back into the cache if a client requests the bean.

To adjust the settings for cached enterprise beans:

  1. In the tree component expand the J2EE Containers node.
  2. Expand the EJB Container node.
  3. Adjust the maximum cache size in the Max Cache Size field.
  4. Increase the maximum number of beans to cache to eliminate the overhead of bean creation and destruction. However, if you increase the cache, the server will consume more memory and resources. Be sure your operating environment is sufficient for your cache settings.

  5. Adjust the cache resize quantity in the Cache Resize Quantity field.
  6. When the maximum number of cached beans is reached, the container will remove a number of passivated beans from the backup store, set to 32 by default.

  7. Adjust the rate, in seconds, at which the cache cleanup is scheduled for entity beans in the Cache Idle Timeout field.
  8. If a cached entity bean has been idle a certain amount of time, it will be passivated. That is, the bean’s state will be written to a backup store.

  9. Adjust the time, in seconds, after which stateful session beans will be removed from the cache or passivated store in the Removal Timeout field.
  10. Configure the policy the container uses to remove stateful session beans in the Removal Selection Policy field.
  11. The container decides which stateful session beans to remove based on the policy set in the Removal Selection Policy field. There are three possible policies the container uses to remove beans from the cache:

    • Not recently used (NRU)
    • First in, first out (FIFO)
    • Least recently used (LRU)
    • The NRU policy removes a bean that hasn’t been used recently. The FIFO policy removes the oldest bean in the cache. The LRU policy removes the least recently accessed bean. By default, the NRU policy is used by the container.

      Entity beans are always removed using the FIFO policy.

  12. Restart the Application Server.

Configuring the Message-Driven Bean Settings

The pool for message-driven beans is similar to the pool for session beans described in Configuring the General EJB Settings.

By default, the container maintains a pool of message beans.

To adjust the configuration of this pool:

  1. In the tree component expand the J2EE Containers node.
  2. Expand the EJB Container node.
  3. Click the MDB Settings tab.
  4. Under Pool Settings in the Initial and Minimum Pool Size field enter the minimum number of message beans the container will create in the pool.
  5. In the Maximum Pool Size field enter the maximum number of beans the container will maintain in the pool at any time.
  6. In the Pool Resize Quantity field enter the number of beans that will be removed from the pool if they are idle for more than the time specified in Pool Idle Timeout.
  7. In the Pool Idle Timeout field enter the time, in seconds, that a bean in the pool can remain idle before it will be removed from the pool.
  8. Restart the Application Server.

Configuring the EJB Timer Service Settings

The timer service is a persistent and transactional notification service provided by the enterprise bean container used to schedule notifications or events used by enterprise beans. All enterprise beans except stateful session beans can receive notifications from the timer service. Timers set by the service are not destroyed when the server is shut down or restarted.

Configuring the Timer Service

  1. In the tree component expand the J2EE Containers node.
  2. Expand the EJB Container node.
  3. Click the EJB Timer Service tab.
  4. Set the minimum delivery interval in milliseconds in the Minimum Delivery Interval field. Minimum Delivery Interval is the minimum number of milliseconds allowed before the next timer expiration for a particular timer can occur. Setting this interval too low can cause the server to be overloaded.
  5. Set the maximum number of attempts the timer service will make to deliver the notification in the Maximum Redeliveries field.
  6. Set the interval, in milliseconds, between redelivery attempts in the Redelivery Interval field.
  7. Restart the Application Server.

Using an External Database with the Timer Service

The timer service by default uses an embedded database to store timers.

To use an external database to store timers:

  1. Set up a JDBC resource for the database, as described in Creating a JDBC Resource.
  2. Enter the JNDI name of the resource in the Timer Datasource field.
  3. Restart the Application Server.

Sample timer database creation files are provided for PointBase or Oracle at <INSTALL_DIR>/lib/install/databases/.



Previous      Contents      Next     


Copyright 2004 Sun Microsystems, Inc. All rights reserved.