Oracle® Fusion Middleware

Oracle Coherenceのインストール

12c (12.2.1)

E70046-02(原本部品番号:E55608-03)

2016年1月

Oracle Coherenceのインストール、以前のバージョンからのアップグレードおよびCoherenceのサンプルの実行方法を説明するドキュメント。

Oracle Fusion Middleware Oracle Coherenceのインストール, 12c (12.2.1)

E70046-02

Copyright © 2015, 2016,  Oracle and/or its affiliates All rights reserved.

このソフトウェアおよび関連ドキュメントの使用と開示は、ライセンス契約の制約条件に従うものとし、知的財産に関する法律により保護されています。ライセンス契約で明示的に許諾されている場合もしくは法律によって認められている場合を除き、形式、手段に関係なく、いかなる部分も使用、複写、複製、翻訳、放送、修正、ライセンス供与、送信、配布、発表、実行、公開または表示することはできません。このソフトウェアのリバース・エンジニアリング、逆アセンブル、逆コンパイルは互換性のために法律によって規定されている場合を除き、禁止されています。

ここに記載された情報は予告なしに変更される場合があります。また、誤りが無いことの保証はいたしかねます。誤りを見つけた場合は、オラクル社までご連絡ください。

このソフトウェアまたは関連ドキュメントを、米国政府機関もしくは米国政府機関に代わってこのソフトウェアまたは関連ドキュメントをライセンスされた者に提供する場合は、次の通知が適用されます。

U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations.As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs.No other rights are granted to the U.S. Government.

このソフトウェアもしくはハードウェアは様々な情報管理アプリケーションでの一般的な使用のために開発されたものです。このソフトウェアもしくはハードウェアは、危険が伴うアプリケーション(人的傷害を発生させる可能性があるアプリケーションを含む)への用途を目的として開発されていません。このソフトウェアもしくはハードウェアを危険が伴うアプリケーションで使用する際、安全に使用するために、適切な安全装置、バックアップ、冗長性(redundancy)、その他の対策を講じることは使用者の責任となります。このソフトウェアもしくはハードウェアを危険が伴うアプリケーションで使用したことに起因して損害が発生しても、オラクル社およびその関連会社は一切の責任を負いかねます。

OracleおよびJavaはOracle Corporationおよびその関連企業の登録商標です。その他の名称は、それぞれの所有者の商標または登録商標です。

Intel、Intel Xeonは、Intel Corporationの商標または登録商標です。すべてのSPARCの商標はライセンスをもとに使用し、SPARC International, Inc.の商標または登録商標です。AMD、Opteron、AMDロゴ、AMD Opteronロゴは、Advanced Micro Devices, Inc.の商標または登録商標です。UNIXは、The Open Groupの登録商標です。

このソフトウェアまたはハードウェア、そしてドキュメントは、第三者のコンテンツ、製品、サービスへのアクセス、あるいはそれらに関する情報を提供することがあります。適用されるお客様とOracle Corporationとの間の契約に別段の定めがある場合を除いて、Oracle Corporationおよびその関連会社は、第三者のコンテンツ、製品、サービスに関して一切の責任を負わず、いかなる保証もいたしません。適用されるお客様とOracle Corporationとの間の契約に定めがある場合を除いて、Oracle Corporationおよびその関連会社は、第三者のコンテンツ、製品、サービスへのアクセスまたは使用によって損失、費用、あるいは損害が発生しても一切の責任を負いかねます。

目次

タイトルおよび著作権情報

はじめに

- 対象読者

- ドキュメントのアクセシビリティについて

- 関連ドキュメント

- 表記規則

このガイドで説明する新機能

- 12c (12.2.1)の新機能と変更された機能

- 12c (12.2.1)に関するこのドキュメントにおけるその他の重要な変更

1 Oracle Coherenceインストールの計画

- 1.1 Oracle Coherenceについて

- 1.2 Oracle Coherenceの標準的なインストールのトポロジの概要

- 1.3 スタンドアロンOracle Coherenceのインストールおよび構成のロードマップ

- 1.4 システム環境の確認のロードマップ

- 1.5 Oracle Coherenceディストリビューションの理解と取得

2 Oracle Coherence for Javaのインストール

- 2.1 システム要件

- 2.2 Coherenceのインストールの実行

- 2.2.1 グラフィカル・モードでのCoherenceのインストールの実行

- 2.2.1.1 インストール・プログラムの起動

- 2.2.1.2 インストール画面への移動

- 2.2.2 サイレント・モードでのCoherenceのインストールの実行

- 2.2.3 Coherenceクイック・インストーラの実行

- 2.2.4 Coherenceサプリメンタル・インストーラの実行

- 2.2.5 WebLogic ServerとCoherenceのインストール

- 2.3 環境変数の設定

- 2.4 Coherenceの最初の実行

- 2.4.1 基本的なクラスタの作成

- 2.4.2 キャッシュの作成

- 2.5 Mavenとの統合

- 2.6 Coherenceパッチのインストール

- 2.7 Coherenceのアンインストール

3 クライアント・ディストリビューションのインストール

- 3.1 Coherence for Javaのインストール

- 3.2 C++クライアント・ディストリビューションのインストール

- 3.2.1 Coherence C++クライアントでサポートされている環境

- 3.2.2 Microsoft固有の要件

- 3.2.3 Coherence for C++ディストリビューションの抽出

- 3.3 .NETクライアント・ディストリビューションのインストール

- 3.3.1 前提条件

- 3.3.2 インストーラの実行

- 3.3.3 Coherence .NETバージョン番号マッピング

- 3.3.4 Coherence for .NETのデプロイ

- 3.4 Coherence*Extendのバージョン間の互換性

4 アプリケーション・サーバーへのCoherence*Webのインストール

- 4.1 WebLogic ServerでのCoherence*Webのインストール

- 4.2 その他のアプリケーション・サーバーへのCoherence*Webのインストール

5 以前のリリースからのCoherenceのアップグレード

- 5.1 一般的なアップグレード・ガイドライン

- 5.2 バージョン12.1.xからのアップグレード

- 5.2.1 JVMの更新

- 5.2.2 Mavenビルド・スクリプトの更新

- 5.2.3 キャッシュ構成ファイルの更新

- 5.2.4 アドレスおよびポートの割当ての更新

- 5.2.5 同一ネットワーク上で実行される複数のクラスタの更新

- 5.2.6 TCP使用の計画

- 5.2.7 WebLogic ServerでのCoherence RESTの更新済パッケージ化

- 5.2.8 Coherenceコンソールでのcoherence.jarの実行

- 5.2.9 CohQLスクリプトの更新

- 5.2.10 Coherence*Web構成の更新

- 5.2.11 サポートされているWebコンテナへの移行

- 5.2.12 ActiveCache統合の削除

- 5.2.13 暗号化フィルタの削除

- 5.3 バージョン3.7.1.xからのアップグレード

- 5.3.1 WebLogic ServerでのCoherenceおよびCoherence*Webを使用するアプリケーションのアップグレード

- 5.3.2 WebLogic ServerでのTopLink Gridを使用するアプリケーションのアップグレード

- 5.3.2.1 Coherence側の構成のアップグレード

- 5.3.2.2 アプリケーション・サーバー・スコープ指定されたCoherenceクラスタのアップグレード

- 5.3.2.3 EARスコープ指定されたCoherenceクラスタのアップグレード

- 5.3.2.4 WARスコープ指定されたCoherenceクラスタのアップグレード

- 5.3.3 Coherence*Extendのアップグレード

- 5.3.4 Coherence*Webのアップグレード

- 5.3.4.1 以前のバージョンのWebLogic用に予約されているCoherence*Web SPI

- 5.3.4.2 ActiveCache (active-cache.jar)の管理対象Coherenceサーバーへの置換え

- 5.3.4.3 新しいセッション・キャッシュ構成ファイル

- 5.3.5 WebLogic ServerでのActiveCacheアプリケーションのアップグレード

- 5.3.6 非推奨となった機能の代替

- 5.3.6.1 非推奨のpacket-poolおよびmessage-pool要素の代替

- 5.3.6.2 非推奨のLHファイル・マネージャの代替

- 5.3.6.3 非推奨のNamedCache Lock APIの代替

- 5.3.6.4 非推奨のXmlConfigurableインタフェースの代替

- 5.3.7 アップグレードのその他の問題

- 5.3.7.1 Exalogic環境のDistributedCacheの新しいデフォルト

- 5.3.7.2 リモートRMIクライアントからの接続

- 5.3.7.3 Coherence*Extendクライアント上のキー・アソシエーション

- 5.3.7.4 ニア・キャッシュの無効化戦略の変更

- 5.3.7.5 新しいキャッシュ構成要素: resource-config

- 5.3.7.6 Invocable APIの動作の変更点

6 Coherenceのサンプルの実行

- 6.1 Coherenceのサンプルの概要

- 6.2 サンプルの取得

- 6.3 サンプルのビルド方法

- 6.3.1 Javaサンプルのビルド方法

- 6.3.1.1 Javaでの前提条件

- 6.3.1.2 Javaでのディレクトリ構造

- 6.3.1.3 Javaでのビルド手順

- 6.3.2 .NETサンプルのビルド方法

- 6.3.2.1 .NETでの前提条件

- 6.3.2.2 .NETでのディレクトリ構造

- 6.3.2.3 .NETでのビルド手順

- 6.3.3 C++サンプルのビルド方法

- 6.3.3.1 C++での前提条件

- 6.3.3.2 C++でのディレクトリ構造

- 6.3.3.3 C++でのビルド手順

- 6.4 サンプルの実行方法

- 6.4.1 Javaサンプルの実行方法

- 6.4.1.1 Javaでの前提条件

- 6.4.1.2 Javaでのディレクトリ構造

- 6.4.1.3 Javaでの手順

- 6.4.2 .NETサンプルの実行方法

- 6.4.2.1 .NETでの前提条件

- 6.4.2.2 .NETでのディレクトリ構造

- 6.4.2.3 .NETでの手順

- 6.4.3 C++サンプルの実行方法

- 6.4.3.1 C++での前提条件

- 6.4.3.2 C++でのディレクトリ構造

- 6.4.3.3 C++での手順

- 6.5 Coherenceの基本機能のサンプル

- 6.5.1 サンプル・セットの実行

- 6.5.2 機能ドライバ・ファイルの理解

- 6.5.3 基本データ・アクセスのサンプル

- 6.5.3.1 出力例

- 6.5.4 ローダーのサンプル

- 6.5.4.1 出力の例

- 6.5.5 問合せの例

- 6.5.5.1 出力の例

- 6.5.6 オブザーバのサンプル

- 6.5.7 プロセッサのサンプル

- 6.5.7.1 出力の例

- 6.5.8 問合せ言語

- 6.5.8.1 出力の例

- 6.5.9 データ・ジェネレータ

- 6.6 Coherenceのセキュリティのサンプル

- 6.6.1 このサンプル・セット

- 6.6.1.1 セキュリティ・サンプル・セットの実行

- 6.6.1.2 セキュリティ・ドライバ・ファイルの理解

- 6.6.2 パスワードのサンプル

- 6.6.3 アクセス制御のサンプル

- 6.6.3.1 出力の例

- 6.6.4 パスワードIDトランスフォーマ

- 6.6.5 パスワード・アイデンティティ・アサータ

- 6.6.6 資格が付与されるキャッシュ・サービス

- 6.6.7 資格が付与される起動サービス

- 6.6.8 資格が付与される名前付きキャッシュ

- 6.6.9 セキュリティ・サンプル・ヘルパー

- 6.7 Coherenceのライブ・イベントのサンプル

- 6.7.1 このサンプル・セット

- 6.7.1.1 ライブ・イベント・サンプル・セットの実行

- 6.7.1.2 ライブ・イベント・ドライバ・ファイルの理解

- 6.7.2 EventsExamples

- 6.7.2.1 EventsTimingExample

- 6.7.2.2 VetodEventsExample

- 6.7.2.3 RedistributionEventsExample

- 6.7.3 TimedTraceInterceptor

- 6.7.4 CantankerousInterceptor

- 6.7.5 RedistributionInterceptor

- 6.7.6 RedistributionInvocable

- 6.7.7 LazyProcessor

- 6.8 Coherence Java 8機能のサンプル

- 6.8.1 このサンプル・セット

- 6.8.1.1 Java 8機能のサンプル・セットの実行

- 6.8.1.2 Java 8のドライバ・ファイルの理解

- 6.8.2 ストリーム

- 6.8.3 ラムダ

- 6.8.4 マップのデフォルト・メソッド

- 6.9 Coherenceの非同期機能のサンプル

- 6.9.1 このサンプル・セット

- 6.9.1.1 非同期機能のサンプル・セットの実行

- 6.9.1.2 非同期ドライバ・ファイルの理解

- 6.9.2 非同期のデータ・アクセス

- 6.9.3 非同期のエントリ・プロセッサ

- 6.9.4 非同期のアグリゲータ

- 6.10 Coherenceのフェデレーテッド・キャッシュのサンプル

- 6.10.1 このサンプル・セット

- 6.10.1.1 フェデレーテッド・キャッシュのサンプル・セットの実行

- 6.10.1.2 フェデレーテッド・キャッシュのドライバ・ファイルの理解

- 6.10.2 フェデレーション構成

- 6.11 Coherenceの永続性のサンプル

- 6.11.1 このサンプル・セット

- 6.11.1.1 永続性のサンプル・セットの実行

- 6.11.1.2 永続性のドライバ・ファイルの理解

- 6.11.2 基本的なスナップショット操作

- 6.11.3 永続性のある通知

- 6.11.4 パラレルの永続性操作

- 6.11.5 カスタム・アーカイバのスナップショットのアーカイブ

- 6.12 Coherence RESTのサンプル

- 6.12.1 このサンプル・セット

- 6.12.2 サンプルのビルドおよび実行

- 6.12.3 「製品」ページ

- 6.12.4 「部門」ページ

- 6.12.5 「連絡先」ページ

- 6.12.6 Server-Sent Events

A Oracle Coherenceディレクトリ構造の理解

はじめに

『Oracle Coherenceのインストール』へようこそ。このドキュメントは、Coherence for Java、Coherence for C++、Coherence for .NETおよびCoherence*Webをインストールする手順について説明します。このドキュメントでは、以前のリリースからアップグレードする手順およびCoherenceを実行する手順についても説明します。

対象読者

『Oracle Coherenceのインストール』の対象読者は次のとおりです。

- 主な対象読者 – Coherenceをインストールしてアプリケーションを開発するアプリケーション開発者。

- その他の対象読者 – Coherenceコンポーネントのインストール方法を理解する必要のあるシステム・アーキテクトおよび操作の従事者。

対象読者は、このガイドを使用するにあたって、Java、C++および.NETに精通している必要があります。

ドキュメントのアクセシビリティについて

Oracleのアクセシビリティについての詳細情報は、Oracle Accessibility ProgramのWebサイト(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc)を参照してください。

Oracle Supportへのアクセス

