Data Grid REST API
Configure and interact with the Data Grid REST API
Abstract
Red Hat Data Grid Copy linkLink copied to clipboard!
Data Grid is a high-performance, distributed in-memory data store.
- Schemaless data structure
- Flexibility to store different objects as key-value pairs.
- Grid-based data storage
- Designed to distribute and replicate data across clusters.
- Elastic scaling
- Dynamically adjust the number of nodes to meet demand without service disruption.
- Data interoperability
- Store, retrieve, and query data in the grid from different endpoints.
Data Grid documentation Copy linkLink copied to clipboard!
Documentation for Data Grid is available on the Red Hat customer portal.
Data Grid downloads Copy linkLink copied to clipboard!
Access the Data Grid Software Downloads on the Red Hat customer portal.
You must have a Red Hat account to access and download Data Grid software.
Making open source more inclusive Copy linkLink copied to clipboard!
Red Hat is committed to replacing problematic language in our code, documentation, and web properties. We are beginning with these four terms: master, slave, blacklist, and whitelist. Because of the enormity of this endeavor, these changes will be implemented gradually over several upcoming releases. For more details, see our CTO Chris Wright’s message.
Chapter 1. Data Grid REST Endpoint Copy linkLink copied to clipboard!
Data Grid servers provide RESTful HTTP access to data through a REST endpoint built on Netty.
1.1. REST Authentication Copy linkLink copied to clipboard!
Configure authentication to the REST endpoint with the Data Grid command line interface (CLI) and the user command. The CLI lets you create and manage users, passwords, and authorization roles for accessing the REST endpoint.
1.2. Supported Protocols Copy linkLink copied to clipboard!
The Data Grid REST endpoint supports HTTP/1.1
and HTTP/2
protocols.
You can do either of the following to use HTTP/2
:
- Perform an HTTP/1.1 upgrade.
- Negotiate the communication protocol using a TLS/ALPN extension.
TLS/ALPN with JDK8 requires additional client configuration. Refer to the appropriate documentation for your REST client. In most cases you need to use either the Jetty ALPN Agent or OpenSSL bindings.
1.3. Data Formats and the REST API Copy linkLink copied to clipboard!
Data Grid caches store data in formats that you can define with a MediaType.
See the Cache Encoding and Marshalling for more information about MediaTypes and encoding data with Data Grid.
The following example configures the storage format for entries:
If you do not configure a MediaType, Data Grid defaults to application/octet-stream
for both keys and values. However, if the cache is indexed, Data Grid defaults to application/x-protostream
.
1.3.1. Supported Formats Copy linkLink copied to clipboard!
You can write and read data in different formats and Data Grid can convert between those formats when required.
The following "standard" formats are interchangeable:
-
application/x-java-object
-
application/octet-stream
-
application/x-www-form-urlencoded
-
text/plain
You can also convert the preceding data formats into the following formats:
-
application/xml
-
application/json
-
application/x-jboss-marshalling
-
application/x-protostream
-
application/x-java-serialized
Data Grid also lets you convert between application/x-protostream
and application/json
.
All calls to the REST API can provide headers describing the content written or the required format of the content when reading. Data Grid supports the standard HTTP/1.1 headers "Content-Type" and "Accept" that are applied for values, plus the "Key-Content-Type" with similar effect for keys.
1.3.2. Accept Headers Copy linkLink copied to clipboard!
The Data Grid REST endpoint is compliant with the RFC-2616 Accept header and negotiates the correct MediaType based on the conversions supported.
For example, send the following header when reading data:
Accept: text/plain;q=0.7, application/json;q=0.8, */*;q=0.6
Accept: text/plain;q=0.7, application/json;q=0.8, */*;q=0.6
The preceding header causes Data Grid to first return content in JSON format (higher priority 0.8). If it is not possible to convert the storage format to JSON, Data Grid attempts the next format of text/plain
(second highest priority 0.7). Finally, Data Grid falls back to */*, which picks a suitable format based on the cache configuration.
1.3.3. Names with Special Characters Copy linkLink copied to clipboard!
The creation of any REST resource requires a name that is part of the URL, and in case this name contains any special characters as defined in Section 2.2 of the RFC 3986 spec, it is necessary to encode it with the Percent encoding mechanism.
1.3.4. Key-Content-Type Headers Copy linkLink copied to clipboard!
Most REST API calls have the Key included in the URL. Data Grid assumes the Key is a java.lang.String when handling those calls, but you can use a specific header Key-Content-Type for keys in different formats.
Key-Content-Type Header Examples
- Specifying a byte[] Key as a Base64 string:
API call:
`PUT /my-cache/AQIDBDM=`
`PUT /my-cache/AQIDBDM=`
Headers:
Key-Content-Type: application/octet-stream
- Specifying a byte[] Key as a hexadecimal string:
API call:
GET /my-cache/0x01CA03042F
Headers:
Key-Content-Type: application/octet-stream; encoding=hex
Key-Content-Type: application/octet-stream; encoding=hex
- Specifying a double Key:
API call:
POST /my-cache/3.141456
Headers:
Key-Content-Type: application/x-java-object;type=java.lang.Double
Key-Content-Type: application/x-java-object;type=java.lang.Double
The type parameter for application/x-java-object
is restricted to:
- Primitive wrapper types
- java.lang.String
-
Bytes, making
application/x-java-object;type=Bytes
equivalent toapplication/octet-stream;encoding=hex
.
1.3.5. JSON/Protostream Conversion Copy linkLink copied to clipboard!
When caches are indexed, or specifically configured to store _application/x-protostream`, you can send and receive JSON documents that are automatically converted to and from Protobuf.
You must register a Protobuf schema for the conversion to work.
To register protobuf schemas via REST, invoke a POST or PUT in the ___protobuf_metadata
cache as in the following example:
curl -u user:password -X POST --data-binary @./schema.proto http://127.0.0.1:11222/rest/v2/caches/___protobuf_metadata/schema.proto
curl -u user:password -X POST --data-binary @./schema.proto http://127.0.0.1:11222/rest/v2/caches/___protobuf_metadata/schema.proto
When writing JSON documents, a special field _type must be present in the document to identity the Protobuf Message that corresponds to the document.
Person.proto
message Person { required string name = 1; required int32 age = 2; }
message Person {
required string name = 1;
required int32 age = 2;
}
Person.json
{ "_type": "Person", "name": "user1", "age": 32 }
{
"_type": "Person",
"name": "user1",
"age": 32
}
1.4. Cross-Origin Resource Sharing (CORS) Requests Copy linkLink copied to clipboard!
The Data Grid REST connector supports CORS, including preflight and rules based on the request origin.
The following shows an example REST connector configuration with CORS rules:
Data Grid evaluates CORS rules sequentially based on the "Origin" header set by the browser.
In the preceding example, if the origin is either "http://host1" or "https://host1", then the rule "restrict host1" applies. If the origin is different, then the next rule is tested.
Because the "allow ALL" rule permits all origins, any script that has an origin other than "http://host1" or "https://host1" can perform the allowed methods and use the supplied headers.
For information about configuring CORS rules, see the Data Grid Server Configuration Schema.
1.4.1. Allowing all CORS permissions for some origins Copy linkLink copied to clipboard!
The VM property infinispan.server.rest.cors-allow
can be used when starting the server to allow all permissions to one or more origins. Example:
./bin/server.sh -Dinfinispan.server.rest.cors-allow=http://192.168.1.78:11222,http://host.mydomain.com
./bin/server.sh -Dinfinispan.server.rest.cors-allow=http://192.168.1.78:11222,http://host.mydomain.com
All origins specified using this method will take precedence over the configured rules.
Chapter 2. Interacting with the Data Grid REST API Copy linkLink copied to clipboard!
The Data Grid REST API lets you monitor, maintain, and manage Data Grid deployments and provides access to your data.
By default Data Grid REST API operations return 200 (OK)
when successful. However, when some operations are processed successfully, they return an HTTP status code such as 204
or 202
instead of 200
.
2.1. Creating and Managing Caches Copy linkLink copied to clipboard!
Create and manage Data Grid caches and perform operations on data.
2.1.1. Creating Caches Copy linkLink copied to clipboard!
Create named caches across Data Grid clusters with POST
requests that include XML or JSON configuration in the payload.
POST /rest/v2/caches/{cacheName}
POST /rest/v2/caches/{cacheName}
Header | Required or Optional | Parameter |
---|---|---|
| REQUIRED |
Sets the MediaType for the Data Grid configuration payload; either |
| OPTIONAL | Used to set AdminFlags |
2.1.1.1. Cache Configuration Copy linkLink copied to clipboard!
You can provide cache configuration in XML or JSON format.
XML
<distributed-cache name="myCache" mode="SYNC"> <encoding media-type="application/x-protostream"/> <memory max-count="1000000" when-full="REMOVE"/> </distributed-cache>
<distributed-cache name="myCache" mode="SYNC">
<encoding media-type="application/x-protostream"/>
<memory max-count="1000000" when-full="REMOVE"/>
</distributed-cache>
JSON
JSON format
Cache configuration in JSON format must follow the structure of an XML configuration. * XML elements become JSON objects. * XML attributes become JSON fields.
2.1.2. Verifying Caches Copy linkLink copied to clipboard!
Check if caches are available in Data Grid clusters with HEAD
requests.
HEAD /rest/v2/caches/{cacheName}
HEAD /rest/v2/caches/{cacheName}
2.1.3. Creating Caches with Templates Copy linkLink copied to clipboard!
Create caches from Data Grid templates with POST
requests and the ?template=
parameter.
POST /rest/v2/caches/{cacheName}?template={templateName}
POST /rest/v2/caches/{cacheName}?template={templateName}
2.1.4. Retrieving Cache Configuration Copy linkLink copied to clipboard!
Retrieve Data Grid cache configurations with GET
requests.
GET /rest/v2/caches/{name}?action=config
GET /rest/v2/caches/{name}?action=config
Header | Required or Optional | Parameter |
---|---|---|
| OPTIONAL |
Sets the required format to return content. Supported formats are |
2.1.5. Converting Cache Configurations to JSON Copy linkLink copied to clipboard!
Invoke a POST
request with valid XML configuration and the ?action=toJSON
parameter. Data Grid responds with the equivalent JSON representation of the configuration.
POST /rest/v2/caches?action=toJSON
POST /rest/v2/caches?action=toJSON
2.1.6. Retrieving All Cache Details Copy linkLink copied to clipboard!
Invoke a GET
request to retrieve all details for Data Grid caches.
GET /rest/v2/caches/{name}
GET /rest/v2/caches/{name}
Data Grid provides a JSON response such as the following:
-
stats
current stats of the cache. -
size
the estimated size for the cache. -
configuration
the cache configuration. -
rehash_in_progress
true when a rehashing is in progress. -
indexing_in_progress
true when indexing is in progress. -
bounded
when expiration is enabled. -
indexed
true if the cache is indexed. -
persistent
true if the cache is persisted. -
transactional
true if the cache is transactional. -
secured
true if the cache is secured. -
has_remote_backup
true if the cache has remote backups.
2.1.7. Adding Entries Copy linkLink copied to clipboard!
Add entries to caches with POST
requests.
POST /rest/v2/caches/{cacheName}/{cacheKey}
POST /rest/v2/caches/{cacheName}/{cacheKey}
The preceding request places the payload, or request body, in the cacheName
cache with the cacheKey
key. The request replaces any data that already exists and updates the Time-To-Live
and Last-Modified
values, if they apply.
If the entry is created successfully, the service returns 204 (No Content)
.
If a value already exists for the specified key, the POST
request returns 409 (Conflict)
and does not modify the value. To update values, you should use PUT
requests. See Replacing Entries.
Header | Required or Optional | Parameter |
---|---|---|
| OPTIONAL | Sets the content type for the key in the request. See Key-Content-Type for more information. |
| OPTIONAL | Sets the MediaType of the value for the key. |
| OPTIONAL | Sets the number of seconds before the entry is automatically deleted. If you do not set this parameter, Data Grid uses the default value from the configuration. If you set a negative value, the entry is never deleted. |
| OPTIONAL | Sets the number of seconds that entries can be idle. If a read or write operation does not occur for an entry after the maximum idle time elapses, the entry is automatically deleted. If you do not set this parameter, Data Grid uses the default value from the configuration. If you set a negative value, the entry is never deleted. |
| OPTIONAL | The flags used to add the entry. See Flag for more information. |
The flags
header also applies to all other operations involving data manipulation on the cache,
If both timeToLiveSeconds
and maxIdleTimeSeconds
have a value of 0
, Data Grid uses the default lifespan
and maxIdle
values from the configuration.
If only maxIdleTimeSeconds
has a value of 0
, Data Grid uses:
-
the default
maxIdle
value from the configuration. -
the value for
timeToLiveSeconds
that you pass as a request parameter or a value of-1
if you do not pass a value.
If only timeToLiveSeconds
has a value of 0
, Data Grid uses:
-
the default
lifespan
value from the configuration. -
the value for
maxIdle
that you pass as a request parameter or a value of-1
if you do not pass a value.
2.1.8. Replacing Entries Copy linkLink copied to clipboard!
Replace entries in caches with PUT
requests.
PUT /rest/v2/caches/{cacheName}/{cacheKey}
PUT /rest/v2/caches/{cacheName}/{cacheKey}
If a value already exists for the specified key, the PUT
request updates the value. If you do not want to modify existing values, use POST
requests that return 409 (Conflict)
instead of modifying values. See Adding Values.
2.1.9. Retrieving Data By Keys Copy linkLink copied to clipboard!
Retrieve data for specific keys with GET
requests.
GET /rest/v2/caches/{cacheName}/{cacheKey}
GET /rest/v2/caches/{cacheName}/{cacheKey}
The server returns data from the given cache, cacheName
, under the given key, cacheKey
, in the response body. Responses contain Content-Type
headers that correspond to the MediaType
negotiation.
Browsers can also access caches directly, for example as a content delivery network (CDN). Data Grid returns a unique ETag for each entry along with the Last-Modified
and Expires
header fields.
These fields provide information about the state of the data that is returned in your request. ETags allow browsers and other clients to request only data that has changed, which conserves bandwidth.
Header | Required or Optional | Parameter |
---|---|---|
| OPTIONAL |
Sets the content type for the key in the request. The default is |
| OPTIONAL | Sets the required format to return content. See Accept for more information. |
Append the extended
parameter to the query string to get additional information:
GET /rest/v2/caches/{cacheName}/{cacheKey}?extended
GET /rest/v2/caches/{cacheName}/{cacheKey}?extended
The preceding request returns custom headers:
-
Cluster-Primary-Owner
returns the node name that is the primary owner of the key. -
Cluster-Node-Name
returns the JGroups node name of the server that handled the request. -
Cluster-Physical-Address
returns the physical JGroups address of the server that handled the request.
2.1.10. Checking if Entries Exist Copy linkLink copied to clipboard!
Verify that specific entries exists with HEAD
requests.
HEAD /rest/v2/caches/{cacheName}/{cacheKey}
HEAD /rest/v2/caches/{cacheName}/{cacheKey}
The preceding request returns only the header fields and the same content that you stored with the entry. For example, if you stored a String, the request returns a String. If you stored binary, base64-encoded, blobs or serialized Java objects, Data Grid does not de-serialize the content in the request.
HEAD
requests also support the extended
parameter.
Header | Required or Optional | Parameter |
---|---|---|
| OPTIONAL |
Sets the content type for the key in the request. The default is |
2.1.11. Deleting Entries Copy linkLink copied to clipboard!
Remove entries from caches with DELETE
requests.
DELETE /rest/v2/caches/{cacheName}/{cacheKey}
DELETE /rest/v2/caches/{cacheName}/{cacheKey}
Header | Required or Optional | Parameter |
---|---|---|
| OPTIONAL |
Sets the content type for the key in the request. The default is |
2.1.12. Deleting Caches Copy linkLink copied to clipboard!
Remove caches from Data Grid clusters with DELETE
requests.
DELETE /rest/v2/caches/{cacheName}
DELETE /rest/v2/caches/{cacheName}
2.1.13. Retrieving All Keys from Caches Copy linkLink copied to clipboard!
Invoke GET
requests to retrieve all the keys in a cache in JSON format.
GET /rest/v2/caches/{cacheName}?action=keys
GET /rest/v2/caches/{cacheName}?action=keys
Parameter | Required or Optional | Value |
---|---|---|
| OPTIONAL |
Specifies the maximum number of keys to retrieve using an InputStream. A negative value retrieves all keys. The default value is |
| OPTIONAL |
Specifies the internal batch size when retrieving the keys. The default value is |
2.1.14. Retrieving All Entries from Caches Copy linkLink copied to clipboard!
Invoke GET
requests to retrieve all the entries in a cache in JSON format.
GET /rest/v2/caches/{cacheName}?action=entries
GET /rest/v2/caches/{cacheName}?action=entries
Parameter | Required or Optional | Value |
---|---|---|
| OPTIONAL |
Includes metadata for each entry in the response. The default value is |
| OPTIONAL |
Specifies the maximum number of keys to include in the response. A negative value retrieves all keys. The default value is |
| OPTIONAL |
Specifies the internal batch size when retrieving the keys. The default value is |
Data Grid provides a JSON response such as the following:
-
key
The key for the entry. -
value
The value of the entry. -
timeToLiveSeconds
Based on the entry lifespan but in seconds, or-1
if the entry never expires. It’s not returned unless you set metadata="true". -
maxIdleTimeSeconds
Maximum idle time, in seconds, or-1
if entry never expires. It’s not returned unless you set metadata="true". -
created
Time the entry was created or or-1
for immortal entries. It’s not returned unless you set metadata="true". -
lastUsed
Last time an operation was performed on the entry or-1
for immortal entries. It’s not returned unless you set metadata="true". -
expireTime
Time when the entry expires or-1
for immortal entries. It’s not returned unless you set metadata="true".
2.1.15. Clearing Caches Copy linkLink copied to clipboard!
To delete all data from a cache, invoke a POST
request with the ?action=clear
parameter.
POST /rest/v2/caches/{cacheName}?action=clear
POST /rest/v2/caches/{cacheName}?action=clear
If the operation successfully completes, the service returns 204 (No Content)
.
2.1.16. Getting Cache Size Copy linkLink copied to clipboard!
Retrieve the size of caches across the entire cluster with GET
requests and the ?action=size
parameter.
GET /rest/v2/caches/{cacheName}?action=size
GET /rest/v2/caches/{cacheName}?action=size
2.1.17. Getting Cache Statistics Copy linkLink copied to clipboard!
Obtain runtime statistics for caches with GET
requests.
GET /rest/v2/caches/{cacheName}?action=stats
GET /rest/v2/caches/{cacheName}?action=stats
2.1.18. Querying Caches Copy linkLink copied to clipboard!
Perform Ickle queries on caches with GET
requests and the ?action=search&query
parameter.
GET /rest/v2/caches/{cacheName}?action=search&query={ickle query}
GET /rest/v2/caches/{cacheName}?action=search&query={ickle query}
Data Grid responds with query hits such as the following:
-
total_results
displays the total number of results from the query. -
hits
is an array of matches from the query. hit
is an object that matches the query.TipHits can contain all fields or a subset of fields if you use a
Select
clause.
Parameter | Required or Optional | Value |
---|---|---|
| REQUIRED | Specifies the query string. |
| OPTIONAL |
Sets the number of results to return. The default is |
| OPTIONAL |
Specifies the index of the first result to return. The default is |
| OPTIONAL |
Specifies how the Data Grid server executes the query. Values are |
To use the body of the request instead of specifying query parameters, invoke POST
requests as follows:
POST /rest/v2/caches/{cacheName}?action=search
POST /rest/v2/caches/{cacheName}?action=search
The following example shows a query in the request body:
{ "query":"from Entity where name:\"user1\"", "max_results":20, "offset":10 }
{
"query":"from Entity where name:\"user1\"",
"max_results":20,
"offset":10
}
2.1.19. Re-indexing Data Copy linkLink copied to clipboard!
Re-index all data in caches with POST
requests and the ?action=mass-index&mode={mode}
parameter.
POST /v2/caches/{cacheName}/search/indexes?action=mass-index&mode={mode}
POST /v2/caches/{cacheName}/search/indexes?action=mass-index&mode={mode}
Values for the mode
parameter are as follows:
-
sync
returns204 (No Content)
only after the re-indexing operation is complete. -
async
returns204 (No Content)
immediately and the re-indexing operation continues running in the cluster. You can check the status with the Index Statistics REST call.
2.1.20. Purging Indexes Copy linkLink copied to clipboard!
Delete all indexes from caches with POST
requests and the ?action=clear
parameter.
POST /v2/caches/{cacheName}/search/indexes?action=clear
POST /v2/caches/{cacheName}/search/indexes?action=clear
If the operation successfully completes, the service returns 204 (No Content)
.
2.1.21. Retrieving Query and Index Statistics Copy linkLink copied to clipboard!
Obtain information about queries and indexes in caches with GET
requests.
Statistics must be enabled in the cache otherwise the results will be empty.
GET /v2/caches/{cacheName}/search/stats
GET /v2/caches/{cacheName}/search/stats
Parameter | Required or Optional | Value |
---|---|---|
| OPTIONAL |
Use |
Data Grid provides a JSON response such as the following:
In the
section:
query
-
indexed_local
Provides details about indexed queries. -
indexed_distributed
Provides details about distributed indexed queries. -
hybrid
Provides details about queries that used the index only partially. -
non_indexed
Provides details about queries that didn’t use the index. -
entity_load
Provides details about cache operations to fetch objects after indexed queries execution.
All time related statistics are in nanoseconds.
In the
section:
index
types
Provide details about each indexed type (class name or protobuf message) that is configured in the cache.-
count
The number of entities indexed for the type. -
size
Usage in bytes of the type.
-
-
reindexing
If the value istrue
, theIndexer
is running in the cache.
2.1.22. Clearing Search Statistics Copy linkLink copied to clipboard!
Reset runtime statistics with POST
requests and the ?action=clear
parameter.
POST /v2/caches/{cacheName}/search/stats?action=clear
POST /v2/caches/{cacheName}/search/stats?action=clear
Index statistics will not be cleared, but only query execution times. Data Grid clears query statistics for the local node only.
2.1.23. Retrieving Index Statistics (Deprecated) Copy linkLink copied to clipboard!
Obtain information about indexes in caches with GET
requests.
GET /v2/caches/{cacheName}/search/indexes/stats
GET /v2/caches/{cacheName}/search/indexes/stats
Data Grid provides a JSON response such as the following:
-
indexed_class_names
Provides the class names of the indexes present in the cache. For Protobuf the value is alwaysorg.infinispan.query.remote.impl.indexing.ProtobufValueWrapper
. -
indexed_entities_count
Provides the number of entities indexed per class. -
index_sizes
Provides the size, in bytes, for each index in the cache. -
reindexing
Indicates if a re-indexing operation was performed for the cache. If the value istrue
, theMassIndexer
was started in the cache.
2.1.24. Retrieving Query Statistics (Deprecated) Copy linkLink copied to clipboard!
Get information about the queries that have been run in caches with GET
requests.
GET /v2/caches/{cacheName}/search/query/stats
GET /v2/caches/{cacheName}/search/query/stats
Data Grid provides a JSON response such as the following:
-
search_query_execution_count
Provides the number of queries that have been run. -
search_query_total_time
Provides the total time spent on queries. -
search_query_execution_max_time
Provides the maximum time taken for a query. -
search_query_execution_avg_time
Provides the average query time. -
object_loading_total_time
Provides the total time spent loading objects from the cache after query execution. -
object_loading_execution_max_time
Provides the maximum time spent loading objects execution. -
object_loading_execution_avg_time
Provides the average time spent loading objects execution. -
objects_loaded_count
Provides the count of objects loaded. -
search_query_execution_max_time_query_string
Provides the slowest query executed.
2.1.25. Clearing Query Statistics (Deprecated) Copy linkLink copied to clipboard!
Reset runtime statistics with POST
requests and the ?action=clear
parameter.
POST /v2/caches/{cacheName}/search/query/stats?action=clear
POST /v2/caches/{cacheName}/search/query/stats?action=clear
2.1.26. Listing Caches Copy linkLink copied to clipboard!
List all available caches in Data Grid clusters with GET
requests.
GET /rest/v2/caches/
GET /rest/v2/caches/
2.1.27. Cross-Site Operations with Caches Copy linkLink copied to clipboard!
Perform cross-site replication operations with the Data Grid REST API.
2.1.27.1. Getting Status of All Backup Locations Copy linkLink copied to clipboard!
Retrieve the status of all backup locations with GET
requests.
GET /v2/caches/{cacheName}/x-site/backups/
GET /v2/caches/{cacheName}/x-site/backups/
Data Grid responds with the status of each backup location in JSON format, as in the following example:
{ "NYC": "online", "LON": "offline" }
{
"NYC": "online",
"LON": "offline"
}
Value | Description |
---|---|
| All nodes in the local cluster have a cross-site view with the backup location. |
| No nodes in the local cluster have a cross-site view with the backup location. |
| Some nodes in the local cluster have a cross-site view with the backup location, other nodes in the local cluster do not have a cross-site view. The response indicates status for each node. |
2.1.27.2. Getting Status of Specific Backup Locations Copy linkLink copied to clipboard!
Retrieve the status of a backup location with GET
requests.
GET /v2/caches/{cacheName}/x-site/backups/{siteName}
GET /v2/caches/{cacheName}/x-site/backups/{siteName}
Data Grid responds with the status of each node in the site in JSON format, as in the following example:
{ "NodeA":"offline", "NodeB":"online" }
{
"NodeA":"offline",
"NodeB":"online"
}
Value | Description |
---|---|
| The node is online. |
| The node is offline. |
| Not possible to retrieve status. The remote cache could be shutting down or a network error occurred during the request. |
2.1.27.3. Taking Backup Locations Offline Copy linkLink copied to clipboard!
Take backup locations offline with POST
requests and the ?action=take-offline
parameter.
POST /v2/caches/{cacheName}/x-site/backups/{siteName}?action=take-offline
POST /v2/caches/{cacheName}/x-site/backups/{siteName}?action=take-offline
2.1.27.4. Bringing Backup Locations Online Copy linkLink copied to clipboard!
Bring backup locations online with the ?action=bring-online
parameter.
POST /v2/caches/{cacheName}/x-site/backups/{siteName}?action=bring-online
POST /v2/caches/{cacheName}/x-site/backups/{siteName}?action=bring-online
2.1.27.5. Pushing State to Backup Locations Copy linkLink copied to clipboard!
Push cache state to a backup location with the ?action=start-push-state
parameter.
POST /v2/caches/{cacheName}/x-site/backups/{siteName}?action=start-push-state
POST /v2/caches/{cacheName}/x-site/backups/{siteName}?action=start-push-state
2.1.27.6. Canceling State Transfer Copy linkLink copied to clipboard!
Cancel state transfer operations with the ?action=cancel-push-state
parameter.
POST /v2/caches/{cacheName}/x-site/backups/{siteName}?action=cancel-push-state
POST /v2/caches/{cacheName}/x-site/backups/{siteName}?action=cancel-push-state
2.1.27.7. Getting State Transfer Status Copy linkLink copied to clipboard!
Retrieve status of state transfer operations with the ?action=push-state-status
parameter.
GET /v2/caches/{cacheName}/x-site/backups?action=push-state-status
GET /v2/caches/{cacheName}/x-site/backups?action=push-state-status
Data Grid responds with the status of state transfer for each backup location in JSON format, as in the following example:
{ "NYC":"CANCELED", "LON":"OK" }
{
"NYC":"CANCELED",
"LON":"OK"
}
Value | Description |
---|---|
| State transfer to the backup location is in progress. |
| State transfer completed successfully. |
| An error occurred with state transfer. Check log files. |
| State transfer cancellation is in progress. |
2.1.27.8. Clearing State Transfer Status Copy linkLink copied to clipboard!
Clear state transfer status for sending sites with the ?action=clear-push-state-status
parameter.
POST /v2/caches/{cacheName}/x-site/local?action=clear-push-state-status
POST /v2/caches/{cacheName}/x-site/local?action=clear-push-state-status
2.1.27.9. Modifying Take Offline Conditions Copy linkLink copied to clipboard!
Sites go offline if certain conditions are met. Modify the take offline parameters to control when backup locations automatically go offline.
Procedure
Check configured take offline parameters with
GET
requests and thetake-offline-config
parameter.GET /v2/caches/{cacheName}/x-site/backups/{siteName}/take-offline-config
GET /v2/caches/{cacheName}/x-site/backups/{siteName}/take-offline-config
Copy to Clipboard Copied! Toggle word wrap Toggle overflow The Data Grid response includes
after_failures
andmin_wait
fields as follows:{ "after_failures": 2, "min_wait": 1000 }
{ "after_failures": 2, "min_wait": 1000 }
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Modify take offline parameters in the body of
PUT
requests.PUT /v2/caches/{cacheName}/x-site/backups/{siteName}/take-offline-config
PUT /v2/caches/{cacheName}/x-site/backups/{siteName}/take-offline-config
Copy to Clipboard Copied! Toggle word wrap Toggle overflow If the operation successfully completes, the service returns
204 (No Content)
.
2.1.27.10. Canceling State Transfer from Receiving Sites Copy linkLink copied to clipboard!
If the connection between two backup locations breaks, you can cancel state transfer on the site that is receiving the push.
Cancel state transfer from a remote site and keep the current state of the local cache with the ?action=cancel-receive-state
parameter.
POST /v2/caches/{cacheName}/x-site/backups/{siteName}?action=cancel-receive-state
POST /v2/caches/{cacheName}/x-site/backups/{siteName}?action=cancel-receive-state
2.1.28. Rolling Upgrades Copy linkLink copied to clipboard!
Perform rolling upgrades of cache data between Data Grid clusters
2.1.28.1. Synchronizing Data Copy linkLink copied to clipboard!
Synchronize data from a source cluster to a target cluster with POST
requests and the ?action=sync-data
parameter:
POST /v2/caches/{cacheName}?action=sync-data
POST /v2/caches/{cacheName}?action=sync-data
When the operation completes, Data Grid responds with the total number of entries copied to the target cluster.
2.1.28.2. Disconnecting Source Clusters Copy linkLink copied to clipboard!
After you synchronize data to target clusters, disconnect from the source cluster with POST
requests and the ?action=disconnect-source
parameter:
POST /v2/caches/{cacheName}?action=disconnect-source
POST /v2/caches/{cacheName}?action=disconnect-source
If the operation successfully completes, the service returns 204 (No Content)
.
2.2. Creating and Managing Counters Copy linkLink copied to clipboard!
Create, delete, and modify counters via the REST API.
2.2.1. Creating Counters Copy linkLink copied to clipboard!
Create counters with POST
requests that include configuration in the payload.
POST /rest/v2/counters/{counterName}
POST /rest/v2/counters/{counterName}
Example Weak Counter
Example Strong Counter
2.2.2. Deleting Counters Copy linkLink copied to clipboard!
Remove specific counters with DELETE
requests.
DELETE /rest/v2/counters/{counterName}
DELETE /rest/v2/counters/{counterName}
2.2.3. Retrieving Counter Configuration Copy linkLink copied to clipboard!
Retrieve configuration for specific counters with GET
requests.
GET /rest/v2/counters/{counterName}/config
GET /rest/v2/counters/{counterName}/config
Data Grid responds with the counter configuration in JSON format.
2.2.4. Getting Counter Values Copy linkLink copied to clipboard!
Retrieve counter values with GET
requests.
GET /rest/v2/counters/{counterName}
GET /rest/v2/counters/{counterName}
Header | Required or Optional | Parameter |
---|---|---|
OPTIONAL | The required format to return the content. Supported formats are application/json and text/plain. JSON is assumed if no header is provided. |
2.2.5. Resetting Counters Copy linkLink copied to clipboard!
Restore the initial value of counters without POST
requests and the ?action=reset
parameter.
POST /rest/v2/counters/{counterName}?action=reset
POST /rest/v2/counters/{counterName}?action=reset
If the operation successfully completes, the service returns 204 (No Content)
.
2.2.6. Incrementing Counters Copy linkLink copied to clipboard!
Increment counter values with POST
request` and the ?action=increment
parameter.
POST /rest/v2/counters/{counterName}?action=increment
POST /rest/v2/counters/{counterName}?action=increment
WEAK
counters never respond after operations and return 204 (No Content)
.
STRONG
counters return 200 (OK)
and the current value after each operation.
2.2.7. Adding Deltas to Counters Copy linkLink copied to clipboard!
Add arbitrary values to counters with POST
requests that include the ?action=add
and delta
parameters.
POST /rest/v2/counters/{counterName}?action=add&delta={delta}
POST /rest/v2/counters/{counterName}?action=add&delta={delta}
WEAK
counters never respond after operations and return 204 (No Content)
.
STRONG
counters return 200 (OK)
and the current value after each operation.
2.2.8. Decrementing Counter Values Copy linkLink copied to clipboard!
Decrement counter values with POST
requests and the ?action=decrement
parameter.
POST /rest/v2/counters/{counterName}?action=decrement
POST /rest/v2/counters/{counterName}?action=decrement
WEAK
counters never respond after operations and return 204 (No Content)
.
STRONG
counters return 200 (OK)
and the current value after each operation.
2.2.9. Performing compareAndSet Operations on Strong Counters Copy linkLink copied to clipboard!
Atomically set values for strong counters with GET
requests and the compareAndSet
parameter.
POST /rest/v2/counters/{counterName}?action=compareAndSet&expect={expect}&update={update}
POST /rest/v2/counters/{counterName}?action=compareAndSet&expect={expect}&update={update}
Data Grid atomically sets the value to {update}
if the current value is {expect}
. If the operation is successful, Data Grid returns true
.
2.2.10. Performing compareAndSwap Operations on Strong Counters Copy linkLink copied to clipboard!
Atomically set values for strong counters with GET
requests and the compareAndSwap
parameter.
POST /rest/v2/counters/{counterName}?action=compareAndSwap&expect={expect}&update={update}
POST /rest/v2/counters/{counterName}?action=compareAndSwap&expect={expect}&update={update}
Data Grid atomically sets the value to {update}
if the current value is {expect}
. If the operation is successful, Data Grid returns the previous value in the payload.
2.2.11. Listing Counters Copy linkLink copied to clipboard!
Retrieve a list of counters in Data Grid clusters with GET
requests.
GET /rest/v2/counters/
GET /rest/v2/counters/
2.3. Working with Protobuf Schemas Copy linkLink copied to clipboard!
Create and manage Protobuf schemas, .proto
files, via the Data Grid REST API.
2.3.1. Creating Protobuf Schemas Copy linkLink copied to clipboard!
Create Protobuf schemas across Data Grid clusters with POST
requests that include the content of a protobuf file in the payload.
POST /rest/v2/schemas/{schemaName}
POST /rest/v2/schemas/{schemaName}
If the schema already exists, Data Grid returns HTTP 409 (Conflict)
. If the schema is not valid, either because of syntax errors, or because some of its dependencies are missing, Data Grid stores the schema and returns the error in the response body.
Data Grid responds with the schema name and any errors.
-
name
is the name of the Protobuf schema. -
error
isnull
for valid Protobuf schemas. If Data Grid cannot successfully validate the schema, it returns errors.
If the operation successfully completes, the service returns 201 (Created)
.
2.3.2. Reading Protobuf Schemas Copy linkLink copied to clipboard!
Retrieve Protobuf schema from Data Grid with GET
requests.
GET /rest/v2/schemas/{schemaName}
GET /rest/v2/schemas/{schemaName}
2.3.3. Updating Protobuf Schemas Copy linkLink copied to clipboard!
Modify Protobuf schemas with PUT
requests that include the content of a protobuf file in the payload.
PUT /rest/v2/schemas/{schemaName}
PUT /rest/v2/schemas/{schemaName}
If the schema is not valid, either because of syntax errors, or because some of its dependencies are missing, Data Grid updates the schema and returns the error in the response body.
-
name
is the name of the Protobuf schema. -
error
isnull
for valid Protobuf schemas. If Data Grid cannot successfully validate the schema, it returns errors.
2.3.4. Deleting Protobuf Schemas Copy linkLink copied to clipboard!
Remove Protobuf schemas from Data Grid clusters with DELETE
requests.
DELETE /rest/v2/schemas/{schemaName}
DELETE /rest/v2/schemas/{schemaName}
If the operation successfully completes, the service returns 204 (No Content)
.
2.3.5. Listing Protobuf Schemas Copy linkLink copied to clipboard!
List all available Protobuf schemas with GET
requests.
GET /rest/v2/schemas/
GET /rest/v2/schemas/
Data Grid responds with a list of all schemas available on the cluster.
-
name
is the name of the Protobuf schema. -
error
isnull
for valid Protobuf schemas. If Data Grid cannot successfully validate the schema, it returns errors.
2.4. Working with Cache Managers Copy linkLink copied to clipboard!
Interact with Data Grid Cache Managers to get cluster and usage statistics.
2.4.1. Getting Basic Cache Manager Information Copy linkLink copied to clipboard!
Retrieving information about Cache Managers with GET
requests.
GET /rest/v2/cache-managers/{cacheManagerName}
GET /rest/v2/cache-managers/{cacheManagerName}
Data Grid responds with information in JSON format, as in the following example:
-
version
contains the Data Grid version -
name
contains the name of the cache manager as defined in the configuration -
coordinator
is true if the cache manager is the coordinator of the cluster -
cache_configuration_names
contains an array of all caches configurations defined in the cache manager -
cluster_name
contains the name of the cluster as defined in the configuration -
physical_addresses
contains the physical network addresses associated with the cache manager -
coordinator_address
contains the physical network addresses of the coordinator of the cluster -
cache_manager_status
the lifecycle status of the cache manager. For possible values, check theorg.infinispan.lifecycle.ComponentStatus
documentation -
created_cache_count
number of created caches, excludes all internal and private caches -
running_cache_count
number of created caches that are running -
node_address
contains the logical address of the cache manager -
cluster_members
andcluster_members_physical_addresses
an array of logical and physical addresses of the members of the cluster -
cluster_size
number of members in the cluster -
defined_caches
A list of all caches defined in the cache manager, excluding private caches but including internal caches that are accessible -
local_site
The name of the local site.
If cross-site replication is not configured, Data Grid returns "local". -
sites_view
The list of sites that participate in cross-site replication.
If cross-site replication is not configured, Data Grid returns an empty list.
2.4.2. Getting Cluster Health Copy linkLink copied to clipboard!
Retrieve health information for Data Grid clusters with GET
requests.
GET /rest/v2/cache-managers/{cacheManagerName}/health
GET /rest/v2/cache-managers/{cacheManagerName}/health
Data Grid responds with cluster health information in JSON format, as in the following example:
cluster_health
contains the health of the cluster-
cluster_name
specifies the name of the cluster as defined in the configuration. health_status
provides one of the following:-
DEGRADED
indicates at least one of the caches is in degraded mode. -
HEALTHY_REBALANCING
indicates at least one cache is in the rebalancing state. -
HEALTHY
indicates all cache instances in the cluster are operating as expected. -
FAILED
indicates the cache failed to start with the provided configuration.
-
-
number_of_nodes
displays the total number of cluster members. Returns a value of0
for non-clustered (standalone) servers. -
node_names
is an array of all cluster members. Empty for standalone servers.
-
cache_health
contains health information per-cache-
status
HEALTHY, DEGRADED, HEALTHY_REBALANCING or FAILED -
cache_name
the name of the cache as defined in the configuration.
-
2.4.3. Getting Cache Manager Health Status Copy linkLink copied to clipboard!
Retrieve the health status of Cache Managers with GET
requests that do not require authentication.
GET /rest/v2/cache-managers/{cacheManagerName}/health/status
GET /rest/v2/cache-managers/{cacheManagerName}/health/status
Data Grid responds with one of the following in text/plain
format:
-
HEALTHY
-
HEALTHY_REBALANCING
-
DEGRADED
-
FAILED
2.4.4. Checking REST Endpoint Availability Copy linkLink copied to clipboard!
Verify Data Grid server REST endpoint availability with HEAD
requests.
HEAD /rest/v2/cache-managers/{cacheManagerName}/health
HEAD /rest/v2/cache-managers/{cacheManagerName}/health
If you receive a successful response code then the Data Grid REST server is running and serving requests.
2.4.5. Obtaining Global Configuration for Cache Managers Copy linkLink copied to clipboard!
Retrieve global configuration for Cache Managers with GET
requests.
GET /rest/v2/cache-managers/{cacheManagerName}/config
GET /rest/v2/cache-managers/{cacheManagerName}/config
Header | Required or Optional | Parameter |
---|---|---|
OPTIONAL | The required format to return the content. Supported formats are application/json and application/xml. JSON is assumed if no header is provided. |
Reference
2.4.6. Obtaining Configuration for All Caches Copy linkLink copied to clipboard!
Retrieve the configuration for all caches with GET
requests.
GET /rest/v2/cache-managers/{cacheManagerName}/cache-configs
GET /rest/v2/cache-managers/{cacheManagerName}/cache-configs
Data Grid responds with JSON
arrays that contain each cache and cache configuration, as in the following example:
2.4.7. Listing Available Cache Templates Copy linkLink copied to clipboard!
Retrieve all available Data Grid cache templates with GET
requests.
GET /rest/v2/cache-managers/{cacheManagerName}/cache-configs/templates
GET /rest/v2/cache-managers/{cacheManagerName}/cache-configs/templates
2.4.8. (Experimental) Obtaining Cache Status and Information Copy linkLink copied to clipboard!
Retrieve a list of all available caches for a Cache Manager, along with cache statuses and details, with GET
requests.
GET /rest/v2/cache-managers/{cacheManagerName}/caches
GET /rest/v2/cache-managers/{cacheManagerName}/caches
Data Grid responds with JSON arrays that lists and describes each available cache, as in the following example:
2.4.9. Getting Cache Manager Statistics Copy linkLink copied to clipboard!
Retrieve the statistics for Cache Managers with GET
requests.
GET /rest/v2/cache-managers/{cacheManagerName}/stats
GET /rest/v2/cache-managers/{cacheManagerName}/stats
Data Grid responds with Cache Manager statistics in JSON format, as in the following example:
-
statistics_enabled
istrue
if statistics collection is enabled for the Cache Manager. -
read_write_ratio
displays the read/write ratio across all caches. -
time_since_start
shows the time, in seconds, since the Cache Manager started. -
time_since_reset
shows the number of seconds since the Cache Manager statistics were last reset. -
number_of_entries
shows the total number of entries currently in all caches from the Cache Manager. This statistic returns entries in the local cache instances only. -
total_number_of_entries
shows the number of store operations performed across all caches for the Cache Manager. -
off_heap_memory_used
shows the amount, inbytes[]
, of off-heap memory used by this cache container. -
data_memory_used
shows the amount, inbytes[]
, that the current eviction algorithm estimates is in use for data across all caches. Returns0
if eviction is not enabled. -
misses
shows the number ofget()
misses across all caches. -
remove_hits
shows the number of removal hits across all caches. -
remove_misses
shows the number of removal misses across all caches. -
evictions
shows the number of evictions across all caches. -
average_read_time
shows the average number of milliseconds taken forget()
operations across all caches. -
average_read_time_nanos
same asaverage_read_time
but in nanoseconds. -
average_remove_time
shows the average number of milliseconds forremove()
operations across all caches. -
average_remove_time_nanos
same asaverage_remove_time
but in nanoseconds. -
required_minimum_number_of_nodes
shows the required minimum number of nodes to guarantee data consistency. -
hits
provides the number ofget()
hits across all caches. -
stores
provides the number ofput()
operations across all caches. -
current_number_of_entries_in_memory
shows the total number of entries currently in all caches, excluding passivated entries. -
hit_ratio
provides the total percentage hit/(hit+miss) ratio for all caches. -
retrievals
shows the total number ofget()
operations.
2.4.10. Backing Up Data Grid Cache Managers Copy linkLink copied to clipboard!
Create backup archives, application/zip
, that contain resources (caches, cache templates, counters, Protobuf schemas, server tasks, and so on) currently stored in the cache manager.
POST /rest/v2/cache-managers/{cacheManagerName}/backups/{backupName}
POST /rest/v2/cache-managers/{cacheManagerName}/backups/{backupName}
If a backup with the same name already exists, the service responds with 409 (Conflict)
. If the directory
parameter is not valid, the service returns 400 (Bad Request)
. A 202
response indicates that the backup request is accepted for processing.
Optionally include a JSON payload with your request that contains parameters for the backup operation, as follows:
Key | Required or Optional | Value |
---|---|---|
| OPTIONAL | Specifies a location on the server to create and store the backup archive. |
| OPTIONAL | Specifies the resources to back up, in JSON format. The default is to back up all resources. If you specify one or more resources, then Data Grid backs up only those resources. See the Resource Parameters table for more information. |
Key | Required or Optional | Value |
---|---|---|
| OPTIONAL |
Specifies either an array of cache names to back up or |
| OPTIONAL |
Specifies either an array of cache templates to back up or |
| OPTIONAL |
Defines either an array of counter names to back up or |
| OPTIONAL |
Defines either an array of Protobuf schema names to back up or |
| OPTIONAL |
Specifies either an array of server tasks to back up or |
The following example creates a backup archive with all counters and caches named [cache1,cache2]
in a specified directory:
2.4.11. Listing Backups Copy linkLink copied to clipboard!
Retrieve the names of all backup operations that are in progress, completed, or failed.
GET /rest/v2/cache-managers/{cacheManagerName}/backups
GET /rest/v2/cache-managers/{cacheManagerName}/backups
Data Grid responds with an Array of all backup names as in the following example:
["backup1", "backup2"]
["backup1", "backup2"]
2.4.12. Checking Backup Availability Copy linkLink copied to clipboard!
Verify that a backup operation is complete.
HEAD /rest/v2/cache-managers/{cacheManagerName}/backups/{backupName}
HEAD /rest/v2/cache-managers/{cacheManagerName}/backups/{backupName}
A 200
response indicates the backup archive is available. A 202
response indicates the backup operation is in progress.
2.4.13. Downloading Backup Archives Copy linkLink copied to clipboard!
Download backup archives from the server.
GET /rest/v2/cache-managers/{cacheManagerName}/backups/{backupName}
GET /rest/v2/cache-managers/{cacheManagerName}/backups/{backupName}
A 200
response indicates the backup archive is available. A 202
response indicates the backup operation is in progress.
2.4.14. Deleting Backup Archives Copy linkLink copied to clipboard!
Remove backup archives from the server.
DELETE /rest/v2/cache-managers/{cacheManagerName}/backups/{backupName}
DELETE /rest/v2/cache-managers/{cacheManagerName}/backups/{backupName}
A 204
response indicates that the backup archive is deleted. A 202
response indicates that the backup operation is in progress but will be deleted when the operation completes.
2.4.15. Restoring Data Grid Resources from Backup Archives Copy linkLink copied to clipboard!
Restore Data Grid resources from backup archives. The provided {restoreName}
is for tracking restore progress, and is independent of the name of backup file being restored.
You can restore resources only if the container name in the backup archive matches {cacheManagerName}
.
POST /rest/v2/cache-managers/{cacheManagerName}/restores/{restoreName}
POST /rest/v2/cache-managers/{cacheManagerName}/restores/{restoreName}
A 202
response indicates that the restore request has been accepted for processing.
2.4.15.1. Restoring from Backup Archives on Data Grid Server Copy linkLink copied to clipboard!
Use the application/json
content type with your POST request to back up from an archive that is available on the server.
Key | Required or Optional | Value |
---|---|---|
| REQUIRED | Specifies the path of the backup archive to restore. |
| OPTIONAL | Specifies the resources to restore, in JSON format. The default is to restore all resources. If you specify one or more resources, then Data Grid restores only those resources. See the Resource Parameters table for more information. |
Key | Required or Optional | Value |
---|---|---|
| OPTIONAL |
Specifies either an array of cache names to back up or |
| OPTIONAL |
Specifies either an array of cache templates to back up or |
| OPTIONAL |
Defines either an array of counter names to back up or |
| OPTIONAL |
Defines either an array of Protobuf schema names to back up or |
| OPTIONAL |
Specifies either an array of server tasks to back up or |
The following example restores all counters from a backup archive on the server:
2.4.15.2. Restoring from Local Backup Archives Copy linkLink copied to clipboard!
Use the multipart/form-data
content type with your POST request to upload a local backup archive to the server.
Parameter | Content-Type | Required or Optional | Value |
---|---|---|---|
|
| REQUIRED | Specifies the bytes of the backup archive to restore. |
|
| OPTIONAL | Defines a JSON object of request parameters. |
Example Request
2.4.16. Listing Restores Copy linkLink copied to clipboard!
Retrieve the names of all restore requests that are in progress, completed, or failed.
GET /rest/v2/cache-managers/{cacheManagerName}/restores
GET /rest/v2/cache-managers/{cacheManagerName}/restores
Data Grid responds with an Array of all restore names as in the following example:
["restore1", "restore2"]
["restore1", "restore2"]
2.4.17. Checking Restore Progress Copy linkLink copied to clipboard!
Verify that a restore operation is complete.
HEAD /rest/v2/cache-managers/{cacheManagerName}/restores/{restoreName}
HEAD /rest/v2/cache-managers/{cacheManagerName}/restores/{restoreName}
A 201 (Created)
response indicates the restore operation is completed. A 202 (Accepted)
response indicates the backup operation is in progress.
2.4.18. Deleting Restore Metadata Copy linkLink copied to clipboard!
Remove metadata for restore requests from the server. This action removes all metadata associated with restore requests but does not delete any restored content. If you delete the request metadata, you can use the request name to perform subsequent restore operations.
DELETE /rest/v2/cache-managers/{cacheManagerName}/restores/{restoreName}
DELETE /rest/v2/cache-managers/{cacheManagerName}/restores/{restoreName}
A 204 (No Content)
response indicates that the restore metadata is deleted. A 202 (Accepted)
response indicates that the restore operation is in progress and will be deleted when the operation completes.
2.4.19. Cross-Site Operations with Cache Managers Copy linkLink copied to clipboard!
Perform cross-site operations with Cache Managers to apply the operations to all caches.
2.4.19.1. Getting Status of Backup Locations Copy linkLink copied to clipboard!
Retrieve the status of all backup locations from Cache Managers with GET
requests.
GET /rest/v2/cache-managers/{cacheManagerName}/x-site/backups/
GET /rest/v2/cache-managers/{cacheManagerName}/x-site/backups/
Data Grid responds with status in JSON format, as in the following example:
Value | Description |
---|---|
| All nodes in the local cluster have a cross-site view with the backup location. |
| No nodes in the local cluster have a cross-site view with the backup location. |
| Some nodes in the local cluster have a cross-site view with the backup location, other nodes in the local cluster do not have a cross-site view. The response indicates status for each node. |
2.4.19.2. Taking Backup Locations Offline Copy linkLink copied to clipboard!
Take backup locations offline with the ?action=take-offline
parameter.
POST /rest/v2/cache-managers/{cacheManagerName}/x-site/backups/{siteName}?action=take-offline
POST /rest/v2/cache-managers/{cacheManagerName}/x-site/backups/{siteName}?action=take-offline
2.4.19.3. Bringing Backup Locations Online Copy linkLink copied to clipboard!
Bring backup locations online with the ?action=bring-online
parameter.
POST /rest/v2/cache-managers/{cacheManagerName}/x-site/backups/{siteName}?action=bring-online
POST /rest/v2/cache-managers/{cacheManagerName}/x-site/backups/{siteName}?action=bring-online
2.4.19.4. Retrieving the State Transfer Mode Copy linkLink copied to clipboard!
Check the state transfer mode with GET
requests.
GET /rest/v2/caches/{cacheName}/x-site/backups/{site}/state-transfer-mode
GET /rest/v2/caches/{cacheName}/x-site/backups/{site}/state-transfer-mode
2.4.19.5. Setting the State Transfer Mode Copy linkLink copied to clipboard!
Configure the state transfer mode with the ?action=set
parameter.
POST /rest/v2/caches/{cacheName}/x-site/backups/{site}/state-transfer-mode?action=set&mode={mode}
POST /rest/v2/caches/{cacheName}/x-site/backups/{site}/state-transfer-mode?action=set&mode={mode}
2.4.19.6. Starting State Transfer Copy linkLink copied to clipboard!
Push state of all caches to remote sites with the ?action=start-push-state
parameter.
POST /rest/v2/cache-managers/{cacheManagerName}/x-site/backups/{siteName}?action=start-push-state
POST /rest/v2/cache-managers/{cacheManagerName}/x-site/backups/{siteName}?action=start-push-state
2.4.19.7. Canceling State Transfer Copy linkLink copied to clipboard!
Cancel ongoing state transfer operations with the ?action=cancel-push-state
parameter.
POST /rest/v2/cache-managers/{cacheManagerName}/x-site/backups/{siteName}?action=cancel-push-state
POST /rest/v2/cache-managers/{cacheManagerName}/x-site/backups/{siteName}?action=cancel-push-state
2.5. Working with Data Grid Servers Copy linkLink copied to clipboard!
Monitor and manage Data Grid server instances.
2.5.1. Retrieving Basic Server Information Copy linkLink copied to clipboard!
View basic information about Data Grid servers with GET
requests.
GET /rest/v2/server
GET /rest/v2/server
Data Grid responds with the server name, codename, and version in JSON format as in the following example:
{ "version":"Infinispan 'Codename' xx.x.x.Final" }
{
"version":"Infinispan 'Codename' xx.x.x.Final"
}
2.5.2. Getting Cache Managers Copy linkLink copied to clipboard!
Retrieve lists of cache managers for Data Grid servers with GET
requests.
GET /rest/v2/server/cache-managers
GET /rest/v2/server/cache-managers
Data Grid responds with an array of the cache manager names configured for the server.
Data Grid currently supports one cache manager per server only.
2.5.3. Adding Caches to Ignore Lists Copy linkLink copied to clipboard!
Configure Data Grid to temporarily exclude specific caches from client requests. Send empty POST
requests that include the names of the cache manager name and the cache.
POST /v2/server/ignored-caches/{cache-manager}/{cache}
POST /v2/server/ignored-caches/{cache-manager}/{cache}
Data Grid responds with 204 (No Content)
if the cache is successfully added to the ignore list or 404 (Not Found)
if the cache or cache manager are not found.
Data Grid currently supports one cache manager per server only. For future compatibility you must provide the cache manager name in the requests.
2.5.4. Removing Caches from Ignore Lists Copy linkLink copied to clipboard!
Remove caches from the ignore list with DELETE
requests.
DELETE /v2/server/ignored-caches/{cache-manager}/{cache}
DELETE /v2/server/ignored-caches/{cache-manager}/{cache}
Data Grid responds with 204 (No Content)
if the cache is successfully removed from ignore list or 404 (Not Found)
if the cache or cache manager are not found.
2.5.5. Confirming Ignored Caches Copy linkLink copied to clipboard!
Confirm that caches are ignored with GET
requests.
GET /v2/server/ignored-caches/{cache-manager}
GET /v2/server/ignored-caches/{cache-manager}
2.5.6. Obtaining Server Configuration Copy linkLink copied to clipboard!
Retrieve Data Grid server configurations with GET
requests.
GET /rest/v2/server/config
GET /rest/v2/server/config
Data Grid responds with the configuration in JSON format, as follows:
2.5.7. Getting Environment Variables Copy linkLink copied to clipboard!
Retrieve all environment variables for Data Grid servers with GET
requests.
GET /rest/v2/server/env
GET /rest/v2/server/env
2.5.8. Getting JVM Memory Details Copy linkLink copied to clipboard!
Retrieve JVM memory usage information for Data Grid servers with GET
requests.
GET /rest/v2/server/memory
GET /rest/v2/server/memory
Data Grid responds with heap and non-heap memory statistics, direct memory usage, and information about memory pools and garbage collection in JSON format.
2.5.9. Getting JVM Thread Dumps Copy linkLink copied to clipboard!
Retrieve the current thread dump for the JVM with GET
requests.
GET /rest/v2/server/threads
GET /rest/v2/server/threads
Data Grid responds with the current thread dump in text/plain
format.
2.5.10. Getting Diagnostic Reports for Data Grid Servers Copy linkLink copied to clipboard!
Retrieve aggregated reports for Data Grid servers with GET
requests.
GET /rest/v2/server/report
GET /rest/v2/server/report
Data Grid responds with a tar.gz
archive that contains an aggregated report with diagnostic information about both the Data Grid server and the host. The report provides details about CPU, memory, open files, network sockets and routing, threads, in addition to configuration and log files.
2.5.11. Stopping Data Grid Servers Copy linkLink copied to clipboard!
Stop Data Grid servers with POST
requests.
POST /rest/v2/server?action=stop
POST /rest/v2/server?action=stop
Data Grid responds with 204 (No Content)
and then stops running.
2.6. Working with Data Grid Clusters Copy linkLink copied to clipboard!
Monitor and perform administrative tasks on Data Grid clusters.
2.6.1. Stopping Data Grid Clusters Copy linkLink copied to clipboard!
Shut down entire Data Grid clusters with POST
requests.
POST /rest/v2/cluster?action=stop
POST /rest/v2/cluster?action=stop
Data Grid responds with 204 (No Content)
and then performs an orderly shutdown of the entire cluster.
2.6.2. Stopping Specific Data Grid Servers in Clusters Copy linkLink copied to clipboard!
Shut down one or more specific servers in Data Grid clusters with GET
requests and the ?action=stop&server
parameter.
POST /rest/v2/cluster?action=stop&server={server1_host}&server={server2_host}
POST /rest/v2/cluster?action=stop&server={server1_host}&server={server2_host}
Data Grid responds with 204 (No Content)
.
2.6.3. Backing Up Data Grid Clusters Copy linkLink copied to clipboard!
Create backup archives, application/zip
, that contain resources (caches, templates, counters, Protobuf schemas, server tasks, and so on) currently stored in the cache container for the cluster.
POST /rest/v2/cluster/backups/{backupName}
POST /rest/v2/cluster/backups/{backupName}
Optionally include a JSON payload with your request that contains parameters for the backup operation, as follows:
Key | Required or Optional | Value |
---|---|---|
| OPTIONAL | Specifies a location on the server to create and store the backup archive. |
If the backup operation successfully completes, the service returns 202 (Accepted)
. If a backup with the same name already exists, the service returns 409 (Conflict)
. If the directory
parameter is not valid, the service returns 400 (Bad Request)
.
2.6.4. Listing Backups Copy linkLink copied to clipboard!
Retrieve the names of all backup operations that are in progress, completed, or failed.
GET /rest/v2/cluster/backups
GET /rest/v2/cluster/backups
Data Grid responds with an Array of all backup names as in the following example:
["backup1", "backup2"]
["backup1", "backup2"]
2.6.5. Checking Backup Availability Copy linkLink copied to clipboard!
Verify that a backup operation is complete. A 200
response indicates the backup archive is available. A 202
response indicates the backup operation is in progress.
HEAD /rest/v2/cluster/backups/{backupName}
HEAD /rest/v2/cluster/backups/{backupName}
2.6.6. Downloading Backup Archives Copy linkLink copied to clipboard!
Download backup archives from the server. A 200
response indicates the backup archive is available. A 202
response indicates the backup operation is in progress.
GET /rest/v2/cluster/backups/{backupName}
GET /rest/v2/cluster/backups/{backupName}
2.6.7. Deleting Backup Archives Copy linkLink copied to clipboard!
Remove backup archives from the server. A 204
response indicates that the backup archive is deleted. A 202
response indicates that the backup operation is in progress but will be deleted when the operation completes.
DELETE /rest/v2/cluster/backups/{backupName}
DELETE /rest/v2/cluster/backups/{backupName}
2.6.8. Restoring Data Grid Cluster Resources Copy linkLink copied to clipboard!
Apply resources in a backup archive to restore Data Grid clusters. The provided {restoreName}
is for tracking restore progress, and is independent of the name of backup file being restored.
You can restore resources only if the container name in the backup archive matches the container name for the cluster.
POST /rest/v2/cluster/restores/{restoreName}
POST /rest/v2/cluster/restores/{restoreName}
A 202
response indicates that the restore request is accepted for processing.
2.6.8.1. Restoring from Backup Archives on Data Grid Server Copy linkLink copied to clipboard!
Use the application/json
content type with your POST request to back up from an archive that is available on the server.
Key | Required or Optional | Value |
---|---|---|
| REQUIRED | Specifies the path of the backup archive to restore. |
| OPTIONAL | Specifies the resources to restore, in JSON format. The default is to restore all resources. If you specify one or more resources, then Data Grid restores only those resources. See the Resource Parameters table for more information. |
Key | Required or Optional | Value |
---|---|---|
| OPTIONAL |
Specifies either an array of cache names to back up or |
| OPTIONAL |
Specifies either an array of cache templates to back up or |
| OPTIONAL |
Defines either an array of counter names to back up or |
| OPTIONAL |
Defines either an array of Protobuf schema names to back up or |
| OPTIONAL |
Specifies either an array of server tasks to back up or |
The following example restores all counters from a backup archive on the server:
2.6.8.2. Restoring from Local Backup Archives Copy linkLink copied to clipboard!
Use the multipart/form-data
content type with your POST request to upload a local backup archive to the server.
Parameter | Content-Type | Required or Optional | Value |
---|---|---|---|
|
| REQUIRED | Specifies the bytes of the backup archive to restore. |
Example Request
2.6.9. Listing Restores Copy linkLink copied to clipboard!
Retrieve the names of all restore requests that are in progress, completed, or failed.
GET /rest/v2/cluster/restores
GET /rest/v2/cluster/restores
Data Grid responds with an Array of all restore names as in the following example:
["restore1", "restore2"]
["restore1", "restore2"]
2.6.10. Checking Restore Progress Copy linkLink copied to clipboard!
Verify that a restore operation is complete.
HEAD /rest/v2/cluster/restores/{restoreName}
HEAD /rest/v2/cluster/restores/{restoreName}
A 201 (Created)
response indicates the restore operation is completed. A 202
response indicates the backup operation is in progress.
2.6.11. Deleting Restore Metadata Copy linkLink copied to clipboard!
Remove metadata for restore requests from the server. This action removes all metadata associated with restore requests but does not delete any restored content. If you delete the request metadata, you can use the request name to perform subsequent restore operations.
DELETE /rest/v2/cluster/restores/{restoreName}
DELETE /rest/v2/cluster/restores/{restoreName}
A 204
response indicates that the restore metadata is deleted. A 202
response indicates that the restore operation is in progress and will be deleted when the operation completes.
2.7. Data Grid Server logging configuration Copy linkLink copied to clipboard!
View and modify the logging configuration on Data Grid clusters at runtime.
2.7.1. Listing the logging appenders Copy linkLink copied to clipboard!
View a list of all configured appenders with GET
requests.
GET /rest/v2/logging/appenders
GET /rest/v2/logging/appenders
Data Grid responds with a list of appenders in JSON format as in the following example:
2.7.2. Listing the loggers Copy linkLink copied to clipboard!
View a list of all configured loggers with GET
requests.
GET /rest/v2/logging/loggers
GET /rest/v2/logging/loggers
Data Grid responds with a list of loggers in JSON format as in the following example:
2.7.3. Creating/modifying a logger Copy linkLink copied to clipboard!
Create a new logger or modify an existing one with PUT
requests.
PUT /rest/v2/logging/loggers/{loggerName}?level={level}&appender={appender}&appender={appender}...
PUT /rest/v2/logging/loggers/{loggerName}?level={level}&appender={appender}&appender={appender}...
Data Grid sets the level of the logger identified by {loggerName}
to {level}
. Optionally, it is possible to set one or more appenders for the logger. If no appenders are specified, those specified in the root logger will be used.
If the operation successfully completes, the service returns 204 (No Content)
.
2.7.4. Removing a logger Copy linkLink copied to clipboard!
Remove an existing logger with DELETE
requests.
DELETE /rest/v2/logging/loggers/{loggerName}
DELETE /rest/v2/logging/loggers/{loggerName}
Data Grid removes the logger identified by {loggerName}
, effectively reverting to the use of the root logger configuration.
If operation processed successfully, the service returns a response code 204 (No Content)
.
2.8. Using Server Tasks Copy linkLink copied to clipboard!
Retrieve, execute, and upload Data Grid server tasks.
2.8.1. Retrieving Server Tasks Information Copy linkLink copied to clipboard!
View information about available server tasks with GET
requests.
GET /rest/v2/tasks
GET /rest/v2/tasks
Parameter | Required or Optional | Value |
---|---|---|
| OPTIONAL |
|
Data Grid responds with a list of available tasks. The list includes the names of tasks, the engines that handle tasks, the named parameters for tasks, the execution modes of tasks, either ONE_NODE
or ALL_NODES
, and the allowed security role in JSON
format, as in the following example:
2.8.2. Executing Tasks Copy linkLink copied to clipboard!
Execute tasks with POST
requests that include the task name and required parameters prefixed with param
.
POST /rest/v2/tasks/SimpleTask?action=exec¶m.p1=v1¶m.p2=v2
POST /rest/v2/tasks/SimpleTask?action=exec¶m.p1=v1¶m.p2=v2
Data Grid responds with the task result.
2.8.3. Uploading Script Tasks Copy linkLink copied to clipboard!
Upload script tasks with PUT
or POST
requests.
Supply the script as the content payload of the request. After Data Grid uploads the script, you can execute it with GET
requests.
POST /rest/v2/tasks/taskName
POST /rest/v2/tasks/taskName
2.9. Working with Data Grid Security Copy linkLink copied to clipboard!
View and modify security information.
2.9.1. Retrieving the ACL of a user Copy linkLink copied to clipboard!
View information about the user’s principals and access-control list.
GET /rest/v2/security/user/acl
GET /rest/v2/security/user/acl
Data Grid responds with information about the user who has performed the request. The list includes the principals of the user, and a list of resources and the permissions that user has when accessing them.
2.9.2. Flushing the ACL cache Copy linkLink copied to clipboard!
Flush the access-control list cache across the cluster.
POST /rest/v2/security/cache?action=flush
POST /rest/v2/security/cache?action=flush
2.9.3. Retrieving the available roles Copy linkLink copied to clipboard!
View all the available roles defined in the server.
GET /rest/v2/security/roles
GET /rest/v2/security/roles
Data Grid responds with a list of available roles. If authorization is enabled, only a user with the ADMIN
permission can call this API.
["observer","application","admin","monitor","deployer"]
["observer","application","admin","monitor","deployer"]
2.9.4. Retrieving the roles for a principal Copy linkLink copied to clipboard!
View all the roles which map to a principal.
GET /rest/v2/security/roles/some_principal
GET /rest/v2/security/roles/some_principal
Data Grid responds with a list of available roles for the specified principal. The principal need not exist in the realm in use.
["observer"]
["observer"]
2.9.5. Granting roles to a principal Copy linkLink copied to clipboard!
Grant one or more new roles to a principal.
PUT /v2/security/roles/some_principal?action=grant&role=role1&role=role2
PUT /v2/security/roles/some_principal?action=grant&role=role1&role=role2
Parameter | Required or Optional | Value |
---|---|---|
| REQUIRED | The name of a role |
2.9.6. Denying roles to a principal Copy linkLink copied to clipboard!
Remove one or more roles that were previously granted to a principal.
PUT /v2/security/roles/some_principal?action=deny&role=role1&role=role2
PUT /v2/security/roles/some_principal?action=deny&role=role1&role=role2
Parameter | Required or Optional | Value |
---|---|---|
| REQUIRED | The name of a role |