ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Coherenceチュートリアル
12c (12.1.3)
E56204-01
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
次
 

12 JCacheの操作

この演習では、Javaプラットフォームのキャッシング用Java標準APIであるJCacheの使用方法を学びます。この演習は、Coherenceクラスタ化キャッシュの単純なタイプの情報にアクセスし、更新および削除を行うJavaコンソール・ベースのアプリケーションを作成した第3章「Javaからデータ・グリッドへのアクセス」に類似しています。ただし、NamedCacheおよびCoherence APIを使用するかわりに、CacheおよびJCache APIを使用します。

この章の内容は、次のとおりです。

12.1 概要

Coherenceには、JCacheプロバイダの実装が含まれています。JCacheは、Javaでキャッシュを使用する共通APIです。JCache APIによって、Coherenceを使用して基礎となるキャッシング機能を提供することができます。プロバイダ・ベースのアプローチを使用することによって、プロバイダ間の移植性が保証され、開発者は複雑なキャッシュ・サブシステムの作成および管理ではなく、アプリケーション・ロジックに集中できるようになります。

Coherence JCacheプロバイダは、既存のCoherenceの機能の上に構築されています。Coherenceのインフラストラクチャに依存しているこのプロバイダは、Coherence NamedCache APIのラッパーと考えることができます。これによって、CoherenceはJCacheインタフェースを使用して多くの優れたテクノロジの再利用および公開ができるようになります。

JCacheをサポートするキー・ファイルは、cache-api.jarおよびcoherence-jcache.jarです。cache-api.jarファイルには、JCacheライブラリが含まれています。coherence-jcache.jarファイルには、JCacheライブラリの上に構築されているCoherence実装が含まれています。アプリケーションのクラスパスには、これらのファイルの両方を含める必要があります。

coherence-jcache.jarファイル内のAPIによって、JCacheは分散、ローカル、パススルーおよびリモート・キャッシュをサポートできるようになります。また、POFシリアライズ、イベントおよびエントリ・プロセッサの使用もサポートします。

JCacheプロバイダ実装の詳細は、『Oracle Fusion Middleware Oracle Coherenceでのアプリケーションの開発』のCoherence JCacheの概要に関する項を参照してください。

Oracleは、JCacheの仕様の主要な貢献者です。JCacheの仕様(JSR-107「Java Caching API」)を入手するには、次のURLを参照してください。

https://jcp.org/en/jsr/detail?id=107

12.2 JCacheベースのJavaプロジェクトの作成

次の手順に従って、JCacheを使用するプロジェクトを作成します。

  1. Eclipse IDEで、「File」「New」「Application Client Project」を選択し、JCacheという名前の新しいプロジェクトを作成します。「Configuration」ドロップダウン・リストから「CoherenceConfig」を選択します。「Next」をクリックします。

  2. 「Next」をクリックし、ウィザードの「Java」ページのデフォルトを受け入れます。「Application Client module」ページで、「Create a default Main class」の選択を解除します。「Next」をクリックします。

  3. 「Coherence」ページの「Manage Libraries」アイコンをクリックし、JCacheおよびCoherence JCacheライブラリを含めるためのユーザー・ライブラリを作成します。

  4. 「User Libraries」ダイアログ・ボックスで「New」をクリックし、ユーザー・ライブラリに名前を付けます。図12-1に示されているように、「New User Library」ダイアログ・ボックスで「CoherenceJCache」と入力し、「System Library」チェックボックスを選択します。「OK」をクリックします。

    図12-1 CoherenceJCacheユーザー・ライブラリの作成

    図12-1の説明が続きます
    「図12-1 CoherenceJCacheユーザー・ライブラリの作成」の説明

  5. 「User Libraries」ダイアログ・ボックスでCoherenceJCacheライブラリを選択し、「Add External JARs」をクリックします。

  6. Coherenceディストリビューションの/coherence/libフォルダの場所に移動し、cache-api.jarおよびcoherence-jcache.jarファイルを選択します。終了すると、「User Libraries」ダイアログ・ボックスは図12-2のようになります。「OK」をクリックします。

    図12-2 ユーザー・ライブラリへのCoherence JCache JARの追加

    図12-2の説明が続きます
    「図12-2 ユーザー・ライブラリへのCoherence JCache JARの追加」の説明

  7. 「Coherence」ページで「CoherenceJCache」ライブラリを選択します。「Coherence」ページは図12-3のようになります。「Finish」をクリックします。

    図12-3 JCacheプロジェクト向けのCoherence構成ページ

    図12-3の説明が続きます
    「図12-3 JCacheプロジェクト向けのCoherence構成ページ」の説明

