+

Search Tips   |   Advanced Search

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. To load all the entities from the beginning, though, we can configure the application server to preload all of the entities from the database 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 configured in the ObjectCache. This pre-loading process will happen asynchronously in a separate processing thread.

Avoid trouble: Be aware of the following information:

gotcha

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

  1. Set the MaxSize property to auto for the ObjectCache. For example, include the following entry in the .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 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 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:


Related tasks

  • Configure WSJPA ObjectCache to improve performance
  • Develop JPA 2.x applications for a Java SE environment
  • Develop JPA 2.x applications for a Java EE environment


    Related information:

    Apache OpenJPA User Guide