Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.jboss.cache.interceptors
Class InvalidationInterceptor

    java.lang.Object
      org.jboss.cache.interceptors.Interceptor
          org.jboss.cache.interceptors.BaseRpcInterceptor
              org.jboss.cache.interceptors.InvalidationInterceptor

All Implemented Interfaces:
  InterceptorMBean, InvalidationInterceptorMBean

    public class InvalidationInterceptor

extends BaseRpcInterceptor
implements InvalidationInterceptorMBean

This interceptor acts as a replacement to the replication interceptor when the TreeCache is configured with ClusteredSyncMode as INVALIDATE. The idea is that rather than replicating changes to all caches in a cluster when CRUD (Create, Remove, Update, Delete) methods are called, simply call evict(Fqn) on the remote caches for each changed node. This allows the remote node to look up the value in a shared cache loader which would have been updated with the changes.

Author:
  Manik Surtani (manik@jboss.org)

Field Summary
`protected TransactionTable` | `txTable`

Constructor Summary
`InvalidationInterceptor()`

Method Summary
`java.util.Map` | `dumpStatistics()` Returns a map of the cache interceptor's statistics Map elements consist of {String name, Object value} entries
`protected Fqn` | `findFqn(java.lang.Object[] objects)`
`long` | `getInvalidations()` Returns the number of cache invalidations
`protected TransactionWorkspace` | `getWorkspace(GlobalTransaction gtx)`
`protected void` | `invalidateAcrossCluster(Fqn fqn, TransactionWorkspace workspace)`
`protected void` | `invalidateModifications(java.util.List modifications, TransactionWorkspace workspace)`
`java.lang.Object` | `invoke(org.jgroups.blocks.MethodCall call)`
`protected java.util.Iterator` | `optimisedIterator(java.util.List list)` Removes non-crud methods, plus clobs together common calls to Fqn's.
`void` | `resetStatistics()` Resets an interceptor's cache statistics
`void` | `setCache(TreeCache cache)`

Methods inherited from class org.jboss.cache.interceptors.BaseRpcInterceptor
`checkResponses, containsModifications, putCallOnAsyncReplicationQueue, replicateCall, replicateCall`

Methods inherited from class org.jboss.cache.interceptors.Interceptor
`getInvocationContext, getNext, getStatisticsEnabled, isActive, isBuddyGroupOrganisationMethod, isOnePhaseCommitPrepareMehod, isPreparing, isTransactionLifecycleMethod, isValid, setInvocationContext, setNext, setStatisticsEnabled`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Methods inherited from interface org.jboss.cache.interceptors.InterceptorMBean
`getStatisticsEnabled, setStatisticsEnabled`

Field Detail

### txTable

    protected TransactionTable txTable

Constructor Detail

### InvalidationInterceptor

    public InvalidationInterceptor()

Method Detail

### setCache

    public void setCache(TreeCache cache)

  Overrides:
    `setCache` in class `BaseRpcInterceptor`

### invoke

    public java.lang.Object invoke(org.jgroups.blocks.MethodCall call)
                            throws java.lang.Throwable

  Overrides:
    `invoke` in class `Interceptor`
  Throws:
    `java.lang.Throwable`

### getInvalidations

    public long getInvalidations()

  Description copied from interface: `InvalidationInterceptorMBean`
  Returns the number of cache invalidations

  Specified by:
    `getInvalidations` in interface `InvalidationInterceptorMBean`
  Returns:
    the number of invalidations

### resetStatistics

    public void resetStatistics()

  Description copied from interface: `InterceptorMBean`
  Resets an interceptor's cache statistics

  Specified by:
    `resetStatistics` in interface `InterceptorMBean`
  Overrides:
    `resetStatistics` in class `Interceptor`

### dumpStatistics

    public java.util.Map dumpStatistics()

  Description copied from interface: `InterceptorMBean`
  Returns a map of the cache interceptor's statistics Map elements consist of {String name, Object value} entries

  Specified by:
    `dumpStatistics` in interface `InterceptorMBean`
  Overrides:
    `dumpStatistics` in class `Interceptor`
  Returns:
    a map containing statistics

### invalidateAcrossCluster

    protected void invalidateAcrossCluster(Fqn fqn,
                                           TransactionWorkspace workspace)
                                    throws java.lang.Throwable

  Throws:
    `java.lang.Throwable`

### invalidateModifications

    protected void invalidateModifications(java.util.List modifications,
                                           TransactionWorkspace workspace)
                                    throws java.lang.Throwable

  Throws:
    `java.lang.Throwable`

### getWorkspace

    protected TransactionWorkspace getWorkspace(GlobalTransaction gtx)

### findFqn

    protected Fqn findFqn(java.lang.Object[] objects)

### optimisedIterator

    protected java.util.Iterator optimisedIterator(java.util.List list)

  Removes non-crud methods, plus clobs together common calls to Fqn's. E.g, if we have put("/a/b", "1", "2") followed by a put("/a/b", "3", "4") we should only evict "/a/b" once.

  Parameters:
    `list` -
  Returns:
    Iterator containing a unique set of Fqns of crud methods in this tx

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 1998-2005 JBoss Inc . All Rights Reserved.