12.3 キャッシュに値を挿入するJCacheベースのアプリケーションの作成

ここでは、Coherenceクラスタ化キャッシュの単純なタイプの情報にアクセスし、それらの情報を更新するJCache APIを使用したJavaプログラムの作成方法について説明します。

JCacheベースのアプリケーションを作成するには:

  1. Eclipseで新しいアプリケーション・クライアント・プロジェクトを作成します。プロジェクトにJCacheという名前を付けます。フォルダがC:\home\oracle\workspace\JCacheであることを確認してください。

    「New Application Client Project」ダイアログ・ボックスの「Configuration」セクションで、「Modify」をクリックします。「Project Facets」ダイアログ・ボックスで、「Configuration」ドロップダウン・リストから「CoherenceConfig」を選択します。

    詳細な手順は、「Eclipse IDEでの新規プロジェクトの作成」を参照してください。

  2. 最初のCoherence JCache Javaプログラムを作成します。「New Java Class」ダイアログ・ボックスで、クラスにMyFirstJCacheSampleという名前を付け、「public static void main(String[] args)」チェック・ボックスを選択します。

  3. Eclipseエディタで、Cacheオブジェクトの作成、キャッシュの値の入力および入力した値の検証を実行するコードを記述します。

    Coherenceとは異なり、JCacheではキャッシュを作成するためにより多くのコードを書く必要があることに注意してください。JCacheでは、キャッシュを作成する前に、まずキャッシュ・マネージャを取得して、キャッシュ構成パラメータを設定する必要があります。

    例12-1にサンプル・プログラムを示します。

    例12-1 JCacheキャッシュ・オブジェクトの作成: 値の挿入と検証

    package com.oracle.handson;
     
    import javax.cache.Cache;
    import javax.cache.CacheManager;
    import javax.cache.Caching;
    import javax.cache.configuration.MutableConfiguration;
    import javax.cache.spi.CachingProvider;
     
     
    public class MyFirstJCacheSample {
       public MyFirstJCacheSample() {
       }
       public static void main(String[] args) {
    
          // ensure we are in a cluster
          CacheFactory.ensureCluster();
          
           //get cache manager        
           CachingProvider cachingProvider = Caching.getCachingProvider();       CacheManager cacheManager = cachingProvider.getCacheManager();
            
           //set configuration for the cache 
           PassThroughCacheConfiguration<String, String> config = new PassThroughCacheConfiguration();
            config.setTypes(String.class, String.class);
            
            //create and use the cache
            cacheManager.createCache("myCache", config);
            Cache<String, String> cache = cacheManager.getCache("myCache",            String.class, String.class);
          
          // put key, value pair into the cache.
          cache.put("Name","Gene Smith");
          
          System.out.println("Value in cache is " + cache.get("Name"));
           
       }
    }
    
  4. 実行中のキャッシュ・サーバーがあれば停止します。詳細は、「キャッシュ・サーバーの停止」を参照してください。

  5. Eclipse IDEでプログラムを実行します。

    1. エディタでMyFirstJCacheSample.javaクラスを右クリックし、「Run As」「Run Configuration」を選択します。「Oracle Coherence」をダブルクリックして、Coherenceの構成を作成します。「Run Configuration」ダイアログ・ボックスの「Name」フィールドにMyFirstJCacheSampleと入力します。

    2. 「Main」タブで、「Project」フィールドにJCacheと入力し、「Main class」フィールドにcom.oracle.handson.MyFirstJCacheSampleと入力します。

    3. 「Coherence」タブで、「Cluster port」フィールドに一意の値(3155など)を入力して、Coherenceが自分のホストに制限されるようにします。「Local storage」「Enabled (cache server)」を選択します。

    4. 「Classpath」タブの「Bootstrap Entries」リストには、「Coherence12.1.3」ライブラリの前に「CoherenceJCache」ライブラリが表示されているはずです。「Apply」「Run」をクリックします。

      例12-2のようなメッセージが表示されます。

      例12-2 MyFirstJCacheSampleプログラムの出力

      2014-02-20 15:28:53.188/0.377 Oracle Oracle Coherence GE 12.1.3.0.0 <Info> (thread=main, member=n/a): Loaded operational configuration from "jar:file:/C:/OracleCoherence1/coherence/lib/coherence.jar!/tangosol-coherence.xml"
      2014-02-20 15:28:53.303/0.492 Oracle Oracle Coherence GE 12.1.3.0.0 <Info> (thread=main, member=n/a): Loaded operational overrides from "jar:file:/C:/OracleCoherence1/coherence/lib/coherence.jar!/tangosol-coherence-override-dev.xml"
      2014-02-20 15:28:53.383/0.572 Oracle Oracle Coherence GE 12.1.3.0.0 <Info> (thread=main, member=n/a): Loaded operational overrides from "file:/C:/home/oracle/workspace/JCache/build/classes/tangosol-coherence-override.xml"
      ... 
      2014-02-20 15:28:53.668/0.857 Oracle Coherence GE 12.1.3.0.0 <D5> <Info> (thread=main, member=n/a): Loaded cache configuration from "jar:file:/C:/OracleCoherence1/coherence/lib/coherence-jcache.jar!/coherence-jcache-cache-config.xml"
      2014-02-20 15:28:53.848/1.037 Oracle Coherence GE 12.1.3.0.0 <D5> <Info> (thread=main, member=n/a): Created cache factory com.tangosol.net.ExtensibleConfigurableCacheFactory
      2014-02-20 15:28:53.863/1.052 Oracle Coherence GE 12.1.3.0.0 <D5> <Info> (thread=main, member=n/a): Mapping general javax.cache.Configuration implementation to CoherenceBased JCacheConfiguration of com.tangosol.coherence.jcache.localcache.LocalCacheConfiguration
      Value in cache is Gene Smith
      

