Class TxInvalidationInterceptor

java.lang.Object
org.infinispan.interceptors.BaseAsyncInterceptor
org.infinispan.interceptors.DDAsyncInterceptor
org.infinispan.interceptors.impl.BaseRpcInterceptor
org.infinispan.hibernate.cache.commons.access.BaseInvalidationInterceptor
org.infinispan.hibernate.cache.commons.access.TxInvalidationInterceptor
All Implemented Interfaces:
org.infinispan.commands.Visitor, org.infinispan.interceptors.AsyncInterceptor, org.infinispan.jmx.JmxStatisticsExposer

@MBean(objectName="Invalidation", description="Component responsible for invalidating entries on remote caches when entries are written to locally.") public class TxInvalidationInterceptor extends BaseInvalidationInterceptor
This interceptor acts as a replacement to the replication interceptor when the CacheImpl is configured with ClusteredSyncMode as INVALIDATE.

The idea is that rather than replicating changes to all caches in a cluster when write methods are called, simply broadcast an InvalidateCommand on the remote caches containing all keys modified. This allows the remote cache to look up the value in a shared cache loader which would have been updated with the changes.

Since:
4.0
Author:
Manik Surtani, Galder ZamarreƱo, Mircea.Markus@jboss.com
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static class 
     
  • Field Summary

    Fields inherited from class org.infinispan.hibernate.cache.commons.access.BaseInvalidationInterceptor

    cache, cacheName, commandsFactory, distributionManager, statisticsEnabled, syncRpcOptions

    Fields inherited from class org.infinispan.interceptors.impl.BaseRpcInterceptor

    componentRegistry, defaultSynchronous, rpcManager

    Fields inherited from class org.infinispan.interceptors.BaseAsyncInterceptor

    cacheConfiguration
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected org.infinispan.util.logging.Log
     
    visitClearCommand(org.infinispan.context.InvocationContext ctx, org.infinispan.commands.write.ClearCommand command)
     
    visitCommitCommand(org.infinispan.context.impl.TxInvocationContext ctx, org.infinispan.commands.tx.CommitCommand command)
     
    visitLockControlCommand(org.infinispan.context.impl.TxInvocationContext ctx, org.infinispan.commands.control.LockControlCommand command)
     
    visitPrepareCommand(org.infinispan.context.impl.TxInvocationContext ctx, org.infinispan.commands.tx.PrepareCommand command)
     
    visitPutKeyValueCommand(org.infinispan.context.InvocationContext ctx, org.infinispan.commands.write.PutKeyValueCommand command)
     
    visitPutMapCommand(org.infinispan.context.InvocationContext ctx, org.infinispan.commands.write.PutMapCommand command)
     
    visitRemoveCommand(org.infinispan.context.InvocationContext ctx, org.infinispan.commands.write.RemoveCommand command)
     
    visitReplaceCommand(org.infinispan.context.InvocationContext ctx, org.infinispan.commands.write.ReplaceCommand command)
     

    Methods inherited from class org.infinispan.interceptors.impl.BaseRpcInterceptor

    init, isLocalModeForced, isSynchronous, shouldInvokeRemoteTxCommand, shouldLoad, transactionRemotelyPrepared

    Methods inherited from class org.infinispan.interceptors.DDAsyncInterceptor

    handleDefault, visitCommand, visitComputeCommand, visitComputeIfAbsentCommand, visitEntrySetCommand, visitEvictCommand, visitGetAllCommand, visitGetCacheEntryCommand, visitGetKeyValueCommand, visitInvalidateCommand, visitInvalidateL1Command, visitIracPutKeyValueCommand, visitKeySetCommand, visitReadOnlyKeyCommand, visitReadOnlyManyCommand, visitReadWriteKeyCommand, visitReadWriteKeyValueCommand, visitReadWriteManyCommand, visitReadWriteManyEntriesCommand, visitRollbackCommand, visitSizeCommand, visitTouchCommand, visitUnknownCommand, visitWriteOnlyKeyCommand, visitWriteOnlyKeyValueCommand, visitWriteOnlyManyCommand, visitWriteOnlyManyEntriesCommand

    Methods inherited from class org.infinispan.interceptors.BaseAsyncInterceptor

    asyncInvokeNext, asyncInvokeNext, asyncInvokeNext, asyncValue, delayedNull, delayedValue, delayedValue, invokeNext, invokeNextAndExceptionally, invokeNextAndFinally, invokeNextAndHandle, invokeNextThenAccept, invokeNextThenApply, isSuccessfullyDone, makeStage, setNextInterceptor, valueOrException

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface org.infinispan.commands.Visitor

    visitRemoveExpiredCommand
  • Constructor Details

    • TxInvalidationInterceptor

      public TxInvalidationInterceptor()
  • Method Details

    • visitPutKeyValueCommand

      public Object visitPutKeyValueCommand(org.infinispan.context.InvocationContext ctx, org.infinispan.commands.write.PutKeyValueCommand command)
      Specified by:
      visitPutKeyValueCommand in interface org.infinispan.commands.Visitor
      Overrides:
      visitPutKeyValueCommand in class org.infinispan.interceptors.DDAsyncInterceptor
    • visitReplaceCommand

      public Object visitReplaceCommand(org.infinispan.context.InvocationContext ctx, org.infinispan.commands.write.ReplaceCommand command)
      Specified by:
      visitReplaceCommand in interface org.infinispan.commands.Visitor
      Overrides:
      visitReplaceCommand in class org.infinispan.interceptors.DDAsyncInterceptor
    • visitRemoveCommand

      public Object visitRemoveCommand(org.infinispan.context.InvocationContext ctx, org.infinispan.commands.write.RemoveCommand command)
      Specified by:
      visitRemoveCommand in interface org.infinispan.commands.Visitor
      Overrides:
      visitRemoveCommand in class org.infinispan.interceptors.DDAsyncInterceptor
    • visitClearCommand

      public Object visitClearCommand(org.infinispan.context.InvocationContext ctx, org.infinispan.commands.write.ClearCommand command)
      Specified by:
      visitClearCommand in interface org.infinispan.commands.Visitor
      Overrides:
      visitClearCommand in class org.infinispan.interceptors.DDAsyncInterceptor
    • visitPutMapCommand

      public Object visitPutMapCommand(org.infinispan.context.InvocationContext ctx, org.infinispan.commands.write.PutMapCommand command)
      Specified by:
      visitPutMapCommand in interface org.infinispan.commands.Visitor
      Overrides:
      visitPutMapCommand in class org.infinispan.interceptors.DDAsyncInterceptor
    • visitPrepareCommand

      public Object visitPrepareCommand(org.infinispan.context.impl.TxInvocationContext ctx, org.infinispan.commands.tx.PrepareCommand command)
      Specified by:
      visitPrepareCommand in interface org.infinispan.commands.Visitor
      Overrides:
      visitPrepareCommand in class org.infinispan.interceptors.DDAsyncInterceptor
    • visitCommitCommand

      public Object visitCommitCommand(org.infinispan.context.impl.TxInvocationContext ctx, org.infinispan.commands.tx.CommitCommand command) throws Throwable
      Specified by:
      visitCommitCommand in interface org.infinispan.commands.Visitor
      Overrides:
      visitCommitCommand in class org.infinispan.interceptors.DDAsyncInterceptor
      Throws:
      Throwable
    • visitLockControlCommand

      public Object visitLockControlCommand(org.infinispan.context.impl.TxInvocationContext ctx, org.infinispan.commands.control.LockControlCommand command)
      Specified by:
      visitLockControlCommand in interface org.infinispan.commands.Visitor
      Overrides:
      visitLockControlCommand in class org.infinispan.interceptors.DDAsyncInterceptor
    • getLog

      protected org.infinispan.util.logging.Log getLog()
      Specified by:
      getLog in class org.infinispan.interceptors.impl.BaseRpcInterceptor