18.7. The Remote Cache Store

The RemoteCacheStore is an implementation of the cache loader that stores data in a remote Red Hat JBoss Data Grid cluster. The RemoteCacheStore uses the Hot Rod client-server architecture to communicate with the remote cluster.
For remote cache stores, Hot Rod provides load balancing, fault tolerance and the ability to fine tune the connection between the RemoteCacheStore and the cluster.

18.7.1. Remote Cache Store Configuration (Remote Client-Server Mode)

The following is a sample remote cache store configuration for Red Hat JBoss Data Grid's Remote Client-Server mode:
<remote-store cache="default" 
              socket-timeout="60000" 
              tcp-no-delay="true" 
              hotrod-wrapping="true">
	<remote-server outbound-socket-binding="remote-store-hotrod-server" />
</remote-store>
For details about the elements and parameters used in this sample configuration, see Section 18.3, “Cache Store Configuration Details (Remote Client-Server Mode)”.

18.7.2. Remote Cache Store Configuration (Library Mode)

The following is a sample remote cache store configuration for Red Hat JBoss Data Grid's Library mode:
<persistence passivation="false">
	<remoteStore xmlns="urn:infinispan:config:remote:6.0"
	             remoteCacheName="default"
		     fetchPersistentState="false" 
		     shared="true" 
		     preload="false" 
		     ignoreModifications="false" 
		     purgeOnStartup="false"
		     tcpNoDelay="true" 
		     pingOnStartup="true"
		     keySizeEstimate="62" 
		     valueSizeEstimate="512"
		     forceReturnValues="false">
		<servers>
			<server host="127.0.0.1" 
				port="19711"/>
		</servers>
		<connectionPool maxActive="99" 
				maxIdle="97" 
				maxTotal="98" />
	</remoteStore>
</persistence>
For details about the elements and parameters used in this sample configuration, see Section 18.2, “Cache Store Configuration Details (Library Mode)”.

18.7.3. Define the Outbound Socket for the Remote Cache Store

The Hot Rod server used by the remote cache store is defined using the outbound-socket-binding element in a standalone.xml file.
An example of this configuration in the standalone.xml file is as follows:

Example 18.1. Define the Outbound Socket

<server>
    <!-- Additional configuration elements here -->
    <socket-binding-group name="standard-sockets" 
    			  default-interface="public" 
    			  port-offset="${jboss.socket.binding.port-offset:0}">
        <!-- Additional configuration elements here -->
        <outbound-socket-binding name="remote-store-hotrod-server">
            <remote-destination host="remote-host" 
                                port="11222"/>
        </outbound-socket-binding>
    </socket-binding-group>
</server>