12.4 クラスタ内でのJCacheアプリケーションの実行

この項では、クラスタ環境でJCache APIを使用するアプリケーションを作成して実行する方法について説明します。

  1. サンプル・クラスタの構成

  2. パススルー・キャッシュへのオブジェクトの格納

  3. サンプル・キャッシュ・サーバーの起動

  4. アプリケーションの実行

  5. キャッシュの検証

12.4.1 サンプル・クラスタの構成

パーティション・キャッシュおよびパススルー・キャッシュは、Coherenceクラスタを使用してキャッシュ・データを分散させています。このタスクによってオペレーション・オーバーライド・ファイルが作成され、初期状態のデフォルト・クラスタ構成が修正されます。具体的には、デフォルト構成を修正してプライベート・クラスタを作成し、ネットワーク上で実行されている可能性のある既存のCoherenceクラスタにJVMのプロセスが参加しないようにします。

サンプル・クラスタを構成するには:

  1. tangosol-coherence-override.xmlファイルを編集します。「Project Navigator」でtangosol-coherence-override.xmlファイルをダブルクリックして、エディタ内で開きます。

  2. 次のオーバーライド構成を追加して、「cluster_name」および「port」をクラスタ内で一意の値に置換します。たとえば、クラスタ名にmyClusterを使用し、ポート番号に電話番号の最後の4桁を使用します。

    <?xml version='1.0'?>
     
    <coherence xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns="http://xmlns.oracle.com/coherence/coherence-operational-config"
       xsi:schemaLocation="http://xmlns.oracle.com/coherence/
       coherence-operational-config coherence-operational-config.xsd">
       <cluster-config>
          <member-identity>
             <cluster-name>cluster_name</cluster-name>
          </member-identity>
      
          <multicast-listener>
             <address>224.3.6.0</address>
             <port>port</port>
             <time-to-live>0</time-to-live>
          </multicast-listener>
       </cluster-config>
      
    </coherence>
    
  3. ファイルを保存して閉じます。

