Amazon DynamoDB ProvisionedThroughputExceededException(iOS SDK)

时间:2012-11-27 09:25:53

标签: iphone objective-c ios amazon-web-services amazon-dynamodb

我正在使用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等,?感谢。

1 个答案:

答案 0 :(得分:4)

我尝试了一个扫描请求,其读取容量单位比配置容量更多,我得到了AmazonClientException一般消息:“发生了未知错误。”我们正在修复一个问题,下一个版本应该在描述的情况下正确返回DynamoDBProvisionedThroughputExceededException

你说答案是零,但我无法重现这个问题。你打电话给[AmazonErrorHandler shouldNotThrowExceptions]来关闭例外吗?启用此选项后,SDK不会抛出AmazonClientExceptionAmazonServiceException。您也可以使用旧版本的SDK。请尝试1.4.4,看看你是否得到例外。它不是最理想的,但至少你应该能够在出现问题时捕获异常。