7.2.2 Release Notes
Release Information for JBoss Data Grid
Abstract
Chapter 1. JBoss Data Grid 7.2.2
A known issue exists with the patch for JBoss Data Grid 7.2.2. You should not apply this patch to your JBoss Data Grid deployment. Use the patch for JBoss Data Grid 7.2.3 or later instead. Patches are cumulative so any issues or features in JBoss Data Grid 7.2.2 are included in subsequent releases.
See Known Issues for more information.
1.1. Introduction to Red Hat JBoss Data Grid
JBoss Data Grid is an open source, distributed, in-memory key/value data store built from the Infinispan open source software project. JBoss Data Grid is designed to provide elastic, high performance, highly available capabilities that scale linearly.
You can deploy JBoss Data Grid as a server in Remote Client-Server mode or embedded in a Java Virtual Machine (JVM) in Library mode to distribute and replicate data across a cluster of nodes.
JBoss Data Grid allows you to optionally write data to disk and provides access to data from a variety of clients as well as through a RESTful API, the Memcached and Hot Rod protocols, or directly in process through a Java Map API.
1.2. About the Release Notes
Release Notes provide information about new features as well as known and resolved issues. You should read this document before installing JBoss Data Grid 7.2.
You can find the complete set of documentation for JBoss Data Grid at the JBoss Data Grid Product Documentation page in the Red Hat Customer Service Portal.
Chapter 2. Patching Red Hat JBoss Data Grid Server Instances
2.1. Applying Patches to Red Hat JBoss Data Grid Server Instances
Red Hat JBoss Data Grid server uses the patching functionality in JBoss Enterprise Application Platform (EAP) so that you can apply changes from errata releases without the need to completely replace an existing installation.
Patches are distributed for cumulative updates within a release version. The base version for this release is 7.2.0. You can apply 7.2.x patches to the base version or on top of other patches.
You cannot apply 7.2.x patches to any other JBoss Data Grid release version. Likewise you cannot apply patches from other release versions to the 7.2 release.
JBoss Data Grid provides patches for server instances only (Remote Client-Server mode). All other distributions, such as EAP modules, clients, and JBoss Data Grid Library mode, are provided as full releases.
A known issue exists with the patch for JBoss Data Grid 7.2.2. You should not apply this patch to your JBoss Data Grid deployment. Use the patch for JBoss Data Grid 7.2.3 or later instead. See Known Issues for more information.
To apply a patch to JBoss Data Grid, do the following:
- Download the patch from the Red Hat Customer Portal at https://access.redhat.com/downloads/
Stop the server instance that you want to patch if it is running.
To avoid issues with classloading, you should not apply patches to JBoss Data Grid while the server is running.
Either use the Administration Console to stop the server or enter Ctrl-C in the terminal where JBoss Data Grid is running.
Open a terminal and change to the JDG_HOME directory.
$ cd JDG_HOME
Apply the patch as follows:
$ bin/cli.sh "patch apply /path/to/jboss-datagrid-7.2.x-server-patch.zip"
Start the server with either the standalone.sh or domain.sh script, for example:
$ bin/standalone.sh -c clustered.xml
2.2. Reverting Patches
You can roll back patches to revert the Red Hat JBoss Data Grid server to the previously installed version.
You should roll back patches only after applying a patch that results in unexpected behavior or undesirable effects. Rolling back patches is not intended for general uninstall functionality.
To revert a JBoss Data Grid patch, do the following:
Stop the server instance that you want to roll back if it is running.
Either use the Administration Console to stop the server or enter Ctrl-C in the terminal where JBoss Data Grid is running.
Open a terminal and change to the JDG_HOME directory.
$ cd JDG_HOME
Find the ID of the patch that you want to roll back.
$ bin/cli.sh "patch history"
Roll back the server version as follows:
$ bin/cli.sh "patch rollback --patch-id=PATCH_ID --reset-configuration=false"
WarningUse caution when specifying the
reset-configuration
option.--reset-configuration=false
does not revert the server configuration. Because applying patches can change the server configuration, it is possible that the server does not restart if you roll back the patch but do not roll back the configuration. In this case, you should verify the server configuration and manually adjust it as needed before starting the server.--reset-configuration=true
reverts the server configuration to the pre-patch state. Any changes to the server configuration after the patch was applied are removed.If conflicts exist when you attempt to roll back the patch, the operation fails and warnings occur. Enter
patch --help
to list available arguments that you can use to resolve the conflicts.- Start the server with either the standalone.sh or domain.sh script.
Chapter 3. New Features and Enhancements
3.1. JMX MBeans Provide Statistics in Nanoseconds
The following JMX MBeans in JBoss Data Grid now include statistics about read and write operations in nanoseconds:
-
CacheContainerStats
-
ClusterCacheStats
-
Statistics
For more information, see JMX MBeans in the Administration and Configuration Guide.
3.2. Statistics Improvements
Several improvements have been made to statistics that are exposed via JMX MBeans in JBoss Data Grid.
-
The
dataMemoryUsed
statistic shows the amount of memory, in bytes, for a cache or cache container when eviction is enabled. This statistic is exposed through theCacheContainerStats
andClusterCacheStats
MBeans. -
The
requiredMinimumNumberOfNodes
statistic shows the number of nodes that are required to guarantee data consistency. This statistic is exposed through theStatistics
MBean.
For more information, see JMX MBeans in the Administration and Configuration Guide.
3.3. Configurable Timeouts for Operations with Spring Cache
When using JBoss Data Grid as a Spring Cache provider, you can now configure timeouts for read and write operations on the cache with the following properties:
-
infinispan.spring.operation.read.timeout
specifies the time, in milliseconds, to wait for read operations to complete. The default is0
which means unlimited wait time. -
infinispan.spring.operation.write.timeout
specifies the time, in milliseconds, to wait for write operations to complete. The default is0
which means unlimited wait time.
For more information, see Integration with the Spring Framework in the Developer Guide.
3.4. Hot Rod Node.js Client Enhancements
This release improves the Hot Rod Node.js client by including memory profiling capabilities and enhancements to avoid excessive memory consumption.
For more information, see Memory Profiling with the Hot Rod Node.js Client in the Developer Guide.
3.5. TCP Keepalive Configuration Parameter for Server Connections
This release includes a tcpKeepAlive()
method in the org.infinispan.server.core.configuration.ProtocolServerConfigurationChildBuilder
interface. You can use this method to configure JBoss Data Grid server to keep TCP connections active. The default is to disable TCP keepalive.
3.6. Performance Improvements to Generated Ickle Queries
The org.infinispan.query.dsl.QueryBuilder
interface has been improved so that the Ickle queries it generates are easier to parse.
Chapter 4. Supported Configurations
4.1. Supported configurations
Supported hardware and software configurations for JDG 7.2 are available on the Customer Portal at https://access.redhat.com/articles/2435931.
Chapter 5. Component Versions
5.1. Component Versions
The full list of component versions used in Red Hat JBoss Data Grid 7.2 are available on the Customer Portal at https://access.redhat.com/site/articles/488833.
Chapter 6. Known Issues
6.1. Known Issues
Find out about known issues and available workarounds in this release of Red Hat JBoss Data Grid.
- Cannot Apply Patches to JBoss Data Grid Server If the 7.2.2 Patch Is Applied
Issue: JDG-2178
Description: If you apply the patch for JBoss Data Grid 7.2.2, you cannot apply patches for subsequent releases.
Workaround: Do not apply the patch for JBoss Data Grid 7.2.2. If you have already applied the patch and plan to apply a patch for a later release, you must first revert the patch for JBoss Data Grid 7.2.2 as follows:
$ bin/cli.sh "patch rollback --patch-id=jboss-jdg-7.2.2.CP --reset-configuration=false"
- JBoss Data Grid Quickstarts Missing Dependencies
Description: The
secure-embedded-cache
andcdi-jdg
quickstarts fail with errors when you attempt to run them.This issue is the result of missing dependencies for the quickstarts.
Workaround: Update dependencies in the quickstarts before you run them.
To update the
secure-embedded-cache
quickstart, addorg.infinispan
to themaven-war-plugin
artifact in your pom.xml file. You can find the correct dependency on line 134 in the pom.xml on Github.To update the
cdi-jdg
quickstart, add theinfinispan-jcache
artifact to your pom.xml file. You can find this dependency on line 97 in the pom.xml on Github.- JBoss Data Grid Does Not Start and NullPointerException Occurs if Persistent Location is Not Unique
Issue: JDG-1504
Description: It is not possible to start more than one instance of JBoss Data Grid from the same directory if the value of
persistent-location
is not unique in each configuration.Workaround: Do one of the following to ensure the value of
persistent-location
is unique in the JBoss Data Grid configuration:Set a unique
path
attribute for each instance.<persistent-location path="mydir${uniquesuffix}" />
Set a unique
relative-to
attribute for each instance if using a common path:<paths> <path name="mypath" path="/home/user/jboss-datagrid-7.2.0-server/standalone/mypath" /> </paths> <persistent-location relative-to="mypath" path="mydir" />
Specify the
-Djboss.server.data.dir
system property to set a unique relative location for each instance if using a common path:./standalone.sh -Djboss.server.data.dir=/home/user/jboss-datagrid-7.2.0-server/standalone/mypath
- SKIP_CACHE_LOAD Flag Has No Effect if Authentication is Enabled
Issue: JDG-1424
Description: In Remote Client-Server mode, if you set the
SKIP_CACHE_LOAD
flag in the cache store configuration and enable authentication on Hot Rod clients, all entries are retrieved from the cache, including evicted entries.Workaround: There is no workaround for this issue.
- Intermittent Data Loss Occurs During Rolling Upgrades Between Clusters
Issue: JDG-991
Description: When performing a rolling upgrade of JBoss Data Grid, all migrated data can be deleted from the target cluster after the nodes in the source cluster are taken offline.
Workaround: There is no workaround for this issue.
- Cluster Actions Disabled on JBoss Data Grid Administration Console in Reload-Required State
Issue: JDG-1843
Description: Actions available for the JBoss Data Grid cluster are not available in the Administration Console if you choose to restart the cluster after changing the configuration. In this case, the cluster is in the
Reload-Required
state.Reload
andStop
actions are available for each node in the cluster.Workaround: Reload at least one node in the cluster to restore actions at the cluster level.
- Errors Occur When Changing the Eviction Strategy from the JBoss Data Grid Administration Console
Issue: JDG-1804
Description: If JBoss Data Grid is running in domain mode and you change the eviction strategy in the configuration through the Administration Console but do not restart to apply the changes, an error occurs.
Workaround: Restart the server after changing to the eviction strategy.
- NullPointerException Occurs When Reading Data from Persistent Storage in JBoss Data Grid 7.0 and Earlier
Issue: JDG-968
Description: If you store data in a cache store with JBoss Data Grid 7.0 and earlier and then attempt to read that data with JBoss Data Grid 7.1 or later, an error occurs and it is not possible to read the data.
NoteThis issue does not apply when upgrading from JBoss Data Grid 7.1 to 7.2.
Workaround: There is no workaround for this issue.
Chapter 7. Resolved Issues
7.1. Resolved Issues
This release of JBoss Data Grid resolves the following issues:
- JDG-2007 - Near-Real-Time Indexes Lost when Server is Stopped
- When using JBoss Data Grid in Remote Client-Server Mode, cache indexes that used Near-Real-Time indexing capabilities were not persisted to storage during shutdown. As a result, those cache indexes were lost.
- JDG-1835 - Disabling Indexing for Types with the @Indexed(false) Annotation Creates Empty Documents
-
Protobuf encoded entries of message types that had the
@Indexed(false)
annotation resulted in empty documents being added to the cache index. - JDG-2026 - Null Pointer Exceptions Occur with Nested Protobuf Messages
-
JBoss Data Grid threw an null pointer exception when Protobuf encoded messages included the
@Indexed(false)
annotation but also contained nested messages without any annotation. - JDG-1975 - Hot Rod Clients Should Consistently Wrap InterruptedException in HotRodClientException
-
Hot Rod clients did not wrap the client-level
InterruptedException
exception inHotRodClientException
. - JDG-2027 - Hot Rod and REST Interoperability Does Not Work with Non-String Keys
-
When requesting entries via the REST API from a cache that stored Protobuf encoded entries, the
Key-Content-Type
request header was ignored and an HTTP 404 error was returned. - JDG-2043 - Lock Timeout when Registering a Queried Class to the Registry Cache
- JBoss Data Grid behaved unexpectedly in some cases where indexing was enabled and classes were added to an internal cache that was populated by multiple clients.
- JDG-2041 - Null Pointer Exception for Queries if Partition Handling Enabled and Cache in a Degraded State
-
JBoss Data Grid returned a null pointer exception for queries to caches where partition handling was enabled and not configured to use the
ALLOW_READ_WRITES
strategy. In this case, JBoss Data Grid operates in a degraded state and indexes are not consistent. - JDG-2044 - No Exception Occurs for Queries with Caches in a Degraded State
-
JBoss Data Grid now returns the
AvailabilityException
exception for queries to caches where partition handling is enabled and not configured to use theALLOW_READ_WRITES
strategy. - JDG-2050 - Caches Created via Hot Rod Ignore Media Type Configuration
- The media type configuration did not take effect for caches that were created via the Hot Rod interface.
- JDG-2052 - Deprecation Annotations for DistributionManager
-
Deprecation annotations were incorrectly applied to the
org.infinispan.distribution.DistributionManager
interface.