クイック・スタート

次のステップを実行して、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
	}
}