ConditionalCheckFailedException

ConditionalCheckFailedException

我大约有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拒绝放置该物料。

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

08-07 14:11