[Java programming language only]

Example: Hibernate ObjectGrid XML files

Create Hibernate ObjectGrid XML files based on the configuration of a persistence unit.

persistence.xml file

<persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0">   
<persistence-unit name="AnnuityGrid">     
<provider>org.hibernate.ejb.HibernatePersistence</provider>      

<class>com.ibm.wssvt.acme.annuity.common.bean.jpa.AnnuityPersistebleObject</class>
<class>com.ibm.wssvt.acme.annuity.common.bean.jpa.Annuity</class>
<class>com.ibm.wssvt.acme.annuity.common.bean.jpa.FixedAnnuity</class>
<class>com.ibm.wssvt.acme.annuity.common.bean.jpa.EquityAnnuity</class>     
<class>com.ibm.wssvt.acme.annuity.common.bean.jpa.Payout</class>     
<class>com.ibm.wssvt.acme.annuity.common.bean.jpa.Rider</class>     
<class>com.ibm.wssvt.acme.annuity.common.bean.jpa.Payor</class>     
<class>com.ibm.wssvt.acme.annuity.common.bean.jpa.Person</class>     
<class>com.ibm.wssvt.acme.annuity.common.bean.jpa.AnnuityHolder</class>     
<class>com.ibm.wssvt.acme.annuity.common.bean.jpa.Contact</class>     
<class>com.ibm.wssvt.acme.annuity.common.bean.jpa.Address</class>      

<exclude-unlisted-classes>true</exclude-unlisted-classes>      

<properties>       
<property name="hibernate.show_sql" value="false" />       
<property name="hibernate.connection.url" value="jdbc:db2:Annuity" />       
<property name="hibernate.connection.driver_class" value="com.ibm.db2.jcc.DB2Driver" />       
<property name="hibernate.default_schema" value="EJB30" />        

<!-- Cache -->

<property name="hibernate.cache.region.factory_class" value="com.ibm.websphere.objectgrid.hibernate.cache.WXSRegionFactory"/>       
<property name="hibernate.cache.use_query_cache" value="true" /> 	  
<property name="wxs.objectgrid_name" value="Annuity" />       
<property name="wxs.objectgrid_type" value="EMBEDDED" /> 	  
<property name="wxs.max_number_of_replicas" value="4" />     
</properties>   

</persistence-unit>  

</persistence>

hibernate-objectGridDeployment.xml file

?xml version="1.0" encoding="UTF-8" ?>
<deploymentPolicy xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://ibm.com/ws/objectgrid/deploymentPolicy ../deploymentPolicy.xsd"
  xmlns="http://ibm.com/ws/objectgrid/deploymentPolicy">
  <objectgridDeployment objectgridName="Annuity">
    <mapSet name="MAPSET_Annuity" numberOfPartitions="1" numInitialContainers="1" minSyncReplicas="0"
           maxSyncReplicas="4" maxAsyncReplicas="0" replicaReadEnabled="true">
      <map ref="IBM_HIBERNATE_GENERAL_.*" />
      <map ref="IBM_HIBERNATE_TIMESTAMPS_.*" />
    </mapSet>
  </objectgridDeployment>
</deploymentPolicy>

hibernate-objectGrid.xml file

<?xml version="1.0" encoding="UTF-8"?>
<objectGridConfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://ibm.com/ws/objectgrid/config ../objectGrid.xsd" 
  xmlns="http://ibm.com/ws/objectgrid/config">
  <objectGrids>
    <objectGrid name="Annuity">
      <backingMap name="IBM_HIBERNATE_TIMESTAMPS_.*" readOnly="false" copyKey="false" 
                  lockStrategy="NONE" copyMode="NO_COPY"
                  pluginCollectionRef="IBM_HIBERNATE_TIMESTAMPS_.*"
                  template="true" />
      <backingMap name="IBM_HIBERNATE_GENERAL_.*" readOnly="false" copyKey="false" 
                  lockStrategy="NONE" copyMode="NO_COPY" evictionTriggers="MEMORY_USAGE_THRESHOLD"
                  pluginCollectionRef="IBM_HIBERNATE_GENERAL_.*"
                  template="true" />
    </objectGrid>
  </objectGrids>
  <backingMapPluginCollections>
    <backingMapPluginCollection id="IBM_HIBERNATE_TIMESTAMPS_.*">
    </backingMapPluginCollection>
    <backingMapPluginCollection id="IBM_HIBERNATE_GENERAL_.*">
      <bean id="Evictor" className="com.ibm.websphere.objectgrid.plugins.builtins.LRUEvictor" >
      </bean>
    </backingMapPluginCollection>
  </backingMapPluginCollections>
</objectGridConfig>
Note: The IBM_HIBERNATE_GENERAL_.* and IBM_HIBERNATE_TIMESTAMPS_.* maps are required.