6.5.0 Release Notes

Red Hat JBoss Data Grid 6.5

Known and resolved issues for Red Hat JBoss Data Grid 6.5.0

Christian Huffman

Red Hat Engineering Content Services

Abstract

The Red Hat JBoss Data Grid 6.5 Release Notes list and provide descriptions for a series of bugzilla bugs. The bugs highlights issues that are known problems and resolved issues for the release.

Chapter 1. Introduction to Red Hat JBoss Data Grid 6.5

Welcome to Red Hat JBoss Data Grid 6.5. As you become familiar with the newest version of JBoss Data Grid, these Release Notes provide you with information about new features, as well as known and resolved issues. Use this document in conjunction with the entire JBoss Data Grid documentation suite, available at the Red Hat Customer Service Portal's JBoss Data Grid documentation page.

1.1. About Red Hat JBoss Data Grid

Red Hat's JBoss Data Grid is an open source, distributed, in-memory key/value data store built from the Infinispan open source software project. Whether deployed in client/server mode or embedded in a Java Virtual Machine, it is built to be elastic, high performance, highly available and to scale linearly.
JBoss Data Grid is accessible for both Java and Non-Java clients. Using JBoss Data Grid, data is distributed and replicated across a manageable cluster of nodes, optionally written to disk and easily accessible using the REST, Memcached and Hot Rod protocols, or directly in process through a traditional Java Map API.

1.2. Overview

This document contains information about the known and resolved issues of Red Hat JBoss Data Grid version 6.5.0. Customers are requested to read this documentation prior to installing this version.

1.3. Upgrading from JBoss Data Grid 6.4.x to 6.5

1.3.1. Optimizations to the getAll() and putAll() methods

The following methods were introduced in Red Hat JBoss Data Grid 6.5 for the AdvancedCache and RemoteCache interfaces, and both of these methods have performance increases when sets of data are placed or retrieved versus the similar operations performed sequentially. This allows bulk large sets of data to be retrieved and placed more efficiently. This difference is especially significant in server-client mode and as the number of transferred items increase; however, there is additional memory overhead during the transfer itself as the full set must be loaded into memory.
getAll(Set<? extends K> keys)
Returns a Map containing the values associated with the set of keys requested.
putAll(Map<? extends K, ? extends V> map)
Copies all of the mapping from the specified Map to the cache where the operation was performed.
Overloaded versions of these methods exist; documentation on these methods may be found in the Red Hat JBoss Data Grid API Documentation.

1.3.2. Migration tool for JDBC cache store from JDG 6.1 and older versions

A migration tool has been created which converts the data stored in a JDBC store by Red Hat JBoss Data Grid versions 6.0 and 6.1, which used Infinispan 5.2.x, into the format used by versions 6.2 and later, which use Infinispan 6.x.
This tool will function for all JDBC store types:
  • string
  • mixed
  • binary
If any custom marshallers were used these need to be provided on the classpath when the tool is executed, for instance:
java -cp infinispan-jdbc-migrator52x.jar:mycustommarshaller.jar org.infinispan.persistence.migrator.jdbc.JdbcUpgradeTool [property file]
For full usage information view the README.txt included, as it contains the necessary information for the required properties file along with example commands.

Important

This tool is required only if upgrading from JBoss Data Grid 6.1 or older version. In addition, this tool must be run offline, while neither Red Hat JBoss Data Grid or any other application access the tables.

Chapter 2. New Features and Enhancements

2.1. Remote Events and Listeners

Red Hat JBoss Data Grid (JDG) 6.4 introduced a Technology Preview of Remote Events and Listeners for the Java Hot Rod client. This feature has been enhanced further and is fully supported in JDG 6.5.

2.2. Near caching at Java Hot Rod client

JDG 6.5 features configurable near caching at the Java Hot Rod client for superior read performance. This feature is built on remote events and listeners.

2.3. Enhancements to JBoss Fuse integration

The camel-jbossdatagrid component has been enhanced in JDG 6.5. Enhancements include remote events over Hot Rod and remote querying using the Infinispan Query DSL.

2.4. JSR-107 support

JDG 6.5 adds support for JSR-107 (JCache) API in both Library mode and Client-Server mode (Hot Rod). This feature is based on Infinispan's certification as a JSR-107-compliant caching provider.

2.5. Deployment of custom cache store in Client-server mode

JDG 6.5 adds a supported mechanism to deploy custom cache stores on the JDG Server. This mechanism enables use of custom cache stores behind remote caches in client-server mode.

2.6. .NET Hot Rod client

