org.infinispan.remoting
Class RpcManagerImpl

java.lang.Object
  extended by org.infinispan.remoting.RpcManagerImpl
All Implemented Interfaces:
Lifecycle, RpcManager

public class RpcManagerImpl
extends Object
implements RpcManager

This component really is just a wrapper around a Transport implementation, and is used to set up the transport and provide lifecycle and dependency hooks into external transport implementations.

Since:
4.0
Author:
Manik Surtani

Constructor Summary
RpcManagerImpl()
           
 
Method Summary
 String getAddress()
           
 Address getCurrentStateTransferSource()
          If RpcManager.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.
 String getMembers()
           
 String getReplicationCount()
           
 String getReplicationFailures()
           
 String getSuccessRatio()
           
 Transport getTransport()
           
 void injectDependencies(GlobalConfiguration globalConfiguration, Transport t, InboundInvocationHandler handler, Marshaller marshaller, ExecutorService e, CacheManagerNotifier notifier)
           
 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.
 boolean isStatisticsEnabled()
           
 void resetStatistics()
           
 void retrieveState(String cacheName, long timeout)
          Initiates a state retrieval process from neighbouring caches.
 void setStatisticsEnabled(boolean statisticsEnabled)
           
 void setTransport(Transport t)
           
 void start()
           
 void stop()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

RpcManagerImpl

public RpcManagerImpl()
Method Detail

injectDependencies

public void injectDependencies(GlobalConfiguration globalConfiguration,
                               Transport t,
                               InboundInvocationHandler handler,
                               Marshaller marshaller,
                               ExecutorService e,
                               CacheManagerNotifier notifier)

start

public void start()
Specified by:
start in interface Lifecycle

stop

public void stop()
Specified by:
stop in interface Lifecycle

invokeRemotely

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

Specified by:
invokeRemotely in interface RpcManager
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

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

Specified by:
invokeRemotely in interface RpcManager
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

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

Specified by:
invokeRemotely in interface RpcManager
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

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

Specified by:
retrieveState in interface RpcManager
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

public Transport getTransport()
Specified by:
getTransport in interface RpcManager
Returns:
a reference to the underlying transport.

getCurrentStateTransferSource

public Address getCurrentStateTransferSource()
Description copied from interface: RpcManager
If RpcManager.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.

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

getLocalAddress

public Address getLocalAddress()
Description copied from interface: RpcManager
Returns the local address.

Specified by:
getLocalAddress in interface RpcManager

resetStatistics

public void resetStatistics()

getReplicationCount

public String getReplicationCount()

getReplicationFailures

public String getReplicationFailures()

isStatisticsEnabled

public boolean isStatisticsEnabled()

setStatisticsEnabled

public void setStatisticsEnabled(boolean statisticsEnabled)

getAddress

public String getAddress()

getMembers

public String getMembers()

getSuccessRatio

public String getSuccessRatio()

setTransport

public void setTransport(Transport t)


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