Data Mover 在源系统和目标系统上运行 SQL 时,如果对象上存在死锁,则该 SQL 执行可能会失败。这种情况可能会导致以下 Teradata Database 错误:
[Error 2631] [SQLState 40001] Transaction ABORTed due to Deadlock.
2631 错误是一个可重试错误,如果在一段时间间隔后启动 SQL,则该错误可能不会发生。您可以在 configuration.xml 中配置三个配置属性来重试运行查询:
属性 | 说明 |
---|---|
deadlock.retry.enabled | 如果由于死锁而无法执行 SQL 查询并出现 Teradata Database 错误 2631,则在指定时间间隔后重试运行查询。 缺省为 false。指定 true 可启用。 如果将 deadlock.retry.enabled property 设置为 false,则会忽略下列两个属性。 |
deadlock.retry.interval | 重试运行由于 Teradata Database 死锁错误 2631 而失败的 SQL 查询的时间间隔。Data Mover 会等到此时间间隔后再尝试运行失败的查询。 分别为两个元素指定值。缺省值为 1 分钟。
|
deadlock.retry.maxAttempts | 重试运行由于 Teradata Database 死锁错误 2631 而失败的 SQL 查询的最大尝试次数。 如果重试了此属性指定的次数后 SQL 查询失败,则会向用户返回错误。 缺省值为 10。必须为正整数。 |
死锁重试属性不适用于解压缩和加载过程期间通过 JDBC、Teradata PT API 或 DSA 运算符运行的查询。这些属性仅适用于在作业创建期间或数据加载前后由 Data Mover 运行的 SQL。