The .NET Hot Rod client, which was Technology Preview in JDG 6.4, is now fully supported in JDG 6.5 on Microsoft Windows 64-bit operating systems which support .NET 4.

2.7. Red Hat JBoss Data Grid as Lucene Directory

JDG 6.5 is supported as a shared, in-memory index (Infinispan Directory) for Hibernate Search queries on a relational database. The Infinispan Directory integration has been tested with the version of Hibernate Search that is included in Red Hat JBoss Enterprise Application Platform (JBoss EAP) 6.4.

2.8. Externalize HTTP sessions from JBoss EAP 6

JDG 6.5 adds support for externalizing HTTP sessions from the session cache of a JBoss EAP 6 cluster to a remote, standalone JDG cluster, which can potentially reside in a different datacenter. This integration has been tested with JBoss EAP 6.4.

Note

Support for this feature requires entitlements to Red Hat JBoss Data Grid for the standalone JDG cluster.

Chapter 3. Supported Configurations

For supported hardware and software configurations, see the Red Hat JBoss Data Grid Supported Configurations reference on the Customer Portal at https://access.redhat.com/site/articles/115883.

Chapter 4. Component Versions

The full list of component versions used in Red Hat JBoss Data Grid is available at the Customer Portal at https://access.redhat.com/site/articles/488833.

Chapter 5. Known and Resolved Issues

5.1. Known Issues

BZ-1214604 - Async cache store doesn't clear the table rows while sync store does

When using an async cache any cache.clear() calls do not remove data in the table. cache.getKey() returns null as expected; however, the table entries are still present.

As a workaround for this issue use a synchronous cache store. This issue is expected to be addressed in JDG 7.
BZ-1204813 - JSR-107 Support for cacheResolverFactory annotation property

JCache annotations provides a way to define a custom CacheResolverFactory, used to produce CacheResolver; this class's purpose is to decide which cache is used for storing results of annotated methods; however, the support for specifying a CacheResolver is not provided yet.

Define a CDI ManagedCacheResolver which will be used instead.
BZ-1158839 - Clustered cache with FileStore (shared=false) is inconsistent after restarting one node if entries are deleted during restart

In Red Hat JBoss Data Grid, when a node restarts, it does not automatically purge entries from its local cache store. As a result, the Administrator starting the node must change the node configuration manually to set the cache store to be purged when the node is starting. If the configuration is not changed, the cache may be inconsistent (removed entries can appear to be present).

This is a known issue in JBoss Data Grid 6.5 and no workaround is currently available for this issue.
BZ-1114080 - HR client SASL MD5 against LDAP fails

In Red Hat JBoss Data Grid, the server does not support pass-through MD5 authentication against LDAP. As a result, the Hot Rod client is unable to authenticate to the JBoss Data Grid server via MD5 is the authentication is backed by the LDAP server.

This is a known issue in JBoss Data Grid 6.5 and a workaround is to use the PLAIN authentication over end-to-end SSL encryption.
BZ-1024373 - Default optimistic locking configuration leads to inconsistency

In Red Hat JBoss Data Grid, transactional caches are configured with optimistic locking by default. Concurrent replace() calls can return true under contention and transactions might unexpectedly commit.

Two concurrent commands, replace(key, A, B) and replace(key, A, C) may both overwrite the entry. The command which is finalized later wins, overwriting an unexpected value with new value.

This is a known issue in JBoss Data Grid 6.5. As a workaround, enable write skew check and the REPEATABLE_READ isolation level. This results in concurrent replace operations working as expected.
BZ-1213818 - CustomCacheStore deployed via JON is registered AFTER cache start during server start-up

In the case when Custom Cache Store .jar file deployment into JDG server is happening via JBoss Operation Network UI (JDG server -> Create Child -> Deployment), the Deployment is registered by the JDG server too late. I.e. after the start of caches. Consequently, caches report error messages if they are configured to use Custom Cache Store implementation.

As a workaround, either copy Custom Cache Store .jar file into $JDG_HOME/standalone/deployments folder or use the deploy command in server CLI.
BZ-1200822 - JSR-107 Support for clustered caches in HotRod implementation
When creating a new cache (which is not defined in server configuration file) in HotRod implementation of JSR-107, the cache is created as local only in one of the servers. This behavior requires class org.jboss.as.controller.client.ModelControllerClient to be present on the classpath.
As a workaround use a clustered cache defined in the server configuration file. This still requires cacheManager.createCache(cacheName, configuration) to be invoked before accessing the cache for the first time.
BZ-1223290 - JPA Cache Store not working properly on Weblogic
A JPA Cache Store deployed to WebLogic servers throws a NullPointerException after the following error message:
Entity manager factory name (org.infinispan.persistence.jpa) is already registered
This is a known issue in JBoss Data Grid 6.5.0, and no workaround exists at this time.
BZ-1223395 - Operation [Registering Deployed Cache Store service...] happens too late on slower machines
While using a deployed Custom Cache Store for a particular cache, there is a potential race condition in the JBoss Data Grid server. It is possible that the cache start-up will occur before the Custom Cache Store library registration is successfully finished, resulting in the cache being unable to find the requested resources during the start-up process and failing to start.
This is a known issue in JBoss Data Grid 6.5.0, and no workaround exists at this time.

