交易取消原因是不是以与 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 函数一起使用