cleandb期间的couchdb gen_server调用超时

时间:2017-01-18 12:07:50

标签: java erlang timeout couchdb purge

我正在对使用java程序运行couchdb清除的持续时间进行分析。使用ektorp处理couchdb连接和调用。对于少量文件进行清除,我收到了成功的回复。

但是当我清除~10000或更多时,我收到以下错误:

    org.ektorp.DbAccessException: 500:Internal Server Error
    URI: /dbname/_purge
    Response Body: 
    {
      "error" : "timeout",
      "reason" : "{gen_server,call,
....

使用curl命令检查db状态时,实际进行了清除。但是这个超时不允许我监视java程序中清除方法的实际时间,因为这会引发异常。

在一些研究中,我认为这是由于erlang gen_server进程的默认超时值。反正我有没有解决这个问题?

我尝试过更改StdHttpClient的超时值无效。

HttpClient authenticatedHttpClient = new StdHttpClient.Builder()
                    .url(url)
                    .username(Conf.COUCH_USERNAME)
                    .password(Conf.COUCH_PASSWORD)
                    .connectionTimeout(600*1000)
                    .socketTimeout(600*1000)
                    .build();

1 个答案:

答案 0 :(得分:2)

CouchDB Dev在这里。您不应该使用大量文档清除。这是为了从数据库中删除意外添加的数据,如信用卡或社会安全号码。这不适用于一般操作。

因此,您无法提出gen_server超时:)