public final class PartitionIteratingOperation extends Operation implements IdentifiedDataSerializable
THe execution used to be synchronous; so the thread executing this PartitionIteratingOperation would block till all
the child requests are done. In 3.8 this is made asynchronous so that the thread isn't consumed and available for
other tasks. On each partition operation an OperationResponseHandler is set, that sends the result to the
caller when all responses have completed.
| Modifier and Type | Class and Description |
|---|---|
static class |
PartitionIteratingOperation.PartitionResponse |
GENERIC_PARTITION_ID| Constructor and Description |
|---|
PartitionIteratingOperation() |
PartitionIteratingOperation(OperationFactory operationFactory,
int[] partitions) |
| Modifier and Type | Method and Description |
|---|---|
int |
getFactoryId()
Returns DataSerializableFactory factory ID for this class.
|
int |
getId()
Returns type identifier for this class.
|
OperationFactory |
getOperationFactory() |
void |
onExecutionFailure(Throwable cause)
Called when an Exception/Error is thrown during operation execution.
|
protected void |
readInternal(ObjectDataInput in) |
boolean |
returnsResponse()
Method is intended to be subclassed.
|
void |
run() |
protected void |
toString(StringBuilder sb)
A template method allows for additional information to be passed into the
Operation.toString() method. |
protected void |
writeInternal(ObjectDataOutput out) |
afterRun, beforeRun, call, executedLocally, getCallerAddress, getCallerUuid, getCallId, getCallTimeout, getConnection, getInvocationTime, getLogger, getNodeEngine, getOperationResponseHandler, getPartitionId, getReplicaIndex, getResponse, getService, getServiceName, getWaitTimeout, isUrgent, logError, onInvocationException, onSetCallId, readData, sendResponse, setCallerUuid, setNodeEngine, setOperationResponseHandler, setPartitionId, setReplicaIndex, setService, setServiceName, setValidateTarget, setWaitTimeout, toString, validatesTarget, writeDataclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitreadData, writeDatapublic PartitionIteratingOperation()
public PartitionIteratingOperation(OperationFactory operationFactory, int[] partitions)
operationFactory - operation factory to usepartitions - partitions to invoke onpublic OperationFactory getOperationFactory()
public boolean returnsResponse()
Operationtrue, Operation.getResponse() will be
called right after Operation.run() method. If it returns false, Operation.sendResponse(Object)
must be called later to finish the operation.
In other words, true is for synchronous operation and false is for asynchronous one.
Default implementation is synchronous operation (true).
returnsResponse in class Operationpublic void onExecutionFailure(Throwable cause)
OperationonExecutionFailure in class Operationcause - Exception/Error thrown during operation executionpublic int getFactoryId()
IdentifiedDataSerializablegetFactoryId in interface IdentifiedDataSerializablepublic int getId()
IdentifiedDataSerializablegetId in interface IdentifiedDataSerializableprotected void writeInternal(ObjectDataOutput out) throws IOException
writeInternal in class OperationIOExceptionprotected void readInternal(ObjectDataInput in) throws IOException
readInternal in class OperationIOExceptionprotected 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 always to call the super.toString(stringBuffer) when implementing this method to make sure
that the super class can inject content if needed.Copyright © 2018 Hazelcast, Inc.. All Rights Reserved.