org.jboss.cache.interceptors
Class BaseRpcInterceptor

java.lang.Object
  extended by org.jboss.cache.interceptors.Interceptor
      extended by org.jboss.cache.interceptors.MethodDispacherInterceptor
          extended by org.jboss.cache.interceptors.BaseRpcInterceptor
All Implemented Interfaces:
InterceptorMBean
Direct Known Subclasses:
DataGravitatorInterceptor, InvalidationInterceptor, OptimisticReplicationInterceptor, ReplicationInterceptor

public abstract class BaseRpcInterceptor
extends MethodDispacherInterceptor

Acts as a base for all RPC calls - subclassed by ReplicationInterceptor and OptimisticReplicationInterceptor.

Author:
Manik Surtani (manik@jboss.org)

Field Summary
protected  boolean defaultSynchronous
           
 
Fields inherited from class org.jboss.cache.interceptors.Interceptor
cache, configuration, last, log, next, trace
 
Constructor Summary
BaseRpcInterceptor()
           
 
Method Summary
protected  boolean containsModifications(InvocationContext ctx)
           
protected  void checkResponses(List rsps)
          Checks whether any of the responses are exceptions.
protected  boolean isSynchronous(Option option)
           
protected  boolean isTransactionalAndLocal(InvocationContext ctx)
          The call runs in a transaction and it was initiated on this node of the cluster.
protected  void putCallOnAsyncReplicationQueue(MethodCall call)
           
protected  void replicateCall(InvocationContext ctx, List<org.jgroups.Address> recipients, MethodCall call, boolean sync, Option o)
           
protected  void replicateCall(InvocationContext ctx, List<org.jgroups.Address> recipients, MethodCall call, boolean sync, Option o, boolean wrapMethodCallInReplicateMethod, boolean useOutOfBandMessage)
           
protected  void replicateCall(InvocationContext ctx, MethodCall call, boolean sync, Option o)
           
protected  void replicateCall(InvocationContext ctx, MethodCall call, boolean sync, Option o, boolean useOutOfBandMessage)
           
 void setCache(CacheSPI cache)
           
protected  boolean skipReplicationOfTransactionMethod(InvocationContext ctx)
          It does not make sense replicating a transaction method(commit, rollback, prepare) if one of the following: - call was not initiated here, but on other member of the cluster - there is no transaction.
 
Methods inherited from class org.jboss.cache.interceptors.MethodDispacherInterceptor
handleAddChildMethod, handleBlockChannelMethod, handleCommitMethod, handleDataGravitationCleanupMethod, handleEvictMethod, handleEvictVersionedNodeMethod, handleExistsMethod, handleGetDataMapMethod, handleGetChildrenNamesMethod, handleGetKeysMethod, handleGetKeyValueMethod, handleGetNodeMethod, handleLockMethod, handleMoveMethod, handleOptimisticPrepareMethod, handlePrepareMethod, handlePrintMethod, handlePutDataEraseMethod, handlePutDataEraseVersionedMethod, handlePutDataMethod, handlePutDataVersionedMethod, handlePutForExternalReadMethod, handlePutForExternalReadVersionedMethod, handlePutKeyValueMethod, handlePutKeyValueVersionedMethod, handleReleaseAllLocksMethod, handleRemoveDataMethod, handleRemoveDataVersionedMethod, handleRemoveKeyMethod, handleRemoveKeyVersionedMethod, handleRemoveNodeMethod, handleRemoveNodeVersionedMethod, handleRollbackMethod, handleUnblockChannelMethod, invoke, skipMethodCall
 
Methods inherited from class org.jboss.cache.interceptors.Interceptor
assertTransactionValid, dumpStatistics, getLast, getNext, getStatisticsEnabled, initLogger, isActive, isPreparing, isValid, nextInterceptor, peekNode, resetStatistics, setLast, setNext, setStatisticsEnabled, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

defaultSynchronous

protected boolean defaultSynchronous
Constructor Detail

BaseRpcInterceptor

public BaseRpcInterceptor()
Method Detail

setCache

public void setCache(CacheSPI cache)
Overrides:
setCache in class Interceptor

checkResponses

protected void checkResponses(List rsps)
                       throws Throwable
Checks whether any of the responses are exceptions. If yes, re-throws them (as exceptions or runtime exceptions).

Throws:
Throwable

replicateCall

protected void replicateCall(InvocationContext ctx,
                             MethodCall call,
                             boolean sync,
                             Option o,
                             boolean useOutOfBandMessage)
                      throws Throwable
Throws:
Throwable

replicateCall

protected void replicateCall(InvocationContext ctx,
                             MethodCall call,
                             boolean sync,
                             Option o)
                      throws Throwable
Throws:
Throwable

replicateCall

protected void replicateCall(InvocationContext ctx,
                             List<org.jgroups.Address> recipients,
                             MethodCall call,
                             boolean sync,
                             Option o)
                      throws Throwable
Throws:
Throwable

replicateCall

protected void replicateCall(InvocationContext ctx,
                             List<org.jgroups.Address> recipients,
                             MethodCall call,
                             boolean sync,
                             Option o,
                             boolean wrapMethodCallInReplicateMethod,
                             boolean useOutOfBandMessage)
                      throws Throwable
Throws:
Throwable

putCallOnAsyncReplicationQueue

protected void putCallOnAsyncReplicationQueue(MethodCall call)

containsModifications

protected boolean containsModifications(InvocationContext ctx)

skipReplicationOfTransactionMethod

protected boolean skipReplicationOfTransactionMethod(InvocationContext ctx)
It does not make sense replicating a transaction method(commit, rollback, prepare) if one of the following:
    - call was not initiated here, but on other member of the cluster
    - there is no transaction. Why calling a commit if no transaction going on?
    - the current transaction did not modufy any data, so other members are not aware of it
 


isTransactionalAndLocal

protected boolean isTransactionalAndLocal(InvocationContext ctx)
The call runs in a transaction and it was initiated on this node of the cluster.


isSynchronous

protected boolean isSynchronous(Option option)


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