ノート:
この章のサンプルは、基本的なものであり、一般的な概念を説明することのみを目的としています。詳細な例は、インストールに同梱されている例を参照してください。例は、Coherenceのサプリメンタル・インストールの一部としても配布されています。Oracle CoherenceのインストールのCoherenceの例の実行を参照してください。
この章の内容は次のとおりです。
親トピック: はじめに
hello-exampleにマップされた基本的な分散キャッシュを定義しています。キャッシュのサンプルを定義するには:
親トピック: 最初のCoherenceアプリケーションの作成
サンプルのクラスタでは、オペレーション・オーバーライド・ファイルを使用して初期状態のデフォルト・クラスタ構成を修正します。具体的には、デフォルト構成を修正してプライベート・クラスタを作成し、ネットワーク上で実行されている可能性のある既存のCoherenceクラスタに2つのプロセスが参加しないようにします。また、デフォルト構成を修正して、デフォルトのキャッシュ構成ファイルのかわりにexample-config.xmlがロードされるようにします。
サンプルのクラスタを構成して起動するには:
親トピック: 最初のCoherenceアプリケーションの作成
k1と値Hello World!をhello-exampleキャッシュに入れます。キー値の取得と出力が済むとアプリケーションが終了します。最後に、追加のクラスタ・ノードが起動され、キーがキャッシュ内にあることが確認されます。この項には次のトピックが含まれます:
アプリケーションは、Coherence APIを使用してキャッシュにアクセスし、キャッシュとの相互作用を図ります。CoherenceSessionクラスは、デフォルトのセッション・プロバイダを使用してSessionインスタンスを作成し、getCacheメソッドを使用してNamedCacheインスタンスへの参照を取得します。このNamedCacheインスタンスを使用して、キャッシュ内のオブジェクトを取得および格納します。Hello Worldアプリケーションは非常に基本的なものですが、SessionおよびNamedCache APIを使用するデモとなっています。
例2-1 サンプルのHelloWorldスタンドアロン・アプリケーション
package com.examples;
import com.tangosol.net.CoherenceSession;
import com.tangosol.net.NamedCache;
import com.tangosol.net.Session;
public class HelloWorld {
public static void main(String[] args) throws Exception {
String key = "k1";
String value = "Hello World!";
Session session = new CoherenceSession();
NamedCache<Object, Object> cache = session.getCache("hello-example");
cache.put(key, value);
System.out.println(cache.get(key));
session.close();
}
}
この例のキャッシュ・サーバーは、デフォルトでキャッシュのデータを格納するように構成されます。データは、クラスタのすべてのメンバーが使用可能であり、それらのメンバーがクラスタから離脱した後も保持されます。たとえば、Hello Worldアプリケーションは、キャッシュにキーをロードし、そのキーを表示してから終了します。ただし、キャッシュとキーは、その後もすべてのクラスタ・メンバーが使用できます。
このステップでは、接続ファクトリ・コマンド行ツールを使用して、hello-exampleキャッシュに接続し、キャッシュ内のすべての項目を一覧表示します。ここでは、Coherenceのキャッシュが永続性と分散性の両方の性質を持っていることを示します。
キャッシュを確認するには:
k2と値Hello World!がhello-exampleキャッシュに入れられ、キーの値が取得および出力されてからアプリケーションが終了します。最後に、追加のクラスタ・ノードが起動され、キーがキャッシュ内にあることが確認されます。ノート:
WebLogic Serverには、Coherenceアプリケーションのパッケージ化およびデプロイを標準化するCoherence統合が用意されています。Oracle Coherenceの管理のCoherenceアプリケーションのWebLogic Serverへのデプロイを参照してください。この項の手順は、WebLogic Server固有のもの(WebLogic Serverに推奨される手順)ではありません。
この項には次のトピックが含まれます:
この例のキャッシュ・サーバーは、デフォルトでキャッシュのデータを格納するように構成されます。データは、クラスタのすべてのメンバーが使用可能であり、それらのメンバーがクラスタから離脱した後も保持されます。たとえば、Hello Worldアプリケーションは、キャッシュにキーをロードし、そのキーを表示してから終了します。ただし、キャッシュとキーは、その後もすべてのクラスタ・メンバーが使用できます。
このステップでは、接続ファクトリ・コマンド行ツールを使用して、hello-exampleキャッシュに接続し、キャッシュ内のすべての項目を一覧表示します。ここでは、Coherenceのキャッシュが永続性と分散性の両方の性質を持っていることを示します。
キャッシュを確認するには:
この項には次のトピックが含まれます:
親トピック: 最初のCoherenceアプリケーションの作成
JDeveloperを使用してキャッシュ・サーバー(DefaultCacheServer)およびキャッシュ・インスタンス(CacheFactory)を実行できます。各インスタンスはそれぞれ別のJavaプロセスとして起動され、標準出力をプロセス・ログに記録します。キャッシュ・コマンドなどの入力は、コマンド行から起動された場合と同様にプロセスに直接入力できます。この構成では、Coherenceソリューションの開発とテストが可能です。
JDeveloperでCoherenceを実行するには:
親トピック: Coherence開発用のJDeveloperの使用方法
Javaでは、スレッドとスレッドによって保持されているすべてのロックのリストを標準出力にダンプできます。これは、Linux環境ではkillコマンド、Windows環境では[Ctrl]+[Break]で実行できます。スレッド・ダンプは、デッドロックの検出など、開発段階でのトラブルシューティングに役立ちます。
JDeveloperでCoherenceソリューションを開発する場合は、プロセスのログ・タブにスレッド・ダンプを直接表示できます。そのためには、JDeveloperで実行されているJavaプロセスに前述の信号を送信します。
JDeveloperでスレッド・ダンプを表示するには:
親トピック: Coherence開発用のJDeveloperの使用方法
JDeveloperを使用してCoherenceの構成ファイルを作成できます。JDeveloperによって適切なXSDファイルがロードされ、「コンポーネント・パレット」内に要素がすべてリストされます。さらに、JDeveloperは、構成ファイルをXSDと照合して検証し、XMLコードを完了させます。次の手順によって、キャッシュ構成ファイルとオペレーション・オーバーライド・ファイルが作成されます。同一の手順を、任意のCoherence構成ファイルに対して使用できます。
JDeveloperでキャッシュ構成ファイルとオペレーション・オーバーライド・ファイルを作成するには:
親トピック: Coherence開発用のJDeveloperの使用方法