+

Search Tips   |   Advanced Search

 

Read-ahead hints

 

Read-ahead schemes enable applications to minimize the number of database round trips by retrieving a working set of container-managed persistence (CMP) beans for the transaction within one query. Read-ahead involves activating the requested CMP beans and caching the data for their related beans, which ensures that data is present for the beans that an application most likely needs next. A read-ahead hint is a representation of the related beans to read. The hint is associated with the findByPrimaryKey method for the requested bean type, which must be an EJB 2.x-compliant CMP entity bean.

A read-ahead hint takes the form of a character string. You do not have to provide the string; the wizard generates it for you based on the container-managed relationships (CMRs) that are defined for the bean. The following example is provided as supplemental information only. Suppose a CMP bean type A has a finder method that returns instances of bean A. A read-ahead hint for this method is specified using the following notation: RelB.RelC; RelD Interpret the preceding notation as follows:

For each bean of type A that is retrieved from the database, its directly-related B and D beans and its indirectly-related C beans are also retrieved. The order of the retrieved bean data columns in each row of the result set is the same as the order in the read-ahead hint: an A bean, a B bean (or null), a C bean (or null), a D bean (or null). For hints in which the same relationship is mentioned more than once (for example, RelB.RelC;RelB.RelE), the data columns for a bean occur only once in the result set, at the position the bean first occupies in the hint.

The tokens shown in the notation (RelB and so on) must be CMR field names for the relationships, as defined in the deployment descriptor for the bean. In indirect relationships such as RelB.RelC, RelC is a CMR field name that is defined in the deployment descriptor for bean type B.

A single read-ahead hint cannot refer to the same bean type in more than one relationship. For example, if a Department bean has an employees relationship with the Employee bean and also has a manager relationship with the Employee bean, the read-ahead hint cannot specify both employees and manager.

For more information about how to set read-ahead hints, see the documentation for the Rational Application Developer product.

 

Run-time behaviors of read-ahead hints

When developing your read-ahead hints, consider the following tips and limitations:




 

Related concepts


Access intent policies
Concurrency control

 

Related tasks


Use access intent policies