Class RetryOnFailureOperation<T>
java.lang.Object
java.util.concurrent.CompletableFuture<T>
org.infinispan.hotrod.impl.operations.HotRodOperation<T>
org.infinispan.hotrod.impl.operations.RetryOnFailureOperation<T>
- All Implemented Interfaces:
Runnable,CompletionStage<T>,Future<T>,HotRodConstants,ChannelOperation
- Direct Known Subclasses:
AddListenerOperation,AddOperation,ClearOperation,ClientListenerOperation,CompareAndSwapOperation,CompleteTransactionOperation,ContainsValueMultimapOperation,DefineCounterOperation,ExecuteOperation,FaultTolerantPingOperation,ForgetTransactionOperation,GetConfigurationOperation,GetCounterNamesOperation,GetValueOperation,IsDefinedOperation,IterationStartOperation,PrepareTransactionOperation,QueryOperation,RecoveryOperation,RemoveListenerOperation,RemoveOperation,ResetOperation,SizeMultimapOperation,SizeOperation,StatsAffectingRetryingOperation,StatsOperation
public abstract class RetryOnFailureOperation<T>
extends HotRodOperation<T>
implements ChannelOperation
Base class for all the operations that need retry logic: if the operation fails due to connection problems, try with
another available connection.
- Since:
- 14.0
-
Nested Class Summary
Nested classes/interfaces inherited from class java.util.concurrent.CompletableFuture
CompletableFuture.AsynchronousCompletionTaskNested classes/interfaces inherited from interface org.infinispan.hotrod.impl.protocol.HotRodConstants
HotRodConstants.Names -
Field Summary
FieldsFields inherited from class org.infinispan.hotrod.impl.operations.HotRodOperation
header, operationContext, options, timeoutFutureFields inherited from interface org.infinispan.hotrod.impl.protocol.HotRodConstants
ADD_BLOOM_FILTER_NEAR_CACHE_LISTENER_REQUEST, ADD_BLOOM_FILTER_NEAR_CACHE_LISTENER_RESPONSE, ADD_CLIENT_LISTENER_REQUEST, ADD_CLIENT_LISTENER_RESPONSE, AUTH_MECH_LIST_REQUEST, AUTH_MECH_LIST_RESPONSE, AUTH_REQUEST, AUTH_RESPONSE, BULK_GET_KEYS_REQUEST, BULK_GET_KEYS_RESPONSE, BULK_GET_REQUEST, BULK_GET_RESPONSE, CACHE_ENTRY_CREATED_EVENT_RESPONSE, CACHE_ENTRY_EXPIRED_EVENT_RESPONSE, CACHE_ENTRY_MODIFIED_EVENT_RESPONSE, CACHE_ENTRY_REMOVED_EVENT_RESPONSE, CLEAR_REQUEST, CLEAR_RESPONSE, COMMAND_TIMEOUT_STATUS, COMMIT_REQUEST, COMMIT_RESPONSE, CONTAINS_KEY_REQUEST, CONTAINS_KEY_RESPONSE, COUNTER_ADD_AND_GET_REQUEST, COUNTER_ADD_AND_GET_RESPONSE, COUNTER_ADD_LISTENER_REQUEST, COUNTER_ADD_LISTENER_RESPONSE, COUNTER_CAS_REQUEST, COUNTER_CAS_RESPONSE, COUNTER_CREATE_REQUEST, COUNTER_CREATE_RESPONSE, COUNTER_EVENT_RESPONSE, COUNTER_GET_CONFIGURATION_REQUEST, COUNTER_GET_CONFIGURATION_RESPONSE, COUNTER_GET_NAMES_REQUEST, COUNTER_GET_NAMES_RESPONSE, COUNTER_GET_REQUEST, COUNTER_GET_RESPONSE, COUNTER_IS_DEFINED_REQUEST, COUNTER_IS_DEFINED_RESPONSE, COUNTER_REMOVE_LISTENER_REQUEST, COUNTER_REMOVE_LISTENER_RESPONSE, COUNTER_REMOVE_REQUEST, COUNTER_REMOVE_RESPONSE, COUNTER_RESET_REQUEST, COUNTER_RESET_RESPONSE, DEFAULT_CACHE_NAME_BYTES, DEFAULT_CACHE_TOPOLOGY, ERROR_RESPONSE, EXEC_REQUEST, EXEC_RESPONSE, FETCH_TX_RECOVERY_REQUEST, FETCH_TX_RECOVERY_RESPONSE, FORGET_TX_REQUEST, FORGET_TX_RESPONSE, GET_ALL_REQUEST, GET_ALL_RESPONSE, GET_REQUEST, GET_RESPONSE, GET_STREAM_REQUEST, GET_STREAM_RESPONSE, GET_WITH_METADATA, GET_WITH_METADATA_RESPONSE, GET_WITH_VERSION, GET_WITH_VERSION_RESPONSE, HOTROD_STRING_CHARSET, ILLEGAL_LIFECYCLE_STATE, ILLEGAL_OP_CODE, INFINITE_LIFESPAN, INFINITE_MAXIDLE, INVALID_ITERATION, INVALID_MAGIC_OR_MESSAGE_ID_STATUS, ITERATION_END_REQUEST, ITERATION_END_RESPONSE, ITERATION_NEXT_REQUEST, ITERATION_NEXT_RESPONSE, ITERATION_START_REQUEST, ITERATION_START_RESPONSE, KEY_DOES_NOT_EXIST_STATUS, NO_ERROR_STATUS, NO_ERROR_STATUS_OBJ_STORAGE, NODE_SUSPECTED, NOT_EXECUTED_WITH_PREVIOUS, NOT_EXECUTED_WITH_PREVIOUS_OBJ_STORAGE, NOT_PUT_REMOVED_REPLACED_STATUS, PING_REQUEST, PING_RESPONSE, PREPARE_REQUEST, PREPARE_RESPONSE, PREPARE_TX_2_REQUEST, PREPARE_TX_2_RESPONSE, PUT_ALL_REQUEST, PUT_ALL_RESPONSE, PUT_IF_ABSENT_REQUEST, PUT_IF_ABSENT_RESPONSE, PUT_REQUEST, PUT_RESPONSE, PUT_STREAM_REQUEST, PUT_STREAM_RESPONSE, QUERY_REQUEST, QUERY_RESPONSE, REMOVE_CLIENT_LISTENER_REQUEST, REMOVE_CLIENT_LISTENER_RESPONSE, REMOVE_IF_UNMODIFIED_REQUEST, REMOVE_IF_UNMODIFIED_RESPONSE, REMOVE_REQUEST, REMOVE_RESPONSE, REPLACE_IF_UNMODIFIED_REQUEST, REPLACE_IF_UNMODIFIED_RESPONSE, REPLACE_REQUEST, REPLACE_RESPONSE, REQUEST_MAGIC, REQUEST_PARSING_ERROR_STATUS, RESPONSE_MAGIC, ROLLBACK_REQUEST, ROLLBACK_RESPONSE, SERVER_ERROR_STATUS, SIZE_REQUEST, SIZE_RESPONSE, STATS_REQUEST, STATS_RESPONSE, SUCCESS_WITH_PREVIOUS, SUCCESS_WITH_PREVIOUS_OBJ_STORAGE, SWITCH_CLUSTER_TOPOLOGY, UNKNOWN_COMMAND_STATUS, UNKNOWN_VERSION_STATUS, UPDATE_BLOOM_FILTER_REQUEST, UPDATE_BLOOM_FILTER_RESPONSE, VERSION_40 -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedRetryOnFailureOperation(OperationContext operationContext, short requestCode, short responseCode, org.infinispan.api.common.CacheOptions options, DataFormat dataFormat) -
Method Summary
Modifier and TypeMethodDescriptionvoidcancel(SocketAddress address, Throwable cause) Invoked when the callback cannot be invoked due to timeout or terminated pool.voidchannelInactive(io.netty.channel.Channel channel) voidexceptionCaught(io.netty.channel.Channel channel, Throwable cause) execute()protected abstract voidexecuteOperation(io.netty.channel.Channel channel) Perform the operation-specific request/response I/O on the specified channel.protected voidfetchChannelAndInvoke(int retryCount, Set<SocketAddress> failedServers) protected ThrowablehandleException(Throwable cause, io.netty.channel.Channel channel, SocketAddress address) voidinvoke(io.netty.channel.Channel channel) Invoked on an active channel ready to be writtenprotected voidprotected voidreset()Methods inherited from class org.infinispan.hotrod.impl.operations.HotRodOperation
acceptResponse, addParams, cacheName, complete, completeExceptionally, dataFormat, flags, header, releaseChannel, run, scheduleRead, scheduleTimeout, sendArrayOperation, sendHeader, sendHeaderAndRead, toStringMethods inherited from class java.util.concurrent.CompletableFuture
acceptEither, acceptEitherAsync, acceptEitherAsync, allOf, anyOf, applyToEither, applyToEitherAsync, applyToEitherAsync, cancel, completeAsync, completeAsync, completedFuture, completedStage, completeOnTimeout, copy, defaultExecutor, delayedExecutor, delayedExecutor, exceptionally, failedFuture, failedStage, get, get, getNow, getNumberOfDependents, handle, handleAsync, handleAsync, isCancelled, isCompletedExceptionally, isDone, join, minimalCompletionStage, newIncompleteFuture, obtrudeException, obtrudeValue, orTimeout, runAfterBoth, runAfterBothAsync, runAfterBothAsync, runAfterEither, runAfterEitherAsync, runAfterEitherAsync, runAsync, runAsync, supplyAsync, supplyAsync, thenAccept, thenAcceptAsync, thenAcceptAsync, thenAcceptBoth, thenAcceptBothAsync, thenAcceptBothAsync, thenApply, thenApplyAsync, thenApplyAsync, thenCombine, thenCombineAsync, thenCombineAsync, thenCompose, thenComposeAsync, thenComposeAsync, thenRun, thenRunAsync, thenRunAsync, toCompletableFuture, whenComplete, whenCompleteAsync, whenCompleteAsync
-
Field Details
-
log
-
-
Constructor Details
-
RetryOnFailureOperation
protected RetryOnFailureOperation(OperationContext operationContext, short requestCode, short responseCode, org.infinispan.api.common.CacheOptions options, DataFormat dataFormat)
-
-
Method Details
-
execute
- Specified by:
executein classHotRodOperation<T>
-
invoke
public void invoke(io.netty.channel.Channel channel) Description copied from interface:ChannelOperationInvoked on an active channel ready to be written- Specified by:
invokein interfaceChannelOperation
-
cancel
Description copied from interface:ChannelOperationInvoked when the callback cannot be invoked due to timeout or terminated pool.- Specified by:
cancelin interfaceChannelOperation- Parameters:
address-cause-
-
reset
protected void reset() -
channelInactive
public void channelInactive(io.netty.channel.Channel channel) - Overrides:
channelInactivein classHotRodOperation<T>
-
exceptionCaught
- Overrides:
exceptionCaughtin classHotRodOperation<T>
-
handleException
protected Throwable handleException(Throwable cause, io.netty.channel.Channel channel, SocketAddress address) -
logAndRetryOrFail
-
fetchChannelAndInvoke
-
executeOperation
protected abstract void executeOperation(io.netty.channel.Channel channel) Perform the operation-specific request/response I/O on the specified channel. If an error occurs during I/O, this class will detect it and retry the operation with a different channel by invoking the executeOperation method again.- Parameters:
channel- the channel to use for I/O
-