プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle Coherenceリモート・クライアントの開発
12c (12.2.1.2.0)
E82724-01
目次へ移動
目次

前
次

7 Coherence C++クライアントの概要

この章では、Coherence for C++と、Coherence for C++を使用するためのC++アプリケーション・ビルドの設定手順を説明します。

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

7.1 Coherence for C++の概要

Coherence for C++を使用すると、データ、データ・イベント、データ処理などのCoherenceクラスタ化サービスに、Coherenceクラスタ外部からC++アプリケーションを使用してアクセスできます。Coherence for C++は通常、Coherenceキャッシュへのアクセスを必要とするデスクトップ・アプリケーションやWebアプリケーションで使用されます。C++クライアント・ディストリビューションのインストールの詳細は、『Oracle Coherenceのインストール』を参照してください。

Coherence for C++は、Coherenceクラスタ内で稼働する Coherence*Extend クラスタ化サービス・インスタンスに、高性能なTCP/IPベースの通信レイヤーを使用して接続するネイティブC++ライブラリで構成されます。このライブラリからCoherence*Extendクラスタ化サービスにすべてのクライアント・リクエストが送信され、このサービスは実際のCoherenceクラスタ化サービス(パーティション・キャッシュ・サービス、レプリケート・キャッシュ・サービスなど)に委任することで、クライアント・リクエストに応答します。

NamedCacheインスタンスは、CacheFactory::getCache(...) APIコールを使用して取得されます。これが取得されると、クライアントはCoherenceクラスタに組み込まれている場合と同じようにNamedCacheにアクセスします。NamedCacheの操作はリモートのクラスタ・ノードに(TCP/IPを介して)送信されますが、この処理はクライアント・アプリケーションに対して完全に透過的に行われます。

注意:

C++クライアントは、Javaクライアントのインタフェースと概念に従います。Coherence for Javaに精通していると、Coherence C++への移行が容易であることがわかります。

7.2 C++アプリケーション・ビルドの設定

この項では、Coherenceを使用するためのC++アプリケーションの設定手順を説明します。この項には次のトピックが含まれます:

7.2.1 Coherenceベースのアプリケーション向けのコンパイラの設定

アプリケーションのビルド・プロセスにCoherence for C++を統合する場合は、コンパイラとリンカーのいくつかの設定を有効にすることが重要です。これらの設定の中にはオプションのものもありますが、それらも含め、有効にすることを強くお薦めします。

*MSVC (Visual Studio)*

表7-1 MSVC(Visual Studio)向けのコンパイラの設定

設定 ビルド・タイプ 必須? 説明

/EHsc

All

はい

C++の例外のサポートを有効化

/GR

All

はい

C++のRTTIを有効化

/O2

Release

いいえ

スピードの最適化を有効化

/MD

Release

はい

マルチスレッド化したDLLに対してリンク

/MDd

Debug

はい

マルチスレッド化したデバッグDLLに対してリンク

g++ / SunPro

表7-2 g++向けのコンパイラの設定

設定 ビルド・タイプ 必須 説明

-O3

Release

いいえ

スピードの最適化を有効化

-m32 / -m64

All

いいえ

コンパイラを明示的に32ビット・モードまたは64ビット・モードに設定

7.2.2 Coherenceのヘッダー・ファイルの組込み

Coherenceには、Coherence APIを使用し、アプリケーションとともにコンパイルする必要のある一連のヘッダー・ファイルが付属しています。このヘッダー・ファイルは、インストール先のincludeディレクトリにあります。使用しているコンパイラのinclude検索パスで、このincludeディレクトリを指定する必要があります。

7.2.3 Coherenceライブラリのリンク

Coherence for C++には、Coherenceライブラリのリリース・バージョンが付属しています。アプリケーション・コードのデバッグ・バージョンとのリンクでも、このライブラリが適しています。このライブラリは、インストール先のlibディレクトリにあります。リンクの際、リンカーのライブラリ・パスでこのディレクトリを指定する必要があります。

表7-3 リリース・バージョン向けおよびデバッグ・バージョン向けのリンク・ライブラリの名前

オペレーティング・システム ライブラリ

Windows

coherence.lib

Solaris

libcoherence.so

Linux

libcoherence.so

Apple OS X

libcoherence.dylib

7.2.4 ランタイム・ライブラリと検索パスの設定

Coherence対応アプリケーションを実行しているときは、そのアプリケーションのライブラリ検索パスからCoherence for C++の共有ライブラリを利用できる必要があります。そのためには、この共有ライブラリが含まれているディレクトリを、オペレーティング・システム固有の環境変数に追加します。各ライブラリは、インストール先のlibサブディレクトリに格納されます。

表7-4 Coherence for C++のライブラリ名と環境変数

オペレーティング・システム 環境変数

Windows

PATH

Solaris

LD_LIBRARY_PATH

Linux

LD_LIBRARY_PATH

Apple (Mac) OS X

DYLD_LIBRARY_PATH

たとえば、WindowsでPATH環境変数を設定するには、次を実行します。

c:\coherence\coherence-cpp\examples> set PATH=%PATH%;c:\coherence\coherence-cpp\lib

JavaバージョンのCoherence同様、C++バージョンでも、構成のデフォルト設定より優先するシステム・プロパティの概念がサポートされています。C++で使用するシステム・プロパティは、オペレーティング・システムの標準的な環境変数を使用して設定します。使用するプロパティの名前は、Javaバージョンと同じです。coherence.cacheconfigシステム・プロパティは、キャッシュ構成ファイルの場所を指定します。この構成ファイルの場所は、アプリケーション・コードでのプログラム処理(CacheFactory::configure())でも設定できますが、この例ではその方法は採用していません。

表7-5 様々なオペレーティング・システム向けのキャッシュ構成のシステム・プロパティの値

オペレーティング・システム システム・プロパティ

Windows

coherence.cacheconfig

Linux

CoherenceCacheConfig

Solaris

CoherenceCacheConfig

Apple (Mac) OS X

CoherenceCacheConfig

注意:

UNIXのbashシェルなど、一部のオペレーティング・システム・シェルでは、.記号を含んだ環境変数をサポートしていません。この場合はキャメル・ケースを使用して、先頭の文字と各ピリオド文字(.)の後の1文字を大文字で記述します。つまり、coherence.cacheconfigCoherenceCacheConfigとします。

たとえば、Windowsでこの構成ファイルの場所を設定するには、次のコマンドを実行します。

c:\coherence\coherence-cpp\examples> set coherence.cacheconfig=config\extend-cache-config.xml

7.2.5 Coherence for C++のデプロイメント

Coherence for C++には、専用のデプロイメント構成は必要ありません。アプリケーションをCoherenceライブラリとリンクするのみです。サンプル・ビルド・スクリプトおよび構成の例に関しては、Coherence例に含まれているC++の例を参照してください。例はCoherence for Javaディストリビューションの一部として含まれています。

注意:

Microsoft Windowsにデプロイする場合は、 Visual Studio 2005 SP1 C++ランタイム・ライブラリが必要です。このサンプルをビルドするには、Visual Studio 2005 SP1以降が必要です。