Network Deployment (Distributed operating systems), v8.0 > Tune performance > Tune EJB applications > Tune applications that use the Java Persistence API


Pre-loading the WSJPA ObjectCache automatically

The WebSphere Java Persistence API (WSJPA) extension to OpenJPA provides a read-only ObjectCache that can improve performance in certain use cases. By default, the data in the cache is loaded in a lazy method, which means that individual entities are loaded into memory when they are requested by an application. If you want to load all the entities from the beginning, though, you can configure the application server to preload all of the entities from the database that are configured in the ObjectCache. Pre-loading the ObjectCache will allow you to cache entities that would otherwise be restricted when if you load the ObjectCache through the lazy method. When you enable automatic loading of the ObjectCache, the JPA environment will automatically size and preload the ObjectCache instead of waiting on single entities to be requested by applications. When the application server creates the first EntityManager, the pre-loading process will start, and the application server will preload all entities from the database that are configured in the ObjectCache. This pre-loading process will happen asynchronously in a separate processing thread. Be aware of the following information:

When the pre-loading process is complete, you will see an informational message similar to this:

Successfully loaded the ObjectCache with [...] Entities in [...] seconds.


Procedure

  1. Set the MaxSize property to auto for the ObjectCache. For example, include the following entry in your .properties file:
    <property name="wsjpa.ObjectCache" value=”true(Types=com.ibm.wsjpa.Foo; com.ibm.wsjpa.Bar, MaxSize=auto)”/> 
    The default value for the MaxSize property is 1000, but when you set the MaxSize property to auto the pre-loading mechanism will be enabled.

  2. Optional: Review the value you set for the EvictionSchedule property, which is explained in the Configure the WSJPA ObjectCache to improve performance topic. When you use the EvictionSchedule property in conjunction with the MaxSize=auto setting, the EvictionSchedule property is implemented differently from the default behavior: instead of clearing the ObjectCache on the configured schedule, the ObjectCache will be automatically reloaded.


Example

The following examples show how to configure the ObjectCache to be loaded automatically:


Configure the WSJPA ObjectCache to improve performance
Task overview: Storing and retrieving persistent data with the JPA API
Develop JPA 2.x applications for a Java SE environment
Develop JPA 2.x applications for a Java EE environment
Apache OpenJPA User Guide

+

Search Tips   |   Advanced Search