クイック・スタート
次のステップを実行して、REST APIを使用して環境を設定し、管理データにアクセスします:
ノート:
クイック・スタート・ステップは、スタンドアロンCoherenceの管理に固有です。WebLogic Serverドメインで管理対象Coherenceサーバーを使用している場合は、次のURLを使用して管理情報にアクセスします:
http://<admin-host>:<admin-port>/management/coherence/<version>/clusters
- バージョン番号は、12.2.1.4.0などの5桁の完全な数字である必要があります。
- バージョンは最新のものにすることもできます。
API参照のすべてのRESTリソースは、管理対象Coherenceサーバーで使用可能です。
前提条件
前提条件 | 詳細情報 |
Coherence |
Coherenceをインストールし、クラスタを設定します。Oracle CoherenceのインストールのOracle Coherence for Javaのインストールを参照してください。 |
cURL | このドキュメント内の例では、cURLコマンド行ツールを使用して、Oracle Coherence管理のREST APIにアクセスする方法を示しています。cURLは、http://curl.haxx.seからダウンロードできます。 |
ステップ1: REST Managementの有効化
REST管理は、Coherenceクラスタ上でプロキシとして稼働するHTTP管理サーバーを介して有効化されます。HTTP管理サーバーには、COHERENCE_HOME\lib\coherence-management.jar
ライブラリおよびサード・パーティの依存関係が必要です。このサーバーが起動するのは、management-configの<http-managed-nodes>
要素がall
またはinherit
に設定されており、必要なライブラリがクラスパスにある場合です。ライブラリが見つからない場合、管理ライブラリが欠落しておりHTTPを介して管理できないことがCoherenceログ・メッセージに示されます。Coherence Distributionには、サード・パーティのライブラリは含まれません。
Mavenを使用して依存関係を管理することをお薦めします。「Mavenリポジトリ・マネージャの移入」の説明に従ってOracle Maven同期プラグインを使用して最新のOracle Coherenceアーティファクトがローカルのmavenリポジトリにインストールされていることを前提とします。サード・パーティ・ライブラリを含むクラスパスを生成するには、提供されている以下のpom.xml
を指定して、次のMavenコマンドを実行します。生成されたクラスパスを追加して、サーバー・スクリプトを起動します。
mvn dependency:build-classpath
ノート:
JDK 11で実行している場合は、-P jdk11
をmvnコマンドラインに追加して、JDK 11の一部ではなくなった追加ライブラリを取得します。
<?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>12.2.1-4-0</version> <name>Coherence Management Over REST dependencies</name> <packaging>pom</packaging> <dependencies> <dependency> <groupId>com.oracle.coherence</groupId> <artifactId>coherence-management</artifactId> <version>${project.version}</version> </dependency> </dependencies> <profiles> <profile> <id>jdk11</id> <properties> <com.sun.xml.bind.version>2.3.0</com.sun.xml.bind.version> <javax.activation.version>1.1.1</javax.activation.version> </properties> <dependencies> <dependency> <groupId>com.sun.xml.bind</groupId> <artifactId>jaxb-core</artifactId> <version>${com.sun.xml.bind.version}</version> </dependency> <dependency> <groupId>com.sun.xml.bind</groupId> <artifactId>jaxb-impl</artifactId> <version>${com.sun.xml.bind.version}</version> </dependency> <dependency> <groupId>javax.activation</groupId> <artifactId>activation</artifactId> <version>${javax.activation.version}</version> </dependency> <dependency> <groupId>javax.xml.bind</groupId> <artifactId>jaxb-api</artifactId> <version>${com.sun.xml.bind.version}</version> </dependency> </dependencies> </profile> </profiles> </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]
ステップ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
}
}