交易取消原因是不是以与 TransactWriteItemsRequest 相同的顺序返回

Posted

技术标签:

【中文标题】交易取消原因是不是以与 TransactWriteItemsRequest 相同的顺序返回【英文标题】:Are transaction cancellation reasons returned in the same order as the TransactWriteItemsRequest交易取消原因是否以与 TransactWriteItemsRequest 相同的顺序返回 【发布时间】:2022-01-13 08:29:02 【问题描述】:

我们正在使用 DynamoDB 事务 API 执行 2 次写入:

  TransactWriteItemsRequest transactionalWriteRequest = new TransactWriteItemsRequest();
  transactionalWriteRequest.withTransactItems(writeOne, writeTwo); 
  dynamoDB.transactWriteItems(transactionalWriteRequest);

如果事务以TransactionCanceledException 失败,我们将返回一个带有CancellationReason 对象列表的异常。

在我的场景中,想象一下 writeOne 和 writeTwo 都失败了。该异常将返回两个取消原因。

我的问题是 - 这些原因的顺序是否与我请求中的交易顺序相匹配。

这总是正确的吗?

 // Explains why writeOne failed
 transactionError.getCancellationReasons().get(0);
 // Explains why writeTwo failed
 transactionError.getCancellationReasons().get(1);

谢谢

【问题讨论】:

【参考方案1】:

根据文档 - 是的,取消原因的顺序与交易项目的顺序相匹配:https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_TransactWriteItems.html

如果使用 Java,DynamoDB 会在 CancellationReasons 属性。此属性未设置为其他 语言。交易取消原因在订单中排序 请求的项目,如果项目没有错误,它将有 NONE 代码和 空消息。

【讨论】:

以上是关于交易取消原因是不是以与 TransactWriteItemsRequest 相同的顺序返回的主要内容,如果未能解决你的问题,请参考以下文章

确保照片以与拍摄时相同的方向保存?

长期交易是不是可以接受?

如何将公式转换为变量以与 R 中的 fastLm 函数一起使用

Web3 - 可以取消 ETH 交易吗?

取消嵌套自定义维度会复制/夸大 BigQuery 中的交易收入

如何使用 MetaMask 加速或取消未决交易