2 最初のCoherenceアプリケーションの作成

ステップを追って、Coherenceの基本的な概念をいくつか示す基本的な例を作成および実行できます。

サンプル・アプリケーションは、簡単な"Hello, World!"アプリケーションであり、スタンドアロンのJavaアプリケーションとして実装されます。

使用するデプロイメント・タイプ、フレームワークまたは言語に応じて、「Coherenceでの様々なデプロイメント・モデル、フレームワークまたは言語の使用」を参照してください。

ノート:

この章の例は、基本的なものであり、一般的な概念を説明することのみを目的としています。より高度な例は、CoherenceのGitHubリポジトリにある例を参照してください。Oracle CoherenceのインストールCoherenceの例の実行を参照してください。

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

タスク1: Coherenceのインストール

Coherenceをまだインストールしていない場合は、インストールします。

Coherenceの商用エディションをインストールする場合は、Oracle CoherenceのインストールOracle Coherence for Javaのインストールに関する項を参照してください。

COHERENCE_HOMEをインストールのCoherenceディレクトリのフルパスに置き換えてください。

タスク2: サンプル・クラスタの構成と起動

キャッシュはCoherenceクラスタ上にホストされます。Coherenceを実行するJVMプロセスはすべて、実行時に自動的にクラスタに参加し、クラスタによって提供されるキャッシュおよびその他のサービスにアクセスできます。クラスタに参加したJVMは、クラスタ・ノードまたはクラスタ・メンバーと呼ばれます。

この章のサンプル・アプリケーションでは、キャッシュ・サーバー・プロセスと"Hello, World!"アプリケーション・プロセスの2つの個別のJavaプロセスによってクラスタが形成されます。簡素化を図るため、この2つのプロセスは単一のマシン上に置かれます。この2つのプロセスは1つのコンピュータ上に共存します。キャッシュ・サーバーは、デフォルトでキャッシュ・データを格納するように構成されます。

この例では、デフォルト構成を変更してプライベート・クラスタを作成し、ネットワーク上で実行されている可能性のある既存のCoherenceクラスタに2つのプロセスが参加しないようにします。この例では、ほとんどのアプリケーションで十分なデフォルトのキャッシュ構成を使用しています。

この例では、システム・プロパティを使用してデフォルトの構成を変更しますが、構成ファイルを使用して変更することもできます。具体的には、デフォルト構成を変更してプライベート・クラスタを作成し、ネットワーク上で実行されている可能性のある既存のCoherenceクラスタに2つのプロセスが参加しないようにします。ほとんどのアプリケーションでは、デフォルトのキャッシュ構成で十分です。

サンプルのクラスタを構成して起動するには:

ノート:

この例では、COHERENCE_HOMEをCoherenceインストール・ディレクトリに置き換えます。
  1. キャッシュ・サーバー・インスタンスを起動します。

    コマンド行ユーティリティを開き、次のように入力します:

    java -Dcoherence.wka=127.0.0.1 -jar COHERENCE_HOME/lib/coherence.jar

    java -Dcoherence.wka=127.0.0.1を設定すると、クラスタがlocalhostでのみ実行されるように指定されます。

    デフォルトでは、Coherenceによってクラスタ名が自動生成されます。クラスタの名前を自分で指定する場合は、サーバーおよびクライアントを含むすべてのコマンドに-Dcoherence.cluster=myClusterを追加します。

タスク3: 基本のCoherenceスタンドアロン・アプリケーションの作成と実行

タスク3は、サンプルのHello Worldアプリケーション、およびサンプルを実行して検証する手順を含む、マルチパートのステップです。アプリケーションはコマンド行から実行され、キャッシュ・サーバーと結合するクラスタ・ノードを起動します。そして、キーk1と値Hello World!hello-exampleキャッシュに入れます。キー値の取得と出力が済むとアプリケーションが終了します。最後に、追加のクラスタ・ノードが起動され、キーがキャッシュ内にあることが確認されます。

この項には次のトピックが含まれます:

サンプル・スタンドアロン・アプリケーションの作成

アプリケーションは、Coherence APIを使用してキャッシュにアクセスし、キャッシュとの相互作用を図ります。CoherenceSessionクラスは、デフォルトのセッション・プロバイダを使用してSessionインスタンスを作成し、getCacheメソッドを使用してNamedCacheインスタンスへの参照を取得します。このNamedCacheインスタンスを使用して、キャッシュ内のオブジェクトを取得および格納します。Hello Worldアプリケーションは非常に基本的なものですが、SessionおよびNamedCache APIを使用するデモとなっています。

例2-1 サンプルのHelloWorldスタンドアロン・アプリケーション

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<String, String> cache = session.getCache("hello-example");
        
      cache.put(key, value);
      System.out.println(cache.get(key));
      session.close();

   }
}

サンプル・スタンドアロン・アプリケーションの実行

サンプルのスタンドアロン・アプリケーションを実行するには:

  1. コマンド・プロンプトから"Hello, World!"アプリケーションをコンパイルします。たとえば:
    javac -cp COHERENCE_HOME/lib/coherence.jar com/examples/HelloWorld.java
    
  2. "Hello, World!"アプリケーションを実行します。Javaの-cpオプションを使用して、coherence.jarライブラリの場所と構成ファイルを指定します。また、coherence.distributed.localstorageプロパティをfalseに設定して、クライアントがパーティション化されたデータをローカルに保存しないように制限します。また、システム・プロパティを指定して、クライアントが正しいクラスタに参加するようにします。たとえば:
    java -cp .:COHERENCE_HOME\lib\coherence.jar -Dcoherence.distributed.localstorage=false -Dcoherence.wka=127.0.0.1 HelloWorld

    ノート:

    Windowsを使用している場合は、:セパレータを;に置き換えます

    "Hello, World!"アプリケーションが起動します。CoherenceSessionインスタンスが作成され、クラスタのメンバーになります。値Hello World!を持つキーk1hello-exampleキャッシュにロードされます。次に、このキーがキャッシュから取得され、その値が出力の一部に含まれます。最後に、セッションが閉じられ、クラスタを離れると、"Hello, World!"アプリケーションが終了します。

