Class: Aws::DynamoDB::Types::TransactionInProgressException

Inherits:
Struct
  • Object
show all
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 ‘clientExecutionTimeout` to a value that allows at least one retry to be processed after 5 seconds have elapsed since the first attempt for the `TransactWriteItems` operation.

  • Set ‘socketTimeout` to a value a little lower than the `requestTimeout` 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 and `TransactionInProgressException` 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)

[1]: github.com/aws/aws-sdk-java/blob/fd409dee8ae23fb8953e0bb4dbde65536a7e0514/aws-java-sdk-core/src/main/java/com/amazonaws/retry/PredefinedRetryPolicies.java#L97

Constant Summary collapse

SENSITIVE =
[]

Instance Attribute Summary collapse

Instance Attribute Details

#messageString

Returns:

  • (String)


9519
9520
9521
9522
9523
# File 'lib/aws-sdk-dynamodb/types.rb', line 9519

class TransactionInProgressException < Struct.new(
  :message)
  SENSITIVE = []
  include Aws::Structure
end