Network Deployment (Distributed operating systems), v8.0 > Develop and deploying applications > Develop EJB applications > Assembling applications that use the Java Persistence API


Use JPA access intent

Java Persistence API (JPA) access intent specifies the isolation level and lock level used when reading data from a data source. Access intent controls the JDBC isolation level and whether read, update, or exclusive locks are acquired when retrieving data. For a JPA persistence provider on the application server, the application can specify isolation and ReadLockMode based on a TaskName. The TaskName provides a better control over applying these characteristics. The application defines a set of entity types and corresponding access intent for each TaskName defined in a persistence unit.

Restriction:

Access intent Properties and Descriptions. The following table compares the EJB 2.x entity bean access intent with the JPA access intent properties:

WebSphere EJB 2.x entity bean access intent JPA access intent Description
optimistic isolation: Read Committed Data is read but no lock is held. Version ID is used on update to ensure data integrity. Other transactions can read and update data.
lockManager: Optimistic
query Hint: ReadLockMode: READ
pessimistic read isolation: Repeatable Read Data is read with shared locks. Other transactions attempting to update data are blocked.
lockManager: Optimistic
query Hint: ReadLockMode: READ
pessimistic update isolation: Repeatable Read Data is retrieved with update or exclusive lock. Other writes are blocked until commit. This access intent can be used to serialize update access to data when there are multiple writers.
lockManager: Pessimistic
query Hint: ReadLockMode: WRITE
pessimistic exclusive isolation: Serializable Data is retrieved with update or exclusive lock. Other writes are blocked until commit. This access intent can be used to serialize update access to data when there are multiple writers.
lockManager: Pessimistic
query Hint: ReadLockMode:WRITE

A TaskName is set on a transaction context by one of the following:

Use task names supports the specification of access intent on a request scope rather than specifying it in the persistence.xml file, which has an application scope across all entities. Often a query is contained in a method or component which is used in many different transaction contexts. Some of these contexts might require repeatable-read and update lock intent but other contexts do not.

Isolation level and read locks can be specified on:


Procedure

  1. Set a TaskName using TaskNameAccessor API This task explains how to use the TaskNameAccessor API to set JPA TaskName at run time.
  2. Specify TaskName in a JPA persistence unit This task explains how to specify a TaskName in JPA persistence unit .


What to do next

For more information about Access intent, see the topic, Access intent service.


Related


Set a TaskName using TaskNameAccessor API
Specify TaskName in a JPA persistence unit
Access intent service
Task overview: Storing and retrieving persistent data with the JPA API
Troubleshoot JPA applications

+

Search Tips   |   Advanced Search