java - Dynamodb 中针对 ConditionalCheckFailedException 的 AWS 类(class)?

标签 java amazon-web-services amazon-dynamodb

我有大约 30 个实例正在运行并向 dynamo 提交数据,但在我的日志中,我收到了大量 ConditionalCheckFailedException 失败消息。奇怪的是,我不会通过任何条件检查来保存,除非我遗漏了一些东西:

  private void save(DynamoObject myObject) {
    try {
      mapper.save(model);
    } catch (ConditionalCheckFailedException e) {
       // metrics and logging
    } catch (Exception e) {
       // metrics and logging
    }

这可能是什么原因造成的?

最佳答案

您似乎正在使用 DynamoDBMapper特别是 @DynamoDBVersionAttribute 某处,您的放置项失败与映射器的 optimistic locking 有关。战略。服务器上的项目版本与客户端的版本不同,因为对该项目进行了另一次写入,因此 DynamoDB 拒绝该 put。

您需要在客户端协调项目差异并重新提交。

关于java - Dynamodb 中针对 ConditionalCheckFailedException 的 AWS 类(class)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61412393/

相关文章:

java - 无锁队列中的这些行不是必需的吗?

java - DynamoDB 查询使用非分区键获取项目

workflow - EMR + DynamoDB 工作流程设置抛出 Hive.createTable NoSuchMethodError JsonErrorResponseHandler

amazon-web-services - 如何将现有的 dynamodb 表架构导出为 json?

java Scanner 每两个值读取一个

java - 是否可以序列化hibernate EntityManagerFactory?

java - 通用工厂方法和 Class<T> 参数

amazon-web-services - Ask-cli lambda 命令使用错误的区域设置

amazon-web-services - AWS DataPipeline 通过 Cloudformation 引发错误 'type is not defined in fields'

templates - 无法将参数从子 CloudFormation 模板发送到另一个子模板