org.infinispan.remoting
Interface RpcManager

All Superinterfaces:
Lifecycle
All Known Implementing Classes:
RpcManagerImpl

public interface RpcManager
extends Lifecycle

Provides a mechanism for communicating with other caches in the cluster.

Implementations have a simple lifecycle:

Since:
4.0
Author:
Manik Surtani

Method Summary
 Address getCurrentStateTransferSource()
          If retrieveState(String, long) has been invoked and hasn't yet returned (i.e., a state transfer is in progress), this method will return the current Address from which a state transfer is being attempted.
 Address getLocalAddress()
          Returns the local address.
 Transport getTransport()
           
 List<Response> invokeRemotely(List<Address> recipients, ReplicableCommand rpcCommand, ResponseMode mode, long timeout, boolean stateTransferEnabled)
          Invokes an RPC call on other caches in the cluster.
 List<Response> invokeRemotely(List<Address> recipients, ReplicableCommand rpcCommand, ResponseMode mode, long timeout, boolean usePriorityQueue, boolean stateTransferEnabled)
          Invokes an RPC call on other caches in the cluster.
 List<Response> invokeRemotely(List<Address> recipients, ReplicableCommand rpcCommand, ResponseMode mode, long timeout, boolean usePriorityQueue, ResponseFilter responseFilter, boolean stateTransferEnabled)
          Invokes an RPC call on other caches in the cluster.
 void retrieveState(String cacheName, long timeout)
          Initiates a state retrieval process from neighbouring caches.
 
Methods inherited from interface org.infinispan.lifecycle.Lifecycle
start, stop
 

Method Detail

invokeRemotely

List<Response> invokeRemotely(List<Address> recipients,
                              ReplicableCommand rpcCommand,
                              ResponseMode mode,
                              long timeout,
                              boolean usePriorityQueue,
                              ResponseFilter responseFilter,
                              boolean stateTransferEnabled)
                              throws Exception
Invokes an RPC call on other caches in the cluster.

Parameters:
recipients - a list of Addresses to invoke the call on. If this is null, the call is broadcast to the entire cluster.
rpcCommand - the cache command to invoke
mode - the response mode to use
timeout - a timeout after which to throw a replication exception.
usePriorityQueue - if true, a priority queue is used to deliver messages. May not be supported by all implementations.
responseFilter - a response filter with which to filter out failed/unwanted/invalid responses.
stateTransferEnabled - if true, additional replaying is considered if messages need to be re-sent during the course of a state transfer
Returns:
a list of responses from each member contacted.
Throws:
Exception - in the event of problems.

invokeRemotely

List<Response> invokeRemotely(List<Address> recipients,
                              ReplicableCommand rpcCommand,
                              ResponseMode mode,
                              long timeout,
                              boolean usePriorityQueue,
                              boolean stateTransferEnabled)
                              throws Exception
Invokes an RPC call on other caches in the cluster.

Parameters:
recipients - a list of Addresses to invoke the call on. If this is null, the call is broadcast to the entire cluster.
rpcCommand - the cache command to invoke
mode - the response mode to use
timeout - a timeout after which to throw a replication exception.
usePriorityQueue - if true, a priority queue is used to deliver messages. May not be supported by all implementations.
stateTransferEnabled - if true, additional replaying is considered if messages need to be re-sent during the course of a state transfer
Returns:
a list of responses from each member contacted.
Throws:
Exception - in the event of problems.

invokeRemotely

List<Response> invokeRemotely(List<Address> recipients,
                              ReplicableCommand rpcCommand,
                              ResponseMode mode,
                              long timeout,
                              boolean stateTransferEnabled)
                              throws Exception
Invokes an RPC call on other caches in the cluster.

Parameters:
recipients - a list of Addresses to invoke the call on. If this is null, the call is broadcast to the entire cluster.
rpcCommand - the cache command to invoke
mode - the response mode to use
timeout - a timeout after which to throw a replication exception.
stateTransferEnabled - if true, additional replaying is considered if messages need to be re-sent during the course of a state transfer
Returns:
a list of responses from each member contacted.
Throws:
Exception - in the event of problems.

retrieveState

void retrieveState(String cacheName,
                   long timeout)
                   throws StateTransferException
Initiates a state retrieval process from neighbouring caches. This method will block until it either times out, or state is retrieved and applied.

Parameters:
cacheName - name of cache requesting state
timeout - length of time to try to retrieve state on each peer
Throws:
StateTransferException - in the event of problems

getTransport

Transport getTransport()
Returns:
a reference to the underlying transport.

getCurrentStateTransferSource

Address getCurrentStateTransferSource()
If retrieveState(String, long) has been invoked and hasn't yet returned (i.e., a state transfer is in progress), this method will return the current Address from which a state transfer is being attempted. Otherwise, this method returns a null.

Returns:
the current Address from which a state transfer is being attempted, if a state transfer is in progress, or a null otherwise.

getLocalAddress

Address getLocalAddress()
Returns the local address.



Copyright © 2009 JBoss, a division of Red Hat. All Rights Reserved.