Package oracle.kv

Class RequestTimeoutException

  • All Implemented Interfaces:
    java.io.Serializable, oracle.kv.impl.util.FastExternalizable

    public class RequestTimeoutException
    extends FaultException
    Thrown when a request cannot be processed because the configured timeout interval is exceeded.

    The default timeout interval (specified by KVStoreConfig.getRequestTimeout(java.util.concurrent.TimeUnit)) is five seconds, and this exception should rarely be thrown.

    Note that the durability of an update operation may be uncertain if it results in a RequestTimeoutException being thrown. In most cases, the exception means that the changes requested by the update may or may not have been committed to the master or propagated to one or more replicas. Applications may want to retry the update operation if it is idempotent, or perform read operations to determine the outcome of the previous update.

    In the case that an application receives a RequestTimeoutException whose cause is a DurabilityException and calling DurabilityException.getNoSideEffects() returns true, the application can safely assume that none of the changes requested by the operation have been performed and can retry the operation. If getNoSideEffects returns false, then the operation may or may not have had side effects.

    Note also that if the consistency specified for a read operation is Consistency.NONE_REQUIRED_NO_MASTER, then this exception will be thrown if the operation is attempted when the only node available is the Master.

    Depending on the nature of the application, when this exception is thrown the client may wish to

    • retry the operation,
    • fall back to using a larger timeout interval, and resume using the original timeout interval at a later time, or
    • give up and report an error at a higher level.
    See Also:
    Serialized Form
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.String getMessage()  
      int getTimeoutMs()
      Returns the timeout that was in effect for the operation.
      void setTimeoutMs​(int timeoutMs)
      Sets the timeout that was in effect for the operation.
      • Methods inherited from class java.lang.Throwable

        addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface oracle.kv.impl.util.FastExternalizable

        deserializedForm
    • Method Detail

      • getMessage

        public java.lang.String getMessage()
        Overrides:
        getMessage in class java.lang.Throwable
      • getTimeoutMs

        public int getTimeoutMs()
        Returns the timeout that was in effect for the operation.
      • setTimeoutMs

        public void setTimeoutMs​(int timeoutMs)
        Sets the timeout that was in effect for the operation.