public class MigrationOperation extends Operation implements TargetAware
| Modifier and Type | Field and Description | 
|---|---|
protected MigrationInfo | 
migrationInfo  | 
protected int | 
partitionStateVersion  | 
protected boolean | 
success  | 
GENERIC_PARTITION_ID| Constructor and Description | 
|---|
MigrationOperation()  | 
MigrationOperation(MigrationInfo migrationInfo,
                  int partitionStateVersion,
                  ReplicaFragmentMigrationState fragmentMigrationState,
                  boolean firstFragment,
                  boolean lastFragment)  | 
| Modifier and Type | Method and Description | 
|---|---|
void | 
beforeRun()
The beforeRun is called before either the  
Operation.run() or the Operation.call() method is called. | 
int | 
getFactoryId()
Returns DataSerializableFactory factory ID for this class. 
 | 
int | 
getId()
Returns type identifier for this class. 
 | 
protected PartitionMigrationEvent | 
getMigrationEvent()
Returns the event which will be forwarded to  
MigrationAwareServices. | 
MigrationInfo | 
getMigrationInfo()  | 
protected InternalMigrationListener.MigrationParticipant | 
getMigrationParticipantType()  | 
Object | 
getResponse()
Called if and only if  
Operation.returnsResponse() returned true,
 shortly after Operation.run() returns. | 
void | 
logError(Throwable e)
Logs Exception/Error thrown during operation execution. 
 | 
void | 
onExecutionFailure(Throwable e)
Called when an Exception/Error is thrown during
 operation execution. 
 | 
ExceptionAction | 
onInvocationException(Throwable throwable)
Called when an Exception/Error is thrown
 during an invocation. 
 | 
protected void | 
prepareOperation(Operation op)  | 
protected void | 
readInternal(ObjectDataInput in)  | 
void | 
run()
Runs the operation. 
 | 
void | 
setTarget(Address address)
Provides the designated target member address to which the operation
 will be sent. 
 | 
protected void | 
toString(StringBuilder sb)
A template method allows for additional information to be passed into
 the  
Operation.toString() method. | 
boolean | 
validatesTarget()  | 
protected void | 
writeInternal(ObjectDataOutput out)  | 
afterRun, call, executedLocally, getCallerAddress, getCallerUuid, getCallId, getCallTimeout, getConnection, getInvocationTime, getLogger, getNodeEngine, getOperationResponseHandler, getPartitionId, getReplicaIndex, getService, getServiceName, getWaitTimeout, isUrgent, onSetCallId, readData, requiresExplicitServiceName, returnsResponse, sendResponse, setCallerUuid, setNodeEngine, setOperationResponseHandler, setPartitionId, setReplicaIndex, setService, setServiceName, setValidateTarget, setWaitTimeout, toString, writeDataclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitgetPartitionIdreadData, writeDataprotected MigrationInfo migrationInfo
protected boolean success
protected int partitionStateVersion
public MigrationOperation()
public MigrationOperation(MigrationInfo migrationInfo, int partitionStateVersion, ReplicaFragmentMigrationState fragmentMigrationState, boolean firstFragment, boolean lastFragment)
public void run()
         throws Exception
Operation.run() or Operation.call() method should be implemented; not both.
 Runs after wait-support, supposed to do actual operation
 Sets the active migration and the migration flag for the partition, notifies MigrationAwareServices that
 the migration is starting and runs the sent replication operations.
 If the migration was successful, set the replica versions. If it failed, notify the sent migration tasks.run in class OperationExceptionOperation.call()protected void prepareOperation(Operation op)
protected PartitionMigrationEvent getMigrationEvent()
MigrationAwareServices.protected InternalMigrationListener.MigrationParticipant getMigrationParticipantType()
public void onExecutionFailure(Throwable e)
onExecutionFailure in class Operatione - Exception/Error thrown during operation executionpublic int getId()
IdentifiedDataSerializablegetId in interface IdentifiedDataSerializableprotected void writeInternal(ObjectDataOutput out) throws IOException
IOExceptionprotected void readInternal(ObjectDataInput in) throws IOException
IOExceptionpublic void setTarget(Address address)
TargetAwaresetTarget will be invoked on each retry with the
         current target member's Address as argument
     address is provided as target address
     setTarget in interface TargetAwareaddress - target member's addresspublic final void beforeRun()
                     throws Exception
Operation.run() or the Operation.call() method is called.
  runs before wait-support
 Validates the migration operation: the UUIDs of the node should match the one in the migrationInfo,
 the cluster should be in ClusterState.ACTIVE and the node started and the partition state version from
 the sender should match the local partition state version.beforeRun in class OperationIllegalStateException - if the UUIDs don't match or if the cluster and node state are notPartitionStateVersionMismatchException - if the partition versions don't match and this node is not the master nodeExceptionpublic MigrationInfo getMigrationInfo()
public Object getResponse()
OperationOperation.returnsResponse() returned true,
 shortly after Operation.run() returns.getResponse in class Operationpublic final boolean validatesTarget()
validatesTarget in class Operationpublic ExceptionAction onInvocationException(Throwable throwable)
OperationonInvocationException in class Operationthrowable - Exception/Error thrown during
                  invocationpublic void logError(Throwable e)
Operationprotected void toString(StringBuilder sb)
OperationOperation.toString() method. So an Operation subclass can override
 this method and add additional debugging content. The default
 implementation does nothing so one is not forced to provide an empty
 implementation.
 It is a good practice to always call the super.toString(stringBuffer)
 when implementing this method to make sure that the super class can
 inject content if needed.public final int getFactoryId()
IdentifiedDataSerializablegetFactoryId in interface IdentifiedDataSerializableCopyright © 2020 Hazelcast, Inc.. All Rights Reserved.