Wednesday, 27 July 2016

Red Hat JBoss Data Grid 7.0 is out

Dear Infinispan community,

Red Hat has just announced the general availability of Red Hat JBoss Data Grid 7.0, the commercially supported version of Infinispan.

Building on the solid foundation of Infinispan 8, JBoss Data Grid integrates with the rest of the Red Hat JBoss middleware platform to deliver top-notch long-term support, dedicated high-quality consulting and training services, and the best open-source expertise in the world.

If you want to give it a spin, go to the Red Hat JBoss Data Grid product page, where you will find download links for a free trial, documentation and more.

Wednesday, 20 July 2016

Improved Infinispan Docker image available

The Infinispan Docker image has been improved, making it easier to run Infinispan Servers in clustered, domain and standalone modes, with different protocol stacks.

In this blog post we'll show a few usage scenarios and how to combine it with the jgroups-gossip image to create Infinispan Server clusters in docker based environments.

Getting started

By default the container runs in clustered mode, and to start a node simply execute:

Bringing a second container will cause it to form a cluster.The membership can be verified by running a command directly in the newly launched container:

Example output:

Using a different JGroups stack

The command above creates a cluster with the default JGroups stack (UDP), but it's possible to pick another one provided it's supported by the server. For example, to use TCP:

Running on cloud environments

We recently dockerized the JGroups Gossip Router to be used as an alternative discovery mechanism in environments where multicast is not enabled, such as cloud environments.

Employing  a gossip router will enable discovery via TCP, where the router acts as a registry: each member will register itself in this registry upon start and also discover other members.

The gossip router container can be launched by: 

Take note of the address where the router will bind to, it's needed by the Infinispan nodes. The address can be easily obtained by:

Finally we can now launch our cluster specifying the tcp-gossip stack with the location of the gossip router:

Launching Standalone mode

Passing an extra parameter allows to run a server in standalone (non-clustered) mode:

Server Management Console in Domain mode

Domain mode is a special case of clustered mode (and currently a requirement to use the Server Management Console), that involves launching a domain controller process plus one or more host controller processes. The domain controller does not hold data, it is used as a centralized management process that can replicate configuration and provision servers on the host controllers.

Running a domain controller is easily achievable with a parameter:

Once the domain controller is running, it's possible to start one or more host controllers. In the default configuration, each host controller has two Infinispan server instances:

The command line interface can be used to verify the hosts managed in the domain:

It should output all the host names that are part of the domain, including the master (domain controller):

To get access to the Management console, use credentials admin/admin and go to port 9990 of the domain controller, for example:


The image is built on Dockerhub shortly after each Infinispan release (stable and unstable), and the improvements presented in this post are available for Infinispan 9.0.0.Alpha3 and Infinispan 8.2.3.Final. As a reminder, make sure to pick the right version when launching containers:

Getting involved

The image was created to be flexible and easy to use, but if something is not working for you or if you have any suggestions to improve it, please report it at


Bleeding edge on Docker

As you may have noticed our Docker images are published together with (or very soon after) releases. But what if you want to try out some brand features which have just been merged? In that case you need to build an image by yourself.

Step #1 - Clone JBoss Docker image repository

At first you will need to clone our Infinispan Docker images:

Step #2 - Build or download the latest SNAPSHOT

There are two options here - you can build the distribution yourself or use SNAPSHOTs available on JBoss Nexus repository.

The first option requires checking out the Infinispan source code and performing a Maven build:

The second one is much simpler (Infinispan SNAPSHOTs are pushed into the repository after each successful build:

Step #3 - building Infinispan Docker image

One of the steps for building Infinispan Docker image is to download the distribution from Infinispan Download page. We need to slightly modify this step and use our manually downloaded packages.

Modify the Dockerfile as shown below:
Now you are ready to invoke the Docker build:


As you can see building a SNAPSHOT based docker image is very simple. From my own experience I can tell you that pushing it into Docker Hub is the fastest way to start playing with it in any PaaS environment (e.g. Openshift Online)

Happy building!

Monday, 11 July 2016

Infinispan 9.0.0.Alpha3 (and 8.2.3.Final)

Dear Infinispan users,

As we have lately been releasing Infinispan 8 and 9 releases in pairs, today's releases are no different. We have 9.0.0.Alpha3 and 8.2.3.Final ready for you!

A new micro release of our stable 8.2 branch fixes 16 issues. If you are using any other 8.x release, we recommend an upgrade to 8.2.3.Final as this release contains latest bugfixes, performance improvements, and Hibernate Search library update.

A brand new Alpha release from our development branch: 9.0.0.Alpha3 has more than 50 bug fixes, and many enhancements, among which we single out: improved distributed streams, documentation enhancements, admin console improvements, and various component upgrades.

Download it now, try it and tell us what you think on the infinispan forums or come and meet us on IRC: channel #infinispan on Freenode.

Friday, 8 July 2016

Remote Execution with C++ client

Version 8 of the Infinispan C++ Hotrod Client implements the Execute on Server (Exec) operation. This feature was introduced with Hotrod protocol v 2.1 and has been described for the Java client here.

The user can now store the javascript code on the server then invoke it when needed and let the server take care of the execution both locally on the near node or distibuited on the whole cluster.

The following annotated code is  an example of a C++ Exec that addresses the following use case: the user wants to get a string value and wants to count how many times it has been accessed from all the connected clients.

You can git the whole source following this link.

//Client setup

//Cache setup and scripts installation

//Exec operation and output