#[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<TransactionInProgressException> for TransactionInProgressException
impl PartialEq<TransactionInProgressException> 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.