12.4.2パススルー・キャッシュへのオブジェクトの格納

パススルー・キャッシュは、既存のCoherenceキャッシュ(Coherenceキャッシュ構成ファイルで定義されるキャッシュ)に委任するキャッシュです。パススルー・キャッシュによってすべてのCoherenceネイティブの機能が使用できるようになり、キャッシュ構成の高度な制御が可能になります。パススルー・キャッシュの使用にはクライアント・コードにCoherence固有の変更が必要であるため、移植性が問題となるJCacheアプリケーションには向いていません。

このサンプルでは、キャッシュ・サーバー・プロセスとMyFirstJCacheSampleアプリケーション・プロセスの2つの個別のJavaプロセスによってクラスタが形成されます。簡素化を図るため、この2つのプロセスは単一のマシン上に置かれます。この2つのプロセスは1つのコンピュータ上に共存します。キャッシュ・サーバーは、デフォルトでキャッシュ・データを格納するように構成されます。MyFirstJCacheSampleアプリケーションによってクラスタ上のキャッシュが正常に作成およびロードされたかを検証するために、CoherenceのCacheFactoryが使用されます。

  1. サンプルJCacheアプリケーションの変更

  2. JCache用のサンプル・キャッシュの定義

12.4.2.1 サンプルJCacheアプリケーションの変更

PassThroughCacheConfigurationクラスは、JCacheインタフェースにCoherenceネイティブのキャッシュを提供する実装に固有の構成です。この構成は、標準のMutableConfigurationクラスのかわりに使用されます。

キャッシュをパススルー・キャッシュとして構成するには:

  1. 例12-1で作成したMyFirstJCacheSampleクラスを開きます。

  2. PassThroughCacheConfiguration構成を使用するようにクラスを変更します。次に例を示します。

    ...
    //set configuration for the cache        
    PassThroughCacheConfiguration<String, String> config = new PassThroughCacheConfiguration();
       config.setTypes(String.class, String.class);
            
    //create and use the cache
    cacheManager.createCache("myCache", config);
    Cache<String, String> cache = cacheManager.getCache("myCache",
         String.class, String.class);
    ...
    
  3. ファイルを保存します。

12.4.2.2 JCache用のサンプル・キャッシュの定義

この例では、myCacheという名前に明示的にマッピングされる分散キャッシュを定義するキャッシュ構成が作成されます。

Eclipse環境では、JCache APIを使用するアプリケーション用のキャッシュ構成はcoherence-jcache-cache-config.xmlファイルに格納する必要があります。

