使用ArangoDB 2.3.1。 看来我的游标一两分钟之内到期。 我想他们持续了一个小时。 我建立了我的AQL查询对象与TTL参数如下:
{
"query": 'removed actual query',
"count": true,
"batchSize": 5,
"ttl": 3600000
}
我的理解是,TTL参数应该告诉服务器来保持服务器为3600000毫秒或1小时。 但到期约60秒之内。 事实上,我试图改变TTL到几个不同的号码,它似乎并没有做任何事情。 有任何想法吗?
UPDATE:实际的错误,我从阿朗戈获得的是“未找到光标”
所有的你是对的。 但我认为这是在2.3的错误:
--- a/arangod/V8Server/v8-vocbase.cpp
+++ b/arangod/V8Server/v8-vocbase.cpp
@@ -1216,13 +1216,13 @@ static v8::Handle<v8::Value> JS_ExecuteAql (v8::Arguments const& argv) {
optionName = v8::String::New("ttl");
if (argValue->Has(optionName)) {
- ttl = TRI_ObjectToBoolean(argValue->Get(optionName));
+ ttl = TRI_ObjectToDouble(argValue->Get(optionName));
ttl = (ttl <= 0.0 ? 30.0 : ttl);
}
TTL是双,所以它应该被浇铸为双,而不是一个布尔值。 不幸的是,分配BOOL到双在C ++有效所以编译器并没有抱怨。
您必须使用超时指令试过吗?
--server.keep-alive-timeout=X
其中X是秒。
或者,您可以根据服务器的部分作为插入此到您的arangod.conf文件
keep-alive-timout=X
根据手册
允许指定为HTTP保持连接的timout。 超时值必须以秒。 空闲保持连接将达到超时值时自动服务器被关闭。