Class: Aws::DynamoDB::Types::TransactionInProgressException
- Inherits:
-
Struct
- Object
- Struct
- Aws::DynamoDB::Types::TransactionInProgressException
- Includes:
- Structure
- Defined in:
- lib/aws-sdk-dynamodb/types.rb
Overview
The transaction with the given request token is already in progress.
Recommended Settings
<note markdown=“1”> 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.
</note>
-
Set
clientExecutionTimeoutto a value that allows at least one retry to be processed after 5 seconds have elapsed since the first attempt for theTransactWriteItemsoperation. -
Set
socketTimeoutto a value a little lower than therequestTimeoutsetting. -
requestTimeoutshould 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 andTransactionInProgressExceptionerrors. -
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)
Constant Summary collapse
- SENSITIVE =
[]
Instance Attribute Summary collapse
Instance Attribute Details
#message ⇒ String
9910 9911 9912 9913 9914 |
# File 'lib/aws-sdk-dynamodb/types.rb', line 9910 class TransactionInProgressException < Struct.new( :message) SENSITIVE = [] include Aws::Structure end |