5.2. Resolved Issues

BZ-1213749 - Camel throwing java.lang.LinkageError for Remote Query when running in EAP

When the Remote Query feature is used through the camel-jbossdatagrid component in EAP, and JDG modules for EAP are installed, the application throws a java.lang.LinkageError and the Remote Query feature does not work properly.

This issue is resolved as of Red Hat JBoss Data Grid 6.5.0.
BZ-1206590 - Nearcache broken after SocketTimeoutException

When a near cache has not received remote events for some time, for instance if the cluster is inactive or the client does not load new data, the connection to remote JDG servers fails with java.net.SocketTimeoutException.

This issue is resolved as of Red Hat JBoss Data Grid 6.5.0.
BZ-1198267 - Transaction is recommitted by joining node during merge

When a node which was not part of previous view (e.g. due to network partition) joins a cluster, it may request retransmission of previous messages (JGroup's NAKACK). If some of those messages are prepare commands of transactions which have already finished on other nodes, then transactions can be prepared and committed on the joining node once again. This behavior may lead to inconsistent values across the cluster if the affected entries have been modified on nodes from the original view.

This issue is resolved as of Red Hat JBoss Data Grid 6.5.0.
BZ-1217480 - Camel-jbossdatagrid has a dependency on infinispan-core when only remote cache is in use

The camel-jbossdatagrid component requires embedded cache dependencies when a remote cache is used. The required dependency is infinispan-embedded.jar as well as the expected infinispan-remote.jar. The same issue exists when using only an embedded cache, as the infinispan-remote.jar dependency is required in this case together with the infinispan-embedded.jar.

This issue is resolved as of Red Hat JBoss Data Grid 6.5.0.
BZ-1198971 - JSR-107 Make sure HotRod implementation passes all TCK tests

Passing TCK test suite is an ultimate criterion of complying with the JCache specification. Some of the tests are still not passing with HotRod implementation (i.e. functionality is not provided yet).

These relate to JMX statistics, expiration and listeners, where correct functioning currently cannot be guaranteed.

This issue is resolved as of Red Hat JBoss Data Grid 6.5.0.
BZ-1210313 - JDG Maven dependencies require EAP maven repo

A new Maven repository, jboss-datagrid-$RELEASE-maven-repository-full.zip has been provided as a zip file; however, this repository is missing required dependencies.

This issue is resolved as of Red Hat JBoss Data Grid 6.5.0.
BZ-1217380 - Deadlock on GlobalComponentRegistry when starting a cluster

When starting a cluster with multiple nodes concurrently, a deadlock on GlobalComponentRegistry sporadically occurs which will prevent the nodes from starting completely.

This issue is resolved as of Red Hat JBoss Data Grid 6.5.0.
BZ-1224770 - Error being logged even if Backup Failure policy is set to IGNORE
When datacenter replication is configured and the backup node is down messages similar to the following are seen in the log:
11:50:37,455 ERROR [org.jgroups.protocols.relay.RELAY2] (OOB-15,shared=udp) node-1/PRIMARY: no route to DR: dropping message
However, these error messages are logged even with failure-policy set to IGNORE.

These messages indicate that the cluster can not communicate with the backup node, and do not represent immediate issues with the cluster itself.

The Backup Failure policy is now honored as of Red Hat JBoss Data Grid 6.5.0; to resolve this issue ensure that the remote backup is online and there are no communication errors.

Appendix A. Revision History

Revision History
Revision 6.5.0-1Tue 16 June 2015Christian Huffman
Updated known and resolved issues and included information about upgrading between versions.
Revision 6.5.0-0Thu 15 Jan 2015Gemma Sheldon

Legal Notice

Copyright © 2015 Red Hat, Inc.
This document is licensed by Red Hat under the Creative Commons Attribution-ShareAlike 3.0 Unported License. If you distribute this document, or a modified version of it, you must provide attribution to Red Hat, Inc. and provide a link to the original. If the document is modified, all Red Hat trademarks must be removed.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.