サポートをご購入のOracleのお客様は、My Oracle Supportにアクセスして電子サポートを受けることができます。詳細情報は(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=info) か、聴覚に障害のあるお客様は (http://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs)を参照してください。

関連ドキュメント

詳細は、次のOracle Coherenceドキュメントを参照してください。

- Oracle Coherenceの管理

- Oracle Coherence*WebでのHTTPセッション・マネージメントの管理

- Oracle Coherenceでのアプリケーションの開発

- Oracle Coherenceリモート・クライアントの開発

- Oracle Coherenceの統合

- Oracle Coherenceのマネージメント

- Oracle Coherenceの保護

- Oracle Coherence Java APIリファレンス

- Oracle Coherence C++ APIリファレンス

- Oracle Coherence .NET APIリファレンス

- Oracle Coherenceリリース・ノート

表記規則

このマニュアルでは次の表記規則を使用します。

規則

意味

太字

太字は、操作に関連するGraphical User Interface要素、または本文中で定義されている用語および用語集に記載されている用語を示します。

イタリック体

イタリックは、ユーザーが特定の値を指定するプレースホルダ変数を示します。

固定幅フォント

固定幅フォントは、段落内のコマンド、URL、サンプル内のコード、画面に表示されるテキスト、または入力するテキストを示します。

このガイドで説明する新機能

次のトピックでは、Oracle Coherenceの新機能と変更された機能について、およびこのガイドに記載されるその他の重要な変更について紹介し、詳細情報へのリンクを提供します。これは、このガイドの最初のリリースで、以前、他のCoherenceガイドの一部としてリリースされた手順を含みます。

12c (12.2.1)の新機能と変更された機能

このドキュメントでのOracle Coherence 12c (12.2.1)に含まれる新機能と変更された機能は次のとおりです。

- Java 8機能のサンプルは、Coherenceでのラムダ、ストリームおよびデフォルトのMapメソッドの使用方法を説明します。「CoherenceのJava 8機能のサンプル」を参照してください。

- 非同期NamedCacheのサンプルは、AsyncNamedCacheインタフェースの使用方法を説明します。「Coherenceの非同期機能のサンプル」を参照してください。

- フェデレーテッド・キャッシュのサンプルは、アクティブ/アクティブ型トポロジ内で構成される2つのクラスタ間に、キャッシュ・データを複製する方法を説明します。「Coherenceのフェデレーテッド・キャッシュのサンプル」を参照してください。

- 永続性のサンプルは、キャッシュ・データを保持およびリカバリする方法を説明します。「Coherenceの永続性のサンプル」を参照してください。

- RESTのサンプルは、Coherenceキャッシュとの相互作用のために、アプリケーションでCoherence RESTを使用する方法を説明します。「Coherence RESTのサンプル」を参照してください。

12c (12.2.1)に関するこのドキュメントにおけるその他の重要な変更

12c (12.2.1)でこのガイドは何箇所か更新されています。次の表に、追加または変更された項を示します。

- JDK要件が変更されました。「システム要件」を参照してください。

- C++クライアント要件が変更されました。「C++クライアント・ディストリビューションのインストール」を参照してください。

- .NETクライアント要件が変更されました。「.NETクライアント・ディストリビューションのインストール」を参照してください。

- Coherence 12.2.1へのアップグレードに関する手順を改訂しました。「バージョン12.1.xからのアップグレード」を参照してください。

1 Oracle Coherenceインストールの計画

このガイドでは、Oracle Coherence 12.2.1のインストールについて説明します。

様々なトピックが扱われており、Oracle Coherenceのインストールの途中または完了後に問題が発生しないように、入念に確認してください。

スタンドアロンOracle Coherenceをインストールするには、Oracle Fusion Middleware Infrastructureの前提条件はありません。Infrastructureがシステムにインストールされている場合、Oracle Coherenceはいくつかの方法で統合されます。このガイドの目的に従い、スタンドアロン・モードのみを対象にしています。

注意:
Oracle Coherenceは、Oracle WebLogic Serverのインストールの一部としてインストールされます。Oracle CoherenceとOracle WebLogic Serverのインストールおよび構成は、このドキュメントの対象ではありません。詳細は、第2.2.5項「WebLogic ServerとCoherenceのインストール」および『Oracle WebLogic ServerおよびCoherenceのインストールと構成』を参照してください。

この章の構成は、次のとおりです。

- Oracle Coherenceについて

- Oracle Coherenceの標準的なインストールのトポロジの概要

- スタンドアロンOracle Coherenceのインストールおよび構成のロードマップ

- システム環境の確認に関するロードマップ

- Oracle Coherenceディストリビューションの理解と取得

1.1 Oracle Coherenceについて

Oracle Coherenceインメモリー・データ・グリッドは、OracleのCloud Application Foundationの中心的なコンポーネントです。Oracle Coherenceは、共有サービスおよびインフラストラクチャでのモバイルおよびクラウドの要求に合致するように、あらかじめアプリケーションの大きさを調整します。

- パラレル問合せ、ライブ・イベント処理、マッピング削減集計およびパラレル・トランザクション処理を使用して、リアルタイムのアプリケーション処理を提供します

- 予測される費用およびリアルタイムの顧客経験の信頼される配信に対応して、アプリケーションを直線的および動的に拡大縮小します

- 厳しい要求を求められるマルチデータ・センター・デプロイメント全体で、継続的なデータの可用性およびトランザクションの整合性が実現されます

- Oracle CoherenceのGoldenGate HotCacheにより、ビジネスはリアルタイム・キャッシュ更新を使用でき、常に正確なアプリケーション情報を提供できます

- Oracle WebLogic Serverを従来型およびクラウド環境において、およびOracle Exalogic Elastic Cloudでの高度な統合により、単純化された操作を提供します

1.2 Oracle Coherenceの標準的なインストールのトポロジの概要

他のアプリケーション・ソフトウェアとともにOracle Coherenceソフトウェアを使用して、アプリケーション、組織およびアプリケーション・ユーザーのニーズに適した、様々な本番トポロジを作成できます。

この結果、Oracle Coherenceについて予想されるあらゆるインストールに対して、厳密な手順を示すことが難しくなっています。このドキュメントは、Oracle Coherenceをスタンドアロン・モードでインストールする手順のみを説明します。

標準的なインストールのトポロジの詳細は、『Oracle Fusion Middleware Oracle Fusion Middlewareのインストールのプランニング』の標準的なインストールのトポロジの理解に関する項を参照してください。

1.3 スタンドアロンOracle Coherenceのインストールおよび構成のロードマップ

表1-1に、スタンドアロンOracle Coherenceをインストールして構成するために必要な手順を示します。

表1-1 スタンドアロンOracle Coherenceのインストールのロードマップ

タスク

説明

詳細

システム環境の確認

インストールの前に、最小限のシステム要件およびネットワーク要件を満たしていることを確認します。

第1.4項「システム環境を確認する際のロードマップ」および第2.1項「システム要件」

適切なディストリビューションの入手

Oracle Coherenceをインストールするには、ディストリビューションを入手します。

第1.5項「Oracle Coherenceディストリビューションの理解と取得」

インストール・ディレクトリの決定

Oracle Coherenceをインストールするディレクトリがインストーラによってアクセス可能で、最低要件が満たされているシステムに存在していることを確認します。

付録A「Oracle Coherenceディレクトリ構造の理解」

Oracle Coherenceのインストール

インストール・プログラムを実行してソフトウェアをインストールします。これにより、ソフトウェアがシステムに転送されます。

第2.2項「Coherenceのインストールの実行」

構成後の管理および構成タスク

Oracle Coherenceを構成および管理するための追加のツールおよびリソースを検出します。

第3章「クライアント・ディストリビューションのインストール」、第4章「アプリケーション・サーバーへのCoherence*Webのインストール」

アップグレード・タスク

Coherenceで作業を開始している場合、アプリケーションをアップグレードして現在のリリースを使用します。

第5章「以前のリリースからのCoherenceのアップグレード」

Coherenceのサンプルの実行

Coherenceディストリビューションには、Coherenceの様々な機能を実行する多数のサンプルが含まれます。

第6章「Coherenceのサンプルの実行」

1.4 システム環境の検証ロードマップ

表1-2には、インストール・プロセスに先立って参照し理解する必要がある重要な情報が含まれています。これによって、実行が必要である重要なタスクおよびチェックを認識し、ご使用の環境がOracle Coherenceのインストールおよび構成について適切に準備されていることを確認します。

表1-2 システム環境の検証ロードマップ

タスク

説明

詳細の参照先

動作保証要件およびシステム要件を確認します。

Oracle Fusion Middleware Infrastructureのインストールおよび構成について、ご使用のオペレーティング・システムが動作保証され適切に構成されることを確認します。

『Oracle Fusion Middleware Oracle Fusion Middlewareのインストールのプランニング』の動作保証およびシステム要件の確認に関する項

インストールに備えたシステムの準備

必要な環境変数が設定され、適切なインストール・ユーザーを特定していることを確認します。

『Oracle Fusion Middleware Oracle Fusion Middlewareのインストールのプランニング』のインストールに向けてのシステムの準備に関する項

1.5 Oracle Coherenceディストリビューションの理解と取得

Oracle Coherenceディストリビューションは、スタンドアロンの実行可能なインストール・プログラムとして利用可能です。配布を取得するには、『Oracle Fusion Middleware Oracle Fusion Middlewareのインストールのプランニング』の製品配布の取得に関する項を参照してください。

ヒント:
配布の詳細は、『Oracle Fusion Middlewareのインストールのプランニング』の製品の配布の理解と入手に関する項を参照してください。

2 Oracle Coherence for Javaのインストール

この章では、Oracle Coherence for Java(略してCoherence)のインストールおよび実行手順について説明します。Coherence*Extendクライアント・ディストリビューションをインストールする手順は、第3章を参照してください。Coherence*Webをアプリケーション・サーバーにインストールする手順は、第4章を参照してください。

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

- システムの要件

- Coherenceのインストールの実行

- 環境変数の設定

- Coherenceの最初の実行

- Mavenとの統合

- Coherenceパッチのインストール

- Coherenceのアンインストール

2.1 システム要件

Coherenceの要件は、インストールおよびランタイムで異なります。

ランタイム要件

開発環境でCoherenceを実行するために推奨される最小限のシステム要件を次に示します。

- 100 MBのディスク領域(APIのドキュメントおよびサンプルを含む完全なインストールの場合)

- 1GBのRAM (Javaの最大ヒープ・サイズを512MBとした場合) - この容量のRAMでは、すべてのデータのバックアップを格納するように構成された単一ノード上での理想的な150MBの最大キャッシュ・サイズ(150MB x 2)がサポートされ、1/3以上のヒープをスクラッチおよびJVMタスクに使用できます。キャッシュ・サイズの計算の詳細は、『Oracle Coherenceの管理』を参照してください。

- JVM (JREまたはJDK) 1.8以上。多くの場合、開発にはJDKが使用されます。JDKはJavaアプリケーションのモニタリングおよびトラブルシューティングのためのツールを提供しますが、Coherenceの実行には必須ではありません。

注意:
古いバージョンのJVMを実行するアプリケーションと統合して使用する顧客は、古いCoherenceクライアントを使用できます。ただし、クライアントは、そのCoherenceのバージョンでサポートされているプラットフォームおよびクライアントの機能に限定されます。

- 必要なJavaのバージョンをサポートするWindowsベースまたはUNIXベースのシステム

- ネットワーク・アダプタ

インストール要件

Coherenceインストーラを使用するための最小要件は次のとおりです。

注意:
インストーラを実行する要件は、Coherenceを実行する要件とは異なります。

- 300MHz CPU

- 512 MBスワップ領域

- 256カラー・モニター(GUIベースのインストールにのみ必要)

- JDK 1.6.0_4以上

2.2 Coherenceのインストールの実行

Coherenceは、Oracle Universal Installerを使用してインストールします。このインストーラは、Oracle製品のインストールとパッチ・サービスの両方を提供します。Coherenceに使用可能なインストーラは次のとおりで、この項で詳細を説明します。

- fmw_version_coherence.jar - 完全なCoherenceのインストールで、グラフィカル・モードとサイレント・モードのどちらでも実行できます。「グラフィカル・モードでのCoherenceのインストールの実行」および「サイレント・モードでのCoherenceのインストールの実行」を参照してください。

- fmw_version_coherence_quick.jar - 最小限のCoherenceのインストールで、常にサイレント・モードで実行されます。クイック・インストーラではフットプリントが少なくなりますが、APIのドキュメントおよびサンプルは含まれません。「Coherenceクイック・インストーラの実行」を参照してください。

- fmw_version_coherence_quick_supplemental.jar - サプリメンタル・インストールで、常にサイレント・モードで実行されます。サプリメンタル・インストーラには、APIのドキュメントおよびサンプルのみが含まれます。「Coherenceサプリメンタル・インストーラの実行」を参照してください。

- fmw_version_wls.jar - 完全なWebLogic Serverのインストールで、Coherenceも含まれます。「WebLogic ServerとCoherenceのインストール」を参照してください。

Coherenceは、常にORACLE_HOME/coherenceディレクトリにインストールされます。Coherenceのドキュメントでは、coherenceディレクトリへの完全なパスをCOHERENCE_HOMEと呼びます。

2.2.1 グラフィカル・モードでのCoherenceのインストールの実行

Coherenceインストーラは、fmw_version_coherence.jarという実行可能なJava ARchive (JAR)ファイルとして配布されます。ターゲット・コンピュータでインストーラを実行するには、javaコマンドを使用します。インストーラのオプションに関する詳細なヘルプについては、インストーラの実行中に-help引数を使用してください。

インストーラで作成されるディレクトリの詳細は、付録A「Oracle Coherenceディレクトリ構造の理解」を参照してください。

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

- インストール・プログラムの起動

- インストール画面への移動

2.2.1.1 インストール・プログラムの起動

グラフィカル・モードでのCoherenceのインストールの実行手順は、次のとおりです。

1. fmw_version_coherence.jarファイルをターゲット・コンピュータにコピーします。

2. コマンド・プロンプトから、ディレクトリをcoherence_version.jarファイルの場所に変更し、次のコマンドを実行します(JAVA_HOME/binがコンピュータのPATHにあると想定します)。

java -jar fmw_version_coherence.jar

インストール・プログラムが表示されると、インストールを開始する準備ができています。

各インストール・プログラム画面の説明については、第2.2.1.2「インストール画面への移動」を参照してください。

2.2.1.2 インストール画面への移動

表2-1では、インストール・プログラムが表示される順序に画面が列挙されています。

インストール画面に関して詳細な情報が必要な場合は、画面名をクリックしてください。

表2-1 Oracle Coherenceのインストール画面

画面

説明

インベントリ設定

この画面は、UNIXオペレーティング・システムで、このホストに初めてOracle製品をインストールする場合に表示されます。中央インベントリを作成する場所を指定します。この画面で選択したオペレーティング・システム・グループ名には、中央インベントリの場所への書込み権限があることを確認してください。

中央インベントリの詳細は、Oracle Fusion Middleware Oracle Universal Installerによるソフトウェアのインストールの「Oracle中央インベントリの理解」を参照してください。

この画面はWindowsオペレーティング・システムでは表示されません。

ようこそ

製品のインストーラの紹介画面です。

インストールの場所

ドロップダウン・リストを使用して、Coherenceのインストール先の既存のORACLE_HOMEディレクトリを選択するか、絶対パスを入力して新しいCoherence ORACLE_HOMEディレクトリを作成します。必要に応じて「参照」をクリックしてディレクトリを検索します。ディレクトリは、既存のCoherenceのインストールを含むことはできません。

インストール・タイプ

インストールするCoherenceのオプションを選択します。

前提条件チェック

この画面には、Coherenceがシステムで認証されていることを確認するために実行するシステム・チェックのリストが表示されます。

インストール・サマリー

インストールを検証します。今回のインストールを別のコンピュータに複製する予定がある場合は、「レスポンス・ファイルの保存」をクリックします。まったく同じインストール設定でサイレント・インストールを実行する際に使用可能なレスポンス・ファイルが作成されます。サイレント・インストールの実行の詳細は、第2.2.2項「サイレント・モードでのCoherenceのインストールの実行」を参照してください。

インストールの進行状況

この画面では、インストールの進行状況を参照できます。

インストール完了

インストールが完了すると、この画面が表示されます。この画面の情報を確認してから、「終了」をクリックしてインストーラを終了します。

2.2.2 サイレント・モードでのCoherenceのインストールの実行

サイレント・モードでは、グラフィカル・インタフェースを使用せずにCoherenceをインストールでき、リモート・インストールの場合またはスクリプトの一部としてインストールを組み込む場合に便利です。サイレント・モードでは、一般的に、name=valueのペアとしてインストール・パラメータを含むレスポンス・ファイル(.rsp)を使用します。グラフィカル・モードでインストーラを実行し、「インストール・サマリー」画面でインストール・パラメータをレスポンス・ファイルに保存することでレスポンス・ファイルを作成します。保存したファイルを使用して他のコンピュータでインストールをレプリケートするか、必要に応じてファイルを編集してインストールを変更します。

サイレント・モードでのCoherenceのインストールの実行手順は、次のとおりです。

1. fmw_version_coherence.jarファイルおよびレスポンス・ファイルをターゲット・コンピュータにコピーします。

2. コマンド・プロンプトから、ディレクトリをcoherence_version.jarファイルの場所に変更し、次のコマンドを実行します(JAVA_HOME/binがコンピュータのPATHにあると想定します)。

java -jar fmw_version_coherence.jar -silent -responseFile full_path_to_response_file -waitForCompletion

UNIXベースのプラットフォームの場合は、oraInst.locインベントリ・ディレクトリ・ポインタ・ファイルがデフォルトの場所(/etc)に見つからないと、そのファイルの場所を要求されます。このコンピュータにOracle製品をインストールしたのが初めてである場合は、createCentralInventory.shスクリプトを使用して、/etcディレクトリのインベントリ・ディレクトリ・ポインタ・ファイルを設定できます。このスクリプトには、ルート権限が必要です。

oraInst.locファイルにカスタムの場所を使用する場合は、-invPtrLocインストーラ・オプションを使用して場所を指定します。次に例を示します。

java -jar fmw_version_coherence.jar -silent -responseFile full_path_to_response_file -waitForCompletion -invPtrLoc /MyDirectory/oraInst.loc

oraInst.locファイルの内容には、インベントリ・ディレクトリの場所および所有者グループが含まれます。次に例を示します。

inventory_loc=/MyDirectory/oraInventory
inst_group=group

2.2.3 Coherenceクイック・インストーラの実行

クイック・インストールは、fmw_version_coherence_quick.jarという実行可能なJARファイルとして配布されます。ターゲット・コンピュータでインストーラを実行するには、javaコマンドを使用します。インストーラのオプションに関する詳細なヘルプについては、インストーラの実行中に-help引数を使用してください。

クイック・インストールは、オプションのないサイレント・インストールを実行します。この配布に含まれるライフサイクル・ツールは多くありませんが、Oracleインベントリの一部として、将来ライフサイクル操作を使用できるCoherenceコンポーネントを登録します。また、このインストールには、APIのドキュメントおよびコード・サンプルは含まれません。結果として、通常のCoherenceインストーラよりもインストール・プロセスが高速になり、インストール・フットプリントが小さくなります。ユーザーの操作を必要とせずにスクリプトの一部としてCoherenceをインストールする理想的な方法です。

Coherenceのクイック・インストールの実行手順は、次のとおりです。

1. fmw_version_coherence_quick.jarファイルをターゲット・コンピュータのディレクトリにコピーします。

2. コマンド・プロンプトから、ディレクトリをfmw_version_coherence_quick.jarファイルの場所に変更し、次のコマンドを実行します(JAVA_HOME/binがコンピュータのPATHにあると想定します)。

java -jar fmw_version_coherence_quick.jar ORACLE_HOME=/oracle

ORACLE_HOME変数の値は、CoherenceがインストールされるORACLE_HOMEディレクトリを指定します。この値は絶対パスである必要があります。ディレクトリがすでに存在する場合は、空であるか、または既存の有効なORACLE_HOMEである必要があります。ディレクトリは、既存のCoherenceのインストールを含むことはできません。ディレクトリが存在しない場合は、インストーラによって作成されます。また、空である現在の作業ディレクトリからインストールを開始し、ORACLE_HOME変数を省略することも可能で、この場合は現在の作業ディレクトリがORACLE_HOMEディレクトリになります。次に例を示します。

cd /oracle
java -jar /tmp/fmw_version_coherence_quick.jar

UNIXベースのプラットフォームの場合、クイック・インストーラは/etcディレクトリ内のoraInst.locインベントリ・ディレクトリ・ポインタ・ファイルを見つけようとします。ファイルが見つからない場合は、/tmpディレクトリがインベントリ・ディレクトリとして使用されます。このコンピュータにOracle製品をインストールしたのが初めてである場合は、createCentralInventory.shスクリプトを使用して、/etcディレクトリのインベントリ・ディレクトリ・ポインタ・ファイルを設定できます。このスクリプトには、ルート権限が必要です。

oraInst.locファイルにカスタムの場所を使用する場合は、-invPtrLocインストーラ・オプションを使用して場所を指定します。次に例を示します。

java -jar fmw_version_coherence_quick.jar -invPtrLoc /MyDirectory/oraInst.loc

oraInst.locファイルの内容には、インベントリ・ディレクトリの場所および所有者グループが含まれます。次に例を示します。

inventory_loc=/MyDirectory/oraInventory
inst_group=group

2.2.4 Coherenceサプリメンタル・インストーラの実行

サプリメンタル・インストールは、fmw_version_coherence_quick_supplemental.jarという実行可能なJARファイルとして配布されます。この配布は、既存のCoherenceインストールにAPIのドキュメントおよびコード・サンプルをインストールするために使用します。サプリメンタル・インストーラは、オプションなしのサイレント・インストールを実行します。通常は、ユーザーの操作なしでスクリプトの一部としてインストールを実行するクイック・インストーラとあわせて使用します。APIのドキュメントおよびコード・サンプルが不要な場合は、サプリメンタル・インストールをスキップできます。

1. fmw_version_coherence_quick_supplemental.jarファイルをCoherenceのインストール先のORACLE_HOMEディレクトリにコピーします。

2. コマンド・プロンプトから、ディレクトリをfmw_version_coherence_quick_supplemental.jarファイルの場所に変更し、次のコマンドを実行します(JAVA_HOME/binがコンピュータのPATHにあると想定します)。

java -jar fmw_version_coherence_quick_supplemental.jar

インストールが開始され、ステータス・メッセージが出力されます。

2.2.5 WebLogic ServerとCoherenceのインストール

WebLogic ServerインストーラにはCoherenceの配布が含まれており、WebLogic Serverと同じORACLE_HOMEディレクトリにCoherenceがインストールされます。WebLogic Serverには、WebLogic Serverドメイン内でのCoherenceの管理方法およびデプロイ方法を標準化するCoherence統合が用意されています。この統合により、CoherenceをWebLogic Serverのサブシステムにして、Coherence環境の管理にWebLogic Serverのツールおよびインフラストラクチャ(Java EEスタイルのパッケージ化およびデプロイ、リモート・サーバー管理、サーバー・クラスタ、WebLogic Scripting Tool (WLST)の自動化、管理コンソールによる構成など)を使用できます。WebLogic ServerとCoherenceのインストールの詳細は、『Oracle WebLogic ServerおよびCoherenceのインストールと構成』を参照してください。

2.3 環境変数の設定

次のシステム環境変数を設定することもできますが、Coherenceを実行するために必ず設定しなければならないわけではありません。

- JAVA_HOME - この変数はCOHERENCE_HOME/binディレクトリに含まれるスクリプトを実行するときに使用されます。この変数の値はJavaインストール・ディレクトリへのフル・パスです。JAVA_HOMEが設定されていない場合は、コンピュータのデフォルトのJavaインストール・ディレクトリが使用されます。この変数を設定すると、スクリプトで特定のJavaバージョンが使用されるようにすることができます。

- COHERENCE_HOME - この変数は、通常は便宜上設定されるものです。この変数の値はORACLE_HOME/coherenceディレクトリへのフル・パスです。

2.4 Coherenceの最初の実行

COHERENCE_HOME/binディレクトリには、開発およびテストの際に使用される、設計用に提供されたスクリプトが含まれています。cache-serverスクリプトはデフォルト構成を使用してキャッシュ・サーバーを起動します。coherenceスクリプトは、デフォルト構成を使用してキャッシュ・ファクトリ・インスタンスを起動します。キャッシュ・ファクトリ・インスタンスには、特にキャッシュの作成と操作に使用されるコマンド行ツールが含まれています。

この例では、基本的なクラスタを作成した後、クラスタにホストされるキャッシュをコマンド行ツールを使用して作成および操作します。

2.4.1 基本的なクラスタの作成

この手順では、キャッシュ・サーバーと2つのキャッシュ・ファクトリ・インスタンスという3つの独立したJavaプロセスで構成される基本的なクラスタを作成します。簡素化を図るため、この2つのプロセスは単一のマシン上に置かれます。この3つのプロセスは1つのコンピュータ上に共存します。キャッシュ・サーバーは、デフォルトで、バックアップ・データを格納するように構成されます。2つのキャッシュ・ファクトリ・インスタンスは、デフォルトで、バックアップ・データを格納しないように構成されます。各プロセスが起動されるたびに、それら3つのプロセスが自動的に結合され、クラスタ・メンバー(クラスタ・ノードとも呼ばれる)となります。

この例では、これらのクラスタ・メンバーがネットワーク上で実行されている可能性のある既存のCoherenceクラスタに参加しないようにするために、Coherenceの初期状態のデフォルト構成を多少修正してプライベートなクラスタを作成します。

注意:
Coherenceは、デフォルトではマルチキャストを使用してクラスタ・メンバーを検出します。ネットワークでマルチキャストを使用できない場合は、ユニキャストを使用するようにCoherenceを構成できます。詳細は、『Oracle Coherenceでのアプリケーションの開発』を参照してください。

基本的なクラスタを作成するには:

1. テキスト・エディタを使用してCOHERENCE_HOME/bin/cache-serverスクリプトを開きます。

2. java_opts変数を修正します。次のように、システム・プロパティcoherence.clusterを含めてください。

set java_opts="-Xms%memory% -Xmx%memory% -Dcoherence.cluster=cluster_name"

cluster_nameを、クラスタ内で一意の値に置き換えます。たとえば、クラスタ名に氏名を使用します。

3. cache-serverスクリプトを保存して閉じます。

4. 手順1から手順3をCOHERENCE_HOME/bin/coherenceスクリプトで繰り返し、同じ値をcluster_nameに指定します。

5. cache-serverスクリプトを実行します。キャッシュ・サーバーが起動し、このクラスタ・メンバーに関する情報が出力されます。

6. coherenceスクリプトの2つのインスタンスを実行します。インスタンスが起動するたびに、それぞれのクラスタ・メンバーに関する情報が出力されます。インスタンスはそれぞれ、コマンド行ツールのコマンド・プロンプトを返します。

2.4.2 キャッシュの作成

この手順では、キャッシュが作成され、基本クラスタ上でホストされます。最初のキャッシュ・ファクトリ・インスタンスのコマンド行ツールを使用して、単純な文字列がキャッシュに入力されます。次に、2番目のキャッシュ・ファクトリ・インスタンスのコマンド行ツールを使用して、キャッシュから文字列が読み出されます。サンプルは非常に単純であり、あまり実用的ではありませんが、Coherenceキャッシュの出荷時の特性を端的に示しています。さらに、これらの手順は、通常はCoherence APIを使用して直接実行されます。

キャッシュを作成するには:

1. いずれかのキャッシュ・ファクトリ・インスタンスのコマンド・プロンプトで、cacheコマンドを使用してTestという名前のキャッシュを作成します。

cache Test

2. コマンド・プロンプトでputコマンドを使用してキーと値の組合せを入力することにより(空白で区切る)、単純な文字列を新しいキャッシュに配置します。

put key1 Hello

コマンドによってnullが返され、表示されます。putコマンドは、所定のキーに対して常に前の値を返します。null値が返されたのは、これがそのキーに最初に入力された値だったためです。

3. もう1つのキャッシュ・ファクトリ・インスタンスに切り替えて、コマンド・プロンプトでcacheコマンドを使用してTestという名前のキャッシュを作成します。

cache Test

4. このコマンド・プロンプトで、getコマンドを使用してキャッシュ内の文字列を読み出して、次のキー名を入力します。

get key1

コマンドによってhelloが返され、表示されます。キャッシュ・ファクトリ・プロセスが両方とも同一クラスタに属しており、Testキャッシュがすべてのクラスタ・メンバーに認識されているため、どちらのプロセスを使用してもキャッシュ・エントリの追加または削除が可能です。また、キャッシュ・サーバーにキャッシュ・データのバックアップが格納されているため、いずれの(または両方の)キャッシュ・ファクトリ・プロセスがシャットダウンされてもキャッシュ・データは保持されます。

2.5 Mavenとの統合

Mavenは、プロジェクトの依存性、サード・パーティの依存性およびビルドのライフサイクル定義の構成を可能にするビルドおよび依存性システムです。ソフトウェアのプロジェクトでは、ビルド・プロセスを容易化および標準化するためにMavenがよく使用されます。Mavenの詳細は、http://maven.apache.org/を参照してください。

Oracle Middlewareには、Oracleホーム・ディレクトリをMavenリポジトリと同期化し、Mavenの使用と命名規則を標準化するプラグインが用意されています。このプラグインを使用すると、CoherenceアーティファクトをMavenリポジトリにアップロードできるようになり、それによってアーティファクトが開発プロジェクトでどのように消費されているかが容易化されます。Mavenの設定および同期化プラグインの使用の詳細は、『Continuous Integrationを使用したアプリケーションの開発』を参照してください。

また、Mavenの統合には、Coherenceグリッド・アーカイブ(GAR)用のアーキタイプおよびパッケージ化プラグインが含まれます。Coherence GARは、CoherenceアプリケーションをWLSドメイン内にデプロイする際に通常使用されるモジュール・タイプです。Mavenアーキタイプ・プラグインはGAR構造を生成し、サンプルの構成ファイルを提供します。パッケージ化プラグインは、プロジェクトの内容および依存性に基づいてGARを生成し、依存性、ソースおよび構成ファイルが正しくGARにコピーされるようにします。

Coherence用のMavenプラグインおよび構成ファイルは、COHERENCE_HOME/pluginsディレクトリにあります。Maven GARプラグインおよびアーキタイプは、同期化プラグインの一部としてエンタープライズ・リポジトリにインストールされます。プラグインを使用してCoherenceをビルド・プロセスに組み込む手順については、『Continuous Integrationを使用したアプリケーションの開発』を参照してください。

2.6 Coherenceパッチのインストール

Coherenceのパッチは、My Oracle Supportで定期的に更新されます。

https://support.oracle.com

パッチは、Oracleの標準パッチ適用メカニズムを使用してインストールされます。パッチのインストールの詳細は、『Oracle® Fusion Middleware Opatchによるパッチ適用』を参照してください。

2.7 Coherenceのアンインストール

Coherenceをアンインストールするには、Oracle Fusion Middleware Deinstallerを使用します。アンインストーラでは、アンインストールするCoherenceのORACLE_HOMEディレクトリのコンポーネントを選択することができ、CoherenceのORACLE_HOMEディレクトリを完全に削除する場合にも使用できます。

アンインストール・ウィザードを使用してCoherenceをアンインストールするには、アンインストーラを起動します。UNIXベース・プラットフォームでは、Coherence ORACLE_HOME/oui/bin/deinstall.shスクリプトを使用し、Windowsでは、Coherence ORACLE_HOME\oui\bin\deinstall.cmdスクリプトを使用します。Windowsの場合は、スクリプトへのショートカットが使用可能で、これはスタート・メニューのOracleプログラム・グループの中にあります。

表2-2では、アンインストール・プログラムが表示される順序に画面が列挙されています。

表2-2 Oracle Coherenceのアンインストール画面

画面

説明

ようこそ

製品のアンインストーラの紹介画面です。

アンインストール・サマリー

画面が表示され、アンインストールされる機能の一覧が表示されます。

アンインストールの進行状況

画面が表示され、成功および失敗したタスクがすべて表示されます。

アンインストール完了

画面が表示され、アンインストールのサマリーが表示されます。「終了」をクリックし、アンインストール・プログラムを閉じます。

注意:
ORACLE_HOMEディレクトリ内の追加ファイルは手動で削除する必要があります。Windowsの場合は、スタート・メニューにあるOracleプログラム・グループも手動で削除する必要があります。

3 クライアント・ディストリビューションのインストール

この章では、Coherence C++および.NETのクライアント・ディストリビューションのインストール手順について説明します。Javaクライアント用の別個のディストリビューションはありません。Java Extendクライアントは、Coherence for Javaを使用して作成されます。また、CoherenceのクラスタはJavaに実装されます。ただし、Coherence for Javaは、いずれかのクライアント・ディストリビューションを使用してインストールする必要があります。

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

- Coherence for Javaのインストール

- C++クライアント・ディストリビューションのインストール

- .NETクライアント・ディストリビューションのインストール

- Coherence*Extendのバージョン間の互換性

3.1 Coherence for Javaのインストール

Coherence for Javaディストリビューションは、JavaベースのExtendクライアントの構築および使用の際に使用します。Coherence for Javaのインストールは、第2章を参照してください。

3.2 C++クライアント・ディストリビューションのインストール

Oracle Coherence for C++ディストリビューションは、C++ Extendクライアントの開発および実行の際に使用します。ディストリビューションの最新バージョンは、Oracle Technology NetworkのCoherence製品に関するページからダウンロードできます。

http://www.oracle.com/technology/software/products/ias/htdocs/coherence.html

この項では、次の項目について説明します。

- Coherence C++クライアントでサポートされている環境

- Microsoft固有の要件

- Coherence for C++ディストリビューションの抽出

3.2.1 Coherence C++クライアントでサポートされている環境

表3-1は、Coherence for C++がサポートされているプラットフォームおよびオペレーティング・システムのリストです。

表3-1 Coherence for C++がサポートされているプラットフォームとオペレーティング・システム

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

コンパイラ

アーキテクチャ

Microsoft Windows Server: 2012R2+
クライアント: Windows 7以降

Visual Studio 2010、2012、2013および2015

x86、x64

Sun Solaris 10以降

SunPro 5.9以降脚注 2

SPARC、x86、x64

Linux

GCC 4.1.2以降、GNU libc 2.5以降

x86、x64

Apple OS X 10.10以降脚注 3

Xcode 6 (GCC)

x64

脚注 1 具体的には、Sun C++ 5.9 SPARCパッチ124863-14以降がサポートされています。

脚注 2 具体的には、Sun C++ 5.9 x86/x64パッチ124864-14以降がサポートされています。

脚注 3 C++アプリケーションをApple OS Xでビルドする場合、コマンド"g++" ("CC"ではなく)を使用してコンパイルする必要があります。

3.2.2 Microsoft固有の要件

Microsoft Windowsにデプロイする場合は、他のVisual Studioベースのアプリケーションと同様に、対応するVisual Studioランタイム・ライブラリをデプロイメント・コンピュータにインストールする必要があります。

- Visual Studio 2015: x86またはx64向けの再配布可能なランタイム・ライブラリ。
http://www.microsoft.com/en-eg/download/details.aspx?id=48145

- Visual Studio 2013: x86またはx64向けの再配布可能なランタイム・ライブラリ。
http://www.microsoft.com/en-us/download/details.aspx?id=40784

- Visual Studio 2012: x86またはx64向けの再配布可能なランタイム・ライブラリ。
http://www.microsoft.com/en-us/download/details.aspx?id=30679

- Visual Studio 2010: x86またはx64向けの再配布可能なランタイム・ライブラリ。
x86:

http://www.microsoft.com/en-us/download/details.aspx?id=5555

x64:

http://www.microsoft.com/en-us/download/details.aspx?id=14632

3.2.3 Coherence for C++ディストリビューションの抽出

Coherence for C++はZIPファイルとして配布されます。ZIPユーティリティまたはunzipコマンド行ユーティリティを使用して、ターゲット・コンピュータの任意の場所にZIPファイルを解凍します。抽出されたファイルは、coherence-cppという単一のディレクトリ内にまとめられています。

次の例では、unzipユーティリティを使用して、/optディレクトリ(UNIXベースのオペレーティング・システムで推奨されるインストール・ディレクトリ)にディストリビューションを抽出します。unzipユーティリティが使用できない場合は、ターゲットのオペレーティング・システムで提供されているZIPユーティリティを使用します。

unzip /path_to_zip/coherence-cpp-version_number-platform-architecture-compiler.zip -d /opt

次の例では、unzipユーティリティを使用して、Windowsオペレーティング・システムのC:\ディレクトリにディストリビューションを抽出します。

unzip C:\path_to_zip\coherence-cpp-version_number-platform-architecture-compiler.zip -d C:\

インストール・ディレクトリに含まれているディレクトリの説明は、次のとおりです。

- bin – このディレクトリに含まれるsanka.exeは、共有ライブラリ内に埋め込まれている実行可能クラスを起動するアプリケーション・ランチャです。

- doc – このディレクトリには、Coherence for C++に関するドキュメント(APIドキュメントを含む)が含まれています。

- include - このディレクトリには、Coherence APIを使用し、アプリケーションとともにコンパイルする必要があるヘッダー・ファイルが含まれています。

- lib – このディレクトリにはCoherence for C++ライブラリが含まれています。coherence.dllファイルは、開発およびランタイム用のメイン・ライブラリです。これについては、このドキュメント全体で詳細に説明します。

注意:

- Visual Studio 2015をサポートするには、\lib\vs2015\coherence.dllを使用します。

- Solarisでは、STLport、/lib/stlport/libcoherence.soを使用します。

3.3 .NETクライアント・ディストリビューションのインストール

Oracle Coherence for .NETディストリビューションは、.NET Extendクライアントの開発および使用の際に使用します。ディストリビューションの最新バージョンは、Oracle Technology NetworkのCoherence製品に関するページからダウンロードできます。

http://www.oracle.com/technology/software/products/ias/htdocs/coherence.html

この項では、次の項目について説明します。

- 前提条件

- インストーラの実行

- Coherence .NETバージョン番号マッピング

- Coherence for .NETのデプロイ

3.3.1 前提条件

Coherence for .NETを使用するには、次のものが必要です。

- Microsoft .NET 4.0以上のランタイムとSDK:
http://www.microsoft.com/download/en/default.aspx

- サポートされているMicrosoft Windowsオペレーティング・システム(前述の該当する.NETランタイムのシステム要件を参照)

- MSHelp 2.xランタイム。これは、Visual Studio 200x、および次のリストにあるMicrosoft製品に含まれています。
http://www.helpware.net/mshelp2/h20.htm#MS_H2_Runtime

- Coherence for Javaディストリビューションの一部として提供されているexample.zipファイル内の例を構築および実行するには、Microsoft Visual Studio 2010以上が必要です。

3.3.2 インストーラの実行

Coherence for .NETは、インストーラを含むZIPファイルとして配布されています。ZIPユーティリティまたはunzipコマンド行ユーティリティを使用して、ターゲット・コンピュータの任意の場所にインストーラを抽出します。次の例では、unzipユーティリティを使用して、C:\ディレクトリにインストーラを抽出します。

unzip C:\path_to_zip\coherence-net-version_number.zip -d C:\

インストーラを実行する手順は、次のとおりです。

1. ZIPファイルの抽出先のディレクトリで、coherence-net-version.msiファイルをダブルクリックします。

2. インストーラの指示に従ってインストールを完了します。

注意:
インストーラの実行中に、インストールをロールバックすると表示された場合は、実行モードのレベルを上げてインストーラを実行します。たとえば、管理者の権限でコマンド・プロンプトからMSIファイルを実行すれば、インストール・プロセスを完了できます。Windows 7の場合は、コマンド・プロンプトを右クリックして「管理者として実行」を選択します。

インストール・ディレクトリに含まれているディレクトリの説明は、次のとおりです。

- bin – このディレクトリにはCoherence for .NETライブラリが含まれています。Coherence.dllファイルは、開発およびランタイム用のメイン・ライブラリです。これについては、このドキュメント全体で詳細に説明します。

- config – このディレクトリには、Coherenceクライアント構成ファイル用のXMLスキーマと、Coherenceで定義したユーザー定義型に対するPOF構成ファイルが含まれています。

- doc – このディレクトリには、Coherence for .NETに関するAPIドキュメントが含まれています。APIドキュメントは、HTMLヘルプ(Coherence.chm)、MSHelp 2.0およびMS Help Viewerです。

3.3.3 Coherence .NETバージョン番号マッピング

Coherenceアセンブリは、カスタム・バージョン番号マッピングを使用します。Oracleバージョン番号は5桁 (N.N.N.N.N)を使用しますが、.NETバージョン番号は4桁(N.N.N.N)までしか使用できません。.NETのバージョン規則をサポートするために、.NETのバージョンの4桁目にOracleの4桁目および5桁目を組み合せます。

.NETのバージョンの4桁目の作成には次の計算が使用されます:

.NET4桁目= Oracle4桁目 * 1000 + Oracle5桁目

.NETのバージョンの4桁目をOracleのバージョンの5桁目に変換するには次の計算が使用されます:

Oracle4桁目= int(.NET4桁目 / 1000)

Oracle5桁目= .NET4桁目 - (Oracle4桁目 * 1000)

次に例を示します。

.NETバージョン番号

Oracleバージョン番号

12.2.1.0

12.2.1.0.0

12.2.1.1

12.2.1.0.1

12.2.1.1000

12.2.1.1.0

12.2.1.1001

12.2.1.1.1

12.2.1.2010

12.2.1.2.10

12.2.1.10010

12.2.1.10.10

注意:
ロギングでは.NETの4桁目がOracleの4桁目および5桁目に変換されるため、JavaおよびC++のログ・メッセージと同じようにロギング・メッセージが表示されます。

3.3.4 Coherence for .NETのデプロイ

Coherence for .NETには、専用のデプロイメント構成は必要ありません。bin\フォルダにあるCoherence.dllへの参照を、Microsoft.NETアプリケーションに追加するのみです。

3.4 Coherence*Extendのバージョン間の互換性

ExtendプロトコルとPOFの互換性はメジャー・リリースの2桁目が同じ場合(12.1、12.2など)は維持されますが、メジャー・リリースの1桁目が同じ場合(12.x、13.xなど)は維持されない可能性があります。

注意:
POFでは、後方互換のシリアライズ変更がサポート可能なため、POFを使用する場合は互換性が要求されます。

12.1.2.0.1より前のリリースでは、Extendクライアントはクラスタ・プロキシとの前方互換性のみをサポートしています。つまり、Extendクライアントは、メジャー・リリースの2桁目が同じまたはそれ以降であるクラスタ・プロキシと接続可能です。

リリース12.1.2.0.1以降では、Extendクライアントはクラスタ・プロキシとの前方互換性および後方互換性を両方ともサポートしています。つまり、Extendクライアントは、より小さいバージョン番号またはより大きいバージョン番号のクラスタ・プロキシと接続可能です。たとえば、12.1.2.0.2のExtendクライアントは、12.1.2.0.1のプロキシに接続できます。Extendクライアントの後方互換性は、バージョン12.1.2.0.1より前のプロキシ(12.1.2.0.0およびバージョン3.7.1以前のプロキシ)ではサポートされていません。

Coherence 12.1.2.0.0のExtendクライアントは、12.1.2.0.0以降のクラスタ・プロキシが必要です。12.1.2.0.0以外(たとえば12.1.2.0.1や12.1.2.0.2)のCoherence 12.1.2のExtendクライアントでは、12.1.2.0.1以降のクラスタ・プロキシが必要です。

クラスタ・プロキシとの下位互換性は、アップグレードの利便性を目的とし、長期的なソリューションではありません。これによって、プロキシ・サーバーおよびクラスタが新しくなる前にExtendクライアントが新しいバージョンにアップグレードされることを可能にします。ただし、ベスト・プラクティスとしては、クラスタは常に最新バージョンにアップグレードしておく必要があります。Extendクライアントと接続されたサーバーのバージョンが異なる場合、Extendクライアントの機能は2つのリリースまたはパッチ・セットの古い方のバージョンに制限されます。

Coherence 12.2.1の後方互換性の例外

Coherence 12.2.1クラスタ・プロキシは、バージョン3のExtendクライアントと後方互換性があります。つまり、バージョン3のクライアントは、12.2.1のクラスタ・プロキシと接続可能です。12.2.1の後方互換性は、Coherence*Extendのメジャー・リリース互換性ポリシーの例外の1つです。クラスタ・プロキシの12.2.1より後のバージョンには、現在の例外が含まれず、後方互換性が維持されません。

4 アプリケーション・サーバーへのCoherence*Webのインストール

Coherence*Webは、クラスタ化環境におけるセッション状態の管理に特化したHTTPセッション管理モジュールです。Oracle Coherenceの上にビルドされ、Coherence*WebはCoherenceデータ・グリッドのデータのスケーラビリティ、可用性、信頼性およびパフォーマンスをメモリー内のセッション管理と記憶域にもたらします。

Coherence*Webは、Oracle GlassFish Server、Oracle WebLogic Server、IBM WebSphere、Tomcatなど、広く使用されているアプリケーション・サーバーにデプロイできます。サポートされているアプリケーション・サーバーの完全なリストは、『Oracle Coherence*WebでのHTTPセッション・マネージメントの管理』のサポートされているWebコンテナに関する項を参照してください。

4.1 WebLogic ServerでのCoherence*Webのインストール

Coherence*Webをサポートしているすべてのファイルは、Coherenceディストリビューションに付属しています。WebLogic Serverを使用している場合、WebLogic Server and Coherenceを同時にインストールできます。詳細は、『Oracle WebLogic ServerおよびCoherenceのインストールと構成』を参照してください。

WebLogic Server and Coherenceをインストールすると、アプリケーションとCoherence*Webを追加の構成をせずに統合できます。『Oracle Coherence*WebでのHTTPセッション・マネージメントの管理』の「WebLogic ServerでのCoherence*Webの使用方法」を参照してください。

4.2 その他のアプリケーション・サーバーへのCoherence*Webのインストール

Oracle GlassFish Server、Oracle WebLogic Server、IBM WebSphere、Tomcatなど、その他のアプリケーション・サーバーを使用している場合、第2章「Oracle Coherence for Javaのインストール」で説明するようにCoherenceをインストールできます。Coherence*Webファイルは、ディストリビューションに付属しています。ただし、インストール後のいくつかの手順を完了して、Coherence*Webとアプリケーションを統合する必要があります。詳細は、『Oracle Coherence*WebでのHTTPセッション・マネージメントの管理』の「他のアプリケーション・サーバーにおけるCoherence*Webの使用方法」を参照してください。

5 以前のリリースからのCoherenceのアップグレード

この章では、Coherenceの新しいバージョンにアップグレードする際に必要な手順およびガイドラインを説明します。

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

- 一般的なアップグレード・ガイドライン

- バージョン12.1.xからのアップグレード

- バージョン3.7.1.xからのアップグレード

5.1 一般的なアップグレード・ガイドライン

一般的な手順:

- リリース・ノートをよく読み、使用している機能の変更点を確認します。

- 特に、デフォルトの動作の変更に注意します。

- わずかな変更でも顧客SLAに影響を与える可能性があるため、QAおよびパフォーマンス・テストの期間を計画します。

- Coherenceのアップグレードで必要な場合、JVMへのアップグレードを計画します。

- 任意の外部システムとの互換性をチェックします。

- 環境、ネットワーク、外部システムでの変更を、計画されたアップグレードと組み合せないようにします(または、製品の新しいリリースとして扱います)。

5.2 バージョン12.1.xからのアップグレード

この項では、12.1.xから12.2.1.xへのアップグレードで、共通して実行するタスクについて説明します。

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

- JVMの更新

- Mavenビルド・スクリプトの更新

- キャッシュ構成ファイルの更新

- アドレスおよびポートの割当ての更新

- 同一ネットワーク上で実行される複数のクラスタの更新

- TCP使用の計画

- WebLogic ServerでのCoherence RESTの更新済パッケージ化

- Coherenceコンソールでのcoherence.jarの実行

- CohQLスクリプトの更新

- Coherence*Web構成の更新

- サポートされているWebコンテナへの移行

- ActiveCache統合の削除

- 暗号化フィルタの削除

5.2.1 JVMの更新

CoherenceでサポートされているVMバージョンの最小バージョンが変更されました。詳細は、「ランタイム要件」を参照してください。

5.2.2 Mavenビルド・スクリプトの更新

maven-gar-pluginプラグインおよびmaven-gar-archetypeアーキタイプは、それぞれgar-maven-pluginおよびgar-maven-archetypeにリファクタリングされました。また、現在のバージョンは、12.2.1-0-0です。Mavenを使用して、Oracle Coherenceのアプリケーションを作成、ビルドおよびデプロイしている場合、使用するスクリプトを変更する必要があります。CoherenceでのMavenの使用方法の詳細は、『継続的インテグレーションによるアプリケーションの開発』を参照してください。

5.2.3 キャッシュ構成ファイルの更新

新しいデフォルトのキャッシュ構成ファイルは、coherence.jarライブラリに含まれています。新しいデフォルト構成は、以前の構成との下位互換性はありません。ソリューションが、以前のデフォルトのキャッシュ構成ファイルに依存する場合、新しいキャッシュ構成ファイルを記述し、必要なキャッシュ・マッピングを定義し、デフォルトのキャッシュ構成ファイルをオーバーライドすれば、問題を適切に解決できます。ソリューションがデフォルトのキャッシュ構成ファイルに依存しない場合、更新は必要ありません。

5.2.4 アドレスおよびポートの割当ての更新

大幅な機能の拡張によりCoherenceのアドレスおよびポートを構成する方法が簡素化され、ソリューションの更新が必要な場合があります。拡張機能は次のとおりです。

- Coherenceでは、現在、デフォルトのクラスタ・ポートとして、ポート7574をマルチキャスト通信で使用し、239.192.0.0をデフォルトのアドレスとして使用します。明示的に構成されたアドレスおよびポートは、今までどおり使用できます。ただし、以前のデフォルトに依存するソリューションは、新しいデフォルトを使用するために更新する必要があります。『Oracle Coherenceでのアプリケーションの開発』のクラスタのマルチキャスト・アドレスおよびポートの指定に関する項を参照してください。

- ユニキャスト・ポートが、現在、自動的に選択されます。明示的に構成されたユニキャスト・ポートを、今までどおり使用できます。ただし、以前のデフォルト・ポートに依存するソリューションは、必要に応じて更新する必要があります。ほとんどの使用方法では、ユニキャスト・ポートは明示的に構成する必要がありません。『Oracle Coherenceでのアプリケーションの開発』のクラスタ・メンバーのユニキャスト・アドレスの指定に関する項を参照してください。

- WKAアドレスでは、現在、デフォルトのクラスタ・ポートおよび自動選択されるルーティングの宛先のアドレスを使用します。明示的に構成されたWKAアドレスを、今までどおり使用できます。ただし、以前のデフォルト・アドレスおよびポートに依存するソリューションは、必要に応じて更新する必要があります。『Oracle Coherenceでのアプリケーションの開発』のWKAアドレスの指定に関する項も参照してください。

- 名前サービスは、現在、自動的にデフォルトのクラスタ・ポートを使用します。明示的に構成されたプロキシ・アドレスを、今までどおり使用できます。ただし、プロキシの特定のために名前サービスに依存し、以前のデフォルト名前サービス・ポートに依存する拡張クライアントは、新しいデフォルトを使用するために更新する必要があります。同一のネットワーク上でプロキシとして実行され、名前サービスを使用する拡張クライアントでは、アドレスまたはポートを構成する必要はありません。『Oracle Coherenceリモート・クライアントの開発』の単一のプロキシ・サービスの定義に関する項を参照してください。

5.2.5 同一ネットワーク上で実行される複数のクラスタの更新

複数のクラスタは、現在、1つのクラスタ・ポートと、マルチキャスト・アドレスまたはWKAアドレスを共有することができます。多くの場合、クラスタ・ポートまたはマルチキャスト・アドレスを変更する必要はありません。SSLを使用するように構成されたクラスタは、共有をサポートしていません。加えて、IPv4 (-DpreferIPv4Stack=true)を使用するように構成されたクラスタは、IPv4を使用するように構成された他のクラスタとのみ共有できます。ソリューションに、同一のネットワーク上に複数のクラスタが含まれる場合、Coherenceのデフォルトを使用し、アドレスおよびポートを明示的に構成しないようにしてください。

5.2.6 TCP使用の計画

クラスタ・データ・サービス間で使用されるデフォルトのプロトコルがUDPからTCPメッセージ・バス(TMB)に変更されました。ほとんどのネットワークはすでにTCP用に最適に構成されているので、Coherence特有の構成は必要ありません。また、UDPとTCP間でネットワーク負荷の違いはほとんどありません。メッセージ・バス・テスト・ユーティリティが提供され、ネットワーク・ノード間のTMBのパフォーマンスのテストに使用できます。『Oracle Coherenceの管理』のメッセージ・バス・テスト・ユーティリティの実行に関する項を参照してください。TCPのチューニングの詳細は『Oracle Coherenceの管理』のTCPの考慮事項に関する項を参照してください。

5.2.7 WebLogic ServerでのCoherence RESTの更新済パッケージ化

WebLogic Serverは、現在、coherence-rest.jarライブラリをサーバー・クラスパス内に含めます。WebLogicサーバー上にデプロイされた既存のCoherence RESTアプリケーションを再パッケージ化し、coherence-rest.jarライブラリをアプリケーションから削除する必要があります。『Oracle Coherenceリモート・クライアントの開発』のWebLogicサーバーへのデプロイに関する項を参照してください。

5.2.8 Coherenceコンソールでのcoherence.jarの実行

java -jar coherence.jarの実行により、レガシーCoherenceコンソールではなく、DefaultCacheServerインスタンスが起動します。ソリューションがコンソールに依存している場合、/bin/coherenceスクリプトまたはディレクトリを使用してコンソールを起動できます。この場合、次を使用します。

java -cp coherence.jar com.tangosol.net.CacheFactory

5.2.9 CohQLスクリプトの更新

CohQLで使用可能なBACKUP CACHEおよびRESTORE CACE文は、非推奨になりました。Coherenceの永続性および新しい永続性文を使用するには、これらのコマンドに依存するアプリケーションまたはスクリプトを更新する必要があります。『Oracle Coherenceでのアプリケーションの開発』を参照してください。

5.2.10 Coherence*Web構成の更新

デフォルトのCoherence*Webセッション構成ファイルは、ニア・キャッシュ定義を含みません。ニア・キャッシュ構成に依存するアプリケーションは、デフォルトの構成ファイルをオーバーライドして、ニア・キャッシュ定義を定義する必要があります。ニア・キャッシュの定義の詳細は、『Oracle Coherenceでのアプリケーションの開発』のニア・キャッシュ・スキームの定義に関する項を参照してください。

5.2.11 サポートされているWebコンテナへの移行

Coherence*Webでは、現在、次のWebコンテナをサポートしていません。Apache Tomcat 5.5.n、Apache Tomcat 6.0.n、Caucho Resin 3.1.n、IBM WebSphere 5.n、IBM WebSphere 6.n、IBM WebSphere 7.n、Sun GlassFish 2.n、Sun Application Server 8.n、Oracle OC4J 10.1.3.n、Oracle OC4J 10.1.2.n、Oracle GlassFish 3.n、Oracle GlassFish 4.n、Jetty 6.1.n、Jetty 5.1.n、JBoss Application Server。Coherence HTTPセッション管理が必要なアプリケーションを移行し、サポートされているWebコンテナのバージョンを使用する必要があります。『Oracle Coherence*WebでのHTTPセッション・マネージメントの管理』を参照してください。

5.2.12 ActiveCache統合の削除

CoherenceとWebLogic Serverとの統合で以前使用されたactive-cache.jarライブラリは、WLSディストリビューションから削除されました。CoherenceとWLSの統合に依存するソリューションを再ファクタリングし、かわりにManaged Coherence Server統合を使用する必要があります。『Oracle Coherenceの管理』を参照してください。

5.2.13 暗号化フィルタの削除

暗号化フィルタは、現在、使用不可であり、今後、使用されません。暗号化フィルタに依存するソリューションを構成して、SSLを使用する必要があります。「Oracle Coherenceの保護」を参照してください。

5.3 バージョン3.7.1.xからのアップグレード

この項では、Coherence 3.7.1.xアプリケーションの12.xへの移行で、共通して使用するタスクについて説明します。使用するCoherenceデプロイメントで必要なタスクを実行してください。ただし、これらのタスクは、12.1.xへアップグレードする際の問題を考慮してから実行してください。これは、この項の手順にとって代わる場合があります。「バージョン12.1.xからのアップグレード」を参照してください。

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

- WebLogic ServerでのCoherenceおよびCoherence*Webを使用するアプリケーションのアップグレード

- WebLogic ServerでのTopLink Gridを使用するアプリケーションのアップグレード

- Coherence*Extendのアップグレード

- Coherence*Webのアップグレード

- WebLogic ServerでのActiveCacheアプリケーションのアップグレード

- 非推奨となった機能の代替

- アップグレードのその他の問題

5.3.1 WebLogic ServerでのCoherenceおよびCoherence*Webを使用するアプリケーションのアップグレード

次の手順に従って、CoherenceおよびCoherence*Webを使用してWebLogic Serverで実行するアプリケーションをアップグレードします。

1. 既存のWebLogic Serverドメインで次を実行します。

- Coherence*Webを使用するアプリケーションを停止してアンデプロイします。

- coherence.jarおよびcoherence-web-spi.warファイルをアンデプロイします(デプロイされている場合)。

2. 手順に従って、WebLogic ServerとそのドメインをWebLogic Server 12c (12.2.1)にアップグレードします。WebLogic Serverのアップグレードについては、『Oracle Fusion Middleware Oracle WebLogic Serverのアップグレード』を参照してください。

3. coherence.jarファイルへの参照をすべて削除するようにアプリケーションを変更します。

- weblogic.xmlファイルで、coherence-web-spiファイルを参照する<library-ref>要素を削除します。

- META-INF/MANIFEST.MFファイルで、Coherenceを拡張として識別する次の行を削除します。

Extension-List: coherence
coherence-Extension-Name: coherence

- クラスパスにあるcoherence.jarファイルへの明示的な参照をすべて削除します。

4. Coherence 12c (12.2.1)で必要な設定を使用するようにアプリケーションを変更します。

- Coherenceリリース3.7.1.xでデフォルトのsession-cache-config.xmlファイルを使用していた場合、12c (12.2.1)では名前がdefault-session-cache-config.xmlに変更されたことに注意してください。
たとえば、このコンテキスト・パラメータ値をCoherenceリリース3.7.1.xアプリケーションで使用していたとします。

coherence.cacheconfig=session-cache-config.xml

値をdefault-session-cache-config.xmlに変更します。

coherence.cacheconfig=default-session-cache-config.xml

セッション・キャッシュ・ファイル名を変更する必要はありません。カスタムのsession-cache-config.xmlを作成した場合、ファイル名はそのまま使用できます。

- アプリケーションがEARファイル内にある場合、カスタムのsession-cache-configファイルのパッケージ化が変更されています。パッケージ化の手順については、『Oracle Coherence*WebでのHTTPセッション・マネージメントの管理』のカスタム・セッション・キャッシュ構成ファイルの使用に関する項を参照してください。

5. アプリケーションをWebLogic Serverに再デプロイします。

5.3.2 WebLogic ServerでのTopLink Gridを使用するアプリケーションのアップグレード

次の項では、アプリケーション・スコープ、EARスコープおよびWARスコープが指定されたクラスタで実行するアプリケーションのアップグレード方法について説明します。アプリケーションをアップグレードする前に、Coherence側の構成を最初にアップグレードする必要があります。

- Coherence側の構成のアップグレード

- アプリケーション・サーバー・スコープ指定されたCoherenceクラスタのアップグレード

- EARスコープ指定されたCoherenceクラスタのアップグレード

- WARスコープ指定されたCoherenceクラスタのアップグレード

5.3.2.1 Coherence側の構成のアップグレード

次の手順に従って、Coherence側の構成をアップグレードします。12c (12.2.1)以前のCoherence JARを参照する、現在使用中の12c (12.2.1)以前のCoherenceキャッシュ・サーバー起動スクリプトをすべてアップグレードする必要があります。Coherenceに付属しているスクリプトは変更する必要はありません。

1. Coherenceサーバーを停止します。

2. クラスパス(WebLogic Server 12c (12.2.1)では${ORACLE_HOME})を変更するように、Coherenceキャッシュ・サーバー起動スクリプトを変更します。
—coherence.jarを${ORACLE_HOME}/coherence/lib/coherence.jarに置き換えます。

—javax.persistence_1.*.jarを${ORACLE_HOME}/oracle_common/modules/javax.persistence_2.0.0.0_2-0.jarに置き換えます。

—com.oracle.toplinkgrid_1.1.0.0_11-1-1-6-0.jarを${ORACLE_HOME}/oracle_common/modules/oracle.toplink_12.1.2/toplink-grid.jarに置き換えます。

—org.eclipse.persistence_1.2.0.0_2-3.jarを${ORACLE_HOME}/oracle_common/modules/oracle.toplink_12.1.2/eclipselink.jarに置き換えます。

3. Coherenceサーバーを再起動します。

5.3.2.2 アプリケーション・サーバー・スコープ指定されたCoherenceクラスタのアップグレード

アプリケーション・サーバー・スコープ指定されたアプリケーションをCoherenceクラスタで実行している場合は、次の手順に従ってCoherence 12c (12.2.1)にアップグレードします。

1. 手順に従って、WebLogic ServerとそのドメインをWebLogic Server 12c (12.2.1)にアップグレードします。WebLogic Serverとそのドメインのアップグレードについては、『Oracle Fusion Middleware Oracle WebLogic Serverのアップグレード』を参照してください。

2. 管理対象サーバーを起動する前に、次の手順に従ってWebLogic Server側の構成をアップグレードします。

注意:
WebLogic Server 12c (12.2.1)では、toplink-grid.jarおよびcoherence.jarファイルは(coherence-web.jarおよびeclipselink.jarファイルと同様に)WebLogic Serverシステム・クラスパスに自動的に含まれます。

1. WebLogic Serverクラスパスから、toplink-grid.jarファイルへの明示的な参照をすべて削除します。次に、古い参照の例を示します。

com.oracle.toplinkgrid_1.1.0.0_11-1-1-6-0.jar
javax.persistence_1.*.jar
org.eclipse.persistence_1.2.0.0_2-3.jar

2. WebLogic Serverクラスパスから、coherence.jarファイルへの明示的な参照をすべて削除します。次に、古い参照の例を示します。

coherence.jar
coherence-web.jar
coherence-web-spi.war

3. WebLogic Serverを再起動します。

4. アプリケーションを再デプロイします。

5.3.2.3 EARスコープ指定されたCoherenceクラスタのアップグレード

EARスコープ指定されたTopLinkアプリケーションをCoherenceクラスタで実行している場合は、次のいずれかの方法で、Coherence 12c (12.2.1)を使用するようにアプリケーションをアップグレードできます。

- GARファイル形式を使用するようにアプリケーションをアップグレードします。「GARファイル形式の使用」を参照してください。

- 共有ライブラリを更新します。「共有ライブラリの更新」を参照してください。

- EARファイルにパッケージ化されているtoplink-grid.jarおよびcoherence.jarファイルを更新します。「EARファイルへのtoplink-grid.jarおよびcoherence.jarファイルのパッケージ化」を参照してください。

注意:
次の手順は、WebLogic ServerとそのドメインをWebLogic Server 12c (12.2.1)にアップグレード済であることを前提とします。WebLogic Serverのアップグレードについては、『Oracle Fusion Middleware Oracle WebLogic Serverのアップグレード』を参照してください。

GARファイル形式の使用

次の手順は、GARファイル形式を使用するようにアプリケーションをアップグレードすることを前提とします。このアプローチをお薦めします。GARファイル形式でのアプリケーションのパッケージ化の詳細は、『Oracle WebLogic Server Oracle Coherenceアプリケーションの開発』のWebLogic Server用のCoherenceアプリケーションの作成に関する項を参照してください。

1. アプリケーションおよびWebLogic Serverクラスパスから、CoherenceおよびTopLink Grid共有ライブラリへの参照をすべて削除します。

注意:
WebLogic Server 12c (12.2.1)では、toplink-grid.jarおよびcoherence.jarファイルは(coherence-web.jarおよびeclipselink.jarファイルと同様に)WebLogic Serverシステム・クラスパスに自動的に含まれるため、これらの参照を削除できます。

次に、Coherenceへの参照の例を示します。

coherence.jar
coherence-web.jar
coherence-web-spi.war

次に、TopLink Gridへの参照の例を示します。

com.oracle.toplinkgrid_1.1.0.0_11-1-1-6-0.jar
javax.persistence_1.*.jar
org.eclipse.persistence_1.2.0.0_2-3.jar

2. weblogic-application.xmlファイルから、coherence.jarおよびtoplink-grid.jarへの参照を削除します。

3. weblogic-application.xmlファイルから、Coherenceクラスタのプロパティを構成する<coherence-cluster-ref>要素を削除します。

4. フィルタリング・クラスローダーが構成済の場合は削除します。この機能は、weblogic-application.xmlファイルの<prefer-application-packages>要素で定義されます。coherence.jarおよびtoplink-grid.jarファイルを参照する<prefer-application-packages>要素をすべて削除します。

5. toplink-grid.jarおよびcoherence.jarファイルをEARファイル内にパッケージ化している場合は、それらをEARファイルから削除します。

6. WebLogic ServerおよびCoherenceサーバーを再起動します。

7. アプリケーションを再デプロイします。

共有ライブラリの更新

このアプローチは、toplink-grid.jarおよびcoherence.jarファイルを共有ライブラリとして参照しており、アプリケーションのパッケージ化を変更しないことを前提にします。この場合は、12c (12.2.1)バージョンのtoplink-grid.jarおよびcoherence.jarファイルを共有ライブラリとして再デプロイする必要があります。

EARファイルへのtoplink-grid.jarおよびcoherence.jarファイルのパッケージ化

このアプローチは、toplink-grid.jarおよびcoherence.jarファイルをEARファイルにパッケージ化していることを前提とします。この場合は、toplink-grid.jarおよびcoherence.jarファイルを、これらのファイルの12c (12.2.1)バージョンに置き換えます。

5.3.2.4 WARスコープ指定されたCoherenceクラスタのアップグレード

WARスコープ指定されたTopLinkアプリケーションをCoherenceクラスタで実行している場合は、次のいずれかの方法で、Coherence 12c (12.2.1)を使用するようにアプリケーションをアップグレードできます。

- 共有ライブラリを更新します。「共有ライブラリの更新」を参照してください。

- WARファイルにパッケージ化されているtoplink-grid.jarおよびcoherence.jarファイルを更新します。

注意:
次の手順は、WebLogic ServerとそのドメインをWebLogic Server 12c (12.2.1)にアップグレード済であることを前提とします。WebLogic Serverのアップグレードについては、『Oracle Fusion Middleware Oracle WebLogic Serverのアップグレード』を参照してください。

共有ライブラリの更新

このアプローチは、toplink-grid.jarおよびcoherence.jarファイルを共有ライブラリとして参照しており、アプリケーションのパッケージ化を変更しないことを前提にします。この場合に必要な操作は、12c (12.2.1)バージョンのtoplink-grid.jarおよびcoherence.jarファイルを使用するように共有ライブラリ参照を更新することのみです。

WARファイルへのtoplink-grid.jarおよびcoherence.jarファイルのパッケージ化

このアプローチは、toplink-grid.jarおよびcoherence.jarファイルをEARファイルにパッケージ化していることを前提とします。この場合は、toplink-grid.jarおよびcoherence.jarファイルを、これらのファイルの12c (12.2.1)バージョンに置き換えます。

5.3.3 Coherence*Extendのアップグレード

すべてのExtendクライアントのカスタマ(Java、C++および.NET)において、Coherence*Extendクライアントをアップグレードする前にクラスタ側をアップグレードする必要があります。これは、Coherenceクライアントおよびプロキシ・アップグレード・ポリシーに準拠しています。Coherence*Extendの現行リリースと以前のバージョンとの互換性の詳細は、『Oracle Coherenceリモート・クライアントの開発』のCoherence*Extendのバージョン間の互換性に関する項を参照してください。

5.3.4 Coherence*Webのアップグレード

次の項では、Coherence*Webのアップグレードに関する考慮事項を説明します。

- 以前のバージョンのWebLogic用に予約されているCoherence*Web SPI

- ActiveCache (active-cache.jar)の管理対象Coherenceサーバーへの置換え

- 新しいセッション・キャッシュ構成ファイル

5.3.4.1 以前のバージョンのWebLogic用に予約されているCoherence*Web SPI

以前のリリースのCoherence*Webに含まれていたcoherence-web-spi.warファイルは、非推奨です。WebLogic Server 12c (12.2.1)を使用している場合は、このファイルを使用または参照する必要はありません。coherence-web-spi.warファイルをWebLogic Server 12c (12.2.1)にデプロイしようとしても無視されます。

5.3.4.2 ActiveCache (active-cache.jar)の管理対象Coherenceサーバーへの置換え

デプロイされたアプリケーションでCoherenceデータ・キャッシュを簡単に使用し、セッション管理のためにCoherence*Webをシームレスに統合するためのWebLogic Serverの機能の集合であるActiveCache (active-cache.jar)は、12.1.2リリース以降、非推奨となっています。

ユーザーは、現行リリースのために新しいWebLogic Server/Coherenceアプリケーションを開発するときに、管理対象Coherenceサーバーに移行する必要があります。管理対象Coherenceサーバーの詳細は、『Oracle Fusion Middleware Oracle WebLogic Server Oracle Coherenceアプリケーションの開発』を参照してください。

5.3.4.3 新しいセッション・キャッシュ構成ファイル

以前のリリースでは、Coherence*Web SPIで使用されるCoherenceキャッシュ構成とサービスはsession-cache-config.xmlファイルで定義されていましたが、12c (12.2.1)以降は、Coherence*Webで使用されるCoherenceキャッシュ構成とサービスはdefault-session-cache-config.xmlファイルで定義され、このファイルはcoherence-web.jarファイル内にあります。default-session-cache-config.xmlファイルで定義されているデフォルト・キャッシュ構成とサービス構成は、ほとんどすべてのWebアプリケーションに対応可能です。

session-cache-config.xmlという名前のファイルをWebアプリケーションにパッケージ化することにより、自分専用のカスタム・セッション・キャッシュ構成を作成できます。詳細は、『Oracle Coherence*WebでのHTTPセッション・マネージメントの管理』のカスタム・セッション・キャッシュ構成ファイルの使用に関する項を参照してください。

5.3.5 WebLogic ServerでのActiveCacheアプリケーションのアップグレード

The 11gリリース1 (10.3.6)バージョンのActiveCacheは、『Oracle Fusion Middleware ActiveCacheの使用』に記載されています。このバージョンのActiveCacheは、WebLogic ServerおよびCoherence 12.1.2に対して機能しますが、記載されている手順の一部は不要になりました。

注意:
ActiveCacheは、12.1.2リリース以降、非推奨です。ユーザーは、管理対象Coherenceサーバーへ移行する必要があります。管理対象Coherenceサーバーの詳細は、『Oracle Fusion Middleware Oracle WebLogic Server Oracle Coherenceアプリケーションの開発』を参照してください。

- ActiveCacheデプロイメント・トポロジの選択に関する項では、ActiveCacheをデプロイできるアプリケーションとデータ層の組合せ、すなわちクラスタ・トポロジについて説明しています。ActiveCacheを使用してアプリケーションをアップグレードする場合、後方互換性が必要な場合以外はOut-of-Processトポロジを使用しないでください。現行リリースでは、WebLogic Out-of-Processトポロジの使用をお薦めします。管理対象Coherenceサーバーを使用すれば、WebLogic Out-of-Processトポロジの構成が容易に行えます。

- Cache Configuration Fileの配置に関する項では、キャッシュ構成ファイルを配置する場所を説明しています。キャッシュ構成ファイルを保存する場所によってキャッシュ・スコープ(つまり、デプロイされたアプリケーションに対するキャッシュの可視性)が決まります。この項に記載している方法は有効ですが、キャッシュ構成をシステム・クラスパスに配置することは、サーバーでCoherenceを使用するアプリケーションが現在も今後も1つしか存在しない場合を除き、お薦めできません。
アプリケーションをパッケージする場合は、GARファイルの使用をお薦めします。キャッシュ構成ファイルは、GARファイルにパッケージ化されます。GARファイルおよびそのパッケージ化構造の詳細は、『Oracle Fusion Middleware Oracle WebLogic Server Oracle Coherenceアプリケーションの開発』を参照してください。

- アプリケーション・サーバー・スコープのCoherenceクラスタの構成に関する項では、Coherenceキャッシュに直接アクセスしているWebLogic Serverインスタンス上でデプロイされたすべてのアプリケーションが、1つのCoherenceクラスタの一部となるような構成について説明しています。この手順では、手順1を実行しないでください。すなわち、coherence.jarおよびactive-cache.jarファイルをシステム・クラスパスに配置しないでください。active-cache.jarファイルでは、Coherence統合モジュールをクラスパスに追加するために、MANIFESTファイルでクラスパスを使用します。リリース12.1.2において、Coherence統合モジュールはcoherence.jarに加えてサーバー・クラスパスに常に存在します。

- EARスコープのCoherenceクラスタの構成に関する項では、各EAR内にデプロイされたすべてのアプリケーションが、1つのCoherenceクラスタの一部となるような構成について説明しています。キャッシュは、EAR内のすべてのモジュールに対して表示されます。この項で説明している手順は、説明どおりには動作しません。coherence.jarがすでにシステム・クラスパスに配置されているため、「アプリケーション・スコープCoherenceクラスタにフィルタリング・クラスローダーを定義するには」の項に記載されている手順に従う必要があります。
EARスコープによる方法を使用する唯一の理由は、アプリケーションを他のCoherenceアプリケーションから分離するためです。この使用例は、GARファイルによるアプリケーション分離またはキャッシュ構成ファイルのscope要素を使用する方がうまく処理できます。別の使用例は、システム・クラスパスに配置されているものとは別バージョンのcoherence.jarを使用することですが、別バージョンの使用はお薦めできません。

- WARスコープのクラスタの構成に関する項では、デプロイされた各Webアプリケーションが、独自のCoherenceクラスタになるような構成について説明しています。キャッシュは、個々のモジュールに対してのみ表示されます。この手順では、手順1および2を実行しないでください。coherence.jarおよびactive-cache.jarを共有ライブラリにデプロイせず、MANIFESTファイルにも記載しないでください。手順3を実行してCoherenceクラスタのシステム・リソースを参照することは可能ですが、管理対象サーバーをCoherenceクラスタのメンバーにする方法をお薦めします。

- 「例3-10 tangosol-coherence-override.xml」は、ロギングの構成を記述したカスタム・キャッシュ構成ファイルを示しています。ログの構成は不要です。

- キャッシュ・サーバーの起動に関する項には、キャッシュ・サーバーを起動する数種類の方法が示されています。Out-of-Processトポロジを管理対象Coherenceサーバーで置き換えないでください。ノード・マネージャを使用したキャッシュ・サーバーの起動に関する項に記載されている手順を、WebLogic Serverにより管理されている外部キャッシュ・サーバーのかわりに管理対象Coherenceサーバーを使用して実行しないでください。

5.3.6 非推奨となった機能の代替

この項では、Coherence 12.1.2以降、非推奨となった機能の代替について説明します。

- 非推奨のpacket-poolおよびmessage-pool要素の代替

- 非推奨のLHファイル・マネージャの代替

- 非推奨のNamedCache Lock APIの代替

- 非推奨のXmlConfigurableインタフェースの代替

5.3.6.1 非推奨のpacket-poolおよびmessage-pool要素の代替

packet-poolおよびmessage-pool要素は非推奨です。Coherence 12c (12.2.1)では、APIでサイズ変更を処理するようになりました。アップグレードするには、すべての構成ファイルから要素を削除してください。

5.3.6.2 非推奨のLHファイル・マネージャの代替

Coherence 12.1.2リリース以降、LHストア・マネージャは非推奨です。Berkeley DBの同様の機能を使用してください。

5.3.6.3 非推奨のNamedCache Lock APIの代替

NamedCache lock APIは非推奨です。入力プロセッサAPI (JavaおよびC++用のEntryProcessor、および.NET用のIEntryProcessor)で提供されるロック・サポートをかわりに使用してください。

5.3.6.4 非推奨のXmlConfigurableインタフェースの代替

Coherence 12.1.2リリース以降、com.tangosol.run.xml.XmlConfigurableインタフェースは非推奨になりました。Coherenceでは、このインタフェースを使用して、XMLパラメータをカスタム・クラスのインスタンスに注入していました。

Coherence 12c (12.2.1)リリースでは、<param-value>要素内に<instance>および<class-scheme>(または、その他のカスタム・ネームスペース)をネストするXMLを記述して、パラメータを初期化できます。

たとえば、次のJavaコードを考えてみます。

public class MyClass
{
public MyClass(String s, OtherClass o, int i) { ... }
}

public class OtherClass
{
public OtherClass(String s) { ... }
}

次のXMLを記述して、MyClassおよびOtherClassクラスを初期化できます。XMLでは、MyClassクラスが文字列Hello Worldおよび整数42で初期化されます。MyClassクラス内にあるOtherClassクラスのインスタンスは、文字列Goodbye Worldで初期化されます。

<instance>
<class-name>MyClass</class-name>
<init-params>
<init-param>
<param-value>Hello World</param-value>
</init-param>
<init-param>
<param-value>
<instance>
<class-name>OtherClass</class-name>
<init-params>
<init-param>
<param-value>Goodbye World</param-value>
</init-param>
</init-params>
</instance>
</param-value>
</init-param>
<init-param>
<param-value>42</param-value>
</init-param>
</init-params>
</instance>

5.3.7 アップグレードのその他の問題

次の項では、Coherence 12c (12.2.1)のアップグレード時に考慮する必要がある問題について説明します。

- Exalogic環境のDistributedCacheの新しいデフォルト

- リモートRMIクライアントからの接続

- Coherence*Extendクライアント上のキー・アソシエーション

- ニア・キャッシュの無効化戦略の変更

- 新しいキャッシュ構成要素: resource-config

- Invocable APIの動作の変更点

5.3.7.1 Exalogic環境のDistributedCacheの新しいデフォルト

Exalogic環境内では、DistributedCacheがInfiniband Message Bus (IMB)トランスポートにデフォルト設定されるようになりました。詳細は、『Oracle Coherenceでのアプリケーションの開発』のDistributedCacheサービス・パラメータに関する項にある<reliable-transport要素の説明を参照してください。

5.3.7.2 リモートRMIクライアントからの接続

リモートRMIクライアント(別の物理コンピュータ)から接続するときは、java.rmi.server.hostname RMIシステム・プロパティの値をクラスタ・メンバーのIPアドレスに設定してスクリプトに追加してください。このアドレスによって、クライアントに送信されるRMIスタブに正しいサーバー・アドレスが含まれることが保証されます。詳細は、『Oracle Coherenceのマネージメント』のOracle Coherence MBeansへのリモート・アクセスの許可に関する項を参照してください。

5.3.7.3 Coherence*Extendクライアント上のキー・アソシエーション

キー・アソシエーションは、Extendクライアント上でデフォルトで処理されるようになります。クラスタ上のキー・クラスを強制的に処理するために、クラスタ上でキー・アソシエーションに依存している既存のクライアント実装(Javaクライアントを含む)でdefer-key-association-checkパラメータを設定する必要があります。

キーの関連付け処理をExtendクライアントによってではなくクラスタ側で実行するには、クライアント側キャッシュの構成で<remote-cache-scheme>要素の<defer-key-association-check>要素をtrueに設定します。次に例を示します。

<remote-cache-scheme>
...
<defer-key-association-check>true</defer-key-association-check>
</remote-cache-scheme>

詳細は、『Oracle Coherenceリモート・クライアントの開発』のキー・アソシエーション・チェックの遅延に関する項を参照してください。

5.3.7.4 ニア・キャッシュの無効化戦略の変更

パフォーマンスよりもネットワーク・トラフィックの軽減を優先するために、デフォルトのニア・キャッシュ無効化戦略のautoが変更されました。12c (12.2.1)以前の無効化戦略のデフォルト動作は、allに設定してください。詳細は、『Oracle Coherenceでのアプリケーションの開発』のニア・キャッシュの無効化戦略に関する項を参照してください。

5.3.7.5 新しいキャッシュ構成要素: resource-config

resource-config要素には、com.sun.jersey.api.core.ResourceConfigクラスを拡張するクラスの構成情報を記述します。このインスタンスは、HTTPアクセプタが、指定されたコンテキスト・パスにマップされたCoherence RESTアプリケーション用のリソース・クラスおよびプロバイダ・クラスをロードする際に使用されます。複数のリソース構成クラスを構成して、別々のコンテキスト・パスにマップできます。詳細は、『Oracle Coherenceリモート・クライアントの開発』の組込みHTTPサーバーを指定したデプロイに関する項を参照してください。

5.3.7.6 Invocable APIの動作の変更点

Invocable APIを使用するアプリケーションは、Coherence 3.7.1からCoherence 12.xへのアップグレードで、シリアライズ要件が変更されたために発生するエラーを受け取る場合があります。Coherence 3.7.1では、Invocableが自身を含むいくつかのノードに送信されると、リモート・メンバーへの送信用にシリアライズされる前にローカルの実行を開始する可能性があります。Invocableが非一時的なステートを更新すると、そのステートは遅延シリアライズの一部として他のノードに伝わります。

Coherence 12.xでは、Invocable APIをローカル・メンバーで使用するアプリケーションの場合、そのクラス(エントリ・プロセッサ、集計など)がシリアル化できる必要があります。

6 Coherenceのサンプルの実行

Coherenceディストリビューションは、サンプル・コードを提供します。サンプルは、1つまたは複数の使用方法を説明するコードのコレクションとして整理されています。また、各サンプルのビルドおよび実行方法は言語ごとに統一されています。

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

- Coherenceのサンプルの概要

- サンプルの取得

- サンプルのビルド方法

- サンプルの実行方法

- Coherenceの基本機能のサンプル

- Coherenceのセキュリティのサンプル

- Coherenceのライブ・イベントのサンプル

- Coherence Java 8機能のサンプル

- Coherenceの非同期機能のサンプル

- Coherenceのフェデレーテッド・キャッシュのサンプル

- Coherenceの永続性のサンプル

- Coherence RESTのサンプル

6.1 Coherenceのサンプルの概要

Coherenceのサンプルは、次のとおりです。

- 基本機能

- セキュリティ機能

- ライブ・イベント

- Java 8機能

- 非同期機能

- フェデレーテッド・キャッシュ

- 永続性

- REST

基本機能

Coherenceの基本機能のサンプルには、次のものが含まれています。

表6-1 Coherenceの基本機能のサンプル

サンプル名

説明

基本データ・アクセス

Coherenceデータ・グリッドからデータを「取得」、「挿入」および「削除」します。第6.5.3項「基本データ・アクセスのサンプル」を参照してください。

データのロード

Coherenceデータ・グリッドにサンプル・データをロードします。第6.5.4項「ローダーのサンプル」を参照してください。

パラレル問合せ

Coherenceデータ・グリッドの問合せを行います(索引の使用を含む)。第6.5.5項「問合せのサンプル」を参照してください。

Observable

Coherenceデータ・グリッド内のデータの変化をリスニングします。第6.5.6項「オブザーバのサンプル」を参照してください。

処理

データ自身がCoherenceデータ・グリッドにある共存データを処理します。第6.5.7項「プロセッサのサンプル」を参照してください。

問合せ言語

Coherenceの問合せ言語の使用方法です。第6.5.5項「問合せのサンプル」を参照してください。

セキュリティ機能

Coherenceのセキュリティのサンプルには、次のものが含まれています。

表6-2 Coherenceのセキュリティのサンプル

サンプル名

説明

パスワードのサンプル

Coherenceへのアクセスにパスワードを要求します。第6.6.2項「パスワードのサンプル」を参照してください。

アクセス制御のサンプル

簡略化されたロール・ベースのアクセス制御です。第6.6.3項「アクセス制御のサンプル」を参照してください。

パスワードIDトランスフォーマ

必要なパスワードを含むカスタム・セキュリティ・トークンを作成し、プリンシパル名のリストを追加します。第6.6.4項「パスワードIDトランスフォーマ」を参照してください。

パスワード・アイデンティティ・アサータ

セキュリティ・トークンに必要なパスワードが含まれることをアサートし、プリンシパル名のリストに基づいてサブジェクトを構成します。第6.6.5項「パスワード・アイデンティティ・アサータ」を参照してください。

資格が付与されるキャッシュ・サービス

アクセス制御用にキャッシュ・サービスをラップします。第6.6.6項「資格が付与されるキャッシュ・サービス」を参照してください。

資格が付与される起動サービス

アクセス制御用に起動サービスをラップします。第6.6.7項「資格が付与される起動サービス」を参照してください。

資格が付与される名前付きキャッシュ

アクセス制御用に名前付きキャッシュをラップします。第6.6.8項「資格が付与される名前付きキャッシュ」を参照してください。

ライブ・イベント

Coherenceのライブ・イベントのサンプルは、Javaプラットフォームのみで使用できます。これには次の機能が含まれます。

表6-3 Coherenceのライブ・イベントのサンプル

サンプル名

説明

EventsExamples

イベント・タイプで分割された平均経過時間、イベント後と比較したイベント前の例外スローの異なるセマンティクス、および有効になった際のパーティション移動のロギングなどを提供するライブ・イベントの様々な機能を示しています。第6.7.2項「EventsExamples」を参照してください。

TimedTraceInterceptor

異なるタイプのイベントに対して、コミット前イベントとコミット後イベントの間のタイミングを提供します。第6.7.3項「TimedTraceInterceptor」を参照してください。

CantankerousInterceptor

挿入されるキーに基づいて、コミット前時間またはコミット後時間のどちらかにランタイム例外で応答します。第6.7.4項「CantankerousInterceptor」を参照してください。

RedistributionInterceptor

有効化された場合にパーティション・イベントをログに記録します。第6.7.5項「RedistributionInterceptor」を参照してください。

RedistributionInvocable

クラスタの様々なメンバーで実行されるアクション可能な3つの状態を定義します。状態とは、RedistributionInterceptorによるロギングの有効化、ロギングの無効化、またはinvocable (RedistributionInvocable)が実行されているJVMの終了です。第6.7.6項「RedistributionInvocable」を参照してください。

LazyProcessor

イベントの処理間の実体のない遅延を作成します。第6.7.7項「LazyProcessor」を参照してください。

Java 8機能

Coherence Java 8のサンプルは、Java 8で導入された機能を使用したCoherenceの使用方法を示します。このサンプルは、Javaプラットフォームのみで使用できます。これには次の機能が含まれます。

表6-4 Coherence Java 8のサンプル

サンプル名

説明

StreamsExample

Stream APIを使用してキャッシュを問い合せます。第6.8.2項「ストリーム」を参照してください。

LambdaExample

ラムダ式を使用してキャッシュ操作を実行します。第6.8.3項「ラムダ」を参照してください。

MapDefaultMethodExample

Map APIでオーバーライドされたデフォルトのメソッドを使用して、キャッシュ操作を実行します。第6.8.4項「マップのデフォルト・メソッド」を参照してください。

非同期機能

Coherenceの非同期のサンプルは、AsyncNamedCacheインタフェースを使用した非同期処理の使用方法を示します。このサンプルは、Javaプラットフォームのみで使用できます。これには次の機能が含まれます。

表6-5 Coherenceの非同期のサンプル

サンプル名

説明

DataAccessExample

キャッシュ操作を非同期で実行します。第6.9.2項「非同期のデータ・アクセス」を参照してください。

ProcessorExample

キャッシュ・エントリを非同期で処理します。第6.9.3項「非同期のエントリ・プロセッサ」を参照してください。

AggregatorExample

キャッシュ・エントリを非同期で集計します。第6.9.4項「非同期のアグリゲータ」を参照してください。

フェデレーテッド・キャッシュ

Coherenceのフェデレーテッド・キャッシュのサンプルは、フェデレーテッド・キャッシュの構成方法および使用方法を示します。2つのクラスタが起動し、アクティブ/アクティブ型レプリケーションを使用するように構成されます。これにより、データは一方のクラスタから他方のクラスタにレプリケートできます。クラスタにはGUIが含まれ、クラスタへのデータの挿入またはキャッシュの削除が可能です。フェデレーテッド・キャッシュのサンプルには、クラスタ参加間のSSLを構成する手順も含まれます。このサンプルは、Javaプラットフォームのみで使用できます。

永続性

Coherenceの永続性のサンプルは、キャッシュからディスクへのコンテンツの保存およびリストアの方法を示します。このサンプルは、Javaプラットフォームのみで使用できます。これには次の機能が含まれます。

表6-6 Coherenceの永続性のサンプル

サンプル名

説明

基本的なスナップショット操作

キャッシュからディスクへのコンタクトを持続します。キャッシュを破壊し、ディスクからキャッシュを再ロードします。第6.11.2項「基本的なスナップショット操作」を参照してください。

永続性のある通知

永続的な通知をサブスクライブして、永続性操作の期間を決定します。第6.11.3項「永続性のある通知」を参照してください。

パラレルの永続性操作

複数のサービスにまたがって、永続性操作をパラレルに実行します。第6.11.4項「パラレルの永続性操作」を参照してください。

SFTPアーカイバ

SFTPを使用してスナップショットを格納および取得するカスタムのスナップショット・アーカイバを作成します。第6.11.5項「カスタム・アーカイバのスナップショットのアーカイブ」

REST

Coherence RESTのサンプルは、アプリケーションとCoherenceのキャッシュとのHTTPプロトコルを介した相互作用を示します。サンプルでは、Coherenceの機能を実行する単一のwebベースのアプリケーションを使用します。サンプルは、Javaプラットフォームで使用可能で、クライアント側のアプリケーションはJavaScriptを使用して書き込まれます。これには次の機能が含まれます。

表6-7 Coherence RESTのサンプル

サンプル名

説明

製品のサンプル

キャッシュからのエントリを挿入、編集および削除し、エントリ・プロセッサを使用してエントリを更新します。第6.12.3項「「製品」ページ」を参照してください。

部門のサンプル

キャッシュからのエントリを挿入、編集および削除します。第6.12.4項「「部門」ページ」を参照してください。

連絡先のサンプル

キャッシュからのエントリを挿入、編集および削除します。キャッシュ内のエントリの問合せ。第6.12.5項「連絡先ページ」を参照してください。

Server-Sent Events

製品、部門および連絡先のキャッシュにリスナーを追加し、イベントをモニターします。第6.12.6項「Server-Sent Events」を参照してください。

6.2 サンプルの取得

coherence_version.jarまたはwls_version.jarインストーラ・ファイルでCoherenceの完全なインストールを実行することによって、サンプルを入手できます。Coherenceのサンプルは、Oracle Universal Installerのインストール・オプションとして表示され、COHERENCE_HOME/examplesにインストールされます。

coherence_quick_version.jarを使用してCoherenceをインストールした場合は、coherence_quick_supp_version.jarサプリメンタル・インストーラ・ファイルを実行することでサンプルを入手できます。サプリメンタル・インストーラには、APIのドキュメントおよびサンプルのみが含まれます。coherence_quick_version.jarクイック・インストーラ・ファイルはサンプルやAPIのドキュメントをインストールしないことに注意してください。

6.3 サンプルのビルド方法

注意:
.NETおよびC++用であっても、Javaのサンプルをビルドおよび実行する必要があります。これは、キャッシュ・サーバーはJavaで実行されているためです。

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

- Javaサンプルのビルド方法

- .NETサンプルのビルド方法

- C++サンプルのビルド方法

6.3.1 Javaサンプルのビルド方法

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

- Javaでの前提条件

- Javaでのディレクトリ構造

- Javaでのビルド手順

6.3.1.1 Javaでの前提条件

サンプルをビルドするには、CoherenceおよびJava Development Kit (JDK) 1.8以上が必要です。次の環境変数が設定されていることを確認します。

環境変数

説明

$COHERENCE_HOME

COHERENCE_HOME環境変数が、Coherenceのインストール・ディレクトリの場所を指していることを確認します。

$JAVA_HOME

サンプルをビルドする前に、JAVA_HOME環境変数が1.8以上のJDKの場所を指していることを確認します。サンプルを実行するには、1.8以上のJavaランタイムが必要です。

6.3.1.2 Javaでのディレクトリ構造

次で説明するディレクトリ構造は、examplesディレクトリを基準としたものです。

表6-8 Javaでのディレクトリ構造

ディレクトリ名

説明

java/bin

サンプルをビルドおよび実行するスクリプトです。2セットのスクリプトがあります。ファイルの拡張子がないスクリプトは、bashスクリプトです。ファイルの拡張子が.cmdのスクリプトは、Windowsコマンド・スクリプトです。次の説明では、ファイルの拡張子を指定しないスクリプト名を参照しています。

- build—サンプルをビルド

java/src

すべてのサンプルのソースです。サンプルは、com.tangosol.examples.<example name>パッケージにあります。キャッシュに格納されたオブジェクト用のクラスは、com.tangosol.examples.pofパッケージにあります。

java/classes

ビルドによって出力されるクラス・ファイルです。このディレクトリは、ビルド・スクリプトを実行するまで存在しません。

java/resource/config

サンプルに必須の共通Coherence構成ファイルです。

java/resource/<example name>

サンプルが共通構成のかわりとなる構成を必要とする場合、それは自身のディレクトリにあります。セキュリティのサンプルは、java/resource/securityの構成ファイルを使用します。

$COHERENCE_HOME/lib

サンプルのコンパイルおよび実行に使用されるCoherenceライブラリです。

6.3.1.3 Javaでのビルド手順

サンプル・コレクションの名前を使用してビルド・スクリプトを実行します。

- bin/build contacts

- bin/build security

- bin/build events

- bin/build java8

- bin/build async

- bin/build federation

- bin/build persistence

スクリプトによってPOFパッケージ・ファイルがビルドされ、次に特定のサンプルのファイルがビルドされます。contactsサンプルは、他のサンプルで必須で、常に最初にビルドする必要があります。

Windowsでは、ディレクトリを/binディレクトリに変更してからスクリプトを実行します。

6.3.2 .NETサンプルのビルド方法

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

- .NETでの前提条件

- .NETでのディレクトリ構造

- .NETでのビルド手順

6.3.2.1 .NETでの前提条件

サンプルをビルドするには、Coherence for .NETおよびVisual Studio 2008以上またはVisual Studio 2008 Express以上が必要です。.NET要件の詳細は、第3.3.1項「前提条件」を参照してください。

サンプルを実行するには、CoherenceのJavaバージョンおよびJava Development Kit (JDK) 1.8以上が必要です。Coherence*Extendプロキシおよびキャッシュ・サーバーにはJavaが必要であるため、Javaバージョンが必要になります。また、サンプルはプロキシおよびキャッシュ・サーバーを実行する前にビルドする必要があるJavaサンプル・クラスに依存しています。ビルドおよび実行方法の手順は、Javaサンプルのreadme.txtファイルを参照してください。

6.3.2.2 .NETでのディレクトリ構造

次で説明するディレクトリ構造は、examplesディレクトリを基準としたものです。

表6-9 .NETでのディレクトリ構造

ディレクトリ名

説明

dotnet\src

すべてのサンプルのソースです。サンプルは、Tangosol.Examples.<example name>ネームスペース内にあります。キャッシュに格納されたオブジェクト用のクラスは、Tangosol.Examples.Pofネームスペース内にあります。

サンプルは、Visual Studio 2008のサンプル・ソリューションの中にあります。srcディレクトリに、サンプルごとのVisual Studio 2008プロジェクトがあります。たとえば、srcにはcontactsおよびsecurityサンプル用のプロジェクトが含まれています。

サンプルに必須のCoherence構成ファイルです。

src\pof\config

サンプルに必須の共通Coherence構成ファイルです。

src\<example name>\config

サンプルが共通構成のかわりとなる構成を必要とする場合、それは自身のディレクトリにあります。セキュリティのサンプルは、security\configの構成ファイルを使用します。

6.3.2.3 .NETでのビルド手順

Visual Studioでexamples\dotnet\src\contacts.csprojディレクトリからサンプル・プロジェクトを開く

.NET Framework用のCoherence をインストールする際に、インストーラがアセンブリ・レジストリにcoherence.dllライブラリを登録します。含まれているVisual Studioプロジェクトは、デフォルトの場所にあるcoherence.dllを参照しています。別のバージョンのライブラリが必要な場合、またはデフォルトの場所にインストールされていない場合は、参照を構成する際にCoherence参照がオーバーライドされる可能性があります。local copy属性をtrueに設定していることを確認してください。この設定によって、bin\debugディレクトリにある正しいcoherence.dllがコピーされて登録されます。

Coherence for .NETが構成された後、Visual Studioでメニューから「Build」→「Build Solution」を選択するか、「Build Solution」 (F6)などを選択してソリューションをビルドします。

contactsサンプルをビルドすると、resource\contacts.csvがビルド出力ディレクトリ(examples\dotnet\src\bin\Debug)にコピーされます。

6.3.3 C++サンプルのビルド方法

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

- C++での前提条件

- C++でのディレクトリ構造

- C++でのビルド手順

6.3.3.1 C++での前提条件

サンプルを実行するには、CoherenceのJavaバージョンおよびJava Development Kit (JDK) 1.8以上が必要です。Coherence*Extendプロキシおよびキャッシュ・サーバーにはJavaが必要であるため、Javaバージョンが必要になります。また、サンプルはプロキシおよびキャッシュ・サーバーを実行する前にビルドする必要があるJavaサンプル・クラスに依存しています。ビルドおよび実行方法の手順は、Javaサンプルのreadme.txtを参照してください。

次の環境変数が設定されていることを確認します。

環境変数

説明

%COHERENCE_HOME%

COHERENCE_HOME環境変数が、解凍されたCoherence のディレクトリの場所を指していることを確認します。

%JAVA_HOME%

サンプルをビルドする前に、JAVA_HOME環境変数が1.8以上のJDKの場所を指していることを確認します。サンプルを実行するには、1.8以上のJavaランタイムが必要です。

%COHERENCE_CPP_HOME%

COHERENCE_CPP_HOME環境変数が解凍されたC++開発環境の場所を指していることを確認します。コンパイラ環境がサポートされています。

6.3.3.2 C++でのディレクトリ構造

次で説明するディレクトリ構造は、examplesディレクトリを基準としたものです。

表6-10 C++でのディレクトリ構造

ディレクトリ名

説明

cpp\bin

サンプルをビルドおよび実行するスクリプトです。ファイルの拡張子がないスクリプトは、bashスクリプトです。ファイルの拡張子が.cmdのスクリプトは、Windowsコマンド・スクリプトです。次の説明では、ファイルの拡張子を指定しないスクリプト名を参照しています。

cpp

<example name> (contactsおよびsecurityなど)およびpofディレクトリの下に編成されているすべてのサンプル・ソースです。

cpp\contacts

contactsサンプルのソースです。サンプルは、coherence::examplesネームスペース内にあります。examplesの次のレベルの名前は、関連するサンプル・クラスのセットを表しています。coherence::examples::LoaderExampleの「Driver」は、contactsサンプルのローダーです。サンプルの名前は、coherence::examplesの後の名前です。

cpp\security

securityサンプルのソースです。サンプルは、coherence::examplesネームスペース内にあります。

cpp\pof

データ・モデルはこのディレクトリ内に加え、シリアライズされるクラスで表されます。これは、既存のデータ・モデルの使用方法を示し、Coherence内で公開するためです。モデル・クラスにはいかなるCoherence固有のコードも含まれていないことが、この点を立証しています。ただし、各モデル・タイプに関連付けられているシリアライザがあります。たとえばContactには、モデル・タイプのCoherenceへの登録およびシリアライズ操作を目的とするContactSerializerクラスがあります。

生成される出力は、動的ライブラリ形式です。

cpp\config

サンプルに必須の共通Coherence構成ファイルです。

cpp\config\<example name>

サンプルが共通構成のかわりとなる構成を必要とする場合、それは自身のディレクトリにあります。セキュリティのサンプルは、config/securityの構成ファイルを使用します。

cpp\<example name>\out

ビルドによって出力されるオブジェクト・ファイルです。このディレクトリは、ビルド・スクリプトを実行するまで存在しません。

%COHERENCE_CPP_HOME%\include

Coherenceのヘッダー・ファイルが含まれています。

%COHERENCE_CPP_HOME%\lib

Coherenceのライブラリが含まれています。

6.3.3.3 C++でのビルド手順

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

- WindowsでのC++のビルド手順

- Linux/MacおよびSolarisでのC++のビルド手順

WindowsでのC++のビルド手順

開発環境のコマンド・プロンプトを開きます。これは、Visual StudioまたはプラットフォームSDKとともにインストールされているはずです。C++ examplesディレクトリに移動し、bin\build.cmd <example name>と入力します。これによって、pof (モデル)およびexample実行可能ファイルの両方がビルドされます。たとえば、bin\build.cmd contactsまたはbin\build.cmd securityと入力します。

モデルは、pof.libおよびpof.dllファイルをcpp\pof\outの下に配置します。これらは、contactsおよびsecurityサンプルのビルドおよび実行に必要です。

実行可能ファイルcontacts.exeは、cpp\contacts\outディレクトリに生成されます。実行可能ファイルsecurity.exeは、cpp\security\outディレクトリに生成されます。

contactsサンプルを実行するには、プロキシ・サーバー、およびキャッシュ・サーバーbin/run-cache-serverを起動してから、bin\run.cmd contactsと入力します。キャッシュ・サーバーは、プロキシ・サービスを実行し、Coherence*Extendクライアントからの接続が可能になります。

また、任意のコマンド・ウィンドウよりcdでC++ binディレクトリに移動し、サンプルをビルドする前にvcvars32.batを実行することもできます。デフォルトのVisual Studioのインストールでは、binディレクトリはC:\Program Files\Mircorsoft Visual Studio 9.0\vc\binです。前の手順に従い、buildスクリプトを実行します。

Linux/MacおよびSolarisでのC++のビルド手順

コマンド・シェルを開きます。C++ examplesディレクトリに移動し、bin/build <example name>と入力します。これによって、pof (モデル)およびcontactsサンプル実行可能ファイルの両方がビルドされます。

モデルの動的ライブラリおよびlibファイルがcpp/pof/outに配置されます。これらは、contactsおよびsecurityサンプルのビルドおよび実行に必要です。

実行可能ファイルであるcontactsが、cpp/contacts/outまたはcpp/security/outに生成されます。

6.4 サンプルの実行方法

注意:
Coherenceのサンプルはソースとして配布されるため、まずビルドする必要があります。第6.3項「サンプルのビルド方法」を参照してください。

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

- Javaサンプルの実行方法

- .NETサンプルの実行方法

- C++サンプルの実行方法

6.4.1 Javaサンプルの実行方法

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

- Javaでの前提条件

- Javaでのディレクトリ構造

- Javaでの手順

6.4.1.1 Javaでの前提条件

サンプルを実行するには、Coherenceをインストールし、現在サポートされているJDKを使用します。サポートされているJDKの詳細は、「システム要件」を参照してください。

環境変数

説明

$COHERENCE_HOME

COHERENCE_HOME環境変数が、解凍されたCoherence のディレクトリの場所を指していることを確認します。

$JAVA_HOME

サンプルをビルドする前に、JAVA_HOME環境変数がサポートされているJDKの場所を指していることを確認します。

6.4.1.2 Javaでのディレクトリ構造

次で説明するディレクトリ構造は、サンプルを解凍したexamplesディレクトリを基準としたものです。

表6-11 Javaでのディレクトリ構造

ディレクトリ名

説明

java/bin

サンプルをビルドおよび実行するスクリプトです。2セットのスクリプトがあります。ファイルの拡張子がないスクリプトは、bashスクリプトです。ファイルの拡張子が.cmdのスクリプトは、Windowsコマンド・スクリプトです。次の説明では、ファイルの拡張子を指定しないスクリプト名を参照しています。

- run—サンプル・コレクションを実行

- run-cache-server—サンプルが使用するキャッシュ・サーバーを実行。拡張クライアントに必要なプロキシ・サーバーを開始するためにコマンドを使用します。

java/classes

ビルドによって出力されるクラス・ファイルです。このディレクトリは、ビルド・スクリプトを実行するまで存在しません。

java/resource/config

サンプルに必須の共通Coherence構成ファイルです。

java/resource/<example name>

サンプルが共通構成のかわりとなる構成を必要とする場合、それは自身のディレクトリにあります。securityサンプルは、java/resource/securityの構成ファイルを使用します。

$COHERENCE_HOME/lib

サンプルのコンパイルおよび実行に使用されるCoherenceのライブラリです。

resource

連絡先サンプルのLoaderExampleに使用するデータ・ファイルcontacts.csvです。

6.4.1.3 Javaでの手順

runスクリプトを各サンプルで実行します。

連絡先のサンプル

1. bin/run-cache-serverで1つ以上のキャッシュ・サーバーを起動します。実行するたびにキャッシュ・サーバー・クラスタ・ノードが起動します。ノードを追加するには、新しいコマンド・シェルでコマンドを実行します。

2. 新しいコマンド・シェルで、サンプルの名前を使用してbin/run contactsを実行します。Driver.mainメソッドがサンプルの機能を実行し、出力はコマンド・ウィンドウ(stdout)に送られます。

Coherence 12.1.2以上では、新しい問合せ言語機能のサンプルが追加されています。このサンプルは、Coherence InvocationServiceを使用する簡単なヘルパー・クラスFilterFactoryの構成および使用方法を示しています。

セキュリティのサンプル

securityサンプルには、プロキシを使用するCoherence*Extendが必要です。

1. bin/run-cache-server securityで1つ以上のキャッシュ・サーバーを起動します。キャッシュ・サーバーは、プロキシ・サービスを実行し、Coherence*Extendクライアントからの接続が可能になります。

2. 新しいコマンド・シェルで、サンプルの名前を使用してbin/run securityを実行します。Driver.mainメソッドがサンプルの機能を実行し、出力はコマンド・ウィンドウ(stdout)に送られます。

ライブ・イベントのサンプル

1. bin/run-cache-server eventsで1つ以上のキャッシュ・サーバーを起動します。実行するたびにキャッシュ・サーバー・クラスタ・ノードが起動します。ノードを追加するには、新しいコマンド・シェルでコマンドを実行します。

2. 新しいコマンド・シェルで、サンプルの名前を使用してbin/run eventsを実行します。Driver.mainメソッドがサンプルの機能を実行し、出力はコマンド・ウィンドウ(stdout)に送られます。

Java 8機能のサンプル

1. キャッシュ・サーバー、bin/run-cache-serverを起動します。

2. 新しいコマンド・シェルで、サンプルの名前を使用してbin/run java8を実行します。Driver.mainメソッドがサンプルの機能を実行し、出力はコマンド・ウィンドウ(stdout)に送られます。出力を検証し、src/com/tangosol/examples/java8のコードを参照します。

非同期機能のサンプル

1. キャッシュ・サーバー、bin/run-cache-serverを起動します。

2. 新しいコマンド・シェルで、サンプルの名前を使用してbin/run asyncを実行します。Driver.mainメソッドがサンプルの機能を実行し、出力はコマンド・ウィンドウ(stdout)に送られます。出力を検証し、src/com/tangosol/examples/asyncのコードを参照します。

フェデレーテッド・キャッシュのサンプル

1. bin/run-cache-server federation ClusterAを使用して、ClusterAを起動します。

2. 新しいコマンド・シェルで、bin/run-cache-server federation ClusterBを使用してClusterBを起動します。

3. bin/run federation ClusterAを実行して、GUIを起動し、ClusterAに接続します。cohqlまたはconsole引数を使用して、CohQLまたはGUIのかわりにコンソールを使用します。

4. bin/run federation ClusterBを実行して、GUIを起動し、ClusterBに接続します。cohqlまたはconsole引数を使用して、CohQLまたはGUIのかわりにコンソールを使用します。

5. クラスタにオブジェクトを追加し、オブジェクトが別のクラスタにレプリケートされていることを確認します。

6. クラスタからオブジェクトを削除し、オブジェクトが別のクラスタから削除されていることを確認します。

前述のサンプルでは、クラスタ間で標準TCP接続を使用します。サンプルを構成してSSLを使用することもできます。SSLにより、クラスタ間の接続が暗号化され、認証されたクラスタのみが双方向認証を使用して情報を交換できるようになります。

注意:
SSL構成は、自己署名証明書およびわかりやすいパスワードを使用します。セキュリティのベスト・プラクティスに従って、Coherenceセキュリティ・ドキュメントを参照して本番環境のために構成する必要があります。

SSL構成の要件:

- 各クラスタのキーストアの生成

- 各クラスタのSSL証明書の作成

- 認証されたメンバーのみの接続を許可するトラストストアへの証明書のインポート。

注意:
Windows環境では、%JAVA_HOME%\bin\keytoolを使用します。

次のようにして、SSLをフェデレーションのサンプルに構成します。

1. ClusterAおよびClusterBのキーストアを生成します

cd $COHERENCE_HOME/examples/java/classes

$JAVA_HOME/bin/keytool -genkeypair -dname "cn=ClusterA, ou=Coherence, o=Oracle,
c=US" -alias ClusterA -keypass password -keystore ClusterA-keystore.jks
-storepass password

$JAVA_HOME/bin/keytool -genkeypair -dname "cn=ClusterB, ou=Coherence, o=Oracle,
c=US" -alias ClusterB -keypass password -keystore ClusterB-keystore.jks
-storepass password

2. 次のようにして、各ストアから証明書をエクスポートします。

$JAVA_HOME/bin/keytool -export -alias ClusterA -storepass password -file
ClusterA.cer -keystore ClusterA-keystore.jks

$JAVA_HOME/bin/keytool -export -alias ClusterB -storepass password -file
ClusterB.cer -keystore ClusterB-keystore.jks

3. 両方の証明書を、どのクラスタを接続するかを定義するトラストストアにインポートします。

$JAVA_HOME/bin/keytool -import -v -trustcacerts -alias ClusterA -file
ClusterA.cer -keystore trust.jks -storepass password

$JAVA_HOME/bin/keytool -import -v -trustcacerts -alias ClusterB -file
ClusterB.cer -keystore trust.jks -storepass password

前述の2つに「yes」を入力し、証明書をインポートします。

4. 次を使用して、トラストストア内のエントリを検証します。

$JAVA_HOME/bin/keytool -list -keystore trust.jks -storepass password

前述の手順が完了すると、次がclassesディレクトリに含まれます。

- trust.jks – ClusterAおよびClusterB証明書を含むキーストア

- ClusterA.jks – ClusterAのプライベート・キーを含キーストア

- ClusterB.jks – ClusterBのプライベート・キーを含キーストア

サンプルを再実行し、SSL環境変数をコマンド・プロンプト・ウィンドウで設定します。

SET SSL=true (Windows)

export SSL=true (Unix)

キャッシュ・サーバー・ログ・ファイルで、接続がtmbs (TCP Message Bus over SSL)であることを確認します。

Connecting to service FederatedPartitionedPofCache at participant ClusterB with
address tmbs://127.0.0.1:56217.39550

注意:
トラスト・ストアから証明書を削除すると、そのメンバーへの通信が無効化され、無許可の通信がシミュレートされます。

別のサンプルを実行する場合、SSLでのフェデレーションのサンプルの実行が完了したら、SSL環境変数の設定を解除します。

永続性のサンプル

1. bin/run-cache-server persistenceで1つ以上のキャッシュ・サーバーを起動します

2. 新しいコマンド・シェルで、bin/run persistenceを使用して、永続性のサンプルを実行します。Driver.mainメソッドがサンプルの機能を実行し、出力はコマンド・ウィンドウ(stdout)に送られます。

3. bin/run persistence notificationsを使用して、通知リスナーを起動します。

4. bin/run persistenceを使用して、永続性のサンプルを実行します。出力に、永続性操作が完了したことが示されます

5. CTRL+Cを使用して、通知リスナーを中断します。

6. bin/run persistence parallelを使用して、永続性パラレルのサンプルを実行します。Driver.mainメソッドがサンプルの機能を実行し、出力はコマンド・ウィンドウ(stdout)に送られます。

7. JSchライブラリ、jsch-0.1.51.jar以上をダウンロードし、コンテンツをクラス・ディレクトリに抽出します。

8. bin/build archiverを使用して、アーカイバのサンプルをビルドします。

9. resource/archiver/tangosol-coherence-override.xmlファイルを更新し、3番目のパラメータをカスタム・アーカイバに変更して、username、passwordおよびpathをSSHを実行しているマシンの場所に置き換えます。マシンに対してssh等価設定がある場合、パスワードを省略できます。システム・プロパティを使用して、必要に応じ、パスワードを非表示にすることもできます。

10. bin/run archiverを使用して、アーカイブのサンプルを実行します。

11. リモートのSFTPマシンを検証し、アーカイブ・ディレクトリを確認します。

6.4.2 .NETサンプルの実行方法

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

- .NETでの前提条件

- .NETでのディレクトリ構造

- .NETでの手順

6.4.2.1 .NETでの前提条件

サンプルを実行するには、Coherence for .NETおよびVisual Studio 2008以上が必要です。サンプルを実行するには、Javaサンプルをビルドする必要もあります。Coherence*Extendプロキシおよびキャッシュ・サーバーにはJavaが必要であるため、Javaバージョンが必要になります。

また、サンプルはプロキシおよびキャッシュ・サーバーを実行する前にビルドする必要があるJavaサンプル・クラスに依存しています。

6.4.2.2 .NETでのディレクトリ構造

次で説明するディレクトリ構造は、「examples」ディレクトリを基準としたものです。

表6-12 .NETでのディレクトリ構造

ディレクトリ名

説明

resource

連絡先サンプルのLoaderExampleに使用するデータ・ファイルcontacts.csvです。

6.4.2.3 .NETでの手順

次の項には、contactsおよびsecurityサンプルの実行手順が含まれています。

連絡先

1. bin/run-cache-serverで1つ以上のキャッシュ・サーバーを起動します。キャッシュ・サーバーは、プロキシ・サービスを実行し、Coherence*Extendクライアントからの接続が可能になります。

2. Visual Studioからcontactsプロジェクトをデバッグなしで起動するか、コマンド・シェルのビルドで生成されたcontacts.exeを実行します。Driver.Mainメソッドがサンプルの機能を実行し、出力はコマンド・ウィンドウ(stdout)に送られます。

Coherence 12.1.2以上では、新しい問合せ言語機能の新しいサンプルが統合されました。このサンプルは、Coherence InvocationServiceを使用する簡単なヘルパー・クラス「FilterFactory」の構成および使用方法を示しています。

セキュリティ

1. java readme.txtの手順に従って、bin/run-cache-server securityで1つ以上のキャッシュ・サーバーを起動します。キャッシュ・サーバーは、プロキシ・サービスを実行し、Coherence*Extendクライアントからの接続が可能になります。

2. Visual Studioからsecurityプロジェクトをデバッグなしで起動するか、コマンド・シェルのビルドで生成されたcontacts.exeを実行します。Driver.Mainメソッドがサンプルの機能を実行し、出力はコマンド・ウィンドウ(stdout)に送られます。

6.4.3 C++サンプルの実行方法

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

- C++での前提条件

- C++でのディレクトリ構造

- C++での手順

6.4.3.1 C++での前提条件

サンプルをビルドするには、Coherenceの適切なC++ライブラリが必要です。また、C++開発環境も必要です。サンプルを実行するには、Javaサンプルをビルドする必要もあります。Coherence*Extendプロキシおよびキャッシュ・サーバーにはJavaが必要であるため、Javaバージョンが必要になります。また、サンプルはプロキシおよびキャッシュ・サーバーを実行する前にビルドする必要があるJavaサンプル・クラスに依存しています。

環境変数

説明

$COHERENCE_CPP_HOME

COHERENCE_CPP_HOME環境変数が、解凍されたCoherenceのC++インストールのディレクトリの場所を指していることを確認します。

サポートされているC++コンパイラ:

- Windows—Microsoft Visual C++ Express/Studio 2008以上または同等のプラットフォームSDK

- Linux—g++ 4.0

- Mac—g++ 4.0

6.4.3.2 C++でのディレクトリ構造

次で説明するディレクトリ構造は、examplesディレクトリを基準としたものです。

表6-13 C++でのディレクトリ構造

ディレクトリ名

説明

cpp/bin

サンプルをビルドおよび実行するスクリプトです。ファイルの拡張子がないスクリプトは、bashスクリプトです。ファイルの拡張子が.cmdのスクリプトは、Windowsコマンド・スクリプトです。次の説明では、ファイルの拡張子を指定しないスクリプト名を参照しています。

- run—サンプルを実行し、java/bin/run-cache-serverを実行してプロキシ・サーバーを起動するよう要求します。

cpp

contactsおよびmodelディレクトリの下に編成されているすべてのサンプル・ソースです。

contact/out

ビルドによって出力されるオブジェクト・ファイルです。このディレクトリは、ビルド・スクリプトを実行するまで存在しません。

resource

contactsのLoaderExampleに使用するデータ・ファイルcontacts.csvです。

cpp/contacts

contactsのサンプル・ソースが含まれています。

cpp/security

securityのサンプル・ソースが含まれています。

cpp/pof

datamodelのソースおよびシリアライズに必要なすべてのクラスが含まれています。

$COHERENCE_CPP_HOME/include

Coherenceのヘッダー・ファイルが含まれています。

$COHERENCE_CPP_HOME/lib

Coherenceのライブラリが含まれています。

6.4.3.3 C++での手順

runスクリプトを実行します。サンプルの実行は、2つの部分から構成されています。新しいコマンド・シェルから次を実行します。

連絡先のサンプル

1. bin/run-cache-serverで1つ以上のキャッシュ・サーバーを起動します。キャッシュ・サーバーは、プロキシ・サービスを実行し、Coherence*Extendクライアントからの接続が可能になります。

2. 新しいコマンド・シェルで、runにサンプルの名前を付けて実行します。
連絡先サンプルをWindowsで実行する場合:

bin\run.cmd contactsと入力

連絡先サンプルをLinux/MacおよびSolarisで実行する場合:

bin/run contactsと入力

Driver.mainメソッドがサンプルの機能を実行し、出力はコマンド・ウィンドウ(stdout)に送られます。

Coherence 12.1.2以上では、新しい問合せ言語機能のサンプルが追加されています。このサンプルは、Coherence InvocationServiceを使用する簡単なヘルパー・クラスFilterFactoryの構成および使用方法を示しています。

セキュリティのサンプル

1. bin/run-cache-server securityで1つ以上のキャッシュ・サーバーを起動します。キャッシュ・サーバーは、プロキシ・サービスを実行し、Coherence*Extendクライアントからの接続が可能になります。

2. 新しいコマンド・シェルで、runにサンプルの名前を付けて実行します。
セキュリティ・サンプルをWindowsで実行する場合:

bin\run.cmd securityと入力

セキュリティ・サンプルをLinux/MacおよびSolarisで実行する場合:

bin/run securityと入力

Driver.mainメソッドがサンプルの機能を実行し、出力はコマンド・ウィンドウ(stdout)に送られます。

6.5 Coherenceの基本機能のサンプル

Coherenceの基本機能のサンプルは、単純化された連絡先情報をトラッキングすることによってCoherenceの基本機能の使用方法を説明するサンプルのコレクションで、次のものが含まれています。

- 基本データ・アクセス—Coherenceデータ・グリッドからデータを「取得」、「挿入」および「削除」します。第6.5.3項「基本データ・アクセスのサンプル」を参照してください。

- データのロード—Coherenceデータ・グリッドにサンプル・データをロードします。第6.5.4項「ローダーのサンプル」を参照してください。

- パラレル問合せ—Coherenceデータ・グリッドの問合せを行います(索引の使用を含む)。第6.5.5項「問合せのサンプル」を参照してください。

- Observable—Coherenceデータ・グリッド内のデータの変化をリスニングします。第6.5.6項「オブザーバのサンプル」を参照してください。

- 処理—データ自身がCoherenceデータ・グリッドにある共存データを処理します。第6.5.7項「プロセッサのサンプル」を参照してください。

- 問合せ言語—新しい3.6 Coherenceの問合せ言語の使用方法です。第6.5.8項「問合せ言語」を参照してください。

このサンプル・セットは、これらのデータ・モデル・クラスで表されるサンプル・データを使用します。

表6-14 機能サンプル用のデータ・モデル・クラス

名前

説明

Address

アドレス情報

Contact

連絡先情報(住所および電話番号を含む)

ContactId

連絡先情報へのキー(連絡先名)

PhoneNumber

電話番号

このサンプル・セットには、サンプルのContacts情報を含むカンマ区切り値のファイルであるcontacts.csvファイルも付属しています。

6.5.1 サンプル・セットの実行

1. 次の情報を確認します。

- 第6.3項「サンプルのビルド方法」

- 第6.4項「サンプルの実行方法」

2. 第6.5.2項「機能ドライバ・ファイルの理解」にあるドライバの実装情報を確認します。

6.5.2 機能ドライバ・ファイルの理解

ドライバ・ファイルには、すべての連絡先サンプルを次の順番で実行するstaticメソッドmainがあります。

1. LoaderExample

2. QueryExample

3. QueryLanguageExample

4. ObserverExample

5. BasicExample

6. ProcessorExample

ドライバ・ファイルは、Coherenceをサポートしている3つのプログラミング言語のそれぞれで実装されています。

言語

実装クラス

Java

java/srcのcom.tangosol.examples.contacts.Driver

.NET

dotnet/src/contactsのTangosol.Examples.Contactsネームスペース内にあるDriver

C++

cpp/contactsのcoherence::examplesネームスペース内にあるDriver

6.5.3 基本データ・アクセスのサンプル

このサンプルは、データの取得、挿入および削除を含むCoherenceの最も基本的なデータ・アクセス機能を示しています。

Java

実装クラス: java/src内のcom.tangosol.examples.contacts.BasicExample

- キャッシュでのContactIdのContactとの関連付け:

cache.put(contactId, contact);

- ContactIdと関連付けられたContactをキャッシュから取得:

contact = (Contact) cache.get(contactId);

- ContactIdからContactへのマッピングをキャッシュから削除:

cache.remove(contactId);

.NET

実装クラス: dotnet/src/contactsのTangosol.Examples.Contactsネームスペース内にあるBasicExample

- キャッシュでのContactIdのContactとの関連付け:

cache.Add(contactId, contact);

- ContactIdと関連付けられたContactをキャッシュから取得:

contact = (Contact)cache[contactId];

- ContactIdからContactへのマッピングをキャッシュから削除:

cache.Remove(contactId);

C++

実装クラス: cpp/contactsのcoherence::examplesネームスペース内にあるBasicExample

- キャッシュでのContactIdのContactとの関連付け:

hCache->put(vContactId, vContact);

- ContactIdと関連付けられたContactをキャッシュから取得:

vContact = cast<Managed<Contact>::View>(hCache->get(vContactId));

- ContactIdからContactへのマッピングをキャッシュから削除:

hCache->remove(vContactId);

6.5.3.1 出力の例

出力例(「オブザーバのサンプル」による):

例6-1 基本データ・アクセスのサンプルの出力例

entry inserted:
John Nocyefqgqo
Addresses
Home: 1500 Boylston St.
null
Obopnof, NM 88824
US
Work: 8 Yawkey Way
null
Ssedhvmdeq, OR 84217
US
Phone Numbers
work: +11 0 707 3776578
Birth Date: 1971-12-31
entry deleted:
John Nocyefqgqo
Addresses
Home: 1500 Boylston St.
null
Obopnof, NM 88824
US
Work: 8 Yawkey Way
null
Ssedhvmdeq, OR 84217
US
Phone Numbers
work: +11 0 707 3776578
Birth Date: 1971-12-31

6.5.4 ローダーのサンプル

このサンプルは、ファイルまたはストリームからキャッシュに連絡先をロードします。

ここでは、バルク挿入を使用する最も効率的なキャッシュへのデータの挿入方法を示します。これによって、アプリケーションとキャッシュの間のネットワーク・ラウンドトリップの数が最小化されます。

Java

実装クラス: java/src内のcom.tangosol.examples.contacts.LoaderExample

cache.putAll(mapBatch);

.NET

実装クラス: dotnet/src/contactsのTangosol.Examples.Contactsネームスペース内にあるLoaderExample

cache.InsertAll(dictBatch);

C++

実装クラス: cpp/contactsのcoherence::examplesネームスペース内にあるLoaderExample

hCache->putAll(hMapBatch);

6.5.4.1 出力例

例6-2 LoaderExampleの出力例

.........Added 10000 entries to cache

6.5.5 問合せのサンプル

QueryExampleは連絡先を問い合せるサンプルを実行します。

このサンプルの目的は、キャッシュ・データ上にExtractorsを作成する方法およびキャッシュ・キー用のKeyExtractorを作成する方法を説明することです。また、索引を使用してデータセットをフィルタし、効率的に一致セットを作成する方法も示します。最後に、いくつかの内蔵キャッシュ・アグリゲータを使用してキャッシュ・データに対して簡単な計算タスクを行う方法についても示します。コードのサブセットを次に示します。

Java

実装クラス: java/src内のcom.tangosol.examples.contacts.QueryExample

- 問合せをさらに効率化する索引を追加

cache.addIndex(new ChainedExtractor("getHomeAddress.getState"), /*fOrdered*/ false, /*comparator*/ null);

- すべてのMassachusettsに住む人の連絡先を検索

Set setResults = cache.entrySet(new EqualsFilter("getHomeAddress.getState", "MA"));

- キャッシュ・データセット全体でnAgeよりも年齢が高い人の連絡先をカウント

System.out.println("count > " + nAge + ": " + cache.aggregate(new GreaterFilter("getAge", nAge), new Count()));

.NET

実装クラス: dotnet/src/contactsのTangosol.Examples.Contactsネームスペース内にあるQueryExample

- 問合せをさらに効率化する索引を追加

cache.AddIndex(new ChainedExtractor("getHomeAddress.getState"),/*fOrdered*/ false, /*comparator*/ null);

- すべてのMassachusettsに住む人の連絡先を検索

ICacheEntry[] aCacheEntry = cache.GetEntries(new EqualsFilter("getHomeAddress.getState", "MA"));

- キャッシュ・データセット全体でnAgeよりも年齢が高い人の連絡先をカウント

Console.WriteLine("count > " + nAge + ": "+ cache.Aggregate(new GreaterFilter("getAge", nAge), new
Count()));

C++

実装クラス: cpp/contactsのcoherence::examplesネームスペース内にあるQueryExample

- 問合せをさらに効率化する索引を追加

ValueExtractor::View vHomeStateExtractor = ChainedExtractor::create(
ChainedExtractor::createExtractors("getHomeAddress.getState"));

- すべてのMassachusettsに住む人の連絡先を検索

Object::View voStateName = String::create("MA");
Set::View setResults = hCache->entrySet(
EqualsFilter::create(vHomeStateExtractor, voStateName));

- キャッシュ・データセット全体でnAgeよりも年齢が高い人の連絡先をカウント

Integer32::View nAge = Integer32::valueOf(58);
Object::View vResult = hCache->aggregate( (Filter::View) GreaterFilter::create(vAgeExtractor, nAge), Count::create());
std::cout << "count > " << nAge->getValue() << ": " << vResult << std::endl;

6.5.5.1 出力例

10,000件の連絡先および複数の問合せがあるため、出力例は大きくなります。次は、Massachusetts居住者の問合せのサンプルです。

例6-3 問合せのサンプルの出力例

MA Residents
ConverterEntry{Key="John Scqngqda", Value="John Scqngqda
Addresses
Home: 265 Beacon St.
Oaskxm, MA 88259
US
Work: Yoyodyne Propulsion Systems
330 Lectroid Rd.
Grover's Mill, OK 95744
US
Phone Numbers
work: +11 88 903 8991283
home: +11 98 553 5878221
Birth Date: 1960-01-03"}

6.5.6 オブザーバのサンプル

ObserverExampleは、MapListenerを使用してキャッシュ・データの挿入、更新および削除などのキャッシュ・イベントをモニターする方法を示します。コードのサブセットを次に示します。

Java

実装クラス: java/src内のcom.tangosol.examples.contacts.ObserverExample

- ContactChangeListenerはMapListenerインタフェースを実装するクラス

cache.addMapListener(new ContactChangeListener());

.NET

実装クラス: dotnet/src/contactsのTangosol.Examples.Contactsネームスペース内にあるObserverExample

- ContactChangeListenerはICacheListenerインタフェースを実装するクラス

cache.AddCacheListener(new ContactChangeListener());

C++

実装クラス: cpp/contactsのcoherence::examplesネームスペース内にあるObserverExample

- ContactChangeListenerはMapListenerインタフェースを実装するクラスで、Coherence implementsを使用します。

ContactChangeListener::Handle hListener = ContactChangeListener::create();
hCache->addFilterListener(hListener);

- ContactChangeListenerの定義:

class ContactChangeListener
: public class_spec<ContactChangeListener,
extends<Object>, implements <MapListener> >

このサンプルを実行しても、即座に出力はされません。エントリが挿入、更新および削除されると、登録されたリスナーによってそれが出力されます。更新の場合、古い値および新しい値の両方が出力されます。「基本データ・アクセスのサンプル」および「プロセッサのサンプル」を実行すると、エントリが変更されて出力が発生します。

6.5.7 プロセッサのサンプル

ProcessorExampleは、プロセッサを使用してキャッシュ内のデータ・セットを変更する方法を示します。次のコード・サンプルでは、MAに住むすべての人の連絡先の勤務先アドレスが更新されます。

Java

実装クラス: java/src内のcom.tangosol.examples.contacts.ProcessorExample

ヘルパー・クラス: java/src内のcom.tangosol.examples.contacts.OfficeUpdater

- MAに住むすべての人の連絡先にOfficeUpdaterを適用。OfficeUpdaterは、AbstractProcessorを拡張することによってInvocableMap.EntryProcessorインタフェースを実装しているクラス

cache.invokeAll(new EqualsFilter("getHomeAddress.getState", "MA"), new OfficeUpdater(addrWork));

.NET

実装クラス: dotnet/src/contactsのTangosol.Examples.Contactsネームスペース内にあるProcessorExample

ヘルパー・クラス: dotnet/src/contactsのTangosol.Examples.Contactsネームスペース内にあるOfficeUpdater

- MAに住むすべての人の連絡先にOfficeUpdaterを適用。OfficeUpdaterは、AbstractProcessorを拡張することによってIEntryProcessorインタフェースを実装しているクラス

cache.InvokeAll(new EqualsFilter("getHomeAddress.getState", "MA"), new OfficeUpdater(addrWork));

C++

実装クラス: cpp/contactsのcoherence::examplesネームスペース内にあるProcessorExample

ヘルパー・クラス: cpp/contactsのcoherence::examplesネームスペース内にあるOfficeUpdater

- OfficeUpdaterはUpdaterProcessor型を拡張したクラス

class OfficeUpdater
: public class_spec<OfficeUpdater,
extends<UpdaterProcessor>,
implements<PortableObject> >

- MAに住むすべての人の連絡先にOfficeUpdaterを適用。

Filter::View vEqualsFilter = EqualsFilter::create(
ChainedExtractor::create(ChainedExtractor::createExtractors(
"getHomeAddress.getState")),
String::create("MA"));
InvocableMap::EntryProcessor::Handle hOffice = OfficeUpdater::create(addrWork);
Map::View vMap = hCache->invokeAll(vEqualsFilter, hOffice);

6.5.7.1 出力例

出力例(「オブザーバのサンプル」による)は、連絡先の件数が多いため大きくなります。次のように出力されます。

例6-4 プロセッサのサンプルの出力例

entry updated
old value:
John Keau
Addresses
Home: 443 Beacon St.
Ophvowvw, MA 06539
US
Work: Yoyodyne Propulsion Systems
330 Lectroid Rd.
Grover's Mill, FL 86812
US
Phone Numbers
work: +11 8 919 9456102
home: +11 25 759 588823
Birth Date: 1968-12-31
new value:
John Keau
Addresses
Home: 443 Beacon St.
Ophvowvw, MA 06539
US
Work: 200 Newbury St.
Yoyodyne, Ltd.
Boston, MA 02116
US
Phone Numbers
work: +11 8 919 9456102
home: +11 25 759 588823
entry updated
old value:
John Lbggblkd
Addresses
Home: 929 Beacon St.
Trwylbmf, MA 50358
US
Work: Yoyodyne Propulsion Systems
330 Lectroid Rd.
Grover's Mill, AZ 19164
US
Phone Numbers
work: +11 60 699 203810
home: +11 34 149 5018157
Birth Date: 1964-01-02
new value:
John Lbggblkd
Addresses
Home: 929 Beacon St.
Trwylbmf, MA 50358
US
Work: 200 Newbury St.
Yoyodyne, Ltd.
Boston, MA 02116
US
Phone Numbers
work: +11 60 699 203810
home: +11 34 149 5018157
Birth Date: 1964-01-02
Birth Date: 1968-12-31

6.5.8 問合せ言語

このサンプルは、連絡先を問い合せるサンプルの実行方法を示しています。

Java

実装クラス: java/src内のcom.tangosol.examples.query.QueryExample

- 問合せをさらに効率化する索引を追加

cache.addIndex(ff.createExtractor("age"), /*fOrdered*/ true, /*comparator*/ null);
cache.addIndex(ff.createExtractor("homeAddress.state"), /*fOrdered*/ false, /*comparator*/ null);

- すべてのMassachusettsに住む人の連絡先を検索

Set setResults = cache.entrySet(ff.createFilter("homeAddress.state = 'MA'"));

- キャッシュ・データセット全体でnAgeよりも年齢が高い人の連絡先をカウント

final int nAge = 58;
Object[] aEnv = new Object[] {new Integer(nAge)};
System.out.println("count > " + nAge + ": " + cache.aggregate(ff.createFilter("age > ?1", aEnv), new
Count()));

.NET

実装クラス: dotnet/src/queryのTangosol.Examples.Queryネームスペース内にあるSimpleQueryExample

- 問合せをさらに効率化する索引を追加

cache.AddIndex(ff.CreateExtractor("age"), /*fOrdered*/ true, /*comparator*/ null);
cache.AddIndex(ff.CreateExtractor("homeAddress.state"), /*fOrdered*/ false, /*comparator*/ null);

- すべてのMassachusettsに住む人の連絡先を検索

ICollection results = cache.GetEntries(ff.CreateFilter("homeAddress.state = 'MA'"));

- キャッシュ・データセット全体でageよりも年齢が高い人の連絡先をカウント

const int age = 58;
object[] env = new object[] { age };
results = cache.GetEntries(ff.CreateFilter("age > ?1", env));

C++

実装クラス: cpp/queryのcoherence::examplesネームスペース内にあるSimpleQueryExample

- 問合せをさらに効率化する索引を追加

hCache->addIndex(hff->createExtractor("age"), /*fOrdered*/ true, /*vComparator*/ NULL);
hCache->addIndex(hff->createExtractor("homeAddress.state"), /*fOrdered*/ false, /*vComparator*/ NULL);

- すべてのMassachusettsに住む人の連絡先を検索

Set::View setResults = hCache->entrySet(hff->createFilter("homeAddress.state is 'MA'"));
s

- キャッシュ・データセット全体でnAgeよりも年齢が高い人の連絡先をカウント

Integer32::View nAge = Integer32::valueOf(58);
ObjectArray::Handle haEnv = ObjectArray::create(1);
haEnv[0] = nAge;
HashMap::Handle hbinds = HashMap::create();
hbinds->put(String::create("nAge"), nAge);
setResults = hCache->entrySet(hff->createFilter("age > ?1", haEnv));

6.5.8.1 出力例

出力例(「問合せのサンプル」による):

例6-5 問合せ言語のサンプルの出力例

MA Residents
ConverterCacheEntry{Key="John Wmbltik", Value="John Wmbltik
Addresses
Home: 785 Beacon St.
Vpmji, MA 34400
US
Work: 200 Newbury St.
Yoyodyne, Ltd.
Boston, MA 02116
US
Phone Numbers
work: +11 62 133 6144503
home: +11 17 238 6189757
Birth Date: 1/1/1968 12:00:00 AM"}
ConverterCacheEntry{Key="John Dtpx", Value="John Dtpx
Addresses
Home: 673 Beacon St.
Mvblms, MA 25889
US
Work: 200 Newbury St.
Yoyodyne, Ltd.
Boston, MA 02116
US
Phone Numbers
work: +11 89 900 8436918
home: +11 32 686 9582798
Birth Date: 1/3/1960 12:00:00 AM"}
.
.
.
count > 58 : 496

6.5.9 データ・ジェネレータ

実装クラス: java/src内のcom.tangosol.examples.contacts.DataGenerator

DataGeneratorには、ランダムな連絡先情報を生成し、結果をカンマ区切り値のファイルに格納するstaticなmainメソッドがあります。contactsサンプルとともにパッケージ化されているcontacts.csvは、このクラスによって生成されました。さらに多くのサンプル・データが必要になった場合に備えて、このクラスが含まれています。

実装はJavaのみです。

6.6 Coherenceのセキュリティのサンプル

Coherenceのセキュリティのサンプルは、Coherenceのセキュリティ機能を使用してアクセス制御を提供する方法を説明するサンプルのコレクションです。

これらのサンプルは、Coherenceのセキュリティ機能のみを説明するように簡略化されています。セキュリティのベスト・プラクティスのサンプルではありません。

- 「パスワードのサンプル」—Coherenceプロキシがキャッシュにアクセスするためにパスワードを要求する方法を説明します。

- 「アクセス制御のサンプル」—簡略化されたロール・ベースのアクセス制御を説明します。

- 「パスワードIDトランスフォーマ」—必要なパスワードを含むカスタム・セキュリティ・トークンを作成し、プリンシパル名のリストに追加します。

- 「パスワード・アイデンティティ・アサータ」—セキュリティ・トークンに必要なパスワードが含まれることをアサートし、プリンシパル名のリストに基づいてサブジェクトを構成します。

- 「資格が付与されるキャッシュ・サービス」—アクセス制御用にキャッシュ・サービスをラップします。

- 「資格が付与される起動サービス」—アクセス制御用に起動サービスをラップします。

- 「資格が付与される名前付きキャッシュ」—アクセス制御用に名前付きキャッシュをラップします。

6.6.1 このサンプル・セット

- パスワードを要求するキャッシュ参照を取得します。

- 異なるロールを必要とするキャッシュおよび起動サービス操作を試行します。

6.6.1.1 セキュリティ・サンプル・セットの実行

1. 次の情報を確認します。

- 第6.3項「サンプルのビルド方法」

- 第6.4項「サンプルの実行方法」

2. 次の項にあるセキュリティ・ドライバの実装情報を確認します。

6.6.1.2 セキュリティ・ドライバ・ファイルの理解

すべてのセキュリティ・サンプルを次の順番で実行するstaticメソッドmainがあります。

1. PasswordExample

2. AccessControlExample.accessCache()

3. AccessControlExample.accessInvocationService()

Coherenceをサポートしている3つのプログラミング言語のそれぞれで実装されています。

言語

実装クラス

Java

java/srcのcom.tangosol.examples.security.Driver

.NET

dotnet/src/securityのTangosol.Examples.Securityネームスペース内にあるDriver

C++

cpp/securityのcoherence::examplesネームスペース内にあるDriver

次の概要が示されている各サンプルの詳細は、サンプル・セットのexample.zipファイルを参照してください。

6.6.2 パスワードのサンプル

このサンプルは、Coherenceプロキシがキャッシュへの参照を取得するためにパスワードを要求する方法を示しています。

Java

実装クラス: java/src内のcom.tangosol.examples.security.PasswordExample

コードは、Subjectを取得するためにログインし、そのサブジェクトのコンテキストで実行中のキャッシュ参照を取得しようとします。

「パスワードIDトランスフォーマ」は、パスワードを含むセキュリティ・トークンを生成します。「パスワード・アイデンティティ・アサータ」(プロキシ内で実行)は、パスワードを強制するためにセキュリティ・トークンを検証します。トークンは、プロキシへの接続時に自動的に生成および検証されます。

.NET

実装クラス: dotnet/src/securityのTangosol.Example.Securityネームスペース内にあるPasswordExample

コードは、Principalを取得するためにログインし、Principalをスレッドの現在のプリンシパルにすることによってそのPrincipalのコンテキストで実行中のキャッシュ参照を取得しようとします。

「パスワードIDトランスフォーマ」は、パスワードを含むセキュリティ・トークンを生成します。「パスワード・アイデンティティ・アサータ」(プロキシ内で実行)は、パスワードを強制するためにセキュリティ・トークンを検証します。トークンは、プロキシへの接続時に自動的に生成および検証されます。

C++

実装クラス: cpp/securityのcoherence::examplesネームスペース内にあるAccessExample

コードは、Subjectを取得するためにログインし、そのSubjectのコンテキストで実行中のキャッシュ参照を取得しようとします。

「パスワードIDトランスフォーマ」は、パスワードを含むセキュリティ・トークンを生成します。「パスワード・アイデンティティ・アサータ」(プロキシ内で実行)は、パスワードを強制するためにセキュリティ・トークンを検証します。トークンは、プロキシへの接続時に自動的に生成および検証されます。

出力例:

例6-6 パスワードのサンプルの出力例

------password example begins------
------password example succeeded------
------password example completed------

6.6.3 アクセス制御のサンプル

このサンプルは、簡略化されたロール・ベースのアクセス制御について示しています。

Java

実装クラス: java/src内のcom.tangosol.examples.security.AccessControlExample

コードは、Subjectを取得するために特定のロールを持つユーザーIDでログインし、そのSubjectのコンテキストで実行中のキャッシュ参照を取得し、キャッシュの操作を試行します。ユーザーに付与されたロールに応じて、キャッシュ操作が許可または拒否されます。

writerロールを持つユーザーは、挿入および取得が許可されています。readerロールを持つユーザーは、取得はできますが、挿入はできません。writerロールを持つユーザーは、キャッシュの破棄はできません。adminロールを持つユーザーは、キャッシュを破棄できます。

その後、特定のロールを持つユーザーは起動サービスの使用を試行します。readerによる起動は許可されていませんが、writerでは許可されています。

一度あるSubjectのコンテキストでキャッシュまたは起動サービス参照が作成されると、そのIDは永続的にその参照と関連付けられることに注意してください。キャッシュまたはサービス参照の使用すべてがそのIDの代理として行われます。

「パスワードIDトランスフォーマ」は、パスワード、ユーザーIDおよびロールを含むセキュリティ・トークンを生成します。「パスワード・アイデンティティ・アサータ」(プロキシ内で実行)は、パスワードを強制するためにセキュリティ・トークンを検証し、適切なユーザーIDおよびロールを持つSubjectを構築します。

セキュリティ・トークンの生成とアサーションは自動的に実行されます。

アクセス制御の実装については、「資格が付与されるキャッシュ・サービス」, 「資格が付与される起動サービス」および「資格が付与される名前付きキャッシュ」のコードを参照してください。

.NET

実装クラス: dotnet/src/securityのTangosol.Example.Securityネームスペース内にあるAccessControlExample

コードは、Principalを取得するために特定のロールを持つユーザーIDでログインし、そのPrincipalのコンテキストで実行中のキャッシュ参照を取得し、キャッシュの操作を試行します。ユーザーに付与されたロールに応じて、キャッシュ操作が許可または拒否されます。

writerロールを持つユーザーは、挿入および取得が許可されています。readerロールを持つユーザーは、取得はできますが、挿入はできません。writerロールを持つユーザーは、キャッシュの破棄はできません。adminロールを持つユーザーは、キャッシュを破棄できます。

その後、特定のロールを持つユーザーは起動サービスの使用を試行します。readerによる起動は許可されていませんが、writerでは許可されています。

一度あるPrincipalのコンテキストでキャッシュまたは起動サービス参照が作成されると、そのIDは永続的にその参照と関連付けられることに注意してください。キャッシュまたはサービス参照の使用すべてがそのIDの代理として行われます。

「パスワードIDトランスフォーマ」は、パスワード、ユーザーIDおよびロールを含むセキュリティ・トークンを生成します。「パスワード・アイデンティティ・アサータ」(プロキシ内で実行)は、パスワードを強制するためにセキュリティ・トークンを検証し、適切なユーザーIDおよびロールを持つSubjectを構築します。

セキュリティ・トークンの生成とアサーションは自動的に実行されます。

アクセス制御の実装については、「資格が付与されるキャッシュ・サービス」, 「資格が付与される起動サービス」および「資格が付与される名前付きキャッシュ」のコードを参照してください。

C++

実装クラス: cpp/securityのcoherence::examplesネームスペース内にあるAccessControlExample

コードは、Subjectを取得するために特定のロールを持つユーザーIDでログインし、そのSubjectのコンテキストで実行中のキャッシュ参照を取得し、キャッシュの操作を試行します。ユーザーに付与されたロールに応じて、キャッシュ操作が許可または拒否されます。

writerロールを持つユーザーは、挿入および取得が許可されています。readerロールを持つユーザーは、取得はできますが、挿入はできません。writerロールを持つユーザーは、キャッシュの破棄はできません。adminロールを持つユーザーは、キャッシュを破棄できます。

その後、特定のロールを持つユーザーは起動サービスの使用を試行します。readerによる起動は許可されていませんが、writerでは許可されています。

一度あるサブジェクトのコンテキストでキャッシュまたは起動サービス参照が作成されると、そのIDは永続的にその参照と関連付けられることに注意してください。キャッシュまたはサービス参照の使用すべてがそのIDの代理として行われます。

「パスワードIDトランスフォーマ」は、パスワード、ユーザーIDおよびロールを含むセキュリティ・トークンを生成します。「パスワード・アイデンティティ・アサータ」(プロキシ内で実行)は、パスワードを強制するためにセキュリティ・トークンを検証し、適切なユーザーIDおよびロールを持つSubjectを構築します。

セキュリティ・トークンの生成とアサーションは自動的に実行されます。

アクセス制御の実装については、「資格が付与されるキャッシュ・サービス」, 「資格が付与される起動サービス」および「資格が付与される名前付きキャッシュ」のコードを参照してください。

6.6.3.1 出力例

出力例:

例6-7 アクセス制御のサンプルの出力例

------cache access control example begins------
Success: read and write allowed
Success: read allowed
Success: Correctly cannot write
Success: Correctly cannot destroy the cache
Success: Correctly allowed to destroy the cache
------cache access control example completed------
------InvocationService access control example begins------
Success: Correctly allowed to use the invocation service
Success: Correctly unable to use the invocation service
------InvocationService access control example completed------

6.6.4 パスワードIDトランスフォーマ

このサンプルは、IdentityTransformerがIDからセキュリティ・トークンを生成する方法を示しています。

Java

実装クラス: java/src内のcom.tangosol.examples.security.PasswordIdentityTransformer

コードは、文字列の配列であるセキュリティ・トークンを生成します。最初の文字列はパスワードです。2番目の文字列はユーザーIDで、後続の文字列はユーザーのロールです。文字列の配列は、Coherence*Extendによってカスタム・シリアライザを使用せずにシリアライズされます。

このクラスは、Extendクライアントがプロキシに接続する際、または既存の接続でチャンネルが開かれる際に自動的に起動されます。

.NET

実装クラス: dotnet/src/securityのTangosol.Example.Securityネームスペース内にあるPasswordIdentityTransformer

コードは、文字列の配列であるセキュリティ・トークンを生成します。最初の文字列はパスワードです。2番目の文字列はユーザーIDで、後続の文字列はユーザーのロールです。文字列の配列は、Coherence*Extendによってカスタム・シリアライザを使用せずにシリアライズされます。

このクラスは、Extendクライアントがプロキシに接続する際、または既存の接続でチャンネルが開かれる際に自動的に起動されます。

C++

実装クラス: cpp/securityのcoherence::examplesネームスペース内にあるPasswordIdentityTranfromer

コードは、文字列の配列であるセキュリティ・トークンを生成します。最初の文字列はパスワードです。2番目の文字列はユーザーIDで、後続の文字列はユーザーのロールです。文字列の配列は、Coherence*Extendによってカスタム・シリアライザを使用せずにシリアライズされます。

このクラスは、Extendクライアントがプロキシに接続する際、または既存の接続でチャンネルが開かれる際に自動的に起動されます。

6.6.5 パスワード・アイデンティティ・アサータ

このサンプルは、IdentityAsserterがセキュリティ・トークンを検証し、プリンシパル名のリストからSubjectを生成する方法を示しています。

Java

実装クラス: java/src内のcom.tangosol.examples.security.PasswordIdentityAsserter

コードは、文字列の配列であるセキュリティ・トークンを処理します。最初の文字列はパスワードである必要があります。後続の文字列はプリンシパルです。トークンの処理に失敗すると、プロキシへのアクセスを拒否するSecurityExceptionが発生します。

.NET

実装クラス: なし

IdentityAsserterはプロキシ上でのみ(Javaで)実行されるため、.NETクライアントでは実行できません。そのため、.NET向けのPasswordIdentityAsserterはありません。

C++

実装クラス: なし

PasswordIdentityAsserterはプロキシ上でのみ(Javaで)実行されるため、C++クライアントでは実行できません。そのため、C++向けのPasswordIdentityAsserterはありません。

6.6.6 資格が付与されるキャッシュ・サービス

この例は、リモート・キャッシュ・サービスをラップしてアクセス制御を提供する方法を示しています。

Java

実装クラス: java/src内のcom.tangosol.examples.security.EntitledCachService

コードは、キャッシュ操作用のアクセス制御を提供する「資格が付与される名前付きキャッシュ」をインスタンス化します。コードは、キャッシュ・サービス・メソッドreleaseおよびdestroy用のアクセス制御も提供しています。アクセス制御チェックは、「セキュリティ・サンプル・ヘルパー」に委任されます。

このクラスは、キャッシュ・サービスがプロキシで起動した際に、自動的にインスタンス化されます。

.NET

.NETの実装はありません。クラスはプロキシ上でのみJavaで実行されます。

C++

C++の実装はありません。クラスはプロキシ上でのみJavaで実行されます。

6.6.7 資格が付与される起動サービス

このサンプルは、リモート起動サービスをラップしてアクセス制御を提供する方法を示しています。

Java

実装クラス: java/src内のcom.tangosol.examples.security.EntitledInvocationService

コードは、起動サービス・メソッド用のアクセス制御を提供します。アクセス制御チェックは、「セキュリティ・サンプル・ヘルパー」に委任されます。

このクラスは、起動サービスがプロキシで起動した際に、自動的にインスタンス化されます。

.NET

.NETの実装はありません。クラスはプロキシ上でのみJavaで実行されます。

C++

C++の実装はありません。クラスはプロキシ上でのみJavaで実行されます。

6.6.8 資格が付与される名前付きキャッシュ

このサンプルは、リモート名前付きキャッシュをラップしてアクセス制御を提供する方法を示しています。

Java

実装クラス: java/src内のcom.tangosol.examples.security.EntitledNamedCache

コードは、NamedCacheメソッド用のアクセス制御を提供します。アクセス制御チェックは、「セキュリティ・サンプル・ヘルパー」に委任されます。

このクラスは、キャッシュ・サービスがプロキシで起動した際に、自動的にインスタンス化されます。

.NET

.NETの実装はありません。クラスはプロキシ上でのみJavaで実行されます。

C++

C++の実装はありません。クラスはプロキシ上でのみJavaで実行されます。

6.6.9 セキュリティ・サンプル・ヘルパー

このサンプルは、認証およびアクセス制御用のヘルパー・クラスです。

Java

実装クラス: java/src内のcom.tangosol.examples.security.SecurityExampleHelper

コードは認証をシミュレートします。簡略化のため、これはSubjectを作成します。実際の実装では、プラットフォームおよび企業に固有な認証を行います。ログインでも、単純にユーザー名をロールにマッピングしています。

checkAccessメソッドは、ユーザーのロールによって操作が許可されているかを確認します。

.NET

実装クラス: dotnet/src/securityのTangosol.Example.Securityネームスペース内にあるSecurityExampleHelper

コードは認証をシミュレートします。簡略化のため、これはPrincipalを作成します。実際の実装では、プラットフォームおよび企業に固有な認証を行います。ログインでも、単純にユーザー名をロールにマッピングしています。

C++

実装クラス: cpp/securityのcoherence::examplesネームスペース内にあるSecurityExampleHelper

コードは認証をシミュレートします。簡略化のため、これはSubjectを作成します。実際の実装では、プラットフォームおよび企業に固有な認証を行います。ログインでも、単純にユーザー名をロールにマッピングしています。

6.7 Coherenceのライブ・イベントのサンプル

これらのサンプルは、EntryEvents、EntryProcessorEventsおよびTransferEventsを含むCoherenceライブ・イベントの様々なイベント・タイプおよびそれらがどのように処理されるかを示しています。

ライブ・イベントのサンプルはパーティション・サービスの記憶域が有効なメンバーで実行されるため、Javaプログラミング言語でのみ使用可能です。

- 「EventsExamples」—ライブ・イベントの様々な機能を示しています。

- 「TimedTraceInterceptor」—異なるタイプのイベントに対して、コミット前イベントとコミット後イベントの間のタイミングを提供します。

- 「CantankerousInterceptor」—挿入されるキーのタイプに基づいて、コミット前時間またはコミット後時間のどちらかにランタイム例外で応答します。

- 「RedistributionInterceptor」—有効化された場合にパーティション・イベントをログに記録します。

- 「RedistributionInvocable」—クラスタの様々なメンバーで実行されるアクション可能な3つの状態を定義します。状態とは、RedistributionInterceptorによって実行されるロギングの有効化、ロギングの無効化、またはinvocable (RedistributionInvocable)が実行されているJVMの終了です。

- 「LazyProcessor」—イベントの処理間の実体のない遅延を作成します。

6.7.1 このサンプル・セット

- 結果のキャッシュに挿入されるイベント前とイベント後の間の経過時間を計測する方法を示しています。

- コミット前イベントおよびコミット後イベントにおける例外スローのセマンティクスを示しています。

- パーティション再配布イベントの記録方法を示しています。

6.7.1.1 ライブ・イベント・サンプル・セットの実行

1. 次の情報を確認します。

- 第6.3項「サンプルのビルド方法」

- 第6.4項「サンプルの実行方法」

2. 次の項にあるライブ・イベント・ドライバの実装情報を確認します。

6.7.1.2 ライブ・イベント・ドライバ・ファイルの理解

すべてのライブ・イベント・サンプルを次の順番で実行するstaticメソッドmainがあります。

1. イベント時間測定サンプル

2. イベント拒否サンプル

3. パーティション転送イベント・サンプル

実装はJavaプログラミング言語のみです。

言語

実装クラス

Java

java/srcのcom.tangosol.examples.events.Driver

6.7.2 EventsExamples

実装クラス: java/src内のcom.tangosol.examples.events.EventsExamples

EventsExamplesクラスは、ライブ・イベントの様々な機能を示しています。次のものが含まれます。

- イベント・タイプで分割された平均経過時間の提供

- イベント後と比較したイベント前の例外スローの異なるセマンティクスの説明

- 有効な場合のパーティション移動のロギングの説明

EventsExamplesクラスでは、次の内部クラスが定義されています。

- EventsTimingExample

- VetodEventsExample

- RedistributionEventsExample

6.7.2.1 EventsTimingExample

EventsTimingExample内部クラスは、TimedTraceInterceptorによって実行されるアクションのきっかけとなります。これは、結果のキャッシュに挿入されるイベント前とイベント後の間の経過時間を計測する方法を示しています。結果キャッシュに挿入されたエントリは、このクラスを実行するプロセスのstdoutを使用して表示されます。

出力例:

例6-8 EventsTimingExampleの出力例

Received stats [memberId=2, eventType=INSERTED, sample=1] = EventStats[name = INSERTED, sampleMean = 0.294040ms, mean = 0.294040ms]
Received stats [memberId=3, eventType=INSERTED, sample=1] = EventStats[name = INSERTED, sampleMean = 0.397855ms, mean = 0.397855ms]
Received stats [memberId=1, eventType=INSERTED, sample=1] = EventStats[name = INSERTED, sampleMean = 0.373270ms, mean = 0.373270ms]
Received stats [memberId=3, eventType=UPDATED, sample=1] = EventStats[name = UPDATED, sampleMean = 0.187132ms, mean = 0.187132ms]
Received stats [memberId=2, eventType=UPDATED, sample=1] = EventStats[name = UPDATED, sampleMean = 0.234314ms, mean = 0.234314ms]
Received stats [memberId=1, eventType=UPDATED, sample=1] = EventStats[name = UPDATED, sampleMean = 0.237622ms, mean = 0.237622ms]

6.7.2.2 VetodEventsExample

VetodEventsExample内部クラスは、CantankerousInterceptorによって実行されるアクションのきっかけとなります。これは、イベント前およびイベント後における例外スローのセマンティクスを示しています。記録する必要がある例外のみが結果キャッシュに挿入されます。結果キャッシュに挿入されたエントリは、このクラスを実行するプロセスのstdoutを使用して表示されます。

出力例:

例6-9 VetodEventsExampleの出力例

Received event [memberId=3, eventType=NON_VETO, count=1] = Objection falls on deaf ears! value = value: 11
Received event [memberId=3, eventType=NON_VETO, count=2] = Objection falls on deaf ears! value = value: 22
Received event [memberId=3, eventType=NON_VETO, count=3] = Objection falls on deaf ears! value = value: 33
Received event [memberId=3, eventType=NON_VETO, count=4] = Objection falls on deaf ears! value = value: 44

6.7.2.3 RedistributionEventsExample

RedistributionEventsExample内部クラスは、RedistributionInterceptorクラスによって実行されるアクションのきっかけとなります。これは、RedistributionInterceptorでのロギングの有効化およびメンバーの強制終了からパーティション再配布を誘発することによって、パーティション再配布イベントがどのように記録されるかを示しています。

出力例:

例6-10 RedistributionEventsExampleの出力例

Choosing to kill member Member(Id=3, Timestamp=2014-01-02 16:38:17.942, Address=10.159.154.103:8092, MachineId=47251, Location=site:,machine:TPFAEFFL-LAP,process:8168, Role=CoherenceServer)

6.7.3 TimedTraceInterceptor

実装クラス: java/src内のcom.tangosol.examples.events.TimedTraceInterceptor

TimedTraceInterceptorクラスは、イベントの各タイプ(挿入、更新、削除およびエントリ・プロセッサの実行)に対するコミット前イベントとコミット後イベントの間のタイミングを提供します。これらのタイミングは、cSampleパラメータで定義されるサンプル率で収集および平均の計算が行われます。さらに、同時にログにも出力されます。この実装は各バイナリ・キーへの強い参照を維持しますが、同じキーに対するコミット後イベントの受信の際に削除されます。

インターセプタは、EventInterceptorインタフェースを実装します。@Interceptor注釈は、identifier属性でインターセプタの一意名を示し、order属性で実行順序(Order.HIGH)を示します。

インターセプタには、保護されたEventTimer内部クラスも含まれています。このクラスでは、通知対象の各イベントの経過時間が測定されます。インターセプタは、各エントリに対するコミット前イベントとコミット後イベントの間の時間、およびそれぞれのイベント・タイプ(INSERT、UPDATE、REMOVE)を追跡します。タイミングは、サンプル統計と累積統計を表示するCoherenceログにまとめて送信されます。

汎用引数がcom.tangosol.net.events.partition.cache.Eventであるため、ユーザーは、フィルタリングを指定しなくても、そのイベントのコンシューマであるイベント(EntryEventおよびEntryProcessorEvent)のみを取得します。

6.7.4 CantankerousInterceptor

実装クラス: java/src内のcom.tangosol.examples.events.CantankerousInterceptor

CantankerousInterceptorクラスは、あるキーの挿入イベントはコミット前またはコミット後のフェーズで実行時例外になるという議論を呼ぶ性質を持ったEventInterceptorの実装です。

例外がコミット前にスローされた場合は、ロールバックが発生し、例外がクライアントに伝播されます。例外がコミット後に発生した場合は、ログ・イベントが記録されます。例外に使用されるキーは、VETOおよびNON-VETOです。INSERTINGおよびUPDATINGは拒否できるイベントであるのに対して、INSERTEDおよびUPDATEDイベントは拒否できません。

6.7.5 RedistributionInterceptor

実装クラス: java/src内のcom.tangosol.examples.events.RedistributionInterceptor

RedistributionInterceptorクラスは、有効化された際にパーティション・アクティビティを記録するEventInterceptorです。ロギングは、RedistributionInvocable.ENABLED定数の設定を使用して有効化できます。

6.7.6 RedistributionInvocable

実装クラス: java/src内のcom.tangosol.examples.pof.RedistributionInvocable

RedistributionInvocableクラスは、クラスタの様々なメンバーで実行されるアクション可能な3つの状態を定義します。この例では、状態を次のように定義します。

- DISABLE: RedistributionInterceptorイベント・インターセプタによって実行されるロギングを無効にします。

- ENABLE: RedistributionInterceptorイベント・インターセプタによって実行されるロギングを有効にします。

- KILL: この起動可能(RedistributionInvocable)が実行されるJVMを終了します。

6.7.7 LazyProcessor

実装クラス: java/src内のcom.tangosol.examples.pof.LazyProcessor

LazyProcessorクラスは、イベントの処理間の実体のない遅延を作成します。クラスでは、このプロセッサがイベントの処理間でスリープする必要があるミリ秒数を指定します。このクラスは、EventsExamplesクラスのEventsTimingExampleサブクラスで使用されます。

6.8 Coherence Java 8機能のサンプル

これらのサンプルは、Java 8で使用可能な機能を使用したCoherenceの使用方法を示します。サンプルは、Mapインタフェースで導入されたストリーム、ラムダおよびデフォルト・メソッドの使用方法を示します。機能は3つの個別のサンプルにまとめられます。ただし、これらの機能は互いの上にビルドされるため、一緒に使用することはできません。

6.8.1 このサンプル・セット

- キャッシュ・エントリの問合せおよび処理をする時の、Javaストリームの使用方法を示します。

- Coherenceの共通タスクを単純化する時の、ラムダ機能の使用方法を示します。

- CoherenceのInvocableMapインタフェース内でオーバーライドされたMapインタフェースの新しいデフォルト・メソッドを使用して、キャッシュ・エントリを問い合せ、処理する方法を示します。

6.8.1.1 Java 8機能のサンプル・セットの実行

1. 次の情報を確認します。

- 第6.3項「サンプルのビルド方法」

- 第6.4項「サンプルの実行方法」

2. 次の項にあるJava 8 Driverの実装情報を確認します。

6.8.1.2 Java 8のドライバ・ファイルの理解

すべてのJava 8のサンプルを次の順番で実行するstaticメソッドmainがあります。

1. ストリーム

2. ラムダ

3. マップのデフォルト・メソッド

実装はJavaプログラミング言語のみです。

言語

実装クラス

Java

java/src内のcom.tangosol.examples.java8.Driver

6.8.2 ストリーム

実装クラス: java/src内のcom.tangosol.examples.java8.StreamsExample。

StreamsExampleクラスは、StreamAPIを使用してコンタクト・キャッシュの複数の問合せを実行します。また、ラムダ式が使用できます。問合せの結果はコンソールに出力されます。このクラスは、CoherenceのRemoteCollectorインタフェースを使用して標準Java Collectorインタフェースを拡張し、シリアライズをサポートして配布されるストリーム要素を順番に処理します。

6.8.3 ラムダ

実装クラス: java/src内のcom.tangosol.examples.java8.LambdaExample。

LambdaExampleクラスは、ラムダ式を使用してコンタクト・キャッシュにリスナーを追加し、エントリ・プロセッサを使用して連絡先を更新します。最後に、ラムダ式は、CoherenceのFilters APIを使用したコンタクト・キャッシュの問合せに使用されます。

6.8.4 マップのデフォルト・メソッド

実装クラス: java/src内のcom.tangosol.examples.java8.MapDefaultMethdodExample。

MapDefaultMethodExampleクラスは、コンタクト・キャッシュの複数の問合せを実行し、Mapインタフェースに追加されたデフォルト・メソッドを使用していくつかのキャッシュ・エントリを更新します。CoherenceはInvocableMapインタフェース内のデフォルト・メソッドをオーバーライドすることに注意してください。また、キャッシュを問い合せる際に、サンプルはラムダ式を使用することも注意してください。

6.9 Coherenceの非同期機能のサンプル

これらのサンプルは、AsyncNamedCache APIを使用して非同期データ・グリッドを実行する方法を示します。サンプルは、java.util.concurrent.CompletableFuture APIも使用し、操作が完了したかどうかチェックし、完了するまで待機し、操作結果を取得します。

6.9.1 このサンプル・セット

- キャッシュ内のデータの取得および保存を非同期で実行する方法を示します。

- キャッシュ・エントリを非同期で処理する方法を示します。

- キャッシュ・エントリを非同期で集計する方法を示します。

6.9.1.1 非同期機能のサンプル・セットの実行

1. 次の情報を確認します。

- 第6.3項「サンプルのビルド方法」

- 第6.4項「サンプルの実行方法」

2. 次の項にある非同期のDriverの実装情報を確認します。

6.9.1.2 非同期ドライバ・ファイルの理解

すべての非同期サンプルを次の順番で実行するstaticメソッドmainがあります。

1. データ・アクセスのサンプル

2. プロセッサのサンプル

3. アグリゲータのサンプル

実装はJavaプログラミング言語のみです。

言語

実装クラス

Java

java/srcのcom.tangosol.examples.async.Driver

6.9.2 非同期のデータ・アクセス

実装クラス: java/src内のcom.tangosol.examples.async.DataAccessExample。

DataAccessExampleクラスは、AsyncNamedCache APIを使用して、コンタクト・キャッシュのインスタンスを取得します。クラスは新しい連絡先を作成し、AsyncNamedCacheインスタンスを使用して連絡先をキャッシュに保存し、キャッシュから連絡先を取得します。連絡先は変更されて、キャッシュに戻されます。

6.9.3 非同期のエントリ・プロセッサ

実装クラス: java/src内のcom.tangosol.examples.async.ProcessorExample。

ProcessorExampleクラスは、AsyncNamedCache APIを使用して、コンタクト・キャッシュのインスタンスを取得します。AsyncNamedCacheインスタンスを使用して、キャッシュを問合せ、連絡先の名前のセットを大文字に変更するエントリ・プロセッサを実行します。次に、エントリ・プロセッサを使用して名前を小文字に戻します。

6.9.4 非同期のアグリゲータ

実装クラス: java/src内のcom.tangosol.examples.async.AggregatorExample。

AggregatorExampleクラスは、AsyncNamedCache APIを使用して、コンタクト・キャッシュのインスタンスを取得します。AsyncNamedCacheインスタンスを使用して、キャッシュを問合せ、年齢別の連絡先のセット上で集計を実行します。

6.10 Coherenceのフェデレーテッド・キャッシュのサンプル

フェデレーテッド・キャッシュのサンプルは、2つのクラスタ、ClusterAおよびClusterBを起動します。クラスタは、フェデレーション・トポロジに構成され、キャッシュされたデータは2つのクラスタ間でアクティブに同期されます。

6.10.1 このサンプル・セット

- フェデレーション・クラスタの参加者構成を示します

- アクティブ/アクティブ型レプリケーションのトポロジ構成を示します

- フェデレーテッド・キャッシュのサービス構成を示します

- クラスタ参加者間の通信をセキュアにするSSL構成を示します

6.10.1.1 フェデレーテッド・キャッシュのサンプル・セットの実行

1. 次の情報を確認します。

- 第6.3項「サンプルのビルド方法」

- 第6.4項「サンプルの実行方法」

2. 次の項にあるフェデレーテッド・キャッシュのDriverの実装情報を確認します。

6.10.1.2 フェデレーテッド・キャッシュのドライバ・ファイルの理解

次を実行するstaticメソッド、mainがあります。

1. 2つのクラスタを起動します。

2. GUIアプリケーション、CohQLまたはコンソールのいずれかを各クラスタで起動します。

実装はJavaプログラミング言語のみです。

言語

実装クラス

Java

java/srcのcom.tangosol.examples.federation.Driver

6.10.2 フェデレーション構成

フェデレーションのサンプルは、構成を示します。resource/federation/examples-cache-configure.xmlファイルを検証し、フェデレーテッド・キャッシュ構成を確認します。resource/federation/tangosol-coherence-override.xmlファイルを検証し、フェデレーション参加者およびレプリケーション・トポロジの構成方法の詳細を確認します。

6.11 Coherenceの永続性のサンプル

永続性のサンプルは、キャッシュ・データからディスクへの保存およびリカバリの方法を示します。サンプルは、多数の異なる永続性操作をプログラムによって実行します。永続性操作は、PersistenceCoordinatorMBean MBeanおよびCohQLコマンドを使用して実行することもできます。

6.11.1 このサンプル・セット

- キャッシュ・スナップショットを保存およびリカバリする方法を示します

- 永続性のある通知を登録する方法を示します

- 永続性操作をパラレルで実行する方法を示します

- カスタム・アーカイバの作成方法および使用方法を示します

6.11.1.1 永続性のサンプル・セットの実行

1. 次の情報を確認します。

- 第6.3項「サンプルのビルド方法」

- 第6.4項「サンプルの実行方法」

2. 次の項にある永続性のDriverの実装情報を確認します。

6.11.1.2 永続性のドライバ・ファイルの理解

入力された引数に基づき永続性のサンプルを実行するstaticメソッドmainがあります。

1. 基本的なスナップショットのサンプル

2. 永続性のある通知のサンプル

3. パラレルの永続性操作のサンプル

4. カスタム・アーカイバのサンプル

実装はJavaプログラミング言語のみです。

言語

実装クラス

Java

java/srcのcom.tangosol.examples.async.Driver

6.11.2 基本的なスナップショット操作

実装クラス: java/src内のcom.tangosol.examples.persistence.BasicSnapshotOperations

BasicSnapshotOperationsクラスは、キャッシュのコンテンツを保存およびリカバリする永続性のスナップショットの使用方法を示します。次のようにして、連絡先のサンプルを使用し、キャッシュの移入およびプログラムによる永続性操作を実行します。

- 連絡先キャッシュのスナップショットが作成されます。永続性ファイルは、java/persistence-dataにあります。

- 使用可能なスナップショットのリストが検索されます。

- 連絡先キャッシュがすべてのデータで削除されます。

- キャッシュ・コンテンツがスナップショットからリカバリされます。

- キャッシュのサイズがレポートされます。

- 連絡先キャッシュのスナップショットが削除されます。

- 使用可能なスナップショットのリストを検証し、スナップショットが削除されたことを確認します

6.11.3 永続性のある通知

実装クラス: java/src内のcom.tangosol.examples.persistence.NotificationWatcher

NotificationWatcherクラスは、永続性操作からの通知をモニターする方法を示します。基本的なスナップショット操作のサンプルが、モニターされている操作で実行されます。クラスは、永続性のある通知リスナーを連絡先キャッシュ・サービス上に作成して登録します。次に、通知を使用して、永続性操作の実行にかかる時間をモニターします。

6.11.4 パラレルの永続性操作

実装クラス: java/src内のcom.tangosol.examples.persistence.ParallelSnapshotOperations

ParallelSnapshotOperationsクラスは、複数のパーティション化されたキャッシュ・サービスに対するパラレルのスナップショット操作をコールする方法を示します。基本的なスナップショット操作のサンプルが実行され、連絡先キャッシュ・サービスの2つのインスタンスが作成されます。次に、各キャッシュ・サービスに対して永続性操作が実行されます。

6.11.5 カスタム・アーカイバのスナップショットのアーカイブ

実装クラス: java/src内のcom.tangosol.examples.archiver.SFTPSnapshotArchiver

SFTPSnapshotArchiverクラスは、スナップショット・アーカイバのカスタム実装で、JCraft (http://www.jcraft.com/jsch/)のJSchライブラリを使用します。セキュアなFTPを使用してリモート・サーバーにスナップショットをアーカイブするアーカイバを作成します。SFTPSnapshotArchiverクラスは、AbstractSnapshotArchiverクラスを拡張します。このサンプルを実行するには、JSchライブラリをダウンロードし、リモート・サーバーがSSHをサポートしている必要があります。

サンプル・ファイル、Driverは、標準的スナップショット操作のサンプルと同様に実行されますが、アーカイブ操作が含まれます。次のようにして、永続性操作が実行されます。

- 連絡先キャッシュのスナップショットが作成されます。永続性ファイルは、java/persistence-dataにあります。

- 使用可能なスナップショットのリストが検索されます。

- 連絡先キャッシュのスナップショットがSFTPを使用してアーカイブされます。

- 連絡先キャッシュのスナップショットが削除されます。

- 連絡先キャッシュがすべてのデータで削除されます。

- キャッシュのサイズがレポートされます。

- アーカイブされたスナップショットがSFTPを使用して取得されます。

- 使用可能なスナップショットのリストが検索されます。

- キャッシュ・コンテンツがスナップショットからリカバリされます。

- キャッシュのサイズがレポートされます。

- スナップショットおよびアーカイブされたスナップショットは、どちらも削除されます。

6.12 Coherence RESTのサンプル

Coherence RESTサンプルは、Coherence REST APIを使用する基本的な単一のWebベースのアプリケーションの作成方法を示します。サンプルは、Grizzly HTTPサーバーを使用して、クライアントHTTPリクエストを受信します。サンプルのクライアントは、いくつかのJavaScriptライブラリおよびAngular JSフレームワークを使用してビルドされます。

他のCoherenceのサンプルとは異なり、Coherence RESTサンプルはApache Mavenを使用してサンプルをビルドおよび実行します。Mavenは、Coherence RESTの使用に適しており、すべてのライブラリ依存性の管理を容易にします。RESTのサンプルは、COHERENCE_HOME/examples/rest/ディレクトリ内のMavenの標準ディレクトリ構造にまとめられています。

- /src/main/java – Javaソース・ファイルのディレクトリ

- /src/main/resources – Coherenceの構成ファイルのディレクトリ。

- /src/main/resources/web – staticのHTMLページのディレクトリ。

Coherence RESTに関するドキュメントは、『Oracle Coherenceリモート・クライアントの開発』を参照してください。

6.12.1 このサンプル・セット

- Coherence RESTをGrizzly HTTPサーバーを使用し、構成およびデプロイする方法を示します。

- Coherence REST APIを使用する基本的なJavaScriptクライアントをビルドする方法を示します。

- CoherenceでRESTのAPIを使用してキャッシュ・エントリを問合せ、作成、更新および削除する方法を示します。

- カスタム・エントリ・プロセッサの使用方法を示します

- コンポジット・キーの使用方法、およびKeyConverterクラスの使用方法を示します。

- Server-Sent Eventsを使用してキャッシュ・イベントを通知する方法を示します。

6.12.2 サンプルのビルドおよび実行

サンプルは、Maven 3.2.5以降を使用してビルドおよび実行され、AngularJS 1.4.1以上をサポートするブラウザが必要です。「Javaでの前提条件」も参照してください。

サンプルをビルドして実行する手順は、次のとおりです。

1. coherence.jarおよびcoherence-rest.jarライブラリを、ローカルのMavenリポジトリ内に含めます。

mvn install:install-file -Dfile=COHERENCE_HOME/lib/coherence.jar
-DpomFile=COHERENCE_HOME/plugins/maven/com/oracle/coherence/coherence
/12.2.1/coherence.12.2.1.pom

mvn install:install-file -Dfile=COHERENCE_HOME/lib/coherence-rest.jar
-DpomFile=COHERENCE_HOME/plugins/maven/com/oracle/coherence/coherence-rest
/12.2.1/coherence-rest.12.2.1.pom

注意:
必要な依存性をダウンロードするには、settings.xmlファイルへのパスを指定する必要があります。次に例を示します。

mvn -s /path/to/settings.xml ...

設定ファイルが存在せず、インターネットへのアクセスでプロキシ・サーバーを使用している場合、ベース・ディレクトリで提供されるサンプルのsettings.xmlを使用できます。ファイルを変更して、プロキシ・サーバー設定に追加できます。

2. 次を発行して、RESTのサンプルをビルドします。

mvn clean compile

3. キャッシュ・サーバーおよびHTTPプロキシを起動します。

mvn exec:exec -DhttpProxy

アプリケーションが起動し、ホーム・ページが自動的にデフォルトのブラウザにロードされます。ホーム・ページが自動的にデフォルトのブラウザにロードされない場合、次のURLに移動します。

http://127.0.0.1:8080/application/index.html

注意:
HTTPサーバーはすべてのIPアドレスをリスニングしますが、次をmvn exec:execコマンドに渡すことで、アプリケーションが実行されるアドレスおよびポートを変更できます。

mvn exec:exec -DhttpProxy -Dhttp.address=x.x.x.x -Dhttp.port=7777

4. オプションで、追加のキャッシュ・サーバーを(HTTPサーバーなしで)起動します。

mvn exec:exec -DcacheServer

6.12.3 「製品」ページ

実装: COHERENCE_HOME\examples\rest\src\main\resources\web\js\products.js

「製品」ページは、CoherenceでRESTのAPIを使用して、デフォルトの製品を問合せ、作成、更新、削除および移入する方法を示します。ページでは、カスタム・エントリ・プロセッサを使用して、製品価格を増加およびアイテムの追加の量を受信できます。

6.12.4 「部門」ページ

実装: COHERENCE_HOME\examples\rest\src\main\resources\web\js\departments.js

「部門」ページは、CoherenceでRESTのAPIを使用して、デフォルトの部門を問合せ、作成、更新、削除および移入する方法を示します。

6.12.5 「連絡先」ページ

実装: COHERENCE_HOME\examples\rest\src\main\resources\web\js\contacts.js

「連絡先」ページは、CoherenceでRESTのAPIを使用して、デフォルトの連絡先を問合せ、作成、更新、削除および移入する方法を示します。サンプルにはコンポジット・キーがあり、KeyConverterクラスをこれらのキーで実行する使用方法を示します。最後に、サンプルは、RESTのコールで返される問合せをソートする方法を示します。

6.12.6 Server-Sent Events

実装: COHERENCE_HOME\examples\rest\src\main\resources\web\js\sse.js

Server-Sent Eventsページは、Coherence RESTのAPIのイベントをリスニングします。リスニングの開始をクリックして、対応するキャッシュのリスナーを登録します。アプリケーションの新しいインスタンスを起動し、対応するキャッシュを変更します。アプリケーションの元のインスタンスに切り替え、更新された統計を表示します。

注意:
Internet Explorerでは、Server-Sent Eventsはサポートされていません。

A Oracle Coherenceディレクトリ構造の理解

この付録では、スタンドアロンOracle Coherenceインストールの終了時にシステムに作成されるディレクトリ構造について説明しています。

表A-1では、COHERENCE_HOMEにインストールされるディレクトリについて説明します。

表A-1 Oracle Coherenceのディレクトリの説明

ディレクトリまたはファイル

説明

bin

このディレクトリには、キャッシュ・サーバーの起動、開発ツールの起動、ネットワーク・タスクの実行など、様々なタスクを実行するための共通のスクリプト・セットが含まれています。スクリプトは、Windowsベース(.cmd)とUNIXベース(.sh)の両方の形式が用意されています。

doc

このディレクトリには、Coherence Java APIリファレンスおよびOracle Technology Network (OTN)上のCoherenceのドキュメントへのリンクが含まれています。Coherence Java APIリファレンスは、JARファイルとして配布されており、抽出する必要があります。このJARは、開発中にアクセスを容易にするためにIDEにインポートすることもできます。

Coherence Java APIリファレンスを抽出するには、次のコマンドを/apiディレクトリから実行します(JAVA_HOME/binがコンピュータのPATHにあると想定します)。

jar -xvf CoherenceJavaDoc.jar

examples

このディレクトリには、多くのCoherence機能を示す一連の例とCoherence APIの使用方法が含まれています。例の構築および実行の詳細は、第6章を参照してください。

lib

lib - このディレクトリには、提供されているすべてのライブラリが含まれています。coherence.jarライブラリは主要な開発およびランタイム・ライブラリです。このライブラリについては、Coherenceドキュメント全体を通じて詳細に説明しています。

plugins

このディレクトリには、一般的な統合を行うためのプラグインが含まれています。CoherenceはプラグインをMavenおよびJava VisualVMに提供します。Mavenプラグインは、CoherenceをMavenビルド・プロセスの一部に統合するために使用されます。CoherenceのMavenプラグインの詳細は、「Mavenとの統合」を参照してください。Java VisualVMプラグインは、Coherenceモニタリングを提供するために使用されます。Java VisualVMプラグインの詳細は、『Oracle Coherenceのマネージメント』を参照してください。

オラクルの法律上の注意点について

コピーライトについて

Copyright © 1994-2016, Oracle and/or its affiliates.All rights reserved.

ライセンス制約の保証と結果的に生じる損害の免責

このソフトウェアおよび関連ドキュメントの使用と開示は、ライセンス契約の制約条件に従うものとし、知的財産に関する法律により保護されています。ライセンス契約で明示的に許諾されている場合もしくは法律によって認められている場合を除き、形式、手段に関係なく、いかなる部分も使用、複写、複製、翻訳、放送、修正、ライセンス供与、送信、配布、発表、実行、公開または表示することはできません。このソフトウェアのリバース・エンジニアリング、逆アセンブル、逆コンパイルは互換性のために法律によって規定されている場合を除き、禁止されています。

保証免責

ここに記載された情報は予告なしに変更される場合があります。また、誤りが無いことの保証はいたしかねます。誤りを見つけた場合は、オラクルまでご連絡ください。

制限付権利について

このソフトウェアまたは関連ドキュメントを、米国政府機関もしくは米国政府機関に代わってこのソフトウェアまたは関連ドキュメントをライセンスされた者に提供する場合は、次の通知が適用されます。

U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations.As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs.No other rights are granted to the U.S. Government.

危険な用途への使用について

このソフトウェアまたはハードウェアは様々な情報管理アプリケーションでの一般的な使用のために開発されたものです。このソフトウェアまたはハードウェアは、危険が伴うアプリケーション(人的傷害を発生させる可能性があるアプリケーションを含む)への用途を目的として開発されていません。このソフトウェアまたはハードウェアを危険が伴うアプリケーションで使用する際、安全に使用するために、適切な安全装置、バックアップ、冗長性(redundancy)、その他の対策を講じることは使用者の責任となります。このソフトウェアまたはハードウェアを危険が伴うアプリケーションで使用したことに起因して損害が発生しても、Oracle Corporationおよびその関連会社は一切の責任を負いかねます。

商標と登録商標について

OracleおよびJavaはオラクルおよびその関連会社の登録商標です。その他の社名、商品名等は各社の商標または登録商標である場合があります。

Intel、Intel Xeonは、Intel Corporationの商標または登録商標です。すべてのSPARCの商標はライセンスをもとに使用し、SPARC International, Inc.の商標または登録商標です。AMD、Opteron、AMDロゴ、AMD Opteronロゴは、Advanced Micro Devices, Inc.の商標または登録商標です。UNIXは、The Open Groupの登録商標です。

第三者のコンテンツ、製品、サービスに対する免責事項

このソフトウェアまたはハードウェア、そしてドキュメントは、第三者のコンテンツ、製品、サービスへのアクセス、あるいはそれらに関する情報を提供することがあります。適用されるお客様とOracle Corporationとの間の契約に別段の定めがある場合を除いて、Oracle Corporationおよびその関連会社は、第三者のコンテンツ、製品、サービスに関して一切の責任を負わず、いかなる保証もいたしません。適用されるお客様とOracle Corporationとの間の契約に定めがある場合を除いて、Oracle Corporationおよびその関連会社は、第三者のコンテンツ、製品、サービスへのアクセスまたは使用によって損失、費用、あるいは損害が発生しても一切の責任を負いかねます。

アルファ版およびベータ版ドラフト・ドキュメントについて

このドキュメントが試作版の場合:

このドキュメントは試作版であり、デモおよび暫定使用のみを目的としたものです。このソフトウェアを使用するハードウェアに限定するものではありません。Oracle Corporationおよびその関連会社は、このドキュメントに関して一切の責任を負わず、いかなる保証もいたしません。また、このドキュメントを使用したことによって損失、費用、あるいは損害が発生しても、一切の責任を負いかねます。

非公開のアルファ版およびベータ版ドラフト・ドキュメントについて

このドキュメントが非公開の試作版の場合:

このドキュメントに含まれる情報は、情報の共有のみを目的としたものであって、顧客諮問委員会(Customer Advisory Board)のメンバーとしてのお客様の立場でのみ、またはお客様のベータ・トライアル契約のみに従って検討されるべきものとします。マテリアル、コード、または機能の提供をお約束するものではなく、購入決定を行う際の判断材料とすべきではありません。このドキュメントに記載されている特徴または機能の開発、リリースおよび時期については、オラクルの裁量により決定されます。

このドキュメントには、ソフトウェアまたは印刷物などの形式を問わず、オラクルが独占的な権利を有する財産的情報が含まれています。この機密資料へのアクセスと使用は、お客様とオラクルとの間で締結され、お客様が遵守に同意した、Oracle Master Agreement、Oracle License and Oracle Services Agreement (オラクル・ライセンスおよびサービスに関する契約書)、Oracle PartnerNetwork Agreement、Oracle Distribution Agreementまたはその他のライセンス契約の条件に従うものとします。このドキュメントとその内容の開示、コピー、複製および配布には、オラクルによる事前の承諾を必要とします。このドキュメントはライセンス契約の一部となるものではなく、オラクルおよびその子会社や関連会社との契約を構成するものではありません。

ドキュメントのアクセシビリティについて

オラクルのアクセシビリティについての詳細情報は、Oracle Accessibility ProgramのWebサイトhttp://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc を参照してください。

Oracle Supportへのアクセス

サポートをご契約のお客様には、My Oracle Supportを通して電子支援サービスを提供しています。詳細情報はhttp://www.oracle.com/pls/topic/lookup?ctx=acc&id=infoか、聴覚に障害のあるお客様はhttp://www.oracle.com/pls/topic/lookup?ctx=acc&id=trsを参照してください。