

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用 Amazon QLDB 中的驱动程序了解重试策略
<a name="driver-retry-policy"></a>

**重要**  
终止支持通知：现有客户将能够使用 Amazon QLDB，直到 2025 年 7 月 31 日终止支持。有关更多详细信息，请参阅[将亚马逊 QLDB 账本迁移到亚马逊 Aurora PostgreSQL](https://aws.amazon.com/blogs/database/migrate-an-amazon-qldb-ledger-to-amazon-aurora-postgresql/)。

Amazon QLDB 驱动程序使用重试策略，通过透明重试失败的事务来处理暂时异常。这些异常（例如`CapacityExceededException`和`RateExceededException`）通常会在一段时间后自行纠正。如果在适当延迟之后重试因异常而失败的事务，则很可能会成功。这有助于提高使用 QLDB 应用程序的稳定性。

**Topics**
+ [

## 可重试错误类型
](#driver-retry-policy.retryable-errors)
+ [

## 默认重试策略
](#driver-retry-policy.default)

## 可重试错误类型
<a name="driver-retry-policy.retryable-errors"></a>

当且仅当该事务的操作期间出现以下任何异常时，驱动程序才会自动重试此事务：
+ [CapacityExceededException](driver-errors.md)— 当请求超出账本的处理能力时返回。
+ [InvalidSessionException](driver-errors.md)— 当会话不再有效或会话不存在时返回。
+ [LimitExceededException](driver-errors.md)— 如果超过资源限制（例如活动会话数），则返回。
+ [OccConflictException](concurrency.md)— 当由于*乐观并发控制* (OCC) 的验证阶段失败而导致交易无法写入日志时返回。
+ [RateExceededException](driver-errors.md)— 当请求速率超过允许的吞吐量时返回。

## 默认重试策略
<a name="driver-retry-policy.default"></a>

重试策略由重试条件与退避策略组成。重试条件定义何时应重试事务，而退避策略定义在重试事务之前的等待时间。

创建驱动程序实例时，默认重试策略指定最多重试四次，并使用指数退避策略。指数退避策略使用最小延迟 10 毫秒，最大延迟 5000 毫秒，抖动相等。如果无法在重试策略内成功提交此事务，我们建议您改时尝试该事务。

指数回退的原理是对于连续错误响应，重试等待间隔越来越长。有关更多信息，请参阅 AWS 博客文章[指数退缩和抖动。](https://aws.amazon.com/blogs/architecture/exponential-backoff-and-jitter/)