我有大约 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/