我正在使用DynamoDB。我从应用程序扫描操作。一切都很完美。过了一段时间,响应将变为零。但我没有收到任何例外。我使用
启用了详细日志记录[AmazonLogger verboseLogging];
如果启用了详细日志记录,我可以看到一些日志,例如
“__ type”:“com.amazonaws.dynamodb.v20111205#ProvisionedThroughputExceededException”,“message”:“超出了表的配置预配置吞吐量级别。请考虑使用UpdateTable API提高配置级别”
我的代码看起来像这样,
@try {
DynamoDBScanRequest *request = /* Create request */;
DynamoDBScanResponse *response = [[AmazonClientManager ddb] scan:request];
/*
* response is nil if the provisioning throughput is exceeded
* and the all retries are over
*/
ALog(@"Response: %@", response);
NSMutableArray *array = response.items;
return array;
} @catch (NSException *exception) {
/*
* I am expecting the ProvisionedThroughputExceededException
* to be thrown here. But its not throwing here. Instead I get the response
* as nil above.
*/
ALog(@"Exception: %@", exception);
return nil;
}
我做得对吗?有人可以帮帮我吗?
感谢。
编辑:任何人都可以大致了解为QuestionAnswer表设置的吞吐量(读/写)容量,包括TopicID,QuestionID,Question,Answer等近10个字段AskedAt,RepliedAt,QuestionType等,?感谢。
答案 0 :(得分:4)
我尝试了一个扫描请求,其读取容量单位比配置容量更多,我得到了AmazonClientException
一般消息:“发生了未知错误。”我们正在修复一个问题,下一个版本应该在描述的情况下正确返回DynamoDBProvisionedThroughputExceededException
。
你说答案是零,但我无法重现这个问题。你打电话给[AmazonErrorHandler shouldNotThrowExceptions]
来关闭例外吗?启用此选项后,SDK不会抛出AmazonClientException
和AmazonServiceException
。您也可以使用旧版本的SDK。请尝试1.4.4,看看你是否得到例外。它不是最理想的,但至少你应该能够在出现问题时捕获异常。