Sun GlassFish Enterprise Server v2.1.1 Performance Tuning Guide

Request Partitioning

Request partitioning enables you to assign a request priority to an EJB component. This gives you the flexibility to make certain EJB components execute with higher priorities than others.

An EJB component which has a request priority assigned to it will have its requests (services) executed within an assigned threadpool. By assigning a threadpool to its execution, the EJB component can execute independently of other pending requests. In short, request partitioning enables you to meet service-level agreements that have differing levels of priority assigned to different services.

Request partitioning applies only to remote EJB components (those that implement a remote interface). Local EJB components are executed in their calling thread (for example, when a servlet calls a local bean, the local bean invocation occurs on the servlet’s thread).

ProcedureTo enable request partitioning

  1. Configure additional threadpools for EJB execution using the Admin Console.

  2. Add the additional threadpool IDs to the Application Server’s ORB.

    You can do this by editing the domain.xml file or through the Admin Console.

    For example, enable threadpools named priority-1 and priority-2 to the <orb> element as follows:

    <orb max-connections="1024" message-fragment-size="1024"
  3. Include the threadpool ID in the use-thread-pool-id element of the EJB component’s sun-ejb-jar.xml deployment descriptor.

    For example, the following sun-ejb-jar.xml deployment descriptor for an EJB component named “TheGreeter” is assigned to a thread pool named priority-2:

  4. Restart the Application Server.