1

我正在使用 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 表设置多少吞吐量(读/写)容量,其中有近 10 个字段,如 TopicID、QuestionID、Question、Answer、AskedAt、RepliedAt、QuestionType 等?谢谢。

4

1 回答 1

4

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

您说响应为零,但我无法重现该问题。你打电话[AmazonErrorHandler shouldNotThrowExceptions]来关闭例外吗?AmazonClientException开启此选项后,SDK 不会抛出AmazonServiceException. 您也可能使用的是旧版本的 SDK。请尝试 1.4.4 看看是否有异常。这是次优的,但至少你应该能够在出现问题时捕获异常。

于 2012-11-28T00:01:37.460 回答