Orion Context Broker работает в половине случаев

Я установил Orion Context Broker 0.23.0, и он ведет себя редко: он работает только в половине случаев. Например, при попытке получить версию я получаю это сообщение об ошибке:

$ curl "http://localhost:1026/version"
curl: (52) Empty reply from server
$ curl "http://localhost:1026/version"
<orion>
  <version>0.23.0</version>
  <uptime>15 d, 22 h, 13 m, 18 s</uptime>
  <git_hash>f5d76a6f11736d52402e63a4aa0ba990bff7f5eb</git_hash>
  <compile_time>Fri Jul 10 13:21:42 CEST 2015</compile_time>
  <compiled_by>fermin</compiled_by>
  <compiled_in>centollo</compiled_in>
</orion>
$ curl "http://localhost:1026/version"
curl: (52) Empty reply from server
$ curl "http://localhost:1026/version"
<orion>
  <version>0.23.0</version>
  <uptime>15 d, 22 h, 13 m, 53 s</uptime>
  <git_hash>f5d76a6f11736d52402e63a4aa0ba990bff7f5eb</git_hash>
  <compile_time>Fri Jul 10 13:21:42 CEST 2015</compile_time>
  <compiled_by>fermin</compiled_by>
  <compiled_in>centollo</compiled_in>
</orion>

Это поведение детерминировано, я имею в виду, что после сбоя он всегда работает, а после работы всегда терпит неудачу. Это происходит со всеми операциями в REST API.

Я проверил прослушивающие порты, и процесс, который их запускает, совпадает с процессом Orion:

$ sudo netstat -ntlp | grep 1026
tcp        0      0 0.0.0.0:1026                0.0.0.0:*                   LISTEN      9944/contextBroker  
tcp        0      0 :::1026                     :::*                        LISTEN      9944/contextBroker

$ ps ax | grep contextBroker | grep -v grep
 9944 ?        Ssl    0:13 /usr/bin/contextBroker -port 1026 -logDir /var/log/contextBroker -pidpath /var/run/contextBroker/contextBroker.pid -dbhost localhost -db orion -multiservice

Любые подсказки? Спасибо!


person frb    schedule 05.08.2015    source источник


Ответы (1)


Orion работает по умолчанию, прослушивая IPv4 и IPv6. Мы обнаружили, что в случаях, подобных описанным вами, отключение IPv6 решает проблему (мы пока не знаем точной причины, возможно, она связана с операционной системой или каким-то образом...).

Чтобы запустить Orion только в режиме IPv4, вам нужно использовать параметр -ipv4 либо в командной строке contextBroker, либо (если вы используете Orion как службу) отредактировать файл /etc/sysconfig/contextBroker, чтобы добавить -ipv4 в переменную BROKER_EXTRA_OPS (посмотрите на документацию для получения дополнительной информации о настройке Orion как службы). После изменения /etc/sysconfig/contextBroker вам необходимо перезапустить Orion, используя:

sudo /etc/init.d/contextBroker restart
person fgalan    schedule 05.08.2015
comment
Здравствуйте, у меня такое же поведение с contextBroker 0.24, который я установил в эти дни на наших серверах. Это на машине с CentOS 6.7 после установки mongo-server, mongo-shell и cygnus. Также установлены Tomcat и CEP. Строка параметров BROKER_EXTRA_OPS="-ipv6" в указанном файле не решила проблему, даже после нескольких попыток и перезагрузок. Должен ли я опубликовать собственный вопрос? - person A. Vieira; 16.09.2015
comment
На самом деле должно быть BROKER_EXTRA_OPS="-ipv4" (4, а не 6). Не могли бы вы протестировать этот способ и проверить, работает ли он, пожалуйста? - person fgalan; 16.09.2015
comment
Ты прав. Моя ошибка при написании комментария. Я скопировал эту строку прямо из файла и использовал последнюю протестированную конфигурацию. Действительно -ipv4 тоже не работает. Между тем я заметил, что это происходит только в том случае, если работает Apache Tomcat 7 (с установленной Java jdk 8). Если я остановлю Tomcat, Orion будет вести себя хорошо. Дело в том, что мне нужно запустить оба, потому что CEP GE работает на Tomcat. - person A. Vieira; 16.09.2015
comment
Таким образом, похоже, это другая проблема, вызванная каким-то вмешательством Orion-Tomcat. Я бы предложил открыть новый вопрос, чтобы справиться с этим (хотя вы могли бы включить ссылку на этот вопрос в качестве ссылки). - person fgalan; 16.09.2015