8. インメモリデータグリット連携部品

ここでは、インメモリデータグリット連携部品としてWebOTX JPAプロバイダが提供している拡張APIクラスについて説明します。

8.1. データグリッドに関する操作API

それぞれのAPIクラスの詳細については、Javadocを参照してください。

8.1.1. CacheUtil クラス

WebOTX JPAでL2キャッシュに使用しているデータグリッドキャッシュに対し、リスナの登録と削除を行うユーティリティクラスです。

(例)
 private CacheEventListener listener = new MyListener();
 
 public void addListener() {
   EntityManagerFactory factory = Persistence.createEntityManagerFactory("PersistenceUnitName");
   EntityManager manager = factory.createEntityManager();
   CacheUtil.addCacheEventListener(manager, MyEntity.class, listener);
 }
 
 public void removeListener() {
   EntityManagerFactory factory = Persistence.createEntityManagerFactory("PersistenceUnitName");
   EntityManager manager = factory.createEntityManager();
   CacheUtil.removeCacheEventListener(manager, MyEntity.class, listener);
 }

8.1.2. CacheEventListener インタフェース

データグリッドのイベント発生時に実行される処理に関する操作等を行うイベントリスナです。
データグリッドキャッシュのイベント通知が必要な場合にこのインタフェースの実装を作成し、CacheUtilを使用してリスナの登録を行うことで、イベントの通知が受け取れます。

(例)
 public class MyListener implements CacheEventListener {

   public void onEntryInserted(CacheEvent event) {
     System.out.println("InsertedData : " + event.getNewValue());
   }
   
   public void onEntryUpdated(CacheEvent event) {
     if (event.getKey().equlas("xxxx")) {
       System.out.println("UpdatedData : " + event.getNewValue());
     }
   }
   
   public void onEntryDeleted(CacheEvent event) {
     System.out.println("DeletedData : " + event.getoldValue());
   }
 }
 

8.1.3. CacheEvent インタフェース

データグリッドキャッシュのイベント通知で渡されるイベントオブジェクトのインタフェースです。
このクラスからデータグリッド操作前後のデータ等を取得できます。