キャッシュのサンプルを定義するには:

  1. 任意のファイル圧縮ユーティリティ使用して、coherence-jcache.jarファイルからcoherence-jcache-cache-config.xmlファイルを抽出します。このファイルは、JCache\appClientModuleフォルダに抽出します。

  2. 「Project Explorer」でJCacheプロジェクトを右クリックし、「Refresh」を選択します。ファイルの一覧で、JCache\appClientModuleフォルダの中にcoherence-jcache-cache-config.xmlファイルが表示されます。

  3. coherence-jcache-cache-config.xmlファイルをダブルクリックして、エディタ内で開きます。

    このファイルには、XMLスキーマ・インスタンスおよびCoherenceキャッシュ構成用のネームスペースのみでなく、JCacheネームスペース用のネームスペース定義(太字で表示)も含まれています。

    <cache-config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xmlns="http://xmlns.oracle.com/coherence/coherence-cache-config"
             xmlns:jcache="class://com.tangosol.coherence.jcache.JCacheNamespace"
             xsi:schemaLocation="http://xmlns.oracle.com/coherence/coherence-cache-config coherence-cache-config.xsd">
    ...
    
  4. 次の分散キャッシュの定義をファイルにコピーします。

    <?xml version="1.0"?>
     
    <cache-config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns="http://xmlns.oracle.com/coherence/coherence-cache-config"
             xmlns:jcache="class://com.tangosol.coherence.jcache.JCacheNamespace"
           xsi:schemaLocation="http://xmlns.oracle.com/coherence/coherence-cache-config
           coherence-cache-config.xsd">
           <caching-scheme-mapping>
              <cache-mapping>
                 <cache-name>myCache</cache-name>
                 <scheme-name>distributed</scheme-name>
              </cache-mapping>
           </caching-scheme-mapping>
           
           <caching-schemes>
              <distributed-scheme>
                 <scheme-name>distributed</scheme-name>
                 <service-name>DistributedCache</service-name>
                 <backing-map-scheme>
                    <local-scheme/>
                 </backing-map-scheme>
                 <autostart>true</autostart>
              </distributed-scheme>
           </caching-schemes>
        </cache-config>
    
  5. ファイルを保存して閉じます。

12.4.3 サンプル・キャッシュ・サーバーの起動

Coherenceデフォルト・キャッシュ・サーバー用の実行構成を作成します。

  1. Eclipse IDEでJCacheプロジェクトを右クリックします。「Run As」「Run Configurations」を選択します。「Run Configurations」ダイアログ・ボックスで、「Oracle Coherence」「New launch configuration」アイコンを選択します。キャッシュ・サーバー構成の名前としてDefaultCacheServerを入力します。

  2. 「Project」「Browse」をクリックし、「Project Selection」ダイアログ・ボックスでJCacheプロジェクトの名前を選択します。

  3. 「Main class」で、「Include system libraries when searching for a main class」チェック・ボックスを選択します。「Search」ボタンをクリックし、「Select Main Type」ダイアログ・ボックスでDefaultCacheServerと入力します。「com.tangosol.net.DefaultCacheServer」を選択し、「OK」をクリックします。「Apply」をクリックします。

  4. 「Coherence」タブで「General」タブを選択します。「Browse」アイコンをクリックして、キャッシュ構成ファイルcoherence-jcache-cache-config.xmlに移動します。ローカル記憶域を「Enabled」(キャッシュ・サーバー)にするように選択します。「Cluster port」に一意の値(3155など)を入力します。「Apply」をクリックします。

  5. 「Arguments」タブを開きます。「VM Arguments」フィールドに-showversionと入力します。「Apply」をクリックします。

  6. ダイアログ・ボックスで「Classpath」タブを開きます。「Advanced」「Add Folders」をクリックし、クラスパスの「Bootstrap Entries」セクションにJCache\appClientModuleフォルダ(ここには、第12.4.1項「サンプル・クラスタの構成」で構成したtangosol-coherence-override.xmlオーバーライド・ファイルが含まれています)を追加します。「Up」および「Down」ボタンを使用して、appClientModeuleCoherenceJCacheおよびCoherenc12.1.3ライブラリの前に移動します。これは、コンパイラがcoherence.jarライブラリより先にtangosol-coherence-override.xmlオーバーライド・ファイルを見つける必要があるためです。「Classpath」タブは図12-4のようになります。

    図12-4 DefaultCacheServerのクラスパス

    図12-4の説明が続きます
    「図12-4 DefaultCacheServerのクラスパス」の説明

  7. ダイアログ・ボックスの「Common」タブを開きます。「Shared file」ラジオ・ボタンをクリックし、「Browse」をクリックしてプロジェクトに移動します。「Apply」をクリックします。

  8. 「Run」をクリックして、キャッシュ・サーバーを起動します。キャッシュ・サーバーが起動し、例12-3のような出力が表示されます。

    例12-3 DefaultCacheServerの出力

    java version "1.7.0_25"
    Java(TM) SE Runtime Environment (build 1.7.0_25-b17)
    Java HotSpot(TM) 64-Bit Server VM (build 23.25-b01, mixed mode)
    ... 
    2014-02-24 15:44:27.381/0.615 Oracle Oracle Coherence GE 12.1.3.0.0 <Info> (thread=main, member=n/a): Loaded operational overrides from "file:/C:/home/oracle/workspace/JCache/appClientModule/tangosol-coherence-override.xml"
    ...
    2014-02-24 15:44:27.710/0.944 Oracle Coherence GE 12.1.3.0.0 <Info> (thread=main, member=n/a): Loaded cache configuration from "file:/C:/home/oracle/workspace/JCache/appClientModule/coherence-jcache-cache-config.xml"
    ... 
    2014-02-24 15:44:34.557/7.791 Oracle Coherence GE 12.1.3.0.0 <D5> (thread=DistributedCache, member=1): Service DistributedCache joined the cluster with senior service member 1
    2014-02-24 15:44:34.598/7.832 Oracle Coherence GE 12.1.3.0.0 <Info> (thread=main, member=1): 
    Services
      (
      ClusterService{Name=Cluster, State=(SERVICE_STARTED, STATE_JOINED), Id=0, Version=12.1.3, OldestMemberId=1}
      InvocationService{Name=Management, State=(SERVICE_STARTED), Id=2, Version=12.1.3, OldestMemberId=1}
      PartitionedCache{Name=DistributedCache, State=(SERVICE_STARTED), LocalStorage=enabled, PartitionCount=257, BackupCount=1, AssignedPartitions=0, BackupPartitions=0, CoordinatorId=1}
      )
     
    Started DefaultCacheServer...
     ...
    