サンプル・キャッシュの確認

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

このステップでは、接続ファクトリ・コマンド行ツールを使用して、hello-exampleキャッシュに接続し、キャッシュ内のすべての項目を一覧表示します。ここでは、Coherenceのキャッシュが永続性と分散性の両方の性質を持っていることを示します。

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

  1. コマンド・プロンプトから、CacheFactoryクラスを使用してスタンドアロンのキャッシュ・ファクトリ・インスタンスを起動し、coherence.jarライブラリおよび構成ファイルの場所を、Java -cpオプションを使用して指定します。たとえば:
    java -cp COHERENCE_HOME/lib/coherence.jar -Dcoherence.wka=127.0.0.1  -Dcoherence.distributed.localstorage=false com.tangosol.net.CacheFactory

    キャッシュ・ファクトリ・インスタンスが起動し、クラスタのメンバーとなり、コマンド行ツールのコマンド・プロンプトを返します。

  2. コマンド行ツールのコマンド・プロンプトで、cacheコマンドを使用してhello-exampleキャッシュを取得します。
    cache hello-example
    
  3. コマンド行ツールのコマンド・プロンプトで、listコマンドを使用してキャッシュの内容を取得します。
    list
    

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

    k1 = Hello World!
    

Coherenceでの様々なデプロイメント・モデル、フレームワークまたは言語の使用

前述の"Hello, World!"サンプル・アプリケーションは、CoherenceとJavaを一緒に使用する方法の簡単なデモンストレーションです。

Coherenceは、他の共通フレームワーク、デプロイメント・タイプおよび言語とともに使用することもできます。

Coherence統合の一般情報は、Oracle Coherence - 統合を参照してください。

それ以外の場合は、次の項で統合の可能性を確認します。

Helidon

Project Helidonは、マイクロサービスを作成するためのJavaライブラリのセットです。Coherenceは、Helidonとの即時利用可能な統合を提供します。

Helidon MPおよびCoherenceの使用開始の詳細は、CoherenceコミュニティのWebサイトでクイック・スタートを参照してください。

Spring

Oracle Coherenceは、Javaベースのエンタープライズ・アプリケーションを構築および実行するためのプラットフォームであるSpringと統合できます。

SpringおよびCoherenceの使用開始の詳細は、GitHubのCoherence Spring統合プロジェクトを参照してください。

Micronaut

Oracle Coherenceは、軽量のモジュラ・アプリケーションおよびマイクロサービスを構築するためのオープン・ソース・フレームワークであるMicronautと統合できます。

MicronautおよびCoherenceの使用開始の詳細は、GitHubのMicronaut Coherenceプロジェクトを参照してください。

Kubernetes

Oracleを使用すると、Coherenceを使用する組織はクラスタをクラウドに移動できます。DockerやKubernetesなどの業界標準をサポートすることで、Oracleはクラウド・ニュートラル・インフラストラクチャでのCoherenceの実行を容易にします。

CoherenceおよびKubernetesの使用開始の詳細は、GitHubのCoherence Operatorリポジトリを参照してください。

WebLogic Server

WebLogic ServerでのCoherenceアプリケーションの開発およびデプロイの詳細は、Oracle WebLogic Server Oracle Coherenceアプリケーションの開発Coherenceアプリケーションの概要に関する項を参照してください。

.NET

Coherence .NETクライアントでは、.NETベースのアプリケーションがCoherence*Extendプロトコルを使用してキャッシュ・クライアントとして機能できます。

Coherence .NETクライアントの使用開始の詳細は、GitHubのOracle Coherence for .NET - Community Editionを参照してください。

C++

Coherence C++クライアントでは、C++アプリケーションがCoherence*Extendプロトコルを使用してキャッシュ・クライアントとして機能できます。

Coherence C++クライアントの使用開始の詳細は、GitHubのOracle Coherence for C++ Community Editionを参照してください。

JavaScript

Coherence JavaScriptクライアントは、gRPCをネットワーク・トランスポートとして使用し、NodeアプリケーションがCoherenceクラスタのキャッシュ・クライアントとして動作することを可能にします。

Coherence JavaScriptクライアントの使用開始の詳細は、GitHubのCoherence JavaScriptクライアントを参照してください。

Python

Coherence Pythonクライアントは、gRPCをネットワーク・トランスポートとして使用し、PythonアプリケーションがOracle Coherenceクラスタのキャッシュ・クライアントとして動作することを可能にします。

Coherence Pythonクライアントの使用開始の詳細は、GitHubのCoherence Pythonクライアントを参照してください。

Golang

Coherence Goクライアントは、gRPCをネットワーク・トランスポートとして使用し、GoアプリケーションがOracle Coherenceクラスタのキャッシュ・クライアントとして動作することを可能にします。

Coherence Goクライアントの使用開始の詳細は、GitHubのCoherence Goクライアントを参照してください。