ここでの指示とコマンドラインの例は、次のように、Java CoherenceのアーカイブとC++ Coherenceのアーカイブをファイル・システムに抽出済であると想定しています。
Java Coherenceのアーカイブは、ファイル・システムの最上位に抽出されています。たとえば、Windowsでの抽出先はC:\coherence
になります。
C++ Coherenceのアーカイブは、Java Coherenceのルート・ディレクトリに抽出されています。C++バージョンのルート・ディレクトリはcoherence-cpp
です。したがって、Windowsでは、ファイル・システム上の抽出先はC:\coherence\coherence-cpp
になります。
Coherence for C++のインストールの詳細は、「C++クライアント・ディストリビューションのインストール」を参照してください。
注意: Coherence C++には、Javaインストールに対するローカル依存性がありません。この項では、サンプル・アプリケーションを実行するコンピュータに、JavaバージョンとC++バージョンのCoherenceが両方ともインストールされていると想定していますが、Javaバージョンをインストールするかどうかはオプションです。Javaバージョンをインストールしていない場合は、リモート・コンピュータでキャッシュ・サーバーを実行している必要があります。また、Javaのconsoleサンプルは利用できません。 |
Coherence for C++では、インストールした製品のcoherence-cpp/examples
ディレクトリに、次のサンプル・アプリケーションが用意されています。
hellogrid
: 基本的なキャッシュ・アクセスの例
console
: 簡単なコマンドでキャッシュとの対話を可能にする、コマンドライン・アプリケーション
contacts
: 既存の(つまり、Coherenceではない)C++クラスをグリッド内に格納する方法の例
この章の内容は次のとおりです。
サンプルを実行するための要件は次のとおりです。
Coherence C++共有ライブラリ(インストール先のプラットフォーム固有のcoherence-cpp/lib
ディレクトリにあります)詳細は、「ランタイム・ライブラリと検索パスの設定」を参照してください。
Coherenceの拡張キャッシュ構成ファイル(coherence-cpp/examples/config
ディレクトリにあります)
実行されているCoherenceのプロキシ・サービスとキャッシュ・サーバー(Javaコンポーネント)詳細は、「クラスタ側の構成」を参照してください。
Coherence for C++アプリケーションは、プロキシ・サーバーを使用してCoherenceクラスタと通信します。クラスタに対してサンプルを実行するには、プロキシを起動しておく必要があります。
プロキシ・サービスとキャッシュ・サーバーを起動するサンプル・コマンドを次に示します。config
ディレクトリにあるextend-server-config.xml
など、サーバーのキャッシュ構成ファイルで、このプロキシを指定しておく必要があります。たとえば、Windowsでは次のコマンドを実行します。
例16-1 プロキシ・サービスとキャッシュ・サーバーを起動するサンプル・コマンド
c:\coherence\lib> java -Dtangosol.coherence.cacheconfig=c:\coherence\coherence-cpp\examples\config\extend-server-config.xml -cp coherence.jar "com.tangosol.net.DefaultCacheServer"
注意: contactsサンプルの場合は、examples/java/ContactCache ディレクトリにある別のPOF構成とカスタム・クラスも使用する必要があります。 |
Coherence for C++には、プラットフォーム固有のビルド・スクリプトが付属しています。各スクリプトはコマンドライン・パラメータを1つとりますが、このパラメータにはビルドするサンプルの名前を指定します。たとえば、Windowsでconsoleサンプルをビルドするには、新しいコマンド・プロンプト・ウィンドウを開いて次のコマンドを実行します。
c:\coherence\coherence-cpp\examples> build hellogrid
次に示す専用のexamples
サブディレクトリに、サンプルの実行可能ファイルが作成されます。
c:\coherence\coherence-cpp\examples\hellogrid\hellogrid.exe
独自に作成した簡単なアプリケーションでこのスクリプトを使用するには、examples
ディレクトリの下に新しいディレクトリを作成し、そこにアプリケーションのソース・ファイルを置きます。build your_dir_name
を実行してアプリケーションをコンパイルします。
構成を指定し、プロキシ・サービスとキャッシュ・サーバーを起動した後は、クライアントを起動できます。examples
ディレクトリには、サンプルを実行するrun
スクリプトがあります。このスクリプトは、環境変数とライブラリ検索パスの基本的な設定作業を実行します。このスクリプトを使用するには、run
スクリプトを実行し、実行するサンプルの名前を1番目のパラメータに指定します。
たとえば、Windowsでhellogrid
サンプルを実行するには、examplesディレクトリから次のコマンドを実行します。
c:\coherence\coherence-cpp\examples> run hellogrid
アプリケーションに対するCoherenceのロギングは、examplesディレクトリにあるhellogrid.log
に記録されます。
hellogrid
サンプルでは、キャッシュに様々なタイプのデータを入力し、そのデータの読取り、キャッシュの内容の出力、キャッシュの問合せなどを実行してキャッシュの機能を試します。次の手順に従い、hellogrid
サンプルをビルドして実行します。
C:\coherence\coherence-cpp\examples>run hellogrid retrieved cache "dist-hello" containing 0 entries put: hello = grid get: hello = grid get: dummy = NULL entire cache contents: 34567 = 8.9 23456 = 7.8 12345 = 6.7 hello = grid updated cache contents: 34567 = 8.9 23456 = 7.8 12345 = 6.7 45678 = 9.1 filtered cache contents by coherence::util::filter::GreaterFilter: (IdentityExtr actor, 7) 34567 = 8.9 23456 = 7.8 45678 = 9.1 minimum: 6.7 increment results by 6.7 34567 = 15.6 23456 = 14.5 12345 = 13.4 45678 = 15.8 C:\coherence\coherence-cpp\examples>
このサンプルを実行した後は、そのコードを調べることをお薦めします。各サンプルには、examples
の下に対応するディレクトリがあります。ここには、サンプル固有のソースが含まれています。また、すべてのサンプルで使用されるソースを含む、common
ディレクトリもあります。
consoleサンプルでは、C++コンソールを使用してデータをキャッシュに入力してから、Javaコンソールを使用してそのデータを読み取ることができます。(run
console
を実行して)consoleサンプルを起動すると、広く使用されているMap(?):
プロンプトがコンソールに表示されます。C++コンソールでは、Javaで使用できるコマンドのサブセットがサポートされています。help
コマンドを入力すると、使用可能コマンドのリストが表示されます。キャッシュは、extend-cache-config.xml
コンフィギュレーション・ファイルで定義しますが、local-*
キャッシュがローカルのみであること、dist-*
キャッシュがリモートであることおよびPIF/POFを使用することが必要です。near-*
を使用すると、一貫性を持ったインプロセスのニア・キャッシュにデータがプルされます。
cache
dist-hello
と入力してキャッシュに接続します。次の例に示すコマンドを入力し、キャッシュにデータを入力して表示します。
Map(?): cache dist-hello Map(dist-hello): put hello world NULL Map(dist-hello): get hello world Map(dist-hello): size 1 Map(dist-hello): put from C++ NULL Map(dist-hello): list from = C++ hello = world Map(dist-hello):
C++コンソールと対話するJavaコンソールを起動します。この起動コマンドでは、C++クライアントで使用しているキャッシュ構成を、Javaクライアント・アプリケーションでも同様に指定する必要があります。たとえば、Windowsでは新しいコマンド・プロンプト・ウィンドウを開き、次のコマンドを実行します(ここでは見やすくするために、このコマンドを2行に分けて示しています)。
c:\coherence\lib> java -Dtangosol.coherence.cacheconfig= c:\coherence\coherence-cpp\examples\config\extend-cache-config.xml -jar coherence.jar
C++コンソールの場合と同じコンソール構文を使用して、キャッシュにアクセスします。たとえば、Windowsでは新しいコマンド・プロンプト・ウィンドウを開き、次のコマンドを実行します。
Map(?): cache dist-hello 2008-04-25 09:01:02.207 Oracle Coherence GE 3.4/396 Alpha <D5> (thread=DistributedCache, member=3): Service DistributedCache joined the cluster with senior service member 1 2008-04-25 09:01:02.239 Oracle Coherence GE 3.4/396 Alpha <D5> (thread=DistributedCache, member=3): Service DistributedCache: received ServiceConfigSync containing 259 entries <distributed-scheme> <scheme-name>example-distributed</scheme-name> <service-name>DistributedCache</service-name> <lease-granularity>member</lease-granularity> <backing-map-scheme> <local-scheme//> </backing-map-scheme> <autostart>true</autostart></distributed-scheme> 2008-04-25 09:01:02.264 Oracle Coherence GE 3.4/396 Alpha <D4> (thread=DistributedCache, member=3): Asking member 1 for 128 out of 128 primary partitions Map(dist-hello): list from = C++ hello = world Map(dist-hello):
このサンプルを実行した後は、そのコードを調べることをお薦めします。各サンプルには、examples
の下に対応するディレクトリがあります。ここには、サンプル固有のソースが含まれています。また、すべてのサンプルで使用されるソースを含む、common
ディレクトリもあります。
contactサンプルでは、名前とアドレスをキャッシュに入力してから、そのエントリを問い合せて表示できます。このサンプルでは次のコマンドを実行できます。
help
: このサンプルで実行できるコマンドのリストを返します。
bye
: サンプルの実行を中止し、コマンド・プロンプトに戻ります。
create
: 名前、住所、郵便番号などの個人の連絡情報をプロンプトで尋ねます。
find
: プロンプトで名前を尋ねます。入力した名前に関連付けられている連絡情報が返されます。
次の手順に従い、contacts
サンプルをビルドして実行します。
C:\coherence\coherence-cpp\examples>build contacts building contacts\contacts.exe ... contacts.cpp ContactInfo.cpp ContactInfoSerializer.cpp Generating Code... C:\coherence\coherence-cpp\examples>
contacts
サンプルを実行します。ウィンドウに、次のような出力が示されます。
C:\coherence\coherence-cpp\examples>run contacts contacts> help commands are: bye create find <street | city | state | zip | all> contacts>
help
、create
、find
、bye
の各コマンドを入力して、サンプルの機能を試します。
contacts> help commands are: bye create find <street | city | state | zip | all> contacts> create Name: Tom Street: Oracle Parkway City: Redwood Shores State: California Zip: 94065 storing: ContactInfo(Name=Tom, Street=Oracle Parkway, City=Redwood Shores, State =California, Zip=94065) contacts> find Name: Tom ContactInfo(Name=Tom, Street=Oracle Parkway, City=Redwood Shores, State=California, Zip=94065) contacts> bye C:\coherence\coherence-cpp\examples>
このサンプルを実行した後は、そのコードを調べることをお薦めします。各サンプルには、examples
の下に対応するディレクトリがあります。ここには、サンプル固有のソースが含まれています。また、すべてのサンプルで使用されるソースを含む、common
ディレクトリもあります。