Fiware 上下文代理仅在被询问两次时响应
所以问题是,当我尝试与上下文代理建立连接时,无论我是尝试更新实体还是读取值。只有当我第二次问的时候,它才会回答ok 上下文代理版本:0.24.0(我从0.20.0更新,因为我认为这就是问题所在) 例如:Fiware 上下文代理仅在被询问两次时响应,fiware,fiware-orion,Fiware,Fiware Orion,所以问题是,当我尝试与上下文代理建立连接时,无论我是尝试更新实体还是读取值。只有当我第二次问的时候,它才会回答ok 上下文代理版本:0.24.0(我从0.20.0更新,因为我认为这就是问题所在) 例如: python2.7 GetEntity.py entity_1 输出: * Asking to http://188.***.**.***:1026/ngsi10/queryContext * Headers: {'Fiware-Service': 'fiwarefinal', 'conten
python2.7 GetEntity.py entity_1
输出:
* Asking to http://188.***.**.***:1026/ngsi10/queryContext
* Headers: {'Fiware-Service': 'fiwarefinal', 'content-type': 'application/json', 'accept': 'application/json', 'X-Auth-Token': 'NULL'}
* Sending PAYLOAD:
{
"entities": [
{
"type": "",
"id": "entity_1",
"isPattern": "false"
}
],
"attributes": []
}
...
Traceback (most recent call last):
File "GetEntity.py", line 73, in <module>
r = requests.post(URL, data=PAYLOAD, headers=HEADERS)
File "/usr/local/lib/python2.7/site-packages/requests/api.py", line 109, in post
return request('post', url, data=data, json=json, **kwargs)
File "/usr/local/lib/python2.7/site-packages/requests/api.py", line 50, in request
response = session.request(method=method, url=url, **kwargs)
File "/usr/local/lib/python2.7/site-packages/requests/sessions.py", line 465, in request
resp = self.send(prep, **send_kwargs)
File "/usr/local/lib/python2.7/site-packages/requests/sessions.py", line 573, in send
r = adapter.send(request, **kwargs)
File "/usr/local/lib/python2.7/site-packages/requests/adapters.py", line 415, in send
raise ConnectionError(err, request=request)
requests.exceptions.ConnectionError: ('Connection aborted.', BadStatusLine("''",))
curl: (56) Failure when receiving data from the peer
示例2:
curl http://188.***.**.***:1026/version
输出:
* Asking to http://188.***.**.***:1026/ngsi10/queryContext
* Headers: {'Fiware-Service': 'fiwarefinal', 'content-type': 'application/json', 'accept': 'application/json', 'X-Auth-Token': 'NULL'}
* Sending PAYLOAD:
{
"entities": [
{
"type": "",
"id": "entity_1",
"isPattern": "false"
}
],
"attributes": []
}
...
Traceback (most recent call last):
File "GetEntity.py", line 73, in <module>
r = requests.post(URL, data=PAYLOAD, headers=HEADERS)
File "/usr/local/lib/python2.7/site-packages/requests/api.py", line 109, in post
return request('post', url, data=data, json=json, **kwargs)
File "/usr/local/lib/python2.7/site-packages/requests/api.py", line 50, in request
response = session.request(method=method, url=url, **kwargs)
File "/usr/local/lib/python2.7/site-packages/requests/sessions.py", line 465, in request
resp = self.send(prep, **send_kwargs)
File "/usr/local/lib/python2.7/site-packages/requests/sessions.py", line 573, in send
r = adapter.send(request, **kwargs)
File "/usr/local/lib/python2.7/site-packages/requests/adapters.py", line 415, in send
raise ConnectionError(err, request=request)
requests.exceptions.ConnectionError: ('Connection aborted.', BadStatusLine("''",))
curl: (56) Failure when receiving data from the peer
当我第二次这样做时:
* Asking to http://188.***.**.***:1026/ngsi10/queryContext
* Headers: {'Fiware-Service': 'fiwarefinal', 'content-type': 'application/json', 'accept': 'application/json', 'X-Auth-Token': 'NULL'}
* Sending PAYLOAD:
{
"entities": [
{
"type": "",
"id": "entity_1",
"isPattern": "false"
}
],
"attributes": []
}
...
* Status Code: 200
* Response:
{
"contextResponses" : [
{
"contextElement" : {
"type" : "",
"isPattern" : "false",
"id" : "entity_1",
"attributes" : [
{
"name" : "humidity",
"type" : "int",
"value" : "4"
},
{
"name" : "latitude",
"type" : "float",
"value" : "3"
},
{
"name" : "longitude",
"type" : "float",
"value" : "5"
},
{
"name" : "temperature",
"type" : "int",
"value" : "8"
}
]
},
"statusCode" : {
"code" : "200",
"reasonPhrase" : "OK"
}
}
]
}
<orion>
<version>0.24.0</version>
<uptime>0 d, 0 h, 41 m, 27 s</uptime>
<git_hash><deleted for safety reasons></git_hash>
<compile_time>Mon Sep 14 17:52:44 CEST 2015</compile_time>
<compiled_by>fermin</compiled_by>
<compiled_in>centollo</compiled_in>
</orion>
所以,正如波斯特的回答所提到的,关于这个问题,有一个RAM内存问题。事实上,经过大量测试后,我的虚拟机内存不足,这本身就使得上下文代理出现了这个问题。我释放了内存,现在问题消失了 成功与失败之间有规律吗?我的意思是,第一个还行,第二个还行,第三个还行,第四个还行,第五个还行,第六个还行,等等。是的,事情就是这样。我更新了我的答案,加入了一个关于这种行为的屏幕截图。你遇到的问题似乎与上描述的问题相同。请看一看,以便说明的解决方案适合您(在这种情况下,a+1是受欢迎的;)我检查了该问题并执行了建议的更改,但它不起作用。你还有什么建议吗?