JDG Remote Client-Server Mode Usage Example: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
 
(16 intermediate revisions by the same user not shown)
Line 5: Line 5:
=Overview=
=Overview=


The example is deployed in a wrapper servlet, to facilitate interaction.
The example is deployed in a wrapper servlet, to facilitate interaction with the EAP JEE container.
 
=GitHub=
 
{{External|https://github.com/NovaOrdis/playground/tree/master/jboss/infinispan/remote-client-server-mode-access-from-eap}}


=Maven=
=Maven=
<pre>
<dependency>
    <groupId>org.infinispan</groupId>
    <artifactId>infinispan-remote</artifactId>
    <version>8.3.0.Final-redhat-1</version>
    <scope>provided</scope>
</dependency>
</pre>
If support for remote client-server JDG is [[Installation_of_JDG_in_Remote_Client-Server_Mode_within_EAP#Module_Installation|deployed within the target EAP]] (preferred), declare the dependency <scope>provided</scope> and configure the [[jboss-deployment-structure.xml]] as shown:
<pre>
<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
    <deployment>
        <dependencies>
            <module name="org.infinispan.client.hotrod" slot="jdg-7.0"/>
        </dependencies>
    </deployment>
</jboss-deployment-structure>
</pre>
Otherwise, all required dependencies it with your deployment, by '''not''' declaring them "provided".


=HotRod Client Configuration=
=HotRod Client Configuration=


=Create a RemoteCacheManager=
<pre>
import org.infinispan.client.hotrod.configuration.Configuration;
import org.infinispan.client.hotrod.configuration.ConfigurationBuilder;
 
...
 
ConfigurationBuilder cb = new ConfigurationBuilder();
 
cb.tcpNoDelay(true)
    .connectionPool()
    .numTestsPerEvictionRun(3)
    .testOnBorrow(false)
    .testOnReturn(false)
    .testWhileIdle(true)
    .addServer()
    .host(JDG_SERVER_IP_ADDRESS)
    .port(JDG_SERVER_IP_PORT);
 
Configuration c = cb.build();
</pre>


=Interact with the Cache=
=Create a RemoteCacheManager and a Cache=
 
<pre>
import org.infinispan.client.hotrod.RemoteCacheManager;
import org.infinispan.commons.api.BasicCache;
...
RemoteCacheManager remoteCacheManager = new RemoteCacheManager(c);
BasicCache cache = remoteCacheManager.getCache();
...
</pre>


=Features=
=Features=
==Basic API==
<pre>
cache.put("some-key", "some value");
String s = cache.get("some-key");
</pre>


==Transactions==
==Transactions==
Not available in remote client/server mode.

Latest revision as of 17:19, 4 May 2017

Internal

Overview

The example is deployed in a wrapper servlet, to facilitate interaction with the EAP JEE container.

GitHub

https://github.com/NovaOrdis/playground/tree/master/jboss/infinispan/remote-client-server-mode-access-from-eap

Maven

<dependency>
    <groupId>org.infinispan</groupId>
    <artifactId>infinispan-remote</artifactId>
    <version>8.3.0.Final-redhat-1</version>
    <scope>provided</scope>
</dependency>

If support for remote client-server JDG is deployed within the target EAP (preferred), declare the dependency <scope>provided</scope> and configure the jboss-deployment-structure.xml as shown:

<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
    <deployment>
        <dependencies>
            <module name="org.infinispan.client.hotrod" slot="jdg-7.0"/>
        </dependencies>
    </deployment>
</jboss-deployment-structure>

Otherwise, all required dependencies it with your deployment, by not declaring them "provided".

HotRod Client Configuration

import org.infinispan.client.hotrod.configuration.Configuration;
import org.infinispan.client.hotrod.configuration.ConfigurationBuilder;

...

ConfigurationBuilder cb = new ConfigurationBuilder();

cb.tcpNoDelay(true)
    .connectionPool()
    .numTestsPerEvictionRun(3)
    .testOnBorrow(false)
    .testOnReturn(false)
    .testWhileIdle(true)
    .addServer()
    .host(JDG_SERVER_IP_ADDRESS)
    .port(JDG_SERVER_IP_PORT);

Configuration c = cb.build();

Create a RemoteCacheManager and a Cache

import org.infinispan.client.hotrod.RemoteCacheManager;
import org.infinispan.commons.api.BasicCache;
...
RemoteCacheManager remoteCacheManager = new RemoteCacheManager(c);
BasicCache cache = remoteCacheManager.getCache();
...

Features

Basic API

cache.put("some-key", "some value");
String s = cache.get("some-key");

Transactions

Not available in remote client/server mode.