org.infinispan.interceptors.distribution
Class TxDistributionInterceptor
java.lang.Object
org.infinispan.commands.AbstractVisitor
org.infinispan.interceptors.base.CommandInterceptor
org.infinispan.interceptors.base.BaseRpcInterceptor
org.infinispan.interceptors.ClusteringInterceptor
org.infinispan.interceptors.distribution.BaseDistributionInterceptor
org.infinispan.interceptors.distribution.TxDistributionInterceptor
- All Implemented Interfaces:
- Visitor
- Direct Known Subclasses:
- VersionedDistributionInterceptor
public class TxDistributionInterceptor
- extends BaseDistributionInterceptor
Handles the distribution of the transactional caches.
- Since:
- 5.2
- Author:
- Mircea Markus
Method Summary |
protected Future<?> |
flushL1Caches(InvocationContext ctx)
|
protected Object |
handleWriteCommand(InvocationContext ctx,
WriteCommand command,
org.infinispan.interceptors.distribution.BaseDistributionInterceptor.RecipientGenerator recipientGenerator,
boolean skipRemoteGet,
boolean skipL1Invalidation)
If we are within one transaction we won't do any replication as replication would only be performed at commit
time. |
protected boolean |
ignorePreviousValueOnBackup(WriteCommand command,
InvocationContext ctx)
For conditional operations (replace, remove, put if absent) Used only for optimistic transactional caches, to solve the following situation: |
void |
init(L1Manager l1Manager)
|
protected void |
prepareOnAffectedNodes(TxInvocationContext ctx,
PrepareCommand command,
Collection<Address> recipients,
boolean sync)
|
protected void |
sendCommitCommand(TxInvocationContext ctx,
CommitCommand command)
|
void |
start()
|
Object |
visitClearCommand(InvocationContext ctx,
ClearCommand command)
|
Object |
visitCommitCommand(TxInvocationContext ctx,
CommitCommand command)
|
Object |
visitGetKeyValueCommand(InvocationContext ctx,
GetKeyValueCommand command)
|
Object |
visitLockControlCommand(TxInvocationContext ctx,
LockControlCommand command)
|
Object |
visitPrepareCommand(TxInvocationContext ctx,
PrepareCommand command)
|
Object |
visitPutKeyValueCommand(InvocationContext ctx,
PutKeyValueCommand command)
|
Object |
visitRemoveCommand(InvocationContext ctx,
RemoveCommand command)
|
Object |
visitReplaceCommand(InvocationContext ctx,
ReplaceCommand command)
|
Object |
visitRollbackCommand(TxInvocationContext ctx,
RollbackCommand command)
|
Methods inherited from class org.infinispan.commands.AbstractVisitor |
visitApplyDeltaCommand, visitCollection, visitDistributedExecuteCommand, visitEntrySetCommand, visitEvictCommand, visitInvalidateCommand, visitInvalidateL1Command, visitKeySetCommand, visitSizeCommand, visitUnknownCommand, visitValuesCommand |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
TxDistributionInterceptor
public TxDistributionInterceptor()
init
public void init(L1Manager l1Manager)
visitReplaceCommand
public Object visitReplaceCommand(InvocationContext ctx,
ReplaceCommand command)
throws Throwable
- Specified by:
visitReplaceCommand
in interface Visitor
- Overrides:
visitReplaceCommand
in class BaseDistributionInterceptor
- Throws:
Throwable
visitRemoveCommand
public Object visitRemoveCommand(InvocationContext ctx,
RemoveCommand command)
throws Throwable
- Specified by:
visitRemoveCommand
in interface Visitor
- Overrides:
visitRemoveCommand
in class BaseDistributionInterceptor
- Throws:
Throwable
ignorePreviousValueOnBackup
protected boolean ignorePreviousValueOnBackup(WriteCommand command,
InvocationContext ctx)
- For conditional operations (replace, remove, put if absent) Used only for optimistic transactional caches, to solve the following situation:
- node A (owner, tx originator) does a successful replace
- the actual value changes
- tx commits. The value is applied on A (the check was performed at operation time) but is not applied on
B (check is performed at commit time).
In such situations (optimistic caches) the remote conditional command should not re-check the old value.
- Overrides:
ignorePreviousValueOnBackup
in class ClusteringInterceptor
start
public void start()
visitPutKeyValueCommand
public Object visitPutKeyValueCommand(InvocationContext ctx,
PutKeyValueCommand command)
throws Throwable
- Specified by:
visitPutKeyValueCommand
in interface Visitor
- Overrides:
visitPutKeyValueCommand
in class AbstractVisitor
- Throws:
Throwable
visitClearCommand
public Object visitClearCommand(InvocationContext ctx,
ClearCommand command)
throws Throwable
- Specified by:
visitClearCommand
in interface Visitor
- Overrides:
visitClearCommand
in class AbstractVisitor
- Throws:
Throwable
visitGetKeyValueCommand
public Object visitGetKeyValueCommand(InvocationContext ctx,
GetKeyValueCommand command)
throws Throwable
- Specified by:
visitGetKeyValueCommand
in interface Visitor
- Overrides:
visitGetKeyValueCommand
in class AbstractVisitor
- Throws:
Throwable
visitLockControlCommand
public Object visitLockControlCommand(TxInvocationContext ctx,
LockControlCommand command)
throws Throwable
- Specified by:
visitLockControlCommand
in interface Visitor
- Overrides:
visitLockControlCommand
in class AbstractVisitor
- Throws:
Throwable
visitCommitCommand
public Object visitCommitCommand(TxInvocationContext ctx,
CommitCommand command)
throws Throwable
- Specified by:
visitCommitCommand
in interface Visitor
- Overrides:
visitCommitCommand
in class AbstractVisitor
- Throws:
Throwable
visitPrepareCommand
public Object visitPrepareCommand(TxInvocationContext ctx,
PrepareCommand command)
throws Throwable
- Specified by:
visitPrepareCommand
in interface Visitor
- Overrides:
visitPrepareCommand
in class AbstractVisitor
- Throws:
Throwable
prepareOnAffectedNodes
protected void prepareOnAffectedNodes(TxInvocationContext ctx,
PrepareCommand command,
Collection<Address> recipients,
boolean sync)
visitRollbackCommand
public Object visitRollbackCommand(TxInvocationContext ctx,
RollbackCommand command)
throws Throwable
- Specified by:
visitRollbackCommand
in interface Visitor
- Overrides:
visitRollbackCommand
in class AbstractVisitor
- Throws:
Throwable
sendCommitCommand
protected void sendCommitCommand(TxInvocationContext ctx,
CommitCommand command)
throws TimeoutException,
InterruptedException
- Throws:
TimeoutException
InterruptedException
handleWriteCommand
protected Object handleWriteCommand(InvocationContext ctx,
WriteCommand command,
org.infinispan.interceptors.distribution.BaseDistributionInterceptor.RecipientGenerator recipientGenerator,
boolean skipRemoteGet,
boolean skipL1Invalidation)
throws Throwable
- If we are within one transaction we won't do any replication as replication would only be performed at commit
time. If the operation didn't originate locally we won't do any replication either.
- Specified by:
handleWriteCommand
in class BaseDistributionInterceptor
- Throws:
Throwable
flushL1Caches
protected Future<?> flushL1Caches(InvocationContext ctx)
Copyright © 2013 JBoss, a division of Red Hat. All Rights Reserved.