12.4.4 アプリケーションの実行

MyFirstJCacheSampleクラスの実行構成を作成するには:

  1. Eclipse IDEでJCacheプロジェクトを右クリックします。「Run As」「Run Configurations」を選択します。「Run Configurations」ダイアログ・ボックスで、「Oracle Coherence」「New launch configuration」アイコンを選択します。キャッシュ・サーバー構成の名前としてMyFirstJCacheSampleを入力します。「Project」フィールドにJCacheが、「Main class」フィールドにcom.oracle.handson.MyFirstJCacheSampleが表示されていることを確認します。「Apply」をクリックします。

  2. 「Coherence」タブで、「Cache configuration descriptor」フィールドのcoherence-jcache-cache-config.xmlJCacheキャッシュ構成ファイルへ移動します。「Local storage」フィールドで「Disabled (cache client)」を選択します。「Cluster port」フィールドに3155などの一意の値を入力します。


    注意:

    「Cluster port」の値は、tangosol-coherence-override.xmlファイルで<port>属性に指定した値と一致している必要があります。


  3. 「Arguments」タブの「VM arguments」フィールドに-Dtangosol.coherence.jcache.configuration.uriシステム・プロパティを入力し、JCacheキャッシュ構成ファイルcoherence-jcache-cache-config.xmlへのパスを指定します。次に例を示します。

    -Dtangosol.coherence.jcache.configuration.uri=C:\home\oracle\workspace\JCache\appClientModule\coherence-jcache-cache-config.xml 
    
  4. ダイアログ・ボックスで「Classpath」タブを開きます。「Advanced」「Add Folders」をクリックし、クラスパスの「Bootstrap Entries」セクションにJCache\appClientModuleフォルダ(ここには、第12.4.1項「サンプル・クラスタの構成」で構成したtangosol-coherence-override.xmlオーバーライド・ファイルが含まれています)を追加します。「Up」および「Down」ボタンを使用して、appClientModeuleCoherenceJCacheおよびCoherenc12.1.3ライブラリの前に移動します。これは、Coherenceコンパイラがcoherence.jarライブラリより先にtangosol-coherence-override.xmlオーバーライド・ファイルを見つける必要があるためです。「Classpath」タブは図12-4のようになります。

  5. ダイアログ・ボックスの「Common」タブを開きます。「Shared file」ラジオ・ボタンをクリックし、「Browse」をクリックしてJCacheプロジェクトに移動します。「Apply」をクリックします。

  6. 「Run」をクリックして、MyFirstJCacheSampleアプリケーションを起動します。

    tangosol-coherence-override.xmlおよびcoherence-jcache-cache-config.xmlファイルがappClientModuleフォルダからロードされたことに注意してください。アプリケーション・プロセスはキャッシュ・サーバー・プロセスを含むクラスタに接続し、両方のプロセスによってDistributedCacheサービスが実行されます。アプリケーションはGene Smithという値をキャッシュに配置し、それを標準出力に表示した後、クラスタから離脱します。

    例12-4 MyFirstJCacheSampleアプリケーションの出力

    ...
    2014-02-25 11:09:24.145/0.630 Oracle Oracle Coherence GE 12.1.3.0.0 <Info> (thread=main, member=n/a): Loaded operational overrides from "file:/C:/home/oracle/workspace/JCache/appClientModule/tangosol-coherence-override.xml"
    ... 
    2014-02-25 11:09:27.078/3.563 Oracle Coherence GE 12.1.3.0.0 <D5> (thread=Invocation:Management, member=2): Service Management joined the cluster with senior service member 1
    ...
    2014-02-25 11:09:27.833/4.323 Oracle Coherence GE 12.1.3.0.0 <Info> (thread=main, member=2): Loaded cache configuration from "file:/C:/home/oracle/workspace/JCache/appClientModule/coherence-jcache-cache-config.xml"
    2014-02-25 11:09:27.986/4.471 Oracle Coherence GE 12.1.3.0.0 <Info> (thread=main, member=2): Created cache factory com.tangosol.net.ExtensibleConfigurableCacheFactory
    2014-02-25 11:09:28.070/4.555 Oracle Coherence GE 12.1.3.0.0 <D5> (thread=DistributedCache, member=2): Service DistributedCache joined the cluster with senior service member 1
    Value in cache is Gene Smith
    

