#[non_exhaustive]pub struct TransactionInProgressException {
pub message: Option<String>,
/* private fields */
}
Expand description
The transaction with the given request token is already in progress.
Recommended Settings
This is a general recommendation for handling the TransactionInProgressException
. These settings help ensure that the client retries will trigger completion of the ongoing TransactWriteItems
request.
-
Set
clientExecutionTimeout
to a value that allows at least one retry to be processed after 5 seconds have elapsed since the first attempt for theTransactWriteItems
operation. -
Set
socketTimeout
to a value a little lower than therequestTimeout
setting. -
requestTimeout
should be set based on the time taken for the individual retries of a single HTTP request for your use case, but setting it to 1 second or higher should work well to reduce chances of retries andTransactionInProgressException
errors. -
Use exponential backoff when retrying and tune backoff if needed.
Assuming default retry policy, example timeout settings based on the guidelines above are as follows:
Example timeline:
-
0-1000 first attempt
-
1000-1500 first sleep/delay (default retry policy uses 500 ms as base delay for 4xx errors)
-
1500-2500 second attempt
-
2500-3500 second sleep/delay (500 * 2, exponential backoff)
-
3500-4500 third attempt
-
4500-6500 third sleep/delay (500 * 2^2)
-
6500-7500 fourth attempt (this can trigger inline recovery since 5 seconds have elapsed since the first attempt reached TC)
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. }
syntax; cannot be matched against without a wildcard ..
; and struct update syntax will not work.message: Option<String>
Implementations§
source§impl TransactionInProgressException
impl TransactionInProgressException
sourcepub fn builder() -> TransactionInProgressExceptionBuilder
pub fn builder() -> TransactionInProgressExceptionBuilder
Creates a new builder-style object to manufacture TransactionInProgressException
.
Trait Implementations§
source§impl Clone for TransactionInProgressException
impl Clone for TransactionInProgressException
source§fn clone(&self) -> TransactionInProgressException
fn clone(&self) -> TransactionInProgressException
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Error for TransactionInProgressException
impl Error for TransactionInProgressException
1.30.0 · source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · source§fn description(&self) -> &str
fn description(&self) -> &str
source§impl PartialEq for TransactionInProgressException
impl PartialEq for TransactionInProgressException
source§fn eq(&self, other: &TransactionInProgressException) -> bool
fn eq(&self, other: &TransactionInProgressException) -> bool
self
and other
values to be equal, and is used
by ==
.source§impl ProvideErrorMetadata for TransactionInProgressException
impl ProvideErrorMetadata for TransactionInProgressException
source§fn meta(&self) -> &ErrorMetadata
fn meta(&self) -> &ErrorMetadata
source§impl RequestId for TransactionInProgressException
impl RequestId for TransactionInProgressException
source§fn request_id(&self) -> Option<&str>
fn request_id(&self) -> Option<&str>
None
if the service could not be reached.impl StructuralPartialEq for TransactionInProgressException
Auto Trait Implementations§
impl Freeze for TransactionInProgressException
impl RefUnwindSafe for TransactionInProgressException
impl Send for TransactionInProgressException
impl Sync for TransactionInProgressException
impl Unpin for TransactionInProgressException
impl UnwindSafe for TransactionInProgressException
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more