クイック・スタート
次のステップを実行して、REST APIを使用して環境を設定し、管理データにアクセスします。
ノート:
クイック・スタート・ステップは、スタンドアロンCoherenceの管理に固有です。WebLogic Serverドメインで管理対象Coherenceサーバーを使用している場合は、次のURLを使用して管理情報にアクセスします:
http://<admin-host>:<admin-port>/management/coherence/<version>/clusters
- バージョン番号は、14.1.1.2206.1などの完全な番号である必要があります。
- バージョンは最新のものにすることもできます。
API参照のすべてのRESTリソースは、管理対象Coherenceサーバーで使用可能です。
前提条件
前提条件 | 詳細情報 |
Coherence |
Coherenceをインストールし、クラスタを設定します。Oracle CoherenceのインストールのOracle Coherence for Javaのインストールを参照してください。 |
cURL | このドキュメント内の例では、cURLコマンド行ツールを使用して、Oracle Coherence管理のREST APIにアクセスする方法を示しています。cURLは、http://curl.haxx.seからダウンロードできます。 |
ステップ1: HTTP管理サーバーの有効化
REST管理は、Coherenceクラスタ上でプロキシとして稼働するHTTP管理サーバーを介して有効化されます。HTTP管理サーバーには、COHERENCE_HOME\lib\coherence.jar
ライブラリとCOHERENCE_HOME\lib\coherence-json.jar
ライブラリが必要です。このサーバーが起動するのは、management-configの<http-managed-nodes>
要素がall
またはinherit
に設定されており、必要なライブラリがクラスパスにある場合です。ライブラリが見つからない場合、管理ライブラリが欠落しておりHTTPを介して管理できないことがCoherenceログ・メッセージに示されます。
Mavenを使用して依存関係を管理することをお薦めします。Mavenリポジトリ・マネージャの移入に関する項の説明に従って、Oracle Maven同期プラグインを使用し、最新のOracle CoherenceアーティファクトがローカルのMavenリポジトリにインストールされていることを前提とします。
サード・パーティ・ライブラリを含むクラスパスを生成するには、提供されている以下のpom.xml
を指定して、次のMavenコマンドを実行します。生成されたクラスパスを追加して、キャッシュ・サーバーを起動します。
mvn dependency:build-classpath
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <artifactId>management</artifactId> <groupId>management</groupId> <version>1.0.0</version> <name>Coherence Management Over REST dependencies</name> <packaging>pom</packaging> <properties> <coherence.groupId>com.oracle.coherence</coherence.groupId> <coherence.version>14.1.1-2206-1</coherence.version> </properties> <dependencies> <dependency> <groupId>${coherence.groupId}</groupId> <artifactId>coherence</artifactId> <version>${coherence.version}</version> </dependency> <dependency> <groupId>${coherence.groupId}</groupId> <artifactId>coherence-json</artifactId> <version>${coherence.version}</version> </dependency> </dependencies> </project>
必要なすべての依存性が自動的にダウンロードされます。ライブラリの完全なリストを表示するには、次のMavenコマンドを実行します。
mvn dependency:list
ノート:
RESTポートを介した管理を変更するには、Oracle Coherenceの管理のHTTP管理サーバー・アドレスの変更を参照してください。ステップ2: 管理URLの取得
このステップでは、management-config要素の子要素<http-named-nodes>
をinherit
に構成することにより、クラスタの動的HTTP管理サーバーが有効な場合に管理URLを取得する方法について説明します。
Coherenceログは、HTTP管理サーバーのポートを示します:
(thread=Proxy:ManagementHttpProxy:HttpAcceptor, member=1): HttpAcceptor now listening for connections on 0:0:0:0:0:0:0:0:30000
com.tangosol.discovery.NSLookup
クラスを使用して、任意のクラスタ・メンバーに対してNameService
サービスを問い合せることもできます。たとえば:
java -cp %COHERENCE_HOME%\lib\coherence.jar com.tangosol.discovery.NSLookup -name management/HTTPManagementURL
Cluster MyCluster: [http://127.0.0.1:30000/management/coherence/cluster]
ノート:
RESTを介した管理の構成の詳細は、「HTTP管理サーバー・アドレスの変更」を参照してください。
ステップ3: アクセス管理情報
次の例では、cURLを使用して、REST APIを使用したデモを示しています。この例では、クラスタ上のキャッシュのリストを取得し、hello-example
という名前のキャッシュの詳細な管理情報を取得します。
リクエスト:
curl -i -X GET http://127.0.0.1:30000/management/coherence/cluster/caches
レスポンス:
HTTP/1.1 200 OK
Content-Type: application/json
content-length: 697
connection: keep-alive
{
"links": [{
"rel": "parent",
"href": "http://127.0.0.1:30000/management/coherence/cluster"
}, {
"rel": "self",
"href": "http://127.0.0.1:30000/management/coherence/cluster/caches"
}, {
"rel": "canonical",
"href": "http://127.0.0.1:30000/management/coherence/cluster/caches"
}],
"items": [{
"links": [{
"rel": "parent",
"href": "http://127.0.0.1:30000/management/coherence/cluster/caches"
}, {
"rel": "self",
"href": "http://127.0.0.1:30000/management/coherence/cluster/caches/hello-example"
}, {
"rel": "canonical",
"href": "http://127.0.0.1:30000/management/coherence/cluster/caches/hello-example"
}, {
"rel": "members",
"href": "http://127.0.0.1:30000/management/coherence/cluster/caches/hello-example/members"
}],
"name": "hello-example"
}]
}
リクエスト:
curl -i -X GET http://127.0.0.1:30000/management/coherence/cluster/caches/hello-example
レスポンス:
HTTP/1.1 200 OK
Content-Type: application/json
content-length: 1981
connection: keep-alive
{
"links": [{
"rel": "parent",
"href": "http://127.0.0.1:30000/management/coherence/cluster/caches"
}, {
"rel": "self",
"href": "http://127.0.0.1:30000/management/coherence/cluster/caches/hello-example"
}, {
"rel": "canonical",
"href": "http://127.0.0.1:30000/management/coherence/cluster/caches/hello-example"
}, {
"rel": "members",
"href": "http://127.0.0.1:30000/management/coherence/cluster/caches/hello-example/members"
}],
"name": "hello-example",
"totalGetsMillis": 0,
"description": ["Implementation: com.tangosol.net.cache.LocalCache"],
"lowUnits": 800,
"size": 19,
"totalPuts": 20,
"totalPutsMillis": 0,
"refreshTime": ["2018-12-14T17:43:40.642+0000"],
"requeueThreshold": [0],
"averageMissMillis": {
"average": 0.0,
"count": 1,
"max": 0.0,
"min": 0.0,
"sum": 0.0
},
"highUnits": 1000,
"hitProbability": {
"average": 0.0,
"count": 1,
"max": 0.0,
"min": 0.0,
"sum": 0.0
},
"totalGets": 0,
"unitFactor": [1],
"averageHitMillis": {
"average": 0.0,
"count": 1,
"max": 0.0,
"min": 0.0,
"sum": 0.0
},
"refreshFactor": [0.0],
"memoryUnits": {
"false": 1
},
"cachePrunesMillis": 0,
"batchFactor": [0.0],
"cacheMissesMillis": 0,
"averageGetMillis": {
"average": 0.0,
"count": 1,
"max": 0.0,
"min": 0.0,
"sum": 0.0
},
"averagePutMillis": {
"average": 0.0,
"count": 1,
"max": 0.0,
"min": 0.0,
"sum": 0.0
},
"persistenceType": ["NONE"],
"cacheStoreType": ["NONE"],
"units": 19,
"cacheHits": 0,
"cacheMisses": 0,
"expiryDelay": [0],
"cacheHitsMillis": 0,
"cachePrunes": 0,
"evictionCount": 0,
"insertCount": 19,
"listenerKeyCount": 0,
"nonOptimizedQueryTotalMillis": {
"count": 1,
"average": 0.0,
"min": 0,
"max": 0,
"sum": 0
},
"listenerRegistrations": 0,
"listenerFilterCount": [0],
"nonOptimizedQueryCount": 0,
"locksGranted": 0,
"indexTotalUnits": 0,
"optimizedQueryAverageMillis": {
"count": 1,
"average": 0.0,
"min": 0,
"max": 0,
"sum": 0
},
"optimizedQueryTotalMillis": {
"count": 1,
"average": 0.0,
"min": 0,
"max": 0,
"sum": 0
},
"removeCount": 0,
"locksPending": 0,
"queryContentionCount": 0,
"eventsDispatched": 0,
"optimizedQueryCount": 0,
"maxQueryDurationMillis": 0,
"maxQueryThresholdMillis": [30],
"nonOptimizedQueryAverageMillis": {
"count": 1,
"average": 0.0,
"min": 0,
"max": 0,
"sum": 0
}
}