12.4.5 キャッシュの検証

この例のキャッシュ・サーバーは、デフォルトでキャッシュのデータを格納するように構成されます。データは、クラスタのすべてのメンバーが使用可能であり、それらのメンバーがクラスタから離脱した後も保持されます。たとえば、アプリケーションは、キャッシュにキーをロードし、そのキーを表示してから終了します。ただし、キャッシュとキーは、その後もすべてのクラスタ・メンバーが使用できます。

この手順を完了するには、まずアプリケーションをアーカイブ・ファイルに保存してから、それをクラスパス上に配置します。その後、キャッシュ・ファクトリ・コマンド行ツールを使用して、myCacheキャッシュに接続し、キャッシュ内のすべての項目を一覧表示します。

12.4.5.1 アプリケーション用JARファイルの作成

MyFirstJCacheSampleアプリケーション用のJARファイルを作成するには:

  1. Eclipseの「Project Explorer」で、JCacheプロジェクトの下の「build」フォルダを右クリックして、「Export」を選択します。

  2. 「Export」ウィザードの「Select」画面で、「General」ノードを開いて「Archive File」を選択します。「Next」をクリックします。

  3. 「Export」ウィザードの「Archive file」画面で、 「build」ノードを開いて「handson」ノードまで移動します。左側のペインで「handson」ノードを選択し、右側のペインでMyFirstJCacheSample.classファイルを選択します。図12-5に示されているように、「To archive file」フィールドにMyFirstJCacheSample.jarと入力します。

    図12-5 アーカイブ・ファイルの作成

    図12-5の説明が続きます
    「図12-5 アーカイブ・ファイルの作成」の説明

  4. 「Finish」をクリックして、JARファイルを作成します。

12.4.5.2 キャッシュ・ファクトリ・インスタンスを使用したキャッシュの内容の検証

キャッシュ・ファクトリ・インスタンスを起動し、キャッシュの内容を検証します。

キャッシュを確認するには:

  1. CacheFactoryコマンド行ツール用の実行構成を作成します。Eclipse IDEでJCacheプロジェクトを右クリックします。「Run As」「Run Configurations」を選択します。「Run Configurations」ダイアログ・ボックスで、「Oracle Coherence」「New launch configuration」アイコンを選択します。キャッシュ・サーバー構成の名前としてCacheFactoryを入力します。

  2. 「Project」「Browse」をクリックし、「Project Selection」ダイアログ・ボックスでJCacheプロジェクトの名前を選択します。

  3. 「Main class」で、「Include system libraries when searching for a main class」チェック・ボックスを選択します。「Search」ボタンをクリックし、「Select Main Type」ダイアログ・ボックスでCacheFactoryと入力します。「com.tangosol.net.CacheFactory」を選択して「OK」をクリックします。「Apply」をクリックします。

  4. 「Coherence」タブで、「Cache configuration descriptor」フィールドのcoherence-jcache-cache-config.xmlファイルへ移動します。「Local storage」フィールドで、「Disabled (cache client)」を選択します。「Cluster port」フィールドに3155などの一意の値を入力します。

  5. ダイアログ・ボックスで「Classpath」タブを開きます。「Advanced」「Add External Jars」をクリックし、クラスパスの「User Entries」セクションにMyFirstJCacheSample.jarファイルを追加します。「Up」および「Down」ボタンを使用して、MyFirstJCacheSample.jarファイルをJCacheプロジェクト・フォルダの前に移動します。「Classpath」タブは図12-6のようになります。

    図12-6 キャッシュ・ファクトリ・インスタンスのクラスパス

    図12-6の説明が続きます
    「図12-6 キャッシュ・ファクトリ・インスタンスのクラスパス」の説明

  6. ダイアログ・ボックスの「Common」タブを開きます。「Shared file」ラジオ・ボタンをクリックし、「Browse」をクリックしてJCacheプロジェクトに移動します。「Apply」をクリックします。

  7. 「Run」をクリックし、キャッシュ・ファクトリ・インスタンスを起動します。

キャッシュ・ファクトリ・インスタンスが起動し、クラスタのメンバーとなり、コマンド行ツールのコマンド・プロンプトを返します。コマンド行ツールのコマンド・プロンプトでcacheコマンドを使用して、myCacheキャッシュを取得します。次に例を示します。

cache myCache

コマンド行ツールのコマンド・プロンプトで、listコマンドを使用してキャッシュの内容を取得するには:

list

コマンドは次の文字列を返し、表示します。

Name = Gene Smith

例12-5に、キャッシュ・ファクトリ・インスタンスの出力を表示します。

例12-5 キャッシュ・ファクトリ・インスタンスの出力

...
2014-02-24 15:58:26.240/0.610 Oracle Oracle Coherence GE 12.1.3.0.0 <Info> (thread=main, member=n/a): Loaded operational overrides from "file:/C:/home/oracle/workspace/JCache/build/classes/tangosol-coherence-override.xml"
... 
2014-02-24 15:58:29.303/3.673 Oracle Coherence GE 12.1.3.0.0 <D5> (thread=Invocation:Management, member=7): Service Management joined the cluster with senior service member 1
... 
Map (?): cache myCache
2014-02-24 16:03:13.374/287.744 Oracle Coherence GE 12.1.3.0.0 <Info> (thread=main, member=7): Loaded cache configuration from "file:/C:/home/oracle/workspace/JCache/appClientModule/coherence-jcache-cache-config.xml"
... 
Map (myCache): list
Name = Gene Smith
